/
serviceInstance.js
97 lines (84 loc) · 3.08 KB
/
serviceInstance.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
'use strict';
angular.module('openshiftConsole')
.controller('ServiceInstanceController', function ($scope,
$filter,
$routeParams,
DataService,
ProjectsService,
ServiceInstancesService) {
$scope.alerts = {};
$scope.projectName = $routeParams.project;
$scope.serviceInstance = null;
$scope.serviceClass = null;
$scope.breadcrumbs = [
{
title: "Provisioned Services",
link: "project/" + $routeParams.project + "/browse/service-instances"
}
];
$scope.deprovision = function() {
ServiceInstancesService.deprovision($scope.serviceInstance);
};
var watches = [];
var updateBreadcrumbs = function() {
$scope.breadcrumbs.push({
title: $scope.displayName
});
};
var serviceResolved = function(service, action) {
$scope.loaded = true;
$scope.serviceInstance = service;
if (action === "DELETED") {
$scope.alerts["deleted"] = {
type: "warning",
message: "This provisioned service has been deleted."
};
}
var planName = service.spec.planName;
if (!$scope.plan || $scope.plan.metadata.name !== planName) {
$scope.plan = null;
DataService.get({
group: 'servicecatalog.k8s.io',
resource: 'serviceplans'
}, planName, {}).then(function(servicePlan) {
$scope.plan = servicePlan;
});
}
};
ProjectsService
.get($routeParams.project)
.then(_.spread(function(project, context) {
$scope.project = project;
$scope.projectContext = context;
DataService
.get({
group: 'servicecatalog.k8s.io',
resource: 'serviceinstances'
}, $routeParams.instance, context, { errorNotification: false })
.then(function(service) {
serviceResolved(service);
DataService.get({
group: 'servicecatalog.k8s.io',
resource: 'serviceclasses'
}, service.spec.serviceClassName, {}).then(function(serviceClass) {
$scope.serviceClass = serviceClass;
$scope.displayName = $filter('serviceClassDisplayName')(serviceClass) || service.metadata.name;
updateBreadcrumbs();
});
watches.push(DataService.watchObject({
group: 'servicecatalog.k8s.io',
resource: 'serviceinstances'
}, $routeParams.instance, context, serviceResolved));
}, function(error) {
$scope.loaded = true;
$scope.alerts["load"] = {
type: "error",
message: "The service details could not be loaded.",
details: $filter('getErrorDetails')(error)
};
});
$scope.$on('$destroy', function(){
DataService.unwatchAll(watches);
});
}));
});