diff --git a/app/extensions/storidge/rest/cluster.js b/app/extensions/storidge/rest/cluster.js index 98b4fc429..022f8620a 100644 --- a/app/extensions/storidge/rest/cluster.js +++ b/app/extensions/storidge/rest/cluster.js @@ -40,5 +40,13 @@ angular.module('extension.storidge') }); }; + service.shutdown = function() { + return $http({ + method: 'POST', + url: StoridgeManager.StoridgeAPIURL() + '/cluster/shutdown', + skipAuthorization: true + }); + }; + return service; }]); diff --git a/app/extensions/storidge/services/clusterService.js b/app/extensions/storidge/services/clusterService.js index 41cc9a34c..ec1aaec93 100644 --- a/app/extensions/storidge/services/clusterService.js +++ b/app/extensions/storidge/services/clusterService.js @@ -7,6 +7,10 @@ angular.module('extension.storidge') return StoridgeCluster.reboot(); }; + service.shutdown = function() { + return StoridgeCluster.shutdown(); + }; + service.info = function() { var deferred = $q.defer(); diff --git a/app/extensions/storidge/views/cluster/cluster.html b/app/extensions/storidge/views/cluster/cluster.html index 9dfae86a9..da715f485 100644 --- a/app/extensions/storidge/views/cluster/cluster.html +++ b/app/extensions/storidge/views/cluster/cluster.html @@ -37,12 +37,12 @@
diff --git a/app/extensions/storidge/views/cluster/clusterController.js b/app/extensions/storidge/views/cluster/clusterController.js index 371abc8c4..b1d7fbbfa 100644 --- a/app/extensions/storidge/views/cluster/clusterController.js +++ b/app/extensions/storidge/views/cluster/clusterController.js @@ -42,8 +42,18 @@ function ($q, $scope, $state, Notifications, StoridgeClusterService, StoridgeNod }; function shutdownCluster() { - Notifications.error('Not implemented', {}, 'Not implemented yet'); - $state.reload(); + $scope.state.shutdownInProgress = true; + StoridgeClusterService.shutdown() + .then(function success(data) { + Notifications.success('Cluster successfully shutdown'); + $state.go('dashboard'); + }) + .catch(function error(err) { + Notifications.error('Failure', err, 'Unable to shutdown cluster'); + }) + .finally(function final() { + $scope.state.shutdownInProgress = false; + }); } function rebootCluster() {