You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2018/11/08 15:39:45 UTC

[trafficcontrol] branch master updated (0e2b172 -> 4978f51)

This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git.


    from 0e2b172  removed static ip address -- not needed for this container
     new 4f86044  Added ability to regenerate KSK keys in TP
     new 859a232  Updated regenerateksk API path and TP API version to 1.4
     new 4978f51  Usability fixes for DNSSEC and KSK generation

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 traffic_portal/app/src/app.js                      |  2 ++
 traffic_portal/app/src/common/api/CDNService.js    | 17 +++++++++++
 .../app/src/common/modules/form/_form.scss         |  5 ++++
 .../cdnDnssecKeys/FormCdnDnssecKeysController.js   | 35 +++-------------------
 .../form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html |  5 +++-
 .../FormGenerateCdnDnssecKeysController.js         |  6 ++++
 .../generate/form.GenerateCdnDnssecKeys.tpl.html   |  5 ++--
 .../FormRegenerateKskController.js}                | 31 +++++++++----------
 .../form.RegenerateKsk.tpl.html}                   | 33 ++++++++------------
 .../cdnDnssecKeys/{ => regenerateKsk}/index.js     |  4 +--
 .../{generate => regenerateKsk}/index.js           | 10 +++----
 traffic_portal/app/src/scripts/config.js           |  2 +-
 12 files changed, 76 insertions(+), 79 deletions(-)
 copy traffic_portal/app/src/common/modules/form/cdnDnssecKeys/{generate/FormGenerateCdnDnssecKeysController.js => regenerateKsk/FormRegenerateKskController.js} (59%)
 copy traffic_portal/app/src/common/modules/form/cdnDnssecKeys/{generate/form.GenerateCdnDnssecKeys.tpl.html => regenerateKsk/form.RegenerateKsk.tpl.html} (55%)
 copy traffic_portal/app/src/common/modules/form/cdnDnssecKeys/{ => regenerateKsk}/index.js (88%)
 copy traffic_portal/app/src/modules/private/cdns/dnssecKeys/{generate => regenerateKsk}/index.js (84%)


[trafficcontrol] 01/03: Added ability to regenerate KSK keys in TP

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 4f86044fabae7851cd9ecedd665849691fadf60f
Author: cgillo000 <ch...@cable.comcast.com>
AuthorDate: Mon Oct 8 10:55:16 2018 -0600

    Added ability to regenerate KSK keys in TP
---
 traffic_portal/app/src/app.js                      |  2 +
 traffic_portal/app/src/common/api/CDNService.js    | 17 +++++
 .../cdnDnssecKeys/FormCdnDnssecKeysController.js   | 29 ++++++++
 .../form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html |  3 +
 .../regenerateKsk/FormRegenerateKskController.js   | 78 ++++++++++++++++++++++
 .../regenerateKsk/form.RegenerateKsk.tpl.html      | 61 +++++++++++++++++
 .../form/cdnDnssecKeys/regenerateKsk/index.js      | 21 ++++++
 .../private/cdns/dnssecKeys/regenerateKsk/index.js | 49 ++++++++++++++
 8 files changed, 260 insertions(+)

