mirror of https://github.com/rancher/ui.git
move node drivers to engine
This commit is contained in:
parent
68788a8209
commit
dfb90c4796
38
app/app.js
38
app/app.js
|
|
@ -33,6 +33,44 @@ const App = Application.extend({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
nodes: {
|
||||||
|
dependencies: {
|
||||||
|
services: [
|
||||||
|
'app',
|
||||||
|
'access',
|
||||||
|
'clusterStore',
|
||||||
|
'catalog',
|
||||||
|
'endpoint',
|
||||||
|
'azureAd',
|
||||||
|
'github',
|
||||||
|
'globalStore',
|
||||||
|
'intl',
|
||||||
|
'modal',
|
||||||
|
'router',
|
||||||
|
'resource-actions',
|
||||||
|
'scope',
|
||||||
|
'session',
|
||||||
|
'settings',
|
||||||
|
'store',
|
||||||
|
'tooltip',
|
||||||
|
'user-language',
|
||||||
|
'user-theme',
|
||||||
|
],
|
||||||
|
externalRoutes: {
|
||||||
|
index: 'index',
|
||||||
|
failWhale: 'failWhale',
|
||||||
|
authenticated: 'authenticated',
|
||||||
|
'authenticated.cluster': 'authenticated.cluster',
|
||||||
|
'authenticated.cluster.projects': 'authenticated.cluster.projects',
|
||||||
|
'authenticated.project': 'authenticated.project',
|
||||||
|
'authenticated.prefs': 'authenticated.prefs',
|
||||||
|
'authenticated.cluster.nodes': 'authenticated.cluster.nodes',
|
||||||
|
'authenticated.cluster.nodes.node': 'authenticated.cluster.nodes.node',
|
||||||
|
'authenticated.cluster.security.members.index': 'authenticated.cluster.security.members.index',
|
||||||
|
'logout': 'logout'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
globalAdmin: {
|
globalAdmin: {
|
||||||
dependencies: {
|
dependencies: {
|
||||||
services: [
|
services: [
|
||||||
|
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
import { inject as service } from '@ember/service';
|
|
||||||
import Controller from '@ember/controller';
|
|
||||||
import { get } from '@ember/object';
|
|
||||||
|
|
||||||
export default Controller.extend({
|
|
||||||
modalService: service('modal'),
|
|
||||||
|
|
||||||
sortBy: 'name',
|
|
||||||
headers: [
|
|
||||||
{
|
|
||||||
name: 'state',
|
|
||||||
sort: ['sortState', 'name', 'id'],
|
|
||||||
translationKey: 'nodeTemplatesPage.table.state',
|
|
||||||
width: 100,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'name',
|
|
||||||
sort: ['name', 'id'],
|
|
||||||
translationKey: 'nodeTemplatesPage.table.name',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'provider',
|
|
||||||
sort: ['displayProvider', 'name', 'id'],
|
|
||||||
translationKey: 'nodeTemplatesPage.table.provider',
|
|
||||||
width: 150,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'location',
|
|
||||||
sort: ['displayLocation', 'name', 'id'],
|
|
||||||
translationKey: 'nodeTemplatesPage.table.location',
|
|
||||||
width: 150,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'size',
|
|
||||||
sort: ['displaySize', 'name', 'id'],
|
|
||||||
translationKey: 'nodeTemplatesPage.table.size',
|
|
||||||
width: 150,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
actions: {
|
|
||||||
newTemplate() {
|
|
||||||
get(this, 'modalService').toggleModal('modal-edit-node-template');
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
import { hash } from 'rsvp';
|
|
||||||
import Route from '@ember/routing/route';
|
|
||||||
|
|
||||||
export default Route.extend({
|
|
||||||
model() {
|
|
||||||
return hash({ nodeTemplates: this.get('globalStore').findAll('nodeTemplate'), });
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
@ -282,7 +282,7 @@ export default Route.extend(Preload, {
|
||||||
this._gotoRoute('authenticated.prefs', 'global');
|
this._gotoRoute('authenticated.prefs', 'global');
|
||||||
},
|
},
|
||||||
gotoT() {
|
gotoT() {
|
||||||
this._gotoRoute('authenticated.node-templates', 'global');
|
this._gotoRoute('nodes.node-templates', 'global');
|
||||||
},
|
},
|
||||||
|
|
||||||
// Cluster or Project
|
// Cluster or Project
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@
|
||||||
|
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li>{{#link-to "authenticated.apikeys"}}{{t 'nav.api.link'}} <i class="icon icon-key icon-fw"/>{{/link-to}}</li>
|
<li>{{#link-to "authenticated.apikeys"}}{{t 'nav.api.link'}} <i class="icon icon-key icon-fw"/>{{/link-to}}</li>
|
||||||
<li>{{#link-to "authenticated.node-templates"}}{{t 'nav.nodeTemplates.link'}} <i class="icon icon-host icon-fw"/>{{/link-to}}</li>
|
<li>{{#link-to "nodes.node-templates"}}{{t 'nav.nodeTemplates.link'}} <i class="icon icon-host icon-fw"/>{{/link-to}}</li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li>{{#link-to "authenticated.prefs"}}{{t 'nav.userPreferences.link'}} <i class="icon icon-gear icon-fw"/>{{/link-to}}</li>
|
<li>{{#link-to "authenticated.prefs"}}{{t 'nav.userPreferences.link'}} <i class="icon icon-gear icon-fw"/>{{/link-to}}</li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
|
|
|
||||||
|
|
@ -245,9 +245,9 @@ const rootNav = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
scope: 'global',
|
scope: 'global',
|
||||||
id: 'global-node-drivers',
|
id: 'nodes-node-drivers',
|
||||||
localizedLabel: 'nav.admin.nodeDrivers',
|
localizedLabel: 'nav.admin.nodeDrivers',
|
||||||
route: 'global-admin.node-drivers',
|
route: 'nodes.node-drivers',
|
||||||
resource: ['nodedriver'],
|
resource: ['nodedriver'],
|
||||||
resourceScope: 'global',
|
resourceScope: 'global',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,10 @@ Router.map(function() {
|
||||||
this.route('update-critical-settings', { path: '/update-setting' });
|
this.route('update-critical-settings', { path: '/update-setting' });
|
||||||
|
|
||||||
this.route('authenticated', { path: '/' }, function() {
|
this.route('authenticated', { path: '/' }, function() {
|
||||||
|
this.mount('nodes', {
|
||||||
|
path: '/n',
|
||||||
|
resetNamespace: true
|
||||||
|
});
|
||||||
// Global
|
// Global
|
||||||
this.mount('global-admin', {
|
this.mount('global-admin', {
|
||||||
path: '/g',
|
path: '/g',
|
||||||
|
|
@ -45,7 +49,7 @@ Router.map(function() {
|
||||||
this.route('dummy-dev', { path: '/dev' });
|
this.route('dummy-dev', { path: '/dev' });
|
||||||
|
|
||||||
this.route('apikeys');
|
this.route('apikeys');
|
||||||
this.route('node-templates');
|
// this.route('node-templates');
|
||||||
this.route('prefs');
|
this.route('prefs');
|
||||||
|
|
||||||
// Per-Cluster
|
// Per-Cluster
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
import Ember from 'ember';
|
|
||||||
|
|
||||||
export default Ember.Route.extend({
|
|
||||||
});
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{{outlet}}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('../../node_modules/ember-cli-legacy-blueprints/blueprints/route/index.js');
|
|
||||||
|
|
@ -15,7 +15,7 @@ export default buildRoutes(function() {
|
||||||
|
|
||||||
this.route('catalog');
|
this.route('catalog');
|
||||||
|
|
||||||
this.route('node-drivers', { path: '/node-drivers' });
|
// this.route('node-drivers', { path: '/node-drivers' });
|
||||||
|
|
||||||
this.route('settings', function() {
|
this.route('settings', function() {
|
||||||
this.route('index', { path: '/' });
|
this.route('index', { path: '/' });
|
||||||
|
|
|
||||||
|
|
@ -8,357 +8,10 @@ import { inject as service } from '@ember/service';
|
||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
import NodeDriver from 'shared/mixins/node-driver';
|
import NodeDriver from 'shared/mixins/node-driver';
|
||||||
import layout from './template';
|
import layout from './template';
|
||||||
|
import { INSTANCE_TYPES, nameFromResource, tagsFromResource, REGIONS } from 'shared/utils/amazon';
|
||||||
|
|
||||||
let RANCHER_GROUP = 'rancher-nodes';
|
let RANCHER_GROUP = 'rancher-nodes';
|
||||||
|
|
||||||
export const INSTANCE_TYPES = [
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.nano'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.micro'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.small'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.medium'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'T2 - Burstable',
|
|
||||||
name: 't2.2xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.12xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M5 - General Purpose',
|
|
||||||
name: 'm5.24xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.10xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M4 - General Purpose',
|
|
||||||
name: 'm4.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'M3 - General Purpose',
|
|
||||||
name: 'm3.medium'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M3 - General Purpose',
|
|
||||||
name: 'm3.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M3 - General Purpose',
|
|
||||||
name: 'm3.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'M3 - General Purpose',
|
|
||||||
name: 'm3.2xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.9xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C5 - High CPU',
|
|
||||||
name: 'c5.18xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'C4 - High CPU',
|
|
||||||
name: 'c4.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C4 - High CPU',
|
|
||||||
name: 'c4.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C4 - High CPU',
|
|
||||||
name: 'c4.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C4 - High CPU',
|
|
||||||
name: 'c4.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C4 - High CPU',
|
|
||||||
name: 'c4.8xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'C3 - High CPU',
|
|
||||||
name: 'c3.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C3 - High CPU',
|
|
||||||
name: 'c3.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C3 - High CPU',
|
|
||||||
name: 'c3.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C3 - High CPU',
|
|
||||||
name: 'c3.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'C3 - High CPU',
|
|
||||||
name: 'c3.8xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.8xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R4 - High Memory',
|
|
||||||
name: 'r4.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'R3 - High Memory',
|
|
||||||
name: 'r3.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R3 - High Memory',
|
|
||||||
name: 'r3.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R3 - High Memory',
|
|
||||||
name: 'r3.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R3 - High Memory',
|
|
||||||
name: 'r3.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'R3 - High Memory',
|
|
||||||
name: 'r3.8xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'D2 - High Density Storage',
|
|
||||||
name: 'd2.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'D2 - High Density Storage',
|
|
||||||
name: 'd2.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'D2 - High Density Storage',
|
|
||||||
name: 'd2.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'D2 - High Density Storage',
|
|
||||||
name: 'd2.8xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.large'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.8xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'I3 - High I/O Storage',
|
|
||||||
name: 'i3.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'F1 - FPGA',
|
|
||||||
name: 'f1.2xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'F1 - FPGA',
|
|
||||||
name: 'f1.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'G3 - GPU',
|
|
||||||
name: 'g3.4xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'G3 - GPU',
|
|
||||||
name: 'g3.8xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'G3 - GPU',
|
|
||||||
name: 'g3.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'P2 - GPU',
|
|
||||||
name: 'p2.xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'P2 - GPU',
|
|
||||||
name: 'p2.8xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'P2 - GPU',
|
|
||||||
name: 'p2.16xlarge'
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
group: 'X1 - Really High Memory',
|
|
||||||
name: 'x1.16xlarge'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
group: 'X1 - Really High Memory',
|
|
||||||
name: 'x1.32xlarge'
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// These need to match the supported list in docker-machine:
|
|
||||||
// https://github.com/docker/machine/blob/master/drivers/amazonec2/region.go
|
|
||||||
export const REGIONS = [
|
|
||||||
'ap-northeast-1',
|
|
||||||
'ap-northeast-2',
|
|
||||||
'ap-southeast-1',
|
|
||||||
'ap-southeast-2',
|
|
||||||
'ap-south-1',
|
|
||||||
'ca-central-1',
|
|
||||||
'cn-north-1',
|
|
||||||
'cn-northwest-1',
|
|
||||||
'eu-west-1',
|
|
||||||
'eu-west-2',
|
|
||||||
'eu-west-3',
|
|
||||||
'eu-central-1',
|
|
||||||
'sa-east-1',
|
|
||||||
'us-east-1',
|
|
||||||
'us-east-2',
|
|
||||||
'us-west-1',
|
|
||||||
'us-west-2',
|
|
||||||
'us-gov-west-1',
|
|
||||||
];
|
|
||||||
|
|
||||||
export function nameFromResource(r, idField) {
|
|
||||||
let id = r[idField];
|
|
||||||
let out = id;
|
|
||||||
|
|
||||||
if ( r && r.Tags && r.Tags.length ) {
|
|
||||||
let match = r.Tags.filterBy('Key', 'Name')[0];
|
|
||||||
|
|
||||||
if ( match ) {
|
|
||||||
out = `${ match.Value } (${ id })`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function tagsFromResource(r) {
|
|
||||||
let out = [];
|
|
||||||
|
|
||||||
if ( r && r.Tags && r.Tags.length ) {
|
|
||||||
r.Tags.forEach((tag) => {
|
|
||||||
if ( tag.Key !== 'Name' ) {
|
|
||||||
out.push(`${ tag.Key }=${ tag.Value }`)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Component.extend(NodeDriver, {
|
export default Component.extend(NodeDriver, {
|
||||||
prefs: service(),
|
prefs: service(),
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import Engine from 'ember-engines/engine';
|
||||||
|
import loadInitializers from 'ember-load-initializers';
|
||||||
|
import Resolver from './resolver';
|
||||||
|
import config from './config/environment';
|
||||||
|
|
||||||
|
const { modulePrefix } = config;
|
||||||
|
|
||||||
|
const Eng = Engine.extend({
|
||||||
|
modulePrefix,
|
||||||
|
Resolver,
|
||||||
|
dependencies: {
|
||||||
|
services: [
|
||||||
|
'access',
|
||||||
|
'app',
|
||||||
|
'catalog',
|
||||||
|
'clusterStore',
|
||||||
|
'endpoint',
|
||||||
|
'azureAd',
|
||||||
|
'github',
|
||||||
|
'globalStore',
|
||||||
|
'intl',
|
||||||
|
'modal',
|
||||||
|
'resource-actions',
|
||||||
|
'router',
|
||||||
|
'scope',
|
||||||
|
'session',
|
||||||
|
'settings',
|
||||||
|
'store',
|
||||||
|
'tooltip',
|
||||||
|
'user-language',
|
||||||
|
'user-theme',
|
||||||
|
],
|
||||||
|
externalRoutes: [
|
||||||
|
'index',
|
||||||
|
'failWhale',
|
||||||
|
'authenticated',
|
||||||
|
'authenticated.cluster',
|
||||||
|
'authenticated.cluster.projects',
|
||||||
|
'authenticated.project',
|
||||||
|
'authenticated.prefs',
|
||||||
|
'authenticated.cluster.nodes',
|
||||||
|
'authenticated.cluster.nodes.node',
|
||||||
|
'authenticated.cluster.security.members.index',
|
||||||
|
'logout'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
loadInitializers(Eng, modulePrefix);
|
||||||
|
|
||||||
|
export default Eng;
|
||||||
|
|
@ -1,16 +1,9 @@
|
||||||
import { computed } from '@ember/object';
|
import { computed } from '@ember/object';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import Controller, { inject as controller } from '@ember/controller';
|
import Controller from '@ember/controller';
|
||||||
import C from 'ui/utils/constants';
|
import C from 'ui/utils/constants';
|
||||||
|
|
||||||
export default Controller.extend({
|
const HEADERS = [
|
||||||
growl: service(),
|
|
||||||
settings: service(),
|
|
||||||
globalStore: service(),
|
|
||||||
modalService: service('modal'),
|
|
||||||
|
|
||||||
application: controller(),
|
|
||||||
headers: [
|
|
||||||
{
|
{
|
||||||
name: 'state',
|
name: 'state',
|
||||||
sort: ['sortState', 'displayName'],
|
sort: ['sortState', 'displayName'],
|
||||||
|
|
@ -25,7 +18,14 @@ export default Controller.extend({
|
||||||
translationKey: 'generic.name',
|
translationKey: 'generic.name',
|
||||||
|
|
||||||
},
|
},
|
||||||
],
|
];
|
||||||
|
|
||||||
|
export default Controller.extend({
|
||||||
|
growl: service(),
|
||||||
|
settings: service(),
|
||||||
|
globalStore: service(),
|
||||||
|
modalService: service('modal'),
|
||||||
|
headers: HEADERS,
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
addNewDriver() {
|
addNewDriver() {
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
import { inject as service } from '@ember/service';
|
||||||
|
import Controller from '@ember/controller';
|
||||||
|
import { get } from '@ember/object';
|
||||||
|
|
||||||
|
const HEADERS = [
|
||||||
|
{
|
||||||
|
name: 'state',
|
||||||
|
sort: ['sortState', 'name', 'id'],
|
||||||
|
translationKey: 'nodeTemplatesPage.table.state',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
sort: ['name', 'id'],
|
||||||
|
translationKey: 'nodeTemplatesPage.table.name',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'provider',
|
||||||
|
sort: ['displayProvider', 'name', 'id'],
|
||||||
|
translationKey: 'nodeTemplatesPage.table.provider',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'location',
|
||||||
|
sort: ['displayLocation', 'name', 'id'],
|
||||||
|
translationKey: 'nodeTemplatesPage.table.location',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'size',
|
||||||
|
sort: ['displaySize', 'name', 'id'],
|
||||||
|
translationKey: 'nodeTemplatesPage.table.size',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default Controller.extend({
|
||||||
|
modalService: service('modal'),
|
||||||
|
sortBy: 'name',
|
||||||
|
headers: HEADERS,
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
newTemplate() {
|
||||||
|
get(this, 'modalService').toggleModal('modal-edit-node-template');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
import { hash } from 'rsvp';
|
||||||
|
import Route from '@ember/routing/route';
|
||||||
|
import { inject as service } from '@ember/service';
|
||||||
|
import { get } from '@ember/object';
|
||||||
|
|
||||||
|
export default Route.extend({
|
||||||
|
globalStore: service(),
|
||||||
|
|
||||||
|
model() {
|
||||||
|
return hash({ nodeTemplates: get(this, 'globalStore').findAll('nodeTemplate') });
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
import Resolver from 'ember-resolver';
|
||||||
|
|
||||||
|
export default Resolver;
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
import buildRoutes from 'ember-engines/routes';
|
||||||
|
|
||||||
|
export default buildRoutes(function() {
|
||||||
|
// Define your engine's route map here
|
||||||
|
this.route('node-drivers', { path: '/node-drivers' });
|
||||||
|
this.route('node-templates');
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{{outlet}}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/modal-edit-node-template/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-aliyunecs/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-amazonec2/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-azure/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-digitalocean/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-exoscale/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-other/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-packet/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-rackspace/component';
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'nodes/components/node-driver/driver-vmwarevsphere/component';
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/* eslint-env node */
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = function(environment) {
|
||||||
|
let ENV = {
|
||||||
|
modulePrefix: 'nodes',
|
||||||
|
environment
|
||||||
|
};
|
||||||
|
|
||||||
|
return ENV;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
/* eslint-env node */
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const EngineAddon = require('ember-engines/lib/engine-addon');
|
||||||
|
|
||||||
|
module.exports = EngineAddon.extend({
|
||||||
|
name: 'nodes',
|
||||||
|
|
||||||
|
lazyLoading: {
|
||||||
|
enabled: false
|
||||||
|
},
|
||||||
|
|
||||||
|
isDevelopingAddon() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"name": "nodes",
|
||||||
|
"keywords": [
|
||||||
|
"ember-addon",
|
||||||
|
"ember-engine"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"async": "*",
|
||||||
|
"jgrowl": "*",
|
||||||
|
"momentjs": "*",
|
||||||
|
"card": "*",
|
||||||
|
"d3": "*",
|
||||||
|
"ember-basic-dropdown": "*",
|
||||||
|
"ember-math-helpers": "*",
|
||||||
|
"ember-truth-helpers": "*",
|
||||||
|
"ember-cli-htmlbars": "*",
|
||||||
|
"ember-cli-babel": "*",
|
||||||
|
"ember-cli-clipboard": "*",
|
||||||
|
"ember-href-to": "*",
|
||||||
|
"ember-concurrency": "*",
|
||||||
|
"marked": "*"
|
||||||
|
},
|
||||||
|
"ember-addon": {
|
||||||
|
"paths": [
|
||||||
|
"../shared"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import ClusterDriver from 'shared/mixins/cluster-driver';
|
import ClusterDriver from 'shared/mixins/cluster-driver';
|
||||||
import Component from '@ember/component'
|
import Component from '@ember/component'
|
||||||
import layout from './template';
|
import layout from './template';
|
||||||
import { INSTANCE_TYPES, nameFromResource, tagsFromResource } from 'shared/components/node-driver/driver-amazonec2/component';
|
import { INSTANCE_TYPES, nameFromResource, tagsFromResource } from 'shared/utils/amazon';
|
||||||
import {
|
import {
|
||||||
get, set, setProperties, computed, observer
|
get, set, setProperties, computed, observer
|
||||||
} from '@ember/object';
|
} from '@ember/object';
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,356 @@
|
||||||
|
export const INSTANCE_TYPES = [
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.nano'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.micro'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.small'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.medium'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'T2 - Burstable',
|
||||||
|
name: 't2.2xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.12xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M5 - General Purpose',
|
||||||
|
name: 'm5.24xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.10xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M4 - General Purpose',
|
||||||
|
name: 'm4.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'M3 - General Purpose',
|
||||||
|
name: 'm3.medium'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M3 - General Purpose',
|
||||||
|
name: 'm3.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M3 - General Purpose',
|
||||||
|
name: 'm3.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'M3 - General Purpose',
|
||||||
|
name: 'm3.2xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.9xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C5 - High CPU',
|
||||||
|
name: 'c5.18xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'C4 - High CPU',
|
||||||
|
name: 'c4.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C4 - High CPU',
|
||||||
|
name: 'c4.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C4 - High CPU',
|
||||||
|
name: 'c4.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C4 - High CPU',
|
||||||
|
name: 'c4.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C4 - High CPU',
|
||||||
|
name: 'c4.8xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'C3 - High CPU',
|
||||||
|
name: 'c3.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C3 - High CPU',
|
||||||
|
name: 'c3.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C3 - High CPU',
|
||||||
|
name: 'c3.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C3 - High CPU',
|
||||||
|
name: 'c3.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'C3 - High CPU',
|
||||||
|
name: 'c3.8xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.8xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R4 - High Memory',
|
||||||
|
name: 'r4.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'R3 - High Memory',
|
||||||
|
name: 'r3.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R3 - High Memory',
|
||||||
|
name: 'r3.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R3 - High Memory',
|
||||||
|
name: 'r3.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R3 - High Memory',
|
||||||
|
name: 'r3.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'R3 - High Memory',
|
||||||
|
name: 'r3.8xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'D2 - High Density Storage',
|
||||||
|
name: 'd2.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'D2 - High Density Storage',
|
||||||
|
name: 'd2.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'D2 - High Density Storage',
|
||||||
|
name: 'd2.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'D2 - High Density Storage',
|
||||||
|
name: 'd2.8xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.large'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.8xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'I3 - High I/O Storage',
|
||||||
|
name: 'i3.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'F1 - FPGA',
|
||||||
|
name: 'f1.2xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'F1 - FPGA',
|
||||||
|
name: 'f1.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'G3 - GPU',
|
||||||
|
name: 'g3.4xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'G3 - GPU',
|
||||||
|
name: 'g3.8xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'G3 - GPU',
|
||||||
|
name: 'g3.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'P2 - GPU',
|
||||||
|
name: 'p2.xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'P2 - GPU',
|
||||||
|
name: 'p2.8xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'P2 - GPU',
|
||||||
|
name: 'p2.16xlarge'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
group: 'X1 - Really High Memory',
|
||||||
|
name: 'x1.16xlarge'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
group: 'X1 - Really High Memory',
|
||||||
|
name: 'x1.32xlarge'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
// These need to match the supported list in docker-machine:
|
||||||
|
// https://github.com/docker/machine/blob/master/drivers/amazonec2/region.go
|
||||||
|
export const REGIONS = [
|
||||||
|
'ap-northeast-1',
|
||||||
|
'ap-northeast-2',
|
||||||
|
'ap-southeast-1',
|
||||||
|
'ap-southeast-2',
|
||||||
|
'ap-south-1',
|
||||||
|
'ca-central-1',
|
||||||
|
'cn-north-1',
|
||||||
|
'cn-northwest-1',
|
||||||
|
'eu-west-1',
|
||||||
|
'eu-west-2',
|
||||||
|
'eu-west-3',
|
||||||
|
'eu-central-1',
|
||||||
|
'sa-east-1',
|
||||||
|
'us-east-1',
|
||||||
|
'us-east-2',
|
||||||
|
'us-west-1',
|
||||||
|
'us-west-2',
|
||||||
|
'us-gov-west-1',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
export const nameFromResource = function(r, idField) {
|
||||||
|
let id = r[idField];
|
||||||
|
let out = id;
|
||||||
|
|
||||||
|
if ( r && r.Tags && r.Tags.length ) {
|
||||||
|
let match = r.Tags.filterBy('Key', 'Name')[0];
|
||||||
|
|
||||||
|
if ( match ) {
|
||||||
|
out = `${ match.Value } (${ id })`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const tagsFromResource = function(r) {
|
||||||
|
let out = [];
|
||||||
|
|
||||||
|
if ( r && r.Tags && r.Tags.length ) {
|
||||||
|
r.Tags.forEach((tag) => {
|
||||||
|
if ( tag.Key !== 'Name' ) {
|
||||||
|
out.push(`${ tag.Key }=${ tag.Value }`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
instanceTypes: INSTANCE_TYPES,
|
||||||
|
nameFromResource,
|
||||||
|
tagsFromResource,
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export { default } from 'shared/amazon/util';
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/modal-edit-node-template/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-aliyunecs/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-amazonec2/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-azure/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-digitalocean/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-exoscale/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-other/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-packet/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-rackspace/component';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export { default } from 'shared/components/node-driver/driver-vmwarevsphere/component';
|
|
||||||
11
package.json
11
package.json
|
|
@ -105,12 +105,13 @@
|
||||||
},
|
},
|
||||||
"ember-addon": {
|
"ember-addon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
"lib/global-admin",
|
|
||||||
"lib/login",
|
|
||||||
"lib/shared",
|
|
||||||
"lib/logging",
|
|
||||||
"lib/alert",
|
"lib/alert",
|
||||||
"lib/pipeline"
|
"lib/global-admin",
|
||||||
|
"lib/logging",
|
||||||
|
"lib/login",
|
||||||
|
"lib/nodes",
|
||||||
|
"lib/pipeline",
|
||||||
|
"lib/shared"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue