hooks up cache group server update queue/dequeue
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/4f058cb9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/4f058cb9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/4f058cb9 Branch: refs/heads/master Commit: 4f058cb92d32c0c18fba5fdcb0d7b156c9d7de10 Parents: a06c203 Author: Jeremy Mitchell <mitchell...@gmail.com> Authored: Thu Feb 16 20:09:23 2017 -0700 Committer: Dewayne Richardson <dewr...@apache.org> Committed: Fri Feb 17 08:33:17 2017 -0700 ---------------------------------------------------------------------- .../ui/app/src/common/api/CacheGroupService.js | 25 +++++++ .../form/cacheGroup/FormCacheGroupController.js | 8 --- .../edit/FormEditCacheGroupController.js | 66 +++++++++++++++-- .../form/cacheGroup/form.cacheGroup.tpl.html | 6 +- .../TableCacheGroupServersController.js | 76 +++++++++++++++++--- .../table.cacheGroupServers.tpl.html | 8 +-- .../cacheGroups/table.cacheGroups.tpl.html | 4 +- 7 files changed, 164 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js b/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js index 5f5f725..5f996e7 100644 --- a/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js +++ b/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js @@ -64,6 +64,31 @@ var CacheGroupService = function(Restangular, locationUtils, messageModel) { ); }; + this.queueServerUpdates = function(cgId, cdnId) { + return Restangular.one("cachegroups", cgId).customPOST( { action: "queue", cdnId: cdnId }, "queue_update" ) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Queued cache group server updates' } ], false); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; + + this.clearServerUpdates = function(cgId, cdnId) { + return Restangular.one("cachegroups", cgId).customPOST( { action: "dequeue", cdnId: cdnId}, "queue_update" ) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Cleared cache group server updates' } ], false); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; + + }; CacheGroupService.$inject = ['Restangular', 'locationUtils', 'messageModel']; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js index ff377eb..5eb334d 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js @@ -35,14 +35,6 @@ var FormCacheGroupController = function(cacheGroup, $scope, $location, formUtils $scope.cacheGroup = cacheGroup; - $scope.queueUpdates = function() { - alert('not hooked up yet: queuing updates for all cachegroup servers'); - }; - - $scope.dequeueUpdates = function() { - alert('not hooked up yet: dequeuing updates for all cachegroup servers'); - }; - $scope.viewAsns = function() { $location.path($location.path() + '/asns'); }; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js index 4f4e707..aab9dfc 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js @@ -22,6 +22,13 @@ var FormEditCacheGroupController = function(cacheGroup, $scope, $controller, $ui // extends the FormCacheGroupController to inherit common methods angular.extend(this, $controller('FormCacheGroupController', { cacheGroup: cacheGroup, $scope: $scope })); + $scope.cacheGroupName = angular.copy(cacheGroup.name); + + $scope.settings = { + isNew: false, + saveLabel: 'Update' + }; + var deleteCacheGroup = function(cacheGroup) { cacheGroupService.deleteCacheGroup(cacheGroup.id) .then(function() { @@ -29,11 +36,12 @@ var FormEditCacheGroupController = function(cacheGroup, $scope, $controller, $ui }); }; - $scope.cacheGroupName = angular.copy(cacheGroup.name); + var queueServerUpdates = function(cacheGroup, cdnId) { + cacheGroupService.queueServerUpdates(cacheGroup.id, cdnId); + }; - $scope.settings = { - isNew: false, - saveLabel: 'Update' + var clearServerUpdates = function(cacheGroup, cdnId) { + cacheGroupService.clearServerUpdates(cacheGroup.id, cdnId); }; $scope.save = function(cacheGroup) { @@ -66,6 +74,56 @@ var FormEditCacheGroupController = function(cacheGroup, $scope, $controller, $ui }); }; + $scope.confirmQueueServerUpdates = function(cacheGroup) { + var params = { + title: 'Queue Server Updates: ' + cacheGroup.name, + message: "Please select a CDN" + }; + var modalInstance = $uibModal.open({ + templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html', + controller: 'DialogSelectController', + size: 'md', + resolve: { + params: function () { + return params; + }, + collection: function(cdnService) { + return cdnService.getCDNs(); + } + } + }); + modalInstance.result.then(function(cdnId) { + queueServerUpdates(cacheGroup, cdnId); + }, function () { + // do nothing + }); + }; + + $scope.confirmClearServerUpdates = function(cacheGroup) { + var params = { + title: 'Clear Server Updates: ' + cacheGroup.name, + message: "Please select a CDN" + }; + var modalInstance = $uibModal.open({ + templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html', + controller: 'DialogSelectController', + size: 'md', + resolve: { + params: function () { + return params; + }, + collection: function(cdnService) { + return cdnService.getCDNs(); + } + } + }); + modalInstance.result.then(function(cdnId) { + clearServerUpdates(cacheGroup, cdnId); + }, function () { + // do nothing + }); + }; + }; FormEditCacheGroupController.$inject = ['cacheGroup', '$scope', '$controller', '$uibModal', '$anchorScroll', 'locationUtils', 'cacheGroupService']; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html index 7338fa1..5275808 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html @@ -24,9 +24,8 @@ under the License. <li class="active">{{cacheGroupName}}</li> </ol> <div class="pull-right" ng-show="!settings.isNew"> - <button class="btn btn-success" ng-click="queueUpdates()">Queue Server Updates <i class="fa fa-flag"></i></button> - <button class="btn btn-danger" ng-click="dequeueUpdates()">Dequeue Server Updates <i class="fa fa-times"></i></button> - <button class="btn btn-primary" ng-click="viewServers()">View Servers <i class="fa fa-server"></i></button> + <button class="btn btn-primary" title="Queue {{cacheGroup.name}} server updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa fa-flag"></i></button> + <button class="btn btn-primary" title="Clear {{cacheGroup.name}} server updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa fa-ban"></i></button> <div class="btn-group" role="group" uib-dropdown is-open="more.isopen"> <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false"> More @@ -35,6 +34,7 @@ under the License. <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu> <li role="menuitem"><a ng-click="viewAsns()">View ASNs</a></li> <li role="menuitem"><a ng-click="viewParams()">View Parameters</a></li> + <li role="menuitem"><a ng-click="viewServers()">View Servers</a></li> <li role="menuitem"><a ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li> </ul> </div> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js index 3883d30..18740a3 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js @@ -17,28 +17,88 @@ * under the License. */ -var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, $state, locationUtils) { +var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, $state, $uibModal, cacheGroupService, locationUtils) { $scope.cacheGroup = cacheGroup; $scope.servers = servers; - $scope.editServer = function(id) { - locationUtils.navigateToPath('/configure/servers/' + id); + var queueServerUpdates = function(cacheGroup, cdnId) { + cacheGroupService.queueServerUpdates(cacheGroup.id, cdnId) + .then( + function() { + $scope.refresh(); + } + ); }; - $scope.queueUpdates = function() { - alert('not hooked up yet: queuing updates for all cachegroup servers'); + var clearServerUpdates = function(cacheGroup, cdnId) { + cacheGroupService.clearServerUpdates(cacheGroup.id, cdnId) + .then( + function() { + $scope.refresh(); + } + ); }; - $scope.dequeueUpdates = function() { - alert('not hooked up yet: dequeuing updates for all cachegroup servers'); + $scope.editServer = function(id) { + locationUtils.navigateToPath('/configure/servers/' + id); }; $scope.refresh = function() { $state.reload(); // reloads all the resolves for the view }; + $scope.confirmQueueServerUpdates = function(cacheGroup) { + var params = { + title: 'Queue Server Updates: ' + cacheGroup.name, + message: "Please select a CDN" + }; + var modalInstance = $uibModal.open({ + templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html', + controller: 'DialogSelectController', + size: 'md', + resolve: { + params: function () { + return params; + }, + collection: function(cdnService) { + return cdnService.getCDNs(); + } + } + }); + modalInstance.result.then(function(cdnId) { + queueServerUpdates(cacheGroup, cdnId); + }, function () { + // do nothing + }); + }; + + $scope.confirmClearServerUpdates = function(cacheGroup) { + var params = { + title: 'Clear Server Updates: ' + cacheGroup.name, + message: "Please select a CDN" + }; + var modalInstance = $uibModal.open({ + templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html', + controller: 'DialogSelectController', + size: 'md', + resolve: { + params: function () { + return params; + }, + collection: function(cdnService) { + return cdnService.getCDNs(); + } + } + }); + modalInstance.result.then(function(cdnId) { + clearServerUpdates(cacheGroup, cdnId); + }, function () { + // do nothing + }); + }; + $scope.navigateToPath = locationUtils.navigateToPath; angular.element(document).ready(function () { @@ -50,5 +110,5 @@ var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, $s }; -TableCacheGroupsServersController.$inject = ['cacheGroup', 'servers', '$scope', '$state', 'locationUtils']; +TableCacheGroupsServersController.$inject = ['cacheGroup', 'servers', '$scope', '$state', '$uibModal', 'cacheGroupService', 'locationUtils']; module.exports = TableCacheGroupsServersController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html index 9085987..004ab39 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html @@ -25,9 +25,9 @@ under the License. <li class="active">Servers</li> </ol> <div class="pull-right"> + <button class="btn btn-primary" title="Queue {{cacheGroup.name}} server updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa fa-flag"></i></button> + <button class="btn btn-primary" title="Clear {{cacheGroup.name}} server updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa fa-ban"></i></button> <button class="btn btn-default" ng-click="refresh()"><i class="fa fa-refresh"></i></button> - <button class="btn btn-success" ng-click="queueUpdates()">Queue Server Updates <i class="fa fa-flag"></i></button> - <button class="btn btn-danger" ng-click="dequeueUpdates()">Dequeue Server Updates <i class="fa fa-times"></i></button> </div> <div class="clearfix"></div> </div> @@ -36,7 +36,7 @@ under the License. <table id="serversTable" class="table responsive-utilities jambo_table"> <thead> <tr class="headings"> - <th>Update?</th> + <th></th> <th>hostName</th> <th>domainName</th> <th>cdn</th> @@ -53,7 +53,7 @@ under the License. </thead> <tbody> <tr ng-click="editServer(server.id)" ng-repeat="server in servers" ng-class="{'active': server.updPending}"> - <td>{{server.updPending}}</td> + <td><i class="fa fa-flag" ng-show="server.updPending"></i></td> <td>{{server.hostName}}</td> <td>{{server.domainName}}</td> <td>{{server.cdnName}}</td> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html index 44ee253..327c505 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html @@ -23,8 +23,8 @@ under the License. <li class="active">Cache Groups</li> </ol> <div class="pull-right" role="group" ng-show="!settings.isNew"> - <button class="btn btn-default" ng-click="refresh()"><i class="fa fa-refresh"></i></button> - <button class="btn btn-primary" ng-click="createCacheGroup()"><i class="fa fa-plus"></i> Create Cache Group</button> + <button class="btn btn-primary" title="Create Cache Group" ng-click="createCacheGroup()"><i class="fa fa-plus"></i></button> + <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button> </div> <div class="clearfix"></div> </div>