diff --git a/traffic_portal/app/src/app.js b/traffic_portal/app/src/app.js
index a33fc18..0e0f5c9 100644
--- a/traffic_portal/app/src/app.js
+++ b/traffic_portal/app/src/app.js
@@ -71,6 +71,7 @@ var trafficPortal = angular.module('trafficPortal', [
         require('./modules/private/cdns/deliveryServices').name,
         require('./modules/private/cdns/dnssecKeys').name,
         require('./modules/private/cdns/dnssecKeys/generate').name,
+        require('./modules/private/cdns/dnssecKeys/regenerateKsk').name,
         require('./modules/private/cdns/dnssecKeys/view').name,
         require('./modules/private/cdns/edit').name,
         require('./modules/private/cdns/federations').name,
@@ -251,6 +252,7 @@ var trafficPortal = angular.module('trafficPortal', [
         require('./common/modules/form/cdn/new').name,
         require('./common/modules/form/cdnDnssecKeys').name,
         require('./common/modules/form/cdnDnssecKeys/generate').name,
+        require('./common/modules/form/cdnDnssecKeys/regenerateKsk').name,
         require('./common/modules/form/coordinate').name,
         require('./common/modules/form/coordinate/edit').name,
         require('./common/modules/form/coordinate/new').name,
diff --git a/traffic_portal/app/src/common/api/CDNService.js b/traffic_portal/app/src/common/api/CDNService.js
index 2bf2d59..f4ea8d1 100644
--- a/traffic_portal/app/src/common/api/CDNService.js
+++ b/traffic_portal/app/src/common/api/CDNService.js
@@ -240,6 +240,23 @@ var CDNService = function($http, $q, Restangular, locationUtils, messageModel, E
         return request.promise;
     };
 
+	this.regenerateKSK = function(kskRequest, cdnKey) {
+		var request = $q.defer();
+
+		$http.post(ENV.api['root'] + cdnKey + "/dnsseckeys/ksk/generate", kskRequest)
+			.then(
+				function(result) {
+					request.resolve(result);
+				},
+				function(fault) {
+					messageModel.setMessages(fault.data.alerts, false);
+					request.reject();
+				}
+			);
+
+		return request.promise;
+	};
+
 };
 
 CDNService.$inject = ['$http', '$q', 'Restangular', 'locationUtils', 'messageModel', 'ENV'];
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
index effec2d..95592d1 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
@@ -22,6 +22,9 @@ var FormCdnDnssecKeysController = function(cdn, dnssecKeys, $scope, $location, $
 	var generate = function() {
 		$location.path($location.path() + '/generate');
 	};
+	var regenerateKSK = function() {
+		$location.path($location.path() + '/regenerateKsk');
+	};
 
 	$scope.cdn = cdn;
 
@@ -70,6 +73,32 @@ var FormCdnDnssecKeysController = function(cdn, dnssecKeys, $scope, $location, $
 		});
 	};
 
+	$scope.confirmKSK = function() {
+		var title = 'Regenerate KSK Keys [ ' + cdn.name + ' ]',
+			msg = 'This will regenerate KSK keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Are you sure you want to proceed?';
+
+		var params = {
+			title: title,
+			message: msg
+		};
+		var modalInstance = $uibModal.open({
+			templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
+			controller: 'DialogConfirmController',
+			size: 'md',
+			resolve: {
+				params: function () {
+					return params;
+				}
+			}
+		});
+		modalInstance.result.then(function() {
+			regenerateKSK();
+		}, function () {
+			messageModel.setMessages([ { level: 'warning', text: title + ' cancelled' } ], false);
+		});
+	};
+
+
 	$scope.dateFormat = dateUtils.dateFormat;
 
 	$scope.navigateToPath = locationUtils.navigateToPath;
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
index 2a81ccf..6969898 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
@@ -25,6 +25,9 @@ under the License.
             <li class="active">DNSSEC Keys</li>
         </ol>
         <div class="pull-right">
+            <button class="btn btn-primary" title="Regenerate KSK" ng-click="confirmKSK()" ng-show="ksk_new">Regenerate KSK Keys</button>
+        </div>
+        <div class="pull-right">
             <button class="btn btn-primary" title="Generate DNSSEC Keys" ng-click="confirmGenerate()">{{generateLabel()}}</button>
         </div>
         <div class="clearfix"></div>
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js
new file mode 100644
index 0000000..659a0e6
--- /dev/null
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js
@@ -0,0 +1,78 @@
+/*
+ * 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 FormRegenerateKskController = function(cdn, dnssecKeysRequest, $scope, $location, $uibModal, formUtils, locationUtils, cdnService, messageModel) {
+
+	var generate = function() {
+		$scope.kskRequest.effectiveDate = moment($scope.kskRequest.effectiveDate).utc().format();
+		cdnService.regenerateKSK($scope.kskRequest, $scope.cdnKey)
+			.then(function(result) {
+				messageModel.setMessages(result.data.alerts, true);
+				locationUtils.navigateToPath('/cdns/' + cdn.id + '/dnssec-keys');
+			});
+	};
+
+	$scope.cdn = cdn;
+	$scope.cdnKey = dnssecKeysRequest.key;
+	$scope.kskRequest = {
+		effectiveDate: dnssecKeysRequest.effectiveDate,
+		expirationDays: 365
+	};
+
+	$scope.generateLabel = function() {
+		var label = 'Regenerate KSK';
+		return label;
+	};
+
+	$scope.confirmGenerate = function() {
+		var title = 'Regenerate DNSSEC Keys [ ' + cdn.name + ' ]',
+			msg = 'This action CANNOT be undone. This will regenerate KSK keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Please type in the name of the CDN to confirm.';
+
+		var params = {
+			title: title,
+			message: msg,
+			key: cdn.name
+		};
+		var modalInstance = $uibModal.open({
+			templateUrl: 'common/modules/dialog/confirm/enter/dialog.confirm.enter.tpl.html',
+			controller: 'DialogConfirmEnterController',
+			size: 'md',
+			resolve: {
+				params: function () {
+					return params;
+				}
+			}
+		});
+		modalInstance.result.then(function() {
+			generate();
+		}, function () {
+			messageModel.setMessages([ { level: 'warning', text: title + ' cancelled' } ], false);
+		});
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	$scope.hasError = formUtils.hasError;
+
+	$scope.hasPropertyError = formUtils.hasPropertyError;
+
+};
+
+FormRegenerateKskController.$inject = ['cdn', 'dnssecKeysRequest', '$scope', '$location', '$uibModal', 'formUtils', 'locationUtils', 'cdnService', 'messageModel'];
+module.exports = FormRegenerateKskController;
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html
new file mode 100644
index 0000000..f696ed7
--- /dev/null
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html
@@ -0,0 +1,61 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/cdns')">CDNs</a></li>
+            <li><a ng-click="navigateToPath('/cdns/' + cdn.id)">{{cdn.name}}</a></li>
+            <li><a ng-click="navigateToPath('/cdns/' + cdn.id + '/dnssec-keys')">DNSSEC Keys</a></li>
+            <li class="active">regenerateKSK</li>
+        </ol>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <form name="cdnRegenerateKSKForm" class="form-horizontal form-label-left" novalidate>
+            <div class="form-group">
+                <label class="control-label col-md-2 col-sm-2 col-xs-12">CDN *</label>
+                <div class="col-md-10 col-sm-10 col-xs-12">
+                    <input name="key" class="form-control" ng-model="cdnKey" readonly>
+                </div>
+            </div>
+            <div class="form-group" ng-class="{'has-error': hasError(cdnRegenerateKSKForm.kskExpirationDays), 'has-feedback': hasError(cdnRegenerateKSKForm.kskExpirationDays)}">
+                <label class="control-label col-md-2 col-sm-2 col-xs-12">KSK Expiration (Days) *</label>
+                <div class="col-md-10 col-sm-10 col-xs-12">
+                    <input name="kskExpirationDays" type="number" class="form-control" ng-model="kskRequest.expirationDays" required autofocus>
+                    <small class="input-error" ng-show="hasPropertyError(cdnRegenerateKSKForm.expirationDays, 'required')">Required</small>
+                    <span ng-show="hasError(cdnRegenerateKSKForm.expirationDays)" class="form-control-feedback"><i class="fa fa-times"></i></span>
+                </div>
+            </div>
+            <div class="form-group" ng-class="{'has-error': hasError(cdnRegenerateKSKForm.effectiveDate), 'has-feedback': hasError(cdnRegenerateKSKForm.effectiveDate)}">
+                <label class="control-label col-md-2 col-sm-2 col-xs-12">Effective Date (UTC) *</label>
+                <div class="col-md-10 col-sm-10 col-xs-12">
+                    <input name="effectiveDate" type="text" class="form-control" ng-model="kskRequest.effectiveDate" required autofocus>
+                    <small class="input-error" ng-show="hasPropertyError(cdnRegenerateKSKForm.effectiveDate, 'required')">Required</small>
+                    <span ng-show="hasError(cdnRegenerateKSKForm.effectiveDate)" class="form-control-feedback"><i class="fa fa-times"></i></span>
+                </div>
+            </div>
+
+            <div class="modal-footer">
+                <button type="button" class="btn btn-success" ng-disabled="cdnRegenerateKSKForm.$invalid" ng-click="confirmGenerate()">Generate</button>
+            </div>
+        </form>
+    </div>
+</div>
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/index.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/index.js
new file mode 100644
index 0000000..f249bbb
--- /dev/null
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/index.js
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+module.exports = angular.module('trafficPortal.form.cdnDnssecKeys.regenerateKsk', [])
+	.controller('FormRegenerateKskController', require('./FormRegenerateKskController'));
\ No newline at end of file
diff --git a/traffic_portal/app/src/modules/private/cdns/dnssecKeys/regenerateKsk/index.js b/traffic_portal/app/src/modules/private/cdns/dnssecKeys/regenerateKsk/index.js
new file mode 100644
index 0000000..dda36f1
--- /dev/null
+++ b/traffic_portal/app/src/modules/private/cdns/dnssecKeys/regenerateKsk/index.js
@@ -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.
+ */
+
+module.exports = angular.module('trafficPortal.private.cdns.dnssecKeys.regenerateKsk', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficPortal.private.cdns.dnssecKeys.regenerateKsk', {
+				url: '/regenerateKsk',
+				views: {
+					cdnDnssecKeysContent: {
+						templateUrl: 'common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html',
+						controller: 'FormRegenerateKskController',
+						resolve: {
+							cdn: function($stateParams, cdnService) {
+								return cdnService.getCDN($stateParams.cdnId);
+							},
+							dnssecKeysRequest: function(cdn) {
+								return {
+									key: cdn.name,
+									name: cdn.domainName,
+									ttl: 60,
+									kskExpirationDays: 365,
+									zskExpirationDays: 30,
+									effectiveDate: moment().utc().format('YYYY-MM-DD HH:mm:ss')
+								};
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});


[trafficcontrol] 02/03: Updated regenerateksk API path and TP API version to 1.4

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 859a2323e2fdc0c8965828c3d284fde5c56d8d64
Author: cgillo000 <ch...@cable.comcast.com>
AuthorDate: Mon Oct 29 11:34:33 2018 -0600

    Updated regenerateksk API path and TP API version to 1.4
---
 traffic_portal/app/src/common/api/CDNService.js | 2 +-
 traffic_portal/app/src/scripts/config.js        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/traffic_portal/app/src/common/api/CDNService.js b/traffic_portal/app/src/common/api/CDNService.js
index f4ea8d1..8a6c0c2 100644
--- a/traffic_portal/app/src/common/api/CDNService.js
+++ b/traffic_portal/app/src/common/api/CDNService.js
@@ -243,7 +243,7 @@ var CDNService = function($http, $q, Restangular, locationUtils, messageModel, E
 	this.regenerateKSK = function(kskRequest, cdnKey) {
 		var request = $q.defer();
 
-		$http.post(ENV.api['root'] + cdnKey + "/dnsseckeys/ksk/generate", kskRequest)
+		$http.post(ENV.api['root'] + "cdns/" + cdnKey + "/dnsseckeys/ksk/generate", kskRequest)
 			.then(
 				function(result) {
 					request.resolve(result);
diff --git a/traffic_portal/app/src/scripts/config.js b/traffic_portal/app/src/scripts/config.js
index 221da7b..c7fce2c 100644
--- a/traffic_portal/app/src/scripts/config.js
+++ b/traffic_portal/app/src/scripts/config.js
@@ -23,6 +23,6 @@
 
 angular.module('config', [])
 
-.constant('ENV', { api: { root:'/api/1.3/' } })
+.constant('ENV', { api: { root:'/api/1.4/' } })
 
 ;


[trafficcontrol] 03/03: Usability fixes for DNSSEC and KSK generation

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 4978f51e89685734fb303d5a97a150f34b2dd892
Author: cgillo000 <ch...@cable.comcast.com>
AuthorDate: Mon Nov 5 15:05:33 2018 -0700

    Usability fixes for DNSSEC and KSK generation
---
 .../app/src/common/modules/form/_form.scss         |  5 ++
 .../cdnDnssecKeys/FormCdnDnssecKeysController.js   | 60 +---------------------
 .../form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html |  4 +-
 .../FormGenerateCdnDnssecKeysController.js         |  6 +++
 .../generate/form.GenerateCdnDnssecKeys.tpl.html   |  5 +-
 .../regenerateKsk/FormRegenerateKskController.js   |  5 +-
 .../regenerateKsk/form.RegenerateKsk.tpl.html      |  3 +-
 7 files changed, 23 insertions(+), 65 deletions(-)

diff --git a/traffic_portal/app/src/common/modules/form/_form.scss b/traffic_portal/app/src/common/modules/form/_form.scss
index 0869e2f..a0e1b65 100644
--- a/traffic_portal/app/src/common/modules/form/_form.scss
+++ b/traffic_portal/app/src/common/modules/form/_form.scss
@@ -22,4 +22,9 @@
 
 form .control-label > span:hover {
   text-decoration: underline;
+}
+
+.dnssec-info-text {
+  margin-bottom: 12px;
+  font-size: medium;
 }
\ No newline at end of file
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
index 95592d1..e2f7932 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/FormCdnDnssecKeysController.js
@@ -19,10 +19,10 @@
 
 var FormCdnDnssecKeysController = function(cdn, dnssecKeys, $scope, $location, $uibModal, dateUtils, formUtils, stringUtils, locationUtils, messageModel) {
 
-	var generate = function() {
+	$scope.generate = function() {
 		$location.path($location.path() + '/generate');
 	};
-	var regenerateKSK = function() {
+	$scope.regenerateKSK = function() {
 		$location.path($location.path() + '/regenerateKsk');
 	};
 
@@ -43,62 +43,6 @@ var FormCdnDnssecKeysController = function(cdn, dnssecKeys, $scope, $location, $
 		return label;
 	};
 
-	$scope.confirmGenerate = function() {
-		var title = 'Generate DNSSEC Keys [ ' + cdn.name + ' ]',
-			msg = 'This will generate DNSSEC keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Are you sure you want to proceed?';
-
-		if ($scope.ksk_new) {
-			title = 'Regenerate DNSSEC Keys [ ' + cdn.name + ' ]';
-			msg = 'This will regenerate DNSSEC keys for the ' + cdn.name + ' CDN and all associated Delivery Services. A new DS Record will be created and needs to be added to the parent zone in order for DNSSEC to work properly.<br><br>Are you sure you want to proceed?';
-		}
-
-		var params = {
-			title: title,
-			message: msg
-		};
-		var modalInstance = $uibModal.open({
-			templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
-			controller: 'DialogConfirmController',
-			size: 'md',
-			resolve: {
-				params: function () {
-					return params;
-				}
-			}
-		});
-		modalInstance.result.then(function() {
-			generate();
-		}, function () {
-			messageModel.setMessages([ { level: 'warning', text: title + ' cancelled' } ], false);
-		});
-	};
-
-	$scope.confirmKSK = function() {
-		var title = 'Regenerate KSK Keys [ ' + cdn.name + ' ]',
-			msg = 'This will regenerate KSK keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Are you sure you want to proceed?';
-
-		var params = {
-			title: title,
-			message: msg
-		};
-		var modalInstance = $uibModal.open({
-			templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
-			controller: 'DialogConfirmController',
-			size: 'md',
-			resolve: {
-				params: function () {
-					return params;
-				}
-			}
-		});
-		modalInstance.result.then(function() {
-			regenerateKSK();
-		}, function () {
-			messageModel.setMessages([ { level: 'warning', text: title + ' cancelled' } ], false);
-		});
-	};
-
-
 	$scope.dateFormat = dateUtils.dateFormat;
 
 	$scope.navigateToPath = locationUtils.navigateToPath;
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
index 6969898..ade936b 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/form.cdnDnssecKeys.tpl.html
@@ -25,10 +25,10 @@ under the License.
             <li class="active">DNSSEC Keys</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Regenerate KSK" ng-click="confirmKSK()" ng-show="ksk_new">Regenerate KSK Keys</button>
+            <button class="btn btn-primary" title="Regenerate KSK" ng-click="regenerateKSK()" ng-show="ksk_new">Regenerate KSK</button>
         </div>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Generate DNSSEC Keys" ng-click="confirmGenerate()">{{generateLabel()}}</button>
+            <button class="btn btn-primary" title="Generate DNSSEC Keys" ng-click="generate()">{{generateLabel()}}</button>
         </div>
         <div class="clearfix"></div>
     </div>
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/FormGenerateCdnDnssecKeysController.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/FormGenerateCdnDnssecKeysController.js
index aa23ba6..27559b8 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/FormGenerateCdnDnssecKeysController.js
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/FormGenerateCdnDnssecKeysController.js
@@ -39,6 +39,12 @@ var FormGenerateCdnDnssecKeysController = function(cdn, dnssecKeysRequest, $scop
 		return label;
 	};
 
+	$scope.msg = 'This will generate DNSSEC keys for the ' + cdn.name + ' CDN and all associated Delivery Services.';
+
+	if ($scope.ksk_new) {
+		$scope.msg = 'This will regenerate DNSSEC keys for the ' + cdn.name + ' CDN and all associated Delivery Services. A new DS Record will be created and needs to be added to the parent zone in order for DNSSEC to work properly.';
+	}
+
 	$scope.confirmGenerate = function() {
 		var title = 'Generate DNSSEC Keys [ ' + cdn.name + ' ]',
 			msg = 'This action CANNOT be undone. This will generate DNSSEC keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Please type in the name of the CDN to confirm.';
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/form.GenerateCdnDnssecKeys.tpl.html b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/form.GenerateCdnDnssecKeys.tpl.html
index ec22054..ef958ef 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/form.GenerateCdnDnssecKeys.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/generate/form.GenerateCdnDnssecKeys.tpl.html
@@ -23,12 +23,13 @@ under the License.
             <li><a ng-click="navigateToPath('/cdns')">CDNs</a></li>
             <li><a ng-click="navigateToPath('/cdns/' + cdn.id)">{{cdn.name}}</a></li>
             <li><a ng-click="navigateToPath('/cdns/' + cdn.id + '/dnssec-keys')">DNSSEC Keys</a></li>
-            <li class="active">generate</li>
+            <li class="active">Generate</li>
         </ol>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">
         <br>
+        <div class="col-md-2 col-sm-2 col-xs-12"></div><div class="dnssec-info-text col-md-10 col-sm-10 col-xs-12">{{msg}}</div>
         <form name="cdnGenerateDnssecKeysForm" class="form-horizontal form-label-left" novalidate>
             <div class="form-group">
                 <label class="control-label col-md-2 col-sm-2 col-xs-12">CDN *</label>
@@ -62,7 +63,7 @@ under the License.
             </div>
 
             <div class="modal-footer">
-                <button type="button" class="btn btn-success" ng-disabled="cdnGenerateDnssecKeysForm.$invalid" ng-click="confirmGenerate()">Generate</button>
+                <button type="button" class="btn btn-success" ng-disabled="cdnGenerateDnssecKeysForm.$invalid" ng-click="confirmGenerate()">Regenerate</button>
             </div>
         </form>
     </div>
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js
index 659a0e6..94632c7 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/FormRegenerateKskController.js
@@ -39,10 +39,11 @@ var FormRegenerateKskController = function(cdn, dnssecKeysRequest, $scope, $loca
 		var label = 'Regenerate KSK';
 		return label;
 	};
+	$scope.msg = 'This will regenerate KSK (key signing keys) for the ' + cdn.name + ' CDN.';
 
 	$scope.confirmGenerate = function() {
-		var title = 'Regenerate DNSSEC Keys [ ' + cdn.name + ' ]',
-			msg = 'This action CANNOT be undone. This will regenerate KSK keys for the ' + cdn.name + ' CDN and all associated Delivery Services.<br><br>Please type in the name of the CDN to confirm.';
+		var title = 'Regenerate KSK (key signing keys) [ ' + cdn.name + ' ]',
+			msg = 'This action CANNOT be undone. This will regenerate KSK (key signing keys) for the ' + cdn.name + ' CDN.<br><br>Please type in the name of the CDN to confirm.';
 
 		var params = {
 			title: title,
diff --git a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html
index f696ed7..03b1f6d 100644
--- a/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html
+++ b/traffic_portal/app/src/common/modules/form/cdnDnssecKeys/regenerateKsk/form.RegenerateKsk.tpl.html
@@ -23,12 +23,13 @@ under the License.
             <li><a ng-click="navigateToPath('/cdns')">CDNs</a></li>
             <li><a ng-click="navigateToPath('/cdns/' + cdn.id)">{{cdn.name}}</a></li>
             <li><a ng-click="navigateToPath('/cdns/' + cdn.id + '/dnssec-keys')">DNSSEC Keys</a></li>
-            <li class="active">regenerateKSK</li>
+            <li class="active">Regenerate KSK</li>
         </ol>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">
         <br>
+        <div class="col-md-2 col-sm-2 col-xs-12"></div><div class="dnssec-info-text col-md-10 col-sm-10 col-xs-12">{{msg}}</div>
         <form name="cdnRegenerateKSKForm" class="form-horizontal form-label-left" novalidate>
             <div class="form-group">
                 <label class="control-label col-md-2 col-sm-2 col-xs-12">CDN *</label>