From 013395eec1a0928c3e9900d1187e63de29c05337 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 13 Aug 2020 17:05:09 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20initial=20modeling?= =?UTF-8?q?=20for=20host=20sets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/addon/generated/models/host-set.js | 42 +++++++++++++++++++ addons/api/addon/models/host-catalog.js | 10 ++++- addons/api/addon/models/host-set.js | 13 ++++++ addons/api/app/models/host-set.js | 1 + addons/api/tests/unit/models/host-set-test.js | 13 ++++++ 5 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 addons/api/addon/generated/models/host-set.js create mode 100644 addons/api/addon/models/host-set.js create mode 100644 addons/api/app/models/host-set.js create mode 100644 addons/api/tests/unit/models/host-set-test.js diff --git a/addons/api/addon/generated/models/host-set.js b/addons/api/addon/generated/models/host-set.js new file mode 100644 index 000000000..5793cc4a5 --- /dev/null +++ b/addons/api/addon/generated/models/host-set.js @@ -0,0 +1,42 @@ +import BaseModel from '../../models/base'; +import { attr } from '@ember-data/model'; + +/** + * HostSet is a collection of Hosts created and managed by a HostCatalog + */ +export default class GeneratedHostSetModel extends BaseModel { + + // =attributes + + @attr('string', { + description: 'The type of the resource, to help differentiate schemas' + }) type; + + @attr('string', { + description: 'Optional name for identification purposes' + }) name; + + @attr('string', { + description: 'Optional user-set description for identification purposes' + }) description; + + @attr('date', { + description: 'The time this resource was created\nOutput only.', + readOnly: true + }) created_time; + + @attr('date', { + description: 'The time this resource was last updated\nOutput only.', + readOnly: true + }) updated_time; + + @attr('number', { + description: 'Current version number of this resource.', + }) + version; + + @attr('number', { + description: 'The total count of hosts in this host set\nOutput only.' + }) size; + +} diff --git a/addons/api/addon/models/host-catalog.js b/addons/api/addon/models/host-catalog.js index a0162bfeb..6f3729a47 100644 --- a/addons/api/addon/models/host-catalog.js +++ b/addons/api/addon/models/host-catalog.js @@ -1,3 +1,11 @@ import GeneratedHostCatalogModel from '../generated/models/host-catalog'; +import { hasMany } from '@ember-data/model'; -export default class HostCatalogModel extends GeneratedHostCatalogModel { } +export default class HostCatalogModel extends GeneratedHostCatalogModel { + + /** + * @type {HostSetModel[]} + */ + @hasMany('host-set') hostSets; + +} diff --git a/addons/api/addon/models/host-set.js b/addons/api/addon/models/host-set.js new file mode 100644 index 000000000..ad1fd89a6 --- /dev/null +++ b/addons/api/addon/models/host-set.js @@ -0,0 +1,13 @@ +import GeneratedHostSetModel from '../generated/models/host-set'; +import { belongsTo } from '@ember-data/model'; + +export default class HostSetModel extends GeneratedHostSetModel { + + // =relationships + + /** + * @type {HostCatalogModel} + */ + @belongsTo('host-catalog') hostCatalog; + +} diff --git a/addons/api/app/models/host-set.js b/addons/api/app/models/host-set.js new file mode 100644 index 000000000..6963bf5e3 --- /dev/null +++ b/addons/api/app/models/host-set.js @@ -0,0 +1 @@ +export { default } from 'api/models/host-set'; diff --git a/addons/api/tests/unit/models/host-set-test.js b/addons/api/tests/unit/models/host-set-test.js new file mode 100644 index 000000000..61e007f70 --- /dev/null +++ b/addons/api/tests/unit/models/host-set-test.js @@ -0,0 +1,13 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Model | host set', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let store = this.owner.lookup('service:store'); + let model = store.createRecord('host-set', {}); + assert.ok(model); + }); +});