You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by da...@apache.org on 2017/05/25 21:33:32 UTC

[1/2] incubator-trafficcontrol git commit: adds ability to assign servers to ds

Repository: incubator-trafficcontrol
Updated Branches:
  refs/heads/master 8b94aa191 -> bf10b8284


adds ability to assign servers to ds


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/4a142151
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/4a142151
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/4a142151

Branch: refs/heads/master
Commit: 4a142151e71431d4787675151a9dc09fef26c679
Parents: 8b94aa1
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Tue May 23 11:33:30 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Thu May 25 15:32:05 2017 -0600

----------------------------------------------------------------------
 .../src/common/api/DeliveryServiceService.js    | 13 ++++
 .../ui/app/src/common/api/ServerService.js      |  4 ++
 .../TableDSServersUnassignedController.js       | 70 ++++++++++++++++++++
 .../TableDeliveryServiceServersController.js    | 36 ++++++++--
 .../table/deliveryServiceServers/index.js       |  3 +-
 .../table.deliveryServiceServers.tpl.html       |  4 +-
 .../table.dsServersUnassigned.tpl.html          | 49 ++++++++++++++
 .../configure/deliveryServices/servers/index.js |  2 +-
 8 files changed, 171 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js b/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
index a83107e..7c35224 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
@@ -84,6 +84,19 @@ var DeliveryServiceService = function(Restangular, locationUtils, httpService, m
             );
     };
 
+    this.assignDeliveryServiceServers = function(dsServerMappings) {
+        return Restangular.service('deliveryserviceserver').post(dsServerMappings)
+            .then(
+                function() {
+                    messageModel.setMessages([ { level: 'success', text: 'Servers linked to delivery service' } ], false);
+                },
+                function(fault) {
+                    messageModel.setMessages(fault.data.alerts, false);
+                }
+            );
+    };
+
+
 };
 
 DeliveryServiceService.$inject = ['Restangular', 'locationUtils', 'httpService', 'messageModel', 'ENV'];

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/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 07c9011..fd950fd 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,10 @@ var ServerService = function($http, $q, Restangular, locationUtils, messageModel
         return Restangular.one('deliveryservices', dsId).getList('servers');
     };
 
