Skip to content

Commit

Permalink
gh-21 Added resource deletion to all resources closes #21
Browse files Browse the repository at this point in the history
    - Moved common stuff to a mixin
  • Loading branch information
holandes22 committed Feb 23, 2016
1 parent 4a6977b commit 89aed15
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 27 deletions.
8 changes: 8 additions & 0 deletions app/mirage/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ export default function() {
return db.services.insert(manifest);
});

this.del('/namespaces/:namespace/services/:name', function(db, request) {
return db.services.remove(request.params.name);
});

this.get('/namespaces/:namespace/services/:name', function(db, request) {
return db.services.find(request.params.name);
});
Expand Down Expand Up @@ -137,6 +141,10 @@ export default function() {
this.put('/namespaces/:namespace/replicationcontrollers/:name', function(db, request) {
return JSON.parse(request.requestBody);
});

this.del('/namespaces/:namespace/replicationcontrollers/:name', function(db, request) {
return db.replicationcontrollers.remove(request.params.name);
});
}

/*
Expand Down
30 changes: 30 additions & 0 deletions app/mixins/resource-delete-action.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import Ember from 'ember';

export default Ember.Mixin.create({

session: Ember.inject.service(),

actions: {
del(manifest) {
let flashMessages = this.get('flashMessages');
flashMessages.clearMessages();
this.get('kubeClient').deleteRecord(manifest).then(() => {
let kind = manifest.kind;
this.get(`session.pendingRemoval.${kind.toLowerCase()}`).push(manifest.metadata.name);
let message = `Successfully sent request to delete ${manifest.kind} ${manifest.metadata.name}`;
flashMessages.positive(message);
this.transitionTo(Ember.Inflector.inflector.pluralize(kind).dasherize());
}).catch((error) => {
window.console.error(error);
let message = null;
if (error.errors) {
message = error.errors[0].detail;
} else {
message = error.message;
}
flashMessages.negative(message, { sticky: true });
});
}
}

});
9 changes: 8 additions & 1 deletion app/mixins/resource-list-route.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,14 @@ export default Ember.Mixin.create({
flashMessages.positive('Successfully created');
this.refresh();
}).catch((error) => {
flashMessages.negative(error.errors[0].detail, { timeout: 10000 });
window.console.error(error);
let message = null;
if (error.errors) {
message = error.errors[0].detail;
} else {
message = error.message;
}
flashMessages.negative(message, { sticky: true });
});
}
}
Expand Down
21 changes: 3 additions & 18 deletions app/pod/route.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,12 @@
import Ember from 'ember';
import ResourceDeleteAction from 'kube-admin/mixins/resource-delete-action';

export default Ember.Route.extend({
session: Ember.inject.service(),
export default Ember.Route.extend(ResourceDeleteAction, {

kubeClient: Ember.inject.service(),

model(params) {
return this.get('kubeClient').findRecord('pod', params.namespace, params.name);
},

actions: {
del(manifest) {
let flashMessages = this.get('flashMessages');
flashMessages.clearMessages();
this.get('kubeClient').deleteRecord(manifest).then(() => {
let kind = manifest.kind.toLowerCase();
this.get(`session.pendingRemoval.${kind}`).push(manifest.metadata.name);
let message = `Successfully sent request to delete ${manifest.kind} ${manifest.metadata.name}`;
flashMessages.positive(message);
this.transitionTo('pods');
}).catch((error) => {
flashMessages.negative(error.errors[0].detail, { timeout: 10000 });
});
}
}

});
12 changes: 10 additions & 2 deletions app/replication-controller/route.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Ember from 'ember';
import ResourceDeleteAction from 'kube-admin/mixins/resource-delete-action';

export default Ember.Route.extend({
export default Ember.Route.extend(ResourceDeleteAction, {
kubeClient: Ember.inject.service(),

model(params) {
Expand All @@ -20,7 +21,14 @@ export default Ember.Route.extend({
flashMessages.info(message, { timeout: 5000 });
this.refresh();
}).catch((error) => {
flashMessages.negative(error.errors[0].detail, { sticky: true });
window.console.error(error);
let message = null;
if (error.errors) {
message = error.errors[0].detail;
} else {
message = error.message;
}
flashMessages.negative(message, { sticky: true });
});
}
}
Expand Down
7 changes: 4 additions & 3 deletions app/replication-controller/template.hbs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{{#resource-details
model=model
keys='status.observedGeneration'
spec=model.spec.template.spec}}
model=model
keys='status.observedGeneration'
spec=model.spec.template.spec
del=(route-action "del")}}
<tr>
<td>Replicas (Spec)</td>
<td data-id="rc-scale">
Expand Down
5 changes: 4 additions & 1 deletion app/service/route.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import Ember from 'ember';
import ResourceDeleteAction from 'kube-admin/mixins/resource-delete-action';

export default Ember.Route.extend(ResourceDeleteAction, {

export default Ember.Route.extend({
kubeClient: Ember.inject.service(),

model(params) {
return this.get('kubeClient').findRecord('service', params.namespace, params.name);
}

});
5 changes: 4 additions & 1 deletion app/service/template.hbs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{{resource-details model=model keys='spec.clusterIP,spec.sessionAffinity'}}
{{resource-details
model=model
keys='spec.clusterIP,spec.sessionAffinity'
del=(route-action "del")}}

{{#if model.spec.ports}}
<h4 class="ui horizontal divider header"><i class="sitemap icon"></i>Ports</h4>
Expand Down
2 changes: 1 addition & 1 deletion app/session/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default Ember.Service.extend({

filters: {},

pendingRemoval: { pod: [] },
pendingRemoval: { pod: [], replicationcontroller: [], service: [] },

init() {
this._super(...arguments);
Expand Down

0 comments on commit 89aed15

Please # to comment.