From f3747376004836d2da6fde211ebe93cd4b6dad73 Mon Sep 17 00:00:00 2001
From: Mathis Neumann <mathis@simpletechs.net>
Date: Mon, 30 May 2016 13:21:18 +0200
Subject: [PATCH] add models and adapter

---
 app/adapters/application.js         |  6 ++++++
 app/models/baseentity.js            |  6 ++++++
 app/models/communication.js         | 10 ++++++++++
 app/models/communicationInstance.js |  8 ++++++++
 app/models/node.js                  | 10 ++++++++++
 app/models/nodeGroup.js             |  8 ++++++++
 app/models/service.js               |  8 ++++++++
 app/models/serviceInstance.js       |  8 ++++++++
 app/models/system.js                |  9 +++++++++
 app/routes/cytoscape.js             | 10 ++++++++++
 10 files changed, 83 insertions(+)
 create mode 100644 app/adapters/application.js
 create mode 100644 app/models/baseentity.js
 create mode 100644 app/models/communication.js
 create mode 100644 app/models/communicationInstance.js
 create mode 100644 app/models/node.js
 create mode 100644 app/models/nodeGroup.js
 create mode 100644 app/models/service.js
 create mode 100644 app/models/serviceInstance.js
 create mode 100644 app/models/system.js
 create mode 100644 app/routes/cytoscape.js

diff --git a/app/adapters/application.js b/app/adapters/application.js
new file mode 100644
index 0000000..e93e859
--- /dev/null
+++ b/app/adapters/application.js
@@ -0,0 +1,6 @@
+import RESTAdapter from 'ember-data/adapters/rest';
+
+export default RESTAdapter.extend({
+    host: 'http://localhost:3000',
+    namespace: 'v1'
+});
\ No newline at end of file
diff --git a/app/models/baseentity.js b/app/models/baseentity.js
new file mode 100644
index 0000000..dc29a62
--- /dev/null
+++ b/app/models/baseentity.js
@@ -0,0 +1,6 @@
+import Model from 'ember-data/model';
+import attr from 'ember-data/attr';
+
+export default Model.extend({
+    // id: attr('string') - not allowed to be listed by ember
+});
diff --git a/app/models/communication.js b/app/models/communication.js
new file mode 100644
index 0000000..74f799d
--- /dev/null
+++ b/app/models/communication.js
@@ -0,0 +1,10 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    system: attr('string'), // TODO: relation?
+    technology: attr('string'),
+    source: attr(), // FIXME relation
+    target: attr(), // FIXME relation
+    instances: attr(), // FIXME relation
+});
diff --git a/app/models/communicationInstance.js b/app/models/communicationInstance.js
new file mode 100644
index 0000000..352267c
--- /dev/null
+++ b/app/models/communicationInstance.js
@@ -0,0 +1,8 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    source: attr(), // FIXME relation
+    target: attr(), // FIXME relation
+    communication: attr(), // FIXME relation
+});
diff --git a/app/models/node.js b/app/models/node.js
new file mode 100644
index 0000000..0595317
--- /dev/null
+++ b/app/models/node.js
@@ -0,0 +1,10 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    name: attr(), // FIXME relation
+    services: attr(), // FIXME relation
+    ip: attr('string'),
+    hostname: attr('string'),
+    group: attr('string'), // TODO: relation?
+});
diff --git a/app/models/nodeGroup.js b/app/models/nodeGroup.js
new file mode 100644
index 0000000..23355b3
--- /dev/null
+++ b/app/models/nodeGroup.js
@@ -0,0 +1,8 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    name: attr('string'),
+    system: attr(), // FIXME relation
+    nodes: attr() // FIXME relation
+});
diff --git a/app/models/service.js b/app/models/service.js
new file mode 100644
index 0000000..68e6a4b
--- /dev/null
+++ b/app/models/service.js
@@ -0,0 +1,8 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    name: attr('string'),
+    system: attr(), // FIXME relation
+    description: attr('string')
+});
diff --git a/app/models/serviceInstance.js b/app/models/serviceInstance.js
new file mode 100644
index 0000000..8bb57a8
--- /dev/null
+++ b/app/models/serviceInstance.js
@@ -0,0 +1,8 @@
+import BaseEntity from './baseentity.js';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    name: attr('string'),
+    node: attr(), // FIXME relation
+    service: attr() // FIXME relation
+});
diff --git a/app/models/system.js b/app/models/system.js
new file mode 100644
index 0000000..dd31943
--- /dev/null
+++ b/app/models/system.js
@@ -0,0 +1,9 @@
+import BaseEntity from './baseentity';
+import attr from 'ember-data/attr';
+
+export default BaseEntity.extend({
+    name: attr('string'),
+    nodeGroups: attr('string'), // FIXME relation
+    communications: attr('string'), // FIXME relation
+    services: attr('string') // FIXME relation
+});
diff --git a/app/routes/cytoscape.js b/app/routes/cytoscape.js
new file mode 100644
index 0000000..8490ad1
--- /dev/null
+++ b/app/routes/cytoscape.js
@@ -0,0 +1,10 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+    model() {
+        return this.store.findAll('system').then((systems) => {
+            console.log('loaded systems', systems)
+            return systems;
+        });
+    }
+});
-- 
GitLab