+    this.getUnassignedDeliveryServiceServers = function(dsId) {
+        return Restangular.one('deliveryservices', dsId).getList('unassigned_servers');
+    };
+
     this.queueServerUpdates = function(id) {
         return Restangular.one("servers", id).customPOST( { action: "queue"}, "queue_update" )
             .then(

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDSServersUnassignedController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDSServersUnassignedController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDSServersUnassignedController.js
new file mode 100644
index 0000000..a73059c
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDSServersUnassignedController.js
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var TableDSServersUnassignedController = function(deliveryService, servers, $scope, $uibModalInstance) {
+
+	var selectedServers = [];
+
+	$scope.deliveryService = deliveryService;
+
+	$scope.unassignedServers = servers;
+
+	var addServer = function(serverId) {
+		if (_.indexOf(selectedServers, serverId) == -1) {
+			selectedServers.push(serverId);
+		}
+	};
+
+	var removeServer = function(serverId) {
+		selectedServers = _.without(selectedServers, serverId);
+	};
+
+	$scope.updateServers = function($event, serverId) {
+		var checkbox = $event.target;
+		if (checkbox.checked) {
+			addServer(serverId);
+		} else {
+			removeServer(serverId);
+		}
+	};
+
+	$scope.submit = function() {
+		$uibModalInstance.close(selectedServers);
+	};
+
+	$scope.cancel = function () {
+		$uibModalInstance.dismiss('cancel');
+	};
+
+	angular.element(document).ready(function () {
+		$('#dsServersUnassignedTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": 25,
+			"order": [[ 1, 'asc' ]],
+			"columnDefs": [
+				{ 'orderable': false, 'targets': 0 },
+				{ "width": "5%", "targets": 0 }
+			]
+		});
+	});
+
+};
+
+TableDSServersUnassignedController.$inject = ['deliveryService', 'servers', '$scope', '$uibModalInstance'];
+module.exports = TableDSServersUnassignedController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
index 408d7a6..1a91c00 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
@@ -17,16 +17,12 @@
  * under the License.
  */
 
-var TableDeliveryServiceServersController = function(deliveryService, servers, $scope, $state, locationUtils, serverUtils, deliveryServiceService) {
+var TableDeliveryServiceServersController = function(deliveryService, servers, $scope, $state, $uibModal, locationUtils, serverUtils, deliveryServiceService) {
 
 	$scope.deliveryService = deliveryService;
 
 	$scope.servers = servers;
 
-	$scope.addServer = function() {
-		alert('not hooked up yet: addServer to ds');
-	};
-
 	$scope.removeServer = function(dsId, serverId) {
 		deliveryServiceService.deleteDeliveryServiceServer(dsId, serverId)
 			.then(
@@ -40,6 +36,34 @@ var TableDeliveryServiceServersController = function(deliveryService, servers, $
 		$state.reload(); // reloads all the resolves for the view
 	};
 
+	$scope.selectServers = function() {
+		var modalInstance = $uibModal.open({
+			templateUrl: 'common/modules/table/deliveryServiceServers/table.dsServersUnassigned.tpl.html',
+			controller: 'TableDSServersUnassignedController',
+			size: 'lg',
+			resolve: {
+				deliveryService: function() {
+					return deliveryService;
+				},
+				servers: function(serverService) {
+					return serverService.getUnassignedDeliveryServiceServers(deliveryService.id);
+				}
+			}
+		});
+		modalInstance.result.then(function(selectedServerIds) {
+			var serverAssignments = { dsId: deliveryService.id, servers: selectedServerIds };
+			deliveryServiceService.assignDeliveryServiceServers(serverAssignments)
+				.then(
+					function() {
+						$scope.refresh();
+					}
+				);
+		}, function () {
+			// do nothing
+		});
+	};
+
+
 	$scope.isOffline = serverUtils.isOffline;
 
 	$scope.offlineReason = serverUtils.offlineReason;
@@ -56,5 +80,5 @@ var TableDeliveryServiceServersController = function(deliveryService, servers, $
 
 };
 
-TableDeliveryServiceServersController.$inject = ['deliveryService', 'servers', '$scope', '$state', 'locationUtils', 'serverUtils', 'deliveryServiceService'];
+TableDeliveryServiceServersController.$inject = ['deliveryService', 'servers', '$scope', '$state', '$uibModal', 'locationUtils', 'serverUtils', 'deliveryServiceService'];
 module.exports = TableDeliveryServiceServersController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/index.js
index b4f353c..b1798bd 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/index.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/index.js
@@ -18,4 +18,5 @@
  */
 
 module.exports = angular.module('trafficOps.table.deliveryServiceServers', [])
-	.controller('TableDeliveryServiceServersController', require('./TableDeliveryServiceServersController'));
+	.controller('TableDeliveryServiceServersController', require('./TableDeliveryServiceServersController'))
+	.controller('TableDSServersUnassignedController', require('./TableDSServersUnassignedController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
index 38eb8b1..59de788 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Servers</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Link Server to Delivery Service" ng-click="addServer()"><i class="fa fa-link"></i></button>
+            <button class="btn btn-primary" title="Link Server to Delivery Service" ng-click="selectServers()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -72,7 +72,7 @@ under the License.
                 <td>{{::server.profile}}</td>
                 <td>{{::server.iloIpAddress}}</td>
                 <td>{{::server.iloIpGateway}}</td>
-                <td><button type="button" class="btn btn-link" title="Unlink Server from Delivery Service" ng-show="server.type == 'EDGE'" ng-click="removeServer(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Remove Server from Delivery Service" ng-show="server.type.indexOf('EDGE') != -1" ng-click="removeServer(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.dsServersUnassigned.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.dsServersUnassigned.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.dsServersUnassigned.tpl.html
new file mode 100644
index 0000000..0e43889
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.dsServersUnassigned.tpl.html
@@ -0,0 +1,49 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+
+<div class="modal-header">
+    <button type="button" class="close" ng-click="cancel()"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+    <h3 class="modal-title">Assign Servers to {{::deliveryService.xmlId}}</h3>
+</div>
+<div class="modal-body">
+    <table id="dsServersUnassignedTable" class="table responsive-utilities jambo_table" style="table-layout:fixed; width:100%;">
+        <thead>
+        <tr class="headings">
+            <th></th>
+            <th>hostName</th>
+            <th>cachegroup</th>
+            <th>profile</th>
+        </tr>
+        </thead>
+        <tbody>
+        <tr ng-repeat="server in ::unassignedServers">
+            <td><input type="checkbox" ng-click="updateServers($event, server.id)"></td>
+            <td>{{::server.hostName}}</td>
+            <td>{{::server.cachegroup}}</td>
+            <td>{{::server.profile}}</td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+<div class="modal-footer">
+    <button class="btn btn-link" ng-click="cancel()">cancel</button>
+    <button class="btn btn-primary" ng-click="submit()">Submit</button>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4a142151/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
index f53525e..4b6bf57 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
@@ -31,7 +31,7 @@ module.exports = angular.module('trafficOps.private.configure.deliveryServices.s
 								return deliveryServiceService.getDeliveryService($stateParams.deliveryServiceId);
 							},
 							servers: function($stateParams, serverService) {
-								return serverService.getServers({ dsId: $stateParams.deliveryServiceId });
+								return serverService.getDeliveryServiceServers($stateParams.deliveryServiceId);
 							}
 						}
 					}


[2/2] incubator-trafficcontrol git commit: This closes #604.

Posted by da...@apache.org.
This closes #604.


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/bf10b828
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/bf10b828
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/bf10b828

Branch: refs/heads/master
Commit: bf10b82849fa47400a35bfc333e758d47722a46a
Parents: 4a14215
Author: Dan Kirkwood <da...@gmail.com>
Authored: Thu May 25 15:33:23 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Thu May 25 15:33:23 2017 -0600

----------------------------------------------------------------------

----------------------------------------------------------------------