KNOX-1313 - Contributing provider config wizards incorrectly produce config 
when validation fails


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

Branch: refs/heads/master
Commit: d990bcb5911d4037c9ce9835adc65626218092d9
Parents: 8f47214
Author: Phil Zampino <[email protected]>
Authored: Wed May 16 11:02:56 2018 -0400
Committer: Phil Zampino <[email protected]>
Committed: Wed May 16 11:02:56 2018 -0400

----------------------------------------------------------------------
 .../ProviderContributorWizard.ts                | 32 --------------------
 .../src/app/provider-config-wizard/ha-wizard.ts |  2 +-
 .../provider-config-wizard.component.ts         |  9 ++++--
 .../provider-contributor-wizard.ts              | 32 ++++++++++++++++++++
 .../provider-config-wizard/webappsec-wizard.ts  |  2 +-
 .../applications/admin-ui/app/index.html        |  2 +-
 .../app/inline.c06cd35046f3cbf205d9.bundle.js   |  1 +
 .../app/inline.dc59050cc2ba8fa0f20a.bundle.js   |  1 -
 .../app/main.23db3659251b77b152e4.bundle.js     |  1 +
 .../app/main.74bb3a74ba22824ce047.bundle.js     |  1 -
 10 files changed, 43 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-admin-ui/src/app/provider-config-wizard/ProviderContributorWizard.ts
