Add support for __OW_IGNORE_CERT env var (#110)
authorScottChapman <scott@chapman.us>
Mon, 30 Apr 2018 16:03:39 +0000 (12:03 -0400)
committerJames Thomas <jthomas.uk@gmail.com>
Mon, 30 Apr 2018 16:03:39 +0000 (17:03 +0100)
* Add support for __OW_IGNORE_CERT env var

README.md
lib/client.js
test/unit/client.test.js

index 65671b3..cdaa050 100644 (file)
--- a/README.md
+++ b/README.md
@@ -81,11 +81,12 @@ _Client constructor supports the following mandatory parameters:_
 
 ### environment variables
 
-Client constructor will read values for the `apihost`, `namespace`, `api_key`, `apigw_token` and `apigw_space_guid` options from the environment if the following parameters are set. Explicit options have precedence over environment values.
+Client constructor will read values for the `apihost`, `namespace`, `api_key`, `ignore_certs`, `apigw_token` and `apigw_space_guid` options from the environment if the following parameters are set. Explicit options have precedence over environment values.
 
 - *__OW_API_HOST*
 - *__OW_NAMESPACE*
 - *__OW_API_KEY*
+- *__OW_IGNORE_CERTS*
 - *__OW_APIGW_TOKEN*
 - *__OW_APIGW_SPACE_SUID*
 
@@ -540,8 +541,8 @@ If your local environment is using self-signed certificates, you can use the fol
 
 This will disable SSL/TLS verification for all SSL communication.
 
-Alternatively, you can run the `prepIntegrationTests.sh` script using guest credentials or by specifying specific credentials.  
-Run the script with openwhisk credentials:  
+Alternatively, you can run the `prepIntegrationTests.sh` script using guest credentials or by specifying specific credentials.
+Run the script with openwhisk credentials:
 ```bash
 $ ./test/integration/prepIntegrationTests.sh <your key in the form of ABCD:EFGH> <openwhisk instance hostname> <openwhisk namespace> <api gatewaytoken>
 ```
@@ -550,14 +551,14 @@ The `prepIntegrationTests.sh` script is designed to give you feedback if it dete
 ## Code-Coverage:
 
 You can customize how comprehensive the tests are over the code, and generate reports to view the results by using
-the provided `code-coverage` commands below.  
+the provided `code-coverage` commands below.
 
-**Note:** Ensure that you use guest credentials with the wsk CLI.  
+**Note:** Ensure that you use guest credentials with the wsk CLI.
 
-To compile down to ECMA5 run the following command:  
-1 `$ npm run code-coverage-build`  
+To compile down to ECMA5 run the following command:
+1 `$ npm run code-coverage-build`
 
-To generate combined reports of both the unit and integration tests, run the following command:  
-2 `$ npm run code-coverage-run <key> <host> <namespace> <token> <options>`  
+To generate combined reports of both the unit and integration tests, run the following command:
+2 `$ npm run code-coverage-run <key> <host> <namespace> <token> <options>`
 
-The report is viewable under `/coverage`. Click **`/coverage/index.html`** to view the full report.  
+The report is viewable under `/coverage`. Click **`/coverage/index.html`** to view the full report.
index 337fb22..900173c 100644 (file)
@@ -73,7 +73,11 @@ class Client {
 
   parseOptions (options) {
     const apiKey = options.api_key || process.env['__OW_API_KEY']
-    const ignoreCerts = options.ignore_certs || false
+    const ignoreCerts = options.ignore_certs ||
+      (process.env['__OW_IGNORE_CERTS']
+        ? process.env['__OW_IGNORE_CERTS'].toLowerCase() === 'true'
+        : false)
+
     // if apihost is available, parse this into full API url
     const api = options.api ||
       this.urlFromApihost(options.apihost || process.env['__OW_API_HOST'])
index 9db695f..dc97643 100644 (file)
@@ -61,15 +61,18 @@ test('should use uuid from auth key as space guid if apigw_token present', t =>
 test('should use environment parameters for options if not set explicitly.', t => {
   process.env['__OW_API_KEY'] = 'some_user:some_pass'
   process.env['__OW_API_HOST'] = 'mywhiskhost'
+  process.env['__OW_IGNORE_CERTS'] = 'true'
   process.env['__OW_APIGW_TOKEN'] = 'my-token'
   process.env['__OW_APIGW_SPACE_GUID'] = 'my-space'
   const client = new Client()
   t.is(client.options.apiKey, process.env['__OW_API_KEY'])
   t.is(client.options.api, 'https://mywhiskhost/api/v1/')
+  t.is(client.options.ignoreCerts, true)
   t.is(client.options.apigwToken, 'my-token')
   t.is(client.options.apigwSpaceGuid, 'my-space')
   delete process.env['__OW_API_KEY']
   delete process.env['__OW_API_HOST']
+  delete process.env['__OW_IGNORE_CERTS']
   delete process.env['__OW_APIGW_TOKEN']
   delete process.env['__OW_APIGW_SPACE_GUID']
 })