hooks up queue/dequeue single server updates
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/9aeb10ac Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/9aeb10ac Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/9aeb10ac Branch: refs/heads/master Commit: 9aeb10ac0f3853662730ddac892b141efacdcb84 Parents: 52511d0 Author: Jeremy Mitchell <mitchell...@gmail.com> Authored: Thu Feb 16 20:52:16 2017 -0700 Committer: Dewayne Richardson <dewr...@apache.org> Committed: Fri Feb 17 08:33:17 2017 -0700 ---------------------------------------------------------------------- .../ui/app/src/common/api/CDNService.js | 2 +- .../ui/app/src/common/api/CacheGroupService.js | 2 +- .../ui/app/src/common/api/ServerService.js | 23 +++++++++++++++++ .../modules/form/server/FormServerController.js | 27 ++++++++++++++++++-- .../modules/form/server/form.server.tpl.html | 5 ++-- .../table/servers/table.servers.tpl.html | 6 ++--- 6 files changed, 55 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/traffic_ops/experimental/ui/app/src/common/api/CDNService.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/api/CDNService.js b/traffic_ops/experimental/ui/app/src/common/api/CDNService.js index d3f562d..2616c80 100644 --- a/traffic_ops/experimental/ui/app/src/common/api/CDNService.js +++ b/traffic_ops/experimental/ui/app/src/common/api/CDNService.js @@ -80,7 +80,7 @@ var CDNService = function(Restangular, locationUtils, messageModel) { return Restangular.one("cdns", id).customPOST( { action: "dequeue"}, "queue_update" ) .then( function() { - messageModel.setMessages([ { level: 'success', text: 'Cleared CDN server updates' } ], false); + messageModel.setMessages([ { level: 'success', text: 'Cancelled CDN server updates' } ], false); }, function(fault) { messageModel.setMessages(fault.data.alerts, false); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/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 5f996e7..2f30df0 100644 --- a/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js +++ b/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js @@ -80,7 +80,7 @@ var CacheGroupService = function(Restangular, locationUtils, messageModel) { 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); + messageModel.setMessages([ { level: 'success', text: 'Cancelled cache group server updates' } ], false); }, function(fault) { messageModel.setMessages(fault.data.alerts, false); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/traffic_ops/experimental/ui/app/src/common/api/ServerService.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/api/ServerService.js b/traffic_ops/experimental/ui/app/src/common/api/ServerService.js index c661e80..e130376 100644 --- a/traffic_ops/experimental/ui/app/src/common/api/ServerService.js +++ b/traffic_ops/experimental/ui/app/src/common/api/ServerService.js @@ -68,6 +68,29 @@ var ServerService = function(Restangular, locationUtils, messageModel) { return Restangular.one('deliveryservices', dsId).getList('servers'); }; + this.queueServerUpdates = function(id) { + return Restangular.one("servers", id).customPOST( { action: "queue"}, "queue_update" ) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Queued server updates' } ], false); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; + + this.clearServerUpdates = function(id) { + return Restangular.one("servers", id).customPOST( { action: "dequeue"}, "queue_update" ) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Cancelled server updates' } ], false); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; }; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/traffic_ops/experimental/ui/app/src/common/modules/form/server/FormServerController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/server/FormServerController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/server/FormServerController.js index f35759e..49af665 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/server/FormServerController.js +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/server/FormServerController.js @@ -17,7 +17,7 @@ * under the License. */ -var FormServerController = function(server, $scope, $location, formUtils, stringUtils, locationUtils, cacheGroupService, cdnService, physLocationService, profileService, statusService, typeService) { +var FormServerController = function(server, $scope, $location, $state, formUtils, stringUtils, locationUtils, serverService, cacheGroupService, cdnService, physLocationService, profileService, statusService, typeService) { var getPhysLocations = function() { physLocationService.getPhysLocations() @@ -61,6 +61,11 @@ var FormServerController = function(server, $scope, $location, formUtils, string }); }; + var refresh = function() { + $state.reload(); // reloads all the resolves for the view + }; + + // supposedly matches IPv4 and IPv6 formats. but actually need one that matches each. todo. var ipRegex = new RegExp(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){ 3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/); @@ -101,6 +106,24 @@ var FormServerController = function(server, $scope, $location, formUtils, string { value: true, label: 'true' } ]; + $scope.queueServerUpdates = function(server) { + serverService.queueServerUpdates(server.id) + .then( + function() { + refresh(); + } + ); + }; + + $scope.clearServerUpdates = function(server) { + serverService.clearServerUpdates(server.id) + .then( + function() { + refresh(); + } + ); + }; + $scope.queueUpdates = function() { alert('not hooked up yet: queuing updates for server'); }; @@ -143,5 +166,5 @@ var FormServerController = function(server, $scope, $location, formUtils, string }; -FormServerController.$inject = ['server', '$scope', '$location', 'formUtils', 'stringUtils', 'locationUtils', 'cacheGroupService', 'cdnService', 'physLocationService', 'profileService', 'statusService', 'typeService']; +FormServerController.$inject = ['server', '$scope', '$location', '$state', 'formUtils', 'stringUtils', 'locationUtils', 'serverService', 'cacheGroupService', 'cdnService', 'physLocationService', 'profileService', 'statusService', 'typeService']; module.exports = FormServerController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html index c14b264..b64dad9 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html @@ -26,9 +26,8 @@ under the License. <div class="pull-right" role="group" ng-show="!settings.isNew"> <button class="btn btn-danger" ng-click="offlineServer()">Offline Server <i class="fa fa-warning"></i></button> <!--<button class="btn btn-success" ng-click="onlineServer()">Online Server</button>--> - <button class="btn btn-primary" ng-show="!server.updPending" ng-click="queueUpdates()">Queue Update <i class="fa fa-flag"></i></button> - <button class="btn btn-primary" ng-show="server.updPending" ng-click="dequeueUpdates()">Dequeue Update <i class="fa fa-times"></i></button> - + <button class="btn btn-primary" title="Queue {{server.hostName}} updates" ng-show="!server.updPending" ng-click="queueServerUpdates(server)"><i class="fa fa-flag"></i></button> + <button class="btn btn-primary" title="Cancel {{server.hostName}} updates" ng-show="server.updPending" ng-click="clearServerUpdates(server)"><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 http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9aeb10ac/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html index 4b89b47..df95acd 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html @@ -23,8 +23,8 @@ under the License. <li class="active">Servers</li> </ol> <div class="pull-right"> + <button class="btn btn-primary" title="Create Server" ng-click="createServer()"><i class="fa fa-plus"></i></button> <button class="btn btn-default" ng-click="refresh()"><i class="fa fa-refresh"></i></button> - <button class="btn btn-primary" ng-click="createServer()"><i class="fa fa-plus"></i> Create Server</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 @@ -42,7 +42,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> @@ -59,7 +59,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>