----------------------------------------------------------------------
diff --git 
a/gateway-admin-ui/src/app/provider-config-wizard/ProviderContributorWizard.ts 
b/gateway-admin-ui/src/app/provider-config-wizard/ProviderContributorWizard.ts
deleted file mode 100644
index 957d8c4..0000000
--- 
a/gateway-admin-ui/src/app/provider-config-wizard/ProviderContributorWizard.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.
- */
-
-
-import {ProviderConfig} from "../resource-detail/provider-config";
-
-export interface ProviderContributorWizard {
-
-  // Returns the type of provider to which the implementation contributes
-  getProviderRole() : string;
-
-  // Contribute the wizard state to the specified provider
-  contribute(providerConfig: ProviderConfig);
-
-  // Create a new ProviderConfig of the type to which the implementation can 
contribute
-  createNewProviderConfig(): ProviderConfig;
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts 
b/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
index 243ffa8..45c6030 100644
--- a/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
+++ b/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
@@ -17,7 +17,7 @@
 
 import {CategoryWizard} from "./category-wizard";
 import {ProviderConfig} from "../resource-detail/provider-config";
-import {ProviderContributorWizard} from "./ProviderContributorWizard";
+import {ProviderContributorWizard} from "./provider-contributor-wizard";
 import {HaProviderConfig} from "./ha-provider-config";
 import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
 

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
----------------------------------------------------------------------
diff --git 
a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
 
b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
index 628a932..945f5ab 100644
--- 
a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
+++ 
b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
@@ -29,7 +29,7 @@ import {Resource} from "../resource/resource";
 import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
 import {OrderedParamContainer} from "./ordered-param-container";
 import {HostMapProviderWizard} from "./hostmap-provider-wizard";
-import {ProviderContributorWizard} from "./ProviderContributorWizard";
+import {ProviderContributorWizard} from "./provider-contributor-wizard";
 import {WebAppSecurityWizard} from "./webappsec-wizard";
 import {ValidationUtils} from "../utils/validation-utils";
 
@@ -116,7 +116,10 @@ export class ProviderConfigWizardComponent implements 
OnInit {
 
       let isContributed: boolean = false;
 
+      let isContributingWizard: boolean = false;
+
       if (this.isProviderContributorWizard(catWizard)) {
+        isContributingWizard = true;
         let contribWiz = catWizard as ProviderContributorWizard;
         let role = contribWiz.getProviderRole();
         console.debug('Wizard is ProviderContributorWizard for role ' + role);
@@ -145,11 +148,11 @@ export class ProviderConfigWizardComponent implements 
OnInit {
         }
       }
 
-      if (!pc) { // If not a contributing wizard, just use the category 
wizard's provider config
+      if (!pc && !isContributingWizard) { // If not a contributing wizard, 
just use the category wizard's provider config
         pc = catWizard.getProviderConfig();
       }
 
-      if (pc && (isContributed || this.isProviderConfigValid(pc))) {
+      if (pc && (isContributed || (!isContributingWizard && 
this.isProviderConfigValid(pc)))) {
         if (!isContributed) {
           this.providers.push(pc);
         }

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-admin-ui/src/app/provider-config-wizard/provider-contributor-wizard.ts
----------------------------------------------------------------------
diff --git 
a/gateway-admin-ui/src/app/provider-config-wizard/provider-contributor-wizard.ts
 
b/gateway-admin-ui/src/app/provider-config-wizard/provider-contributor-wizard.ts
new file mode 100644
index 0000000..957d8c4
--- /dev/null
+++ 
b/gateway-admin-ui/src/app/provider-config-wizard/provider-contributor-wizard.ts
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+
+
+import {ProviderConfig} from "../resource-detail/provider-config";
+
+export interface ProviderContributorWizard {
+
+  // Returns the type of provider to which the implementation contributes
+  getProviderRole() : string;
+
+  // Contribute the wizard state to the specified provider
+  contribute(providerConfig: ProviderConfig);
+
+  // Create a new ProviderConfig of the type to which the implementation can 
contribute
+  createNewProviderConfig(): ProviderConfig;
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-admin-ui/src/app/provider-config-wizard/webappsec-wizard.ts
----------------------------------------------------------------------
diff --git 
a/gateway-admin-ui/src/app/provider-config-wizard/webappsec-wizard.ts 
b/gateway-admin-ui/src/app/provider-config-wizard/webappsec-wizard.ts
index c6d0d35..8c6f496 100644
--- a/gateway-admin-ui/src/app/provider-config-wizard/webappsec-wizard.ts
+++ b/gateway-admin-ui/src/app/provider-config-wizard/webappsec-wizard.ts
@@ -17,7 +17,7 @@
 
 import {CategoryWizard} from "./category-wizard";
 import {ProviderConfig} from "../resource-detail/provider-config";
-import {ProviderContributorWizard} from "./ProviderContributorWizard";
+import {ProviderContributorWizard} from "./provider-contributor-wizard";
 import {HaProviderConfig} from "./ha-provider-config";
 import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
 import {HaWizard} from "./ha-wizard";

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
----------------------------------------------------------------------
diff --git 
a/gateway-applications/src/main/resources/applications/admin-ui/app/index.html 
b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
index 69c5639..4851d56 100644
--- 
a/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
+++ 
b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
@@ -11,4 +11,4 @@
   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.
---><!doctype html><html><head><meta charset="utf-8"><title>Apache Knox 
Manager</title><meta name="viewport" 
content="width=device-width,initial-scale=1"><link rel="icon" 
type="image/x-icon" href="favicon.ico"><meta name="viewport" 
content="width=device-width,initial-scale=1"><!-- Latest compiled and minified 
CSS --><link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"; 
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
 crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css";
 
integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
 crossorigin="anonymous"><!-- Custom styles for this template --><link 
href="assets/sticky-footer.css" rel="stylesheet"><script 
src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js";></script><!--
 Latest compiled and minified JavaScript --><scr
 ipt src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"; 
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
 crossorigin="anonymous"></script><script 
src="assets/vkbeautify.js"></script><link 
href="styles.2ee5b7f4cd59a6cf015e.bundle.css" 
rel="stylesheet"/></head><body><div class="navbar-wrapper"><div 
class="container-fluid"><nav class="navbar navbar-inverse 
navbar-static-top"><div class="container-fluid"><div 
class="navbar-header"><button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar"><span class="sr-only">Toggle navigation</span> <span 
class="icon-bar"></span> <span class="icon-bar"></span> <span 
class="icon-bar"></span></button> <a class="navbar-brand" href="#"><img 
style="max-width:200px; margin-top: -9px;" 
src="assets/knox-logo-transparent.gif" alt="Apache Knox 
Manager"></a></div></div></nav></div><!-- Content --><resource-management></res
 ource-management><footer class="footer"><div class="container-fluid"><div>Knox 
Manager Version 
1.0.0</div><gateway-version></gateway-version></div></footer><script 
type="text/javascript" 
src="inline.dc59050cc2ba8fa0f20a.bundle.js"></script><script 
type="text/javascript" 
src="scripts.c50bb762c438ae0f8842.bundle.js"></script><script 
type="text/javascript" 
src="main.74bb3a74ba22824ce047.bundle.js"></script></div></body></html>
\ No newline at end of file
+--><!doctype html><html><head><meta charset="utf-8"><title>Apache Knox 
Manager</title><meta name="viewport" 
content="width=device-width,initial-scale=1"><link rel="icon" 
type="image/x-icon" href="favicon.ico"><meta name="viewport" 
content="width=device-width,initial-scale=1"><!-- Latest compiled and minified 
CSS --><link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"; 
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
 crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css";
 
integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
 crossorigin="anonymous"><!-- Custom styles for this template --><link 
href="assets/sticky-footer.css" rel="stylesheet"><script 
src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js";></script><!--
 Latest compiled and minified JavaScript --><scr
 ipt src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"; 
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
 crossorigin="anonymous"></script><script 
src="assets/vkbeautify.js"></script><link 
href="styles.2ee5b7f4cd59a6cf015e.bundle.css" 
rel="stylesheet"/></head><body><div class="navbar-wrapper"><div 
class="container-fluid"><nav class="navbar navbar-inverse 
navbar-static-top"><div class="container-fluid"><div 
class="navbar-header"><button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar"><span class="sr-only">Toggle navigation</span> <span 
class="icon-bar"></span> <span class="icon-bar"></span> <span 
class="icon-bar"></span></button> <a class="navbar-brand" href="#"><img 
style="max-width:200px; margin-top: -9px;" 
src="assets/knox-logo-transparent.gif" alt="Apache Knox 
Manager"></a></div></div></nav></div><!-- Content --><resource-management></res
 ource-management><footer class="footer"><div class="container-fluid"><div>Knox 
Manager Version 
1.0.0</div><gateway-version></gateway-version></div></footer><script 
type="text/javascript" 
src="inline.c06cd35046f3cbf205d9.bundle.js"></script><script 
type="text/javascript" 
src="scripts.c50bb762c438ae0f8842.bundle.js"></script><script 
type="text/javascript" 
src="main.23db3659251b77b152e4.bundle.js"></script></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-applications/src/main/resources/applications/admin-ui/app/inline.c06cd35046f3cbf205d9.bundle.js
----------------------------------------------------------------------
diff --git 
a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.c06cd35046f3cbf205d9.bundle.js
 
b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.c06cd35046f3cbf205d9.bundle.js
new file mode 100644
index 0000000..acb0d59
--- /dev/null
+++ 
b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.c06cd35046f3cbf205d9.bundle.js
@@ -0,0 +1 @@
+!function(e){var 
n=window.webpackJsonp;window.webpackJsonp=function(r,c,u){for(var 
a,i,f,l=0,s=[];l<r.length;l++)t[i=r[l]]&&s.push(t[i][0]),t[i]=0;for(a in 
c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,u);s.length;)s.shift()();if(u)for(l=0;l<u.length;l++)f=o(o.s=u[l]);return
 f};var r={},t={2:0};function o(n){if(r[n])return r[n].exports;var 
t=r[n]={i:n,l:!1,exports:{}};return 
e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var 
n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new 
Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var 
c=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,o.nc&&u.setAttribute("nonce",o.nc),u.src=o.p+""+e+"."+{0:"23db3659251b77b152e4",1:"aed76669724804835353"}[e]+".chunk.js";var
 a=setTimeout(i,12e4);function i(){u.onerror=u.onload=null,clearTimeout(a);var 
n=t[e];0!==n&&(n&&n[1](new Error("Loading chu
 nk "+e+" failed.")),t[e]=void 0)}return 
u.onerror=u.onload=i,c.appendChild(u),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var
 n=e&&e.__esModule?function(){return e.default}:function(){return e};return 
o.d(n,"a",n),n},o.o=function(e,n){return 
Object.prototype.hasOwnProperty.call(e,n)},o.p="",o.oe=function(e){throw 
console.error(e),e}}([]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/d990bcb5/gateway-applications/src/main/resources/applications/admin-ui/app/inline.dc59050cc2ba8fa0f20a.bundle.js
----------------------------------------------------------------------
diff --git 
a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.dc59050cc2ba8fa0f20a.bundle.js
 
b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.dc59050cc2ba8fa0f20a.bundle.js
deleted file mode 100644
index 65c1b28..0000000
--- 
a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.dc59050cc2ba8fa0f20a.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){var 
n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var 
u,i,f,l=0,s=[];l<r.length;l++)t[i=r[l]]&&s.push(t[i][0]),t[i]=0;for(u in 
c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(l=0;l<a.length;l++)f=o(o.s=a[l]);return
 f};var r={},t={2:0};function o(n){if(r[n])return r[n].exports;var 
t=r[n]={i:n,l:!1,exports:{}};return 
e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var 
n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new 
Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var 
c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+""+e+"."+{0:"74bb3a74ba22824ce047",1:"aed76669724804835353"}[e]+".chunk.js";var
 u=setTimeout(i,12e4);function i(){a.onerror=a.onload=null,clearTimeout(u);var 
n=t[e];0!==n&&(n&&n[1](new Error("Loading chu
 nk "+e+" failed.")),t[e]=void 0)}return 
a.onerror=a.onload=i,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var
 n=e&&e.__esModule?function(){return e.default}:function(){return e};return 
o.d(n,"a",n),n},o.o=function(e,n){return 
Object.prototype.hasOwnProperty.call(e,n)},o.p="",o.oe=function(e){throw 
console.error(e),e}}([]);
\ No newline at end of file

Reply via email to