diff --git a/frontend/src/app.js b/frontend/src/app.js
index 3c1d420b..bbc9cec9 100644
--- a/frontend/src/app.js
+++ b/frontend/src/app.js
@@ -3,16 +3,28 @@ import { ApolloProvider } from 'react-apollo';
import { client, store } from '@state/store';
import Router from '@root/router';
+import { injectGlobal } from 'styled-components';
+import Base, { global } from '@ui/components/base';
+
class App extends Component {
+
+ componentWillMount() {
+ injectGlobal`
+ ${global}
+ `;
+ }
+
render() {
return (
-
+
);
}
}
+
+
export default App;
diff --git a/frontend/src/index.css b/frontend/src/index.css
deleted file mode 100644
index b4cc7250..00000000
--- a/frontend/src/index.css
+++ /dev/null
@@ -1,5 +0,0 @@
-body {
- margin: 0;
- padding: 0;
- font-family: sans-serif;
-}
diff --git a/frontend/src/index.js b/frontend/src/index.js
index 61a23971..aa1e0ec8 100644
--- a/frontend/src/index.js
+++ b/frontend/src/index.js
@@ -1,7 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './app';
-import './index.css';
ReactDOM.render(
,
diff --git a/spikes/graphql/graphql-server/src/schema.js b/spikes/graphql/graphql-server/src/schema.js
index 43e57e6a..434e4116 100644
--- a/spikes/graphql/graphql-server/src/schema.js
+++ b/spikes/graphql/graphql-server/src/schema.js
@@ -4,6 +4,7 @@ import resolvers from './resolvers';
const schema = `
scalar Date
+scalar Object
type Portal {
username: String!
@@ -15,25 +16,52 @@ type Portal {
type DeploymentGroup {
uuid: String!
name: String!
- pathName: String!
+ slug: String!
datacenter: Datacenter!
services: [Service]!
- state: DeploymentState
- version: Manifest!
- history: [Manifest]!
+ version: Version!
+ history: [Version]!
}
-type DeploymentState {
- current: String
+type ServiceScale {
+ name: String!
+ replicas: Int!
+}
+
+enum ConvergenceActionType {
+ NOOP
+ CREATE
+ RECREATE
+ START
+ }
+
+ type ConvergenceAction {
+ uuid: String!
+ type: ConvergenceActionType!
+ service: String! # service name
+ machines: [String]! # instance machine ids
+ }
+
+ type StateConvergencePlan {
+ uuid: String!
+ running: Boolean!
+ actions: [ConvergenceAction]!
+ }
+
+type Version {
+ created: Date!
+ manifest: Manifest!
+ scale: [ServiceScale]!
+ plan: StateConvergencePlan
}
type Manifest {
uuid: String!
created: Date!
- created: Date!
type: String!
format: String!
raw: String!
+ obj: Object!
}
type CurrentMetric {
@@ -44,14 +72,12 @@ type CurrentMetric {
# immutable
type Service {
- uuid: String!
- hash: String!
- deploymentGoup: String!
- version: Manifest!
- name: String!
- pathName: String!
+ uuid: String! # unique id for db row
+ hash: String! # unique id for version of service
+ name: String! # human readable name
+ slug: String!
instances: [Instance]!
- metrics: [MetricType]!
+ # metrics: [MetricType]!
currentMetrics: [CurrentMetric]!
connections: [String!] # list of serviceUuids
parent: String # parent service uuid
@@ -64,12 +90,6 @@ type MetricType {
id: String!
}
-# This is ui / dashboard config data - to be stored separately
-type ServiceMetric { # name?
- metricType: MetricType!
- pinned: Boolean!
-}
-
# for metrics max / min (I guess)
type Package {
type: String!
@@ -78,13 +98,21 @@ type Package {
vCPUs: Float! # This should be a number / double, not an int
}
+enum InstanceStatus {
+ CREATED
+ RESTARTING
+ RUNNING
+ PAUSED
+ EXITED
+ DELETED
+}
+
type Instance {
uuid: String!
name: String!
- id: String!
- deploymentGoup: String!
- service: String!
- metrics: [InstanceMetric]!
+ machineId: String!
+ status: InstanceStatus!
+ # metrics: [InstanceMetric]!
}
type InstanceMetric {
@@ -99,18 +127,19 @@ type MetricData {
type Datacenter {
uuid: String!
- id: String!
+ slug: String!
location: String!
}
+# Need to review queries
type Query {
portal: Portal
deploymentGroups: [DeploymentGroup]
- deploymentGroup(uuid: String, pathName: String): DeploymentGroup
- services(deploymentGroupUuid: String, deploymentGroupPathName: String): [Service]
- service(uuid: String, pathName: String): Service
- instances(serviceUuid: String, servicePathName: String): [Instance]
- instance(uuid: String, id: String): Instance
+ deploymentGroup(uuid: String, slug: String): DeploymentGroup
+ services(deploymentGroupUuid: String, deploymentGroupSlug: String): [Service]
+ service(uuid: String, slug: String): Service
+ instances(serviceUuid: String, serviceSlug: String): [Instance]
+ instance(uuid: String, machineId: String): Instance
metricTypes: [MetricType]
metricData(instanceUuid: String!, metricType: String!, from: Date!, to: Date!): [InstanceMetric]!
package: Package