You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ra...@apache.org on 2020/11/03 15:46:31 UTC
[trafficcontrol] branch master updated: TP: allows topology-based
delivery services to be assigned to ORG servers (#5236)
This is an automated email from the ASF dual-hosted git repository.
rawlin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 82f7549 TP: allows topology-based delivery services to be assigned to ORG servers (#5236)
82f7549 is described below
commit 82f7549057a4a71a4f7435253c6d368078c1664e
Author: Jeremy Mitchell <mi...@users.noreply.github.com>
AuthorDate: Tue Nov 3 08:46:18 2020 -0700
TP: allows topology-based delivery services to be assigned to ORG servers (#5236)
* allows topology-based delivery services to be assigned to ORG servers
* adds changelog.md entry
* syncs topology name validation in UI w/ api validation
* another changelog.md update
---
CHANGELOG.md | 4 +++-
.../common/modules/form/topology/form.topology.tpl.html | 4 ++--
.../TableAssignDeliveryServicesController.js | 16 ++++++++++------
.../table.assignDeliveryServices.tpl.html | 2 +-
4 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c96b613..54bd09b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [unreleased]
### Fixed
-- Fixed #5216 - Removed duplicate button to link delivery service to server [Related Github issue](https://github.com/apache/trafficcontrol/issues/5216)
+- Fixed #5216 - Removed duplicate button to link delivery service to server [Related Github issue](https://github.com/apache/trafficcontrol/issues/5216)
+- Fixed #5197 - Allows users to assign topology-based DS to ORG servers [Related Github issue](https://github.com/apache/trafficcontrol/issues/5197)
+- Fixed #5161 - Fixes topology name character validation [Related Github issue](https://github.com/apache/trafficcontrol/issues/5161)
- Fixed an issue where the jobs and servers table in Traffic Portal would not clear a column's filter when it's hidden
- Fixed an issue with Traffic Router failing to authenticate if secrets are changed
- Fixed validation error message for Traffic Ops `POST /api/x/profileparameters` route
diff --git a/traffic_portal/app/src/common/modules/form/topology/form.topology.tpl.html b/traffic_portal/app/src/common/modules/form/topology/form.topology.tpl.html
index 0225b8d..df8822a 100644
--- a/traffic_portal/app/src/common/modules/form/topology/form.topology.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/topology/form.topology.tpl.html
@@ -58,9 +58,9 @@ under the License.
<div class="form-group" ng-class="{'has-error': hasError(topologyForm.name), 'has-feedback': hasError(topologyForm.name)}">
<label class="control-label col-md-2 col-sm-2 col-xs-12">Name *</label>
<div class="col-md-10 col-sm-10 col-xs-12">
- <input name="name" type="text" class="form-control" ng-model="topology.name" ng-disabled="!settings.isNew" pattern="[A-Za-z0-9]([A-Za-z\-0-9]*[A-Za-z0-9])?" required autofocus>
+ <input name="name" type="text" class="form-control" ng-model="topology.name" ng-disabled="!settings.isNew" pattern="^[a-zA-Z0-9\-_]+$" required autofocus>
<small class="input-error" ng-show="hasPropertyError(topologyForm.name, 'required')">Required</small>
- <small class="input-error" ng-show="hasPropertyError(topologyForm.name, 'pattern')">No special characters, periods, underscores, or spaces and cannot begin or end with a hyphen</small>
+ <small class="input-error" ng-show="hasPropertyError(topologyForm.name, 'pattern')">Alphanumeric, dash, or underscore characters only</small>
<span ng-show="hasError(topologyForm.name)" class="form-control-feedback"><i class="fa fa-times"></i></span>
</div>
</div>
diff --git a/traffic_portal/app/src/common/modules/table/serverDeliveryServices/TableAssignDeliveryServicesController.js b/traffic_portal/app/src/common/modules/table/serverDeliveryServices/TableAssignDeliveryServicesController.js
index ede43ac..a659d75 100644
--- a/traffic_portal/app/src/common/modules/table/serverDeliveryServices/TableAssignDeliveryServicesController.js
+++ b/traffic_portal/app/src/common/modules/table/serverDeliveryServices/TableAssignDeliveryServicesController.js
@@ -17,7 +17,7 @@
* under the License.
*/
-var TableAssignDeliveryServicesController = function(server, deliveryServices, assignedDeliveryServices, $scope, $uibModalInstance) {
+var TableAssignDeliveryServicesController = function(server, deliveryServices, assignedDeliveryServices, $scope, $uibModalInstance, serverUtils) {
var selectedDeliveryServices = [];
@@ -35,7 +35,7 @@ var TableAssignDeliveryServicesController = function(server, deliveryServices, a
return parseInt($(this).attr('id'));
}).get();
$scope.selectedDeliveryServices = _.map(deliveryServices, function(ds) {
- if (ds.topology) {
+ if (ds.topology && $scope.isCache(server)) {
return ds;
}
if (visibleDSIds.includes(ds.id)) {
@@ -53,6 +53,8 @@ var TableAssignDeliveryServicesController = function(server, deliveryServices, a
$scope.server = server;
+ $scope.isCache = serverUtils.isCache;
+
$scope.selectedDeliveryServices = _.map(deliveryServices, function(ds) {
var isAssigned = _.find(assignedDeliveryServices, function(assignedDS) { return assignedDS.id == ds.id });
if (isAssigned) {
@@ -62,10 +64,12 @@ var TableAssignDeliveryServicesController = function(server, deliveryServices, a
});
$scope.toggleRow = function(ds) {
- if (!ds.topology) {
- ds.selected = !ds.selected;
- $scope.onChange();
+ // a ds w/ a topology has no use being assigned to cache servers
+ if (ds.topology && $scope.isCache(server)) {
+ return;
}
+ ds.selected = !ds.selected;
+ $scope.onChange();
};
$scope.selectAll = function($event) {
@@ -110,5 +114,5 @@ var TableAssignDeliveryServicesController = function(server, deliveryServices, a
};
-TableAssignDeliveryServicesController.$inject = ['server', 'deliveryServices', 'assignedDeliveryServices', '$scope', '$uibModalInstance'];
+TableAssignDeliveryServicesController.$inject = ['server', 'deliveryServices', 'assignedDeliveryServices', '$scope', '$uibModalInstance', 'serverUtils'];
module.exports = TableAssignDeliveryServicesController;
diff --git a/traffic_portal/app/src/common/modules/table/serverDeliveryServices/table.assignDeliveryServices.tpl.html b/traffic_portal/app/src/common/modules/table/serverDeliveryServices/table.assignDeliveryServices.tpl.html
index 698e0e8..7ba0b48 100644
--- a/traffic_portal/app/src/common/modules/table/serverDeliveryServices/table.assignDeliveryServices.tpl.html
+++ b/traffic_portal/app/src/common/modules/table/serverDeliveryServices/table.assignDeliveryServices.tpl.html
@@ -33,7 +33,7 @@ under the License.
</thead>
<tbody>
<tr id="{{::ds.id}}" class="ds-row" ng-class="::{'active': ds.selected}" ng-repeat="ds in ::selectedDeliveryServices" ng-click="toggleRow(ds)">
- <td><input type="checkbox" ng-model="ds.selected" ng-disabled="ds.topology"></td>
+ <td><input type="checkbox" ng-model="ds.selected" ng-disabled="ds.topology && isCache(server)"></td>
<td data-search="^{{::ds.xmlId}}$">{{::ds.xmlId}}</td>
<td data-search="^{{::ds.displayName}}$">{{::ds.displayName}}</td>
<td data-search="^{{::ds.type}}$">{{::ds.type}}</td>