mirror of https://github.com/rancher/ui.git
45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
import { reject } from 'rsvp';
|
|
import { computed } from '@ember/object';
|
|
import Service, { inject as service } from '@ember/service';
|
|
import C from 'shared/utils/constants';
|
|
|
|
export default Service.extend({
|
|
store: service('store'),
|
|
globalStore: service(),
|
|
scope: service(),
|
|
app: service(),
|
|
|
|
kubernetesDashboard: computed('app.{clusterToken,kubernetesDashboard,projectToken}', 'scope.currentCluster.id', 'scope.currentProject.id', function() {
|
|
let url = this.get('app.kubernetesDashboard')
|
|
.replace(this.get('app.projectToken'), this.get('scope.currentProject.id'))
|
|
.replace(this.get('app.clusterToken'), this.get('scope.currentCluster.id'));
|
|
|
|
url += '#!/overview';
|
|
|
|
return url;
|
|
}),
|
|
|
|
getInstanceToConnect() {
|
|
let systemProject = this.get('scope.currentProject.cluster.systemProject');
|
|
let inst;
|
|
|
|
if ( !systemProject ) {
|
|
return reject('Unable to locate system environment');
|
|
}
|
|
|
|
return this.get('globalStore').rawRequest({ url: systemProject.links.instances, }).then((res) => {
|
|
inst = res.body.data.find((c) => {
|
|
return c.state === 'running'
|
|
&& c.labels
|
|
&& `${ c.labels[C.LABEL.K8S_KUBECTL] }` === 'true';
|
|
});
|
|
|
|
if ( inst ) {
|
|
return this.get('store').createRecord(inst);
|
|
} else {
|
|
return reject('Unable to find running kubectl container');
|
|
}
|
|
});
|
|
},
|
|
});
|