openwhisk-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From markusthoem...@apache.org
Subject [incubator-openwhisk] branch master updated: Move version information to pureconfig and remove `whisk_version_name`. (#3617)
Date Mon, 25 Jun 2018 11:44:09 GMT
This is an automated email from the ASF dual-hosted git repository.

markusthoemmes pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new 7897a3c  Move version information to pureconfig and remove `whisk_version_name`.
(#3617)
7897a3c is described below

commit 7897a3cfb70e76509b61543fb13d8c81490ff113
Author: Christian Bickel <github@cbickel.de>
AuthorDate: Mon Jun 25 13:44:04 2018 +0200

    Move version information to pureconfig and remove `whisk_version_name`. (#3617)
---
 ansible/environments/distributed/group_vars/all    |  4 ++-
 ansible/environments/docker-machine/group_vars/all |  3 +-
 ansible/environments/local/group_vars/all          |  1 -
 ansible/environments/vagrant/group_vars/all        |  1 -
 ansible/group_vars/all                             |  9 ++++-
 ansible/logs.yml                                   |  2 +-
 ansible/roles/controller/tasks/deploy.yml          |  5 ++-
 ansible/roles/invoker/tasks/deploy.yml             | 16 ++++-----
 ansible/templates/whisk.properties.j2              |  4 +--
 .../src/main/scala/whisk/core/WhiskConfig.scala    |  5 +--
 .../scala/whisk/core/controller/RestAPIs.scala     | 41 +++++++++-------------
 .../scala/actionContainers/ActionContainer.scala   |  2 +-
 12 files changed, 44 insertions(+), 49 deletions(-)

diff --git a/ansible/environments/distributed/group_vars/all b/ansible/environments/distributed/group_vars/all
index 99e4441..2056dec 100755
--- a/ansible/environments/distributed/group_vars/all
+++ b/ansible/environments/distributed/group_vars/all
@@ -2,6 +2,9 @@
 # license agreements; and to You under the Apache License, Version 2.0.
 
 ---
+
+environment_type: "distributed"
+
 db_provider: CouchDB
 db_port: 5984
 db_protocol: http
@@ -10,7 +13,6 @@ db_password: couch_password
 db_host: "{{ groups['db'] | first }}"
 db_prefix: whisk_distributed_
 
-whisk_version_name: distributed
 config_root_dir: /tmp/wskconf
 whisk_logs_dir: /tmp/wsklogs
 registry_storage_dir: "/"
diff --git a/ansible/environments/docker-machine/group_vars/all b/ansible/environments/docker-machine/group_vars/all
index e3193ad..91471c8 100644
--- a/ansible/environments/docker-machine/group_vars/all
+++ b/ansible/environments/docker-machine/group_vars/all
@@ -1,13 +1,14 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more contributor
 # license agreements; and to You under the Apache License, Version 2.0.
 
-whisk_version_name: mac
 config_root_dir: /Users/Shared/wskconf
 whisk_logs_dir: /Users/Shared/wsklogs
 docker_registry: ""
 docker_dns: ""
 runtimes_bypass_pull_for_local_images: true
 
+environment_type: "docker-machine"
+
 env_hosts_dir: "{{ playbook_dir }}/environments/docker-machine"
 
 # The whisk_api_localhost_name is used to configure nginx to permit vanity URLs for web actions.
diff --git a/ansible/environments/local/group_vars/all b/ansible/environments/local/group_vars/all
index d1bad6b..338e10a 100755
--- a/ansible/environments/local/group_vars/all
+++ b/ansible/environments/local/group_vars/all
@@ -1,7 +1,6 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more contributor
 # license agreements; and to You under the Apache License, Version 2.0.
 
-whisk_version_name: local
 openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
 config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
 whisk_logs_dir: "{{ openwhisk_tmp_dir }}/wsklogs"
diff --git a/ansible/environments/vagrant/group_vars/all b/ansible/environments/vagrant/group_vars/all
index a5da10d..614e0e2 100755
--- a/ansible/environments/vagrant/group_vars/all
+++ b/ansible/environments/vagrant/group_vars/all
@@ -1,7 +1,6 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more contributor
 # license agreements; and to You under the Apache License, Version 2.0.
 
-whisk_version_name: local
 openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
 config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
 whisk_logs_dir: "{{ openwhisk_tmp_dir }}/wsklogs"
diff --git a/ansible/group_vars/all b/ansible/group_vars/all
index f4ceacb..b59aa3b 100644
--- a/ansible/group_vars/all
+++ b/ansible/group_vars/all
@@ -22,7 +22,14 @@ exclude_logs_from: []
 #   whisk_api_localhost_name_default (last)
 whisk_api_localhost_name_default: "localhost"
 
-hosts_dir: "{{ inventory_dir | default(env_hosts_dir) }}"
+# Type of your environment.
+# If you want to deploy everything on your local machine use 'local'.
+# If you use a docker-machine on a mac use 'docker-machine'
+# If you want to deploy Openwhisk to other machines use 'distributed'
+environmentInformation:
+  type: "{{ environment_type | default('local') }}"
+
+hosts_dir: "{{ inventory_dir | default(env_hosts_dir) }}"
 
 whisk:
   version:
diff --git a/ansible/logs.yml b/ansible/logs.yml
index 3858438..73a84fa 100644
--- a/ansible/logs.yml
+++ b/ansible/logs.yml
@@ -44,7 +44,7 @@
   - name: set host flag when using docker remote API
     set_fact:
       docker_host_flag: "--host tcp://{{ ansible_host }}:{{ docker.port }}"
-    when: whisk_version_name != "local"
+    when: environmentInformation.type != "local"
   - name: get all docker containers
     local_action: shell docker {{ docker_host_flag }} ps -a --format="{% raw %}{{.Names}}{%
endraw %}"
     register: container_names
diff --git a/ansible/roles/controller/tasks/deploy.yml b/ansible/roles/controller/tasks/deploy.yml
index 29dcc1b..2d48c4f 100644
--- a/ansible/roles/controller/tasks/deploy.yml
+++ b/ansible/roles/controller/tasks/deploy.yml
@@ -124,9 +124,8 @@
       "COMPONENT_NAME": "{{ controller_name }}"
       "PORT": 8080
 
-      "WHISK_VERSION_NAME": "{{ whisk_version_name }}"
-      "WHISK_VERSION_DATE": "{{ whisk.version.date }}"
-      "WHISK_VERSION_BUILDNO": "{{ docker.image.tag }}"
+      "CONFIG_whisk_info_date": "{{ whisk.version.date }}"
+      "CONFIG_whisk_info_buildNo": "{{ docker.image.tag }}"
 
       "KAFKA_HOSTS": "{{ kafka_connect_string }}"
       "CONFIG_whisk_kafka_replicationFactor":
diff --git a/ansible/roles/invoker/tasks/deploy.yml b/ansible/roles/invoker/tasks/deploy.yml
index 98af399..2444bc5 100644
--- a/ansible/roles/invoker/tasks/deploy.yml
+++ b/ansible/roles/invoker/tasks/deploy.yml
@@ -41,22 +41,22 @@
 - name: "determine docker root dir on docker-machine"
   uri:  url="http://{{ ansible_host }}:{{ docker.port }}/info" return_content=yes
   register: dockerInfo_output
-  when: whisk_version_name == "mac"
+  when: environmentInformation.type == 'docker-machine'
 
 - set_fact:
     dockerInfo: "{{ dockerInfo_output['json'] }}"
-  when: whisk_version_name == "mac"
+  when: environmentInformation.type == "docker-machine"
 
 - name: "determine docker root dir"
   shell: echo -e "GET http:/v1.24/info HTTP/1.0\r\n" | nc -U /var/run/docker.sock | grep
"{"
   args:
     executable: /bin/bash
   register: dockerInfo_output
-  when: whisk_version_name != "mac"
+  when: environmentInformation.type != "docker-machine"
 
 - set_fact:
     dockerInfo: "{{ dockerInfo_output.stdout|from_json }}"
-  when: whisk_version_name != "mac"
+  when: environmentInformation.type != "docker-machine"
 
 - name: ensure invoker log directory is created with permissions
   file:
@@ -89,11 +89,11 @@
 - name: get running invoker information
   uri: url="http://{{ ansible_host }}:{{ docker.port }}/containers/json?filters={{ '{"name":[
"invoker" ],"ancestor":[ "invoker" ]}' | urlencode }}" return_content=yes
   register: invokerInfo_output
-  when: whisk_version_name == "mac"
+  when: environmentInformation.type == "docker-machine"
 
 - set_fact:
     invokerInfo: "{{ invokerInfo_output['json'] }}"
-  when: whisk_version_name == "mac"
+  when: environmentInformation.type == "docker-machine"
 
 - name: "get invoker info"
   shell: |
@@ -106,11 +106,11 @@
   args:
     executable: /bin/bash
   register: invokerInfo_output
-  when: whisk_version_name != "mac"
+  when: environmentInformation.type != "docker-machine"
 
 - set_fact:
     invokerInfo: "{{ invokerInfo_output.stdout|from_json }}"
-  when: whisk_version_name != "mac"
+  when: environmentInformation.type != "docker-machine"
 
 - name: determine if more than one invoker is running
   fail:
diff --git a/ansible/templates/whisk.properties.j2 b/ansible/templates/whisk.properties.j2
index bc7ff36..f367bf0 100644
--- a/ansible/templates/whisk.properties.j2
+++ b/ansible/templates/whisk.properties.j2
@@ -7,9 +7,7 @@ testing.auth={{ openwhisk_home }}/ansible/files/auth.guest
 vcap.services.file=
 
 whisk.logs.dir={{ whisk_logs_dir }}
-whisk.version.name={{ whisk_version_name }}
-whisk.version.date={{ whisk.version.date }}
-whisk.version.buildno={{ docker.image.tag }}
+environment.type={{ environmentInformation.type }}
 whisk.ssl.client.verification={{ nginx.ssl.verify_client }}
 whisk.ssl.cert={{ nginx.ssl.path }}/{{ nginx.ssl.cert }}
 whisk.ssl.key={{ nginx.ssl.path }}/{{ nginx.ssl.key }}
diff --git a/common/scala/src/main/scala/whisk/core/WhiskConfig.scala b/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
index a239aa7..fb20fda 100644
--- a/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
+++ b/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
@@ -154,10 +154,6 @@ object WhiskConfig {
   // in the invoker (they are part of the environment
   // passed to the user container)
   val edgeHostName = "edge.host"
-  val whiskVersionDate = "whisk.version.date"
-  val whiskVersionBuildno = "whisk.version.buildno"
-
-  val whiskVersion = Map(whiskVersionDate -> null, whiskVersionBuildno -> null)
 
   val invokerName = "invoker.name"
 
@@ -201,6 +197,7 @@ object WhiskConfig {
 object ConfigKeys {
   val cluster = "whisk.cluster"
   val loadbalancer = "whisk.loadbalancer"
+  val buildInformation = "whisk.info"
 
   val couchdb = "whisk.couchdb"
   val kafka = "whisk.kafka"
diff --git a/core/controller/src/main/scala/whisk/core/controller/RestAPIs.scala b/core/controller/src/main/scala/whisk/core/controller/RestAPIs.scala
index 9791fa8..e524060 100644
--- a/core/controller/src/main/scala/whisk/core/controller/RestAPIs.scala
+++ b/core/controller/src/main/scala/whisk/core/controller/RestAPIs.scala
@@ -17,38 +17,30 @@
 
 package whisk.core.controller
 
-import scala.concurrent.ExecutionContext
-
-import scala.util.Failure
-import scala.util.Success
-import scala.util.Try
-
 import akka.actor.ActorSystem
+import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
 import akka.http.scaladsl.model.StatusCodes._
 import akka.http.scaladsl.model.Uri
-import akka.http.scaladsl.server.Directives
-import akka.http.scaladsl.server.Route
 import akka.http.scaladsl.model.headers._
-import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
+import akka.http.scaladsl.server.{Directives, Route}
 import akka.stream.ActorMaterializer
-
-import spray.json._
+import pureconfig.loadConfigOrThrow
 import spray.json.DefaultJsonProtocol._
-import whisk.core.database.CacheChangeNotification
-import whisk.core.WhiskConfig
-import whisk.core.WhiskConfig.whiskVersionBuildno
-import whisk.core.WhiskConfig.whiskVersionDate
-import whisk.common.Logging
-import whisk.common.TransactionId
+import spray.json._
+import whisk.common.{Logging, TransactionId}
 import whisk.core.containerpool.logging.LogStore
+import whisk.core.database.CacheChangeNotification
 import whisk.core.entitlement._
-import whisk.core.entity._
 import whisk.core.entity.ActivationId.ActivationIdGenerator
-import whisk.core.entity.WhiskAuthStore
+import whisk.core.entity._
 import whisk.core.entity.types._
 import whisk.core.loadBalancer.LoadBalancer
+import whisk.core.{ConfigKeys, WhiskConfig}
 import whisk.http.Messages
 
+import scala.concurrent.ExecutionContext
+import scala.util.{Failure, Success, Try}
+
 /**
  * Abstract class which provides basic Directives which are used to construct route structures
  * which are common to all versions of the Rest API.
@@ -86,14 +78,12 @@ protected[controller] class SwaggerDocs(apipath: Uri.Path, doc: String)(implicit
 protected[controller] object RestApiCommons {
   def requiredProperties =
     Map(WhiskConfig.servicePort -> 8080.toString) ++
-      WhiskConfig.whiskVersion ++
       EntitlementProvider.requiredProperties ++
       WhiskActionsApi.requiredProperties
 
   import akka.http.scaladsl.model.HttpCharsets
   import akka.http.scaladsl.model.MediaTypes.`application/json`
-  import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller
-  import akka.http.scaladsl.unmarshalling.Unmarshaller
+  import akka.http.scaladsl.unmarshalling.{FromEntityUnmarshaller, Unmarshaller}
 
   /**
    * Extract an empty entity into a JSON object. This is useful for the
@@ -162,6 +152,8 @@ protected[controller] trait RespondWithHeaders extends Directives {
   val sendCorsHeaders = respondWithHeaders(allowOrigin, allowHeaders)
 }
 
+case class WhiskInformation(buildNo: String, date: String)
+
 class RestAPIVersion(config: WhiskConfig, apiPath: String, apiVersion: String)(
   implicit val activeAckTopicIndex: InstanceId,
   implicit val actorSystem: ActorSystem,
@@ -181,6 +173,7 @@ class RestAPIVersion(config: WhiskConfig, apiPath: String, apiVersion:
String)(
     with RespondWithHeaders {
   implicit val executionContext = actorSystem.dispatcher
   implicit val authStore = WhiskAuthStore.datastore()
+  val whiskInfo = loadConfigOrThrow[WhiskInformation](ConfigKeys.buildInformation)
 
   def prefix = pathPrefix(apiPath / apiVersion)
 
@@ -193,8 +186,8 @@ class RestAPIVersion(config: WhiskConfig, apiPath: String, apiVersion:
String)(
         "description" -> "OpenWhisk API".toJson,
         "api_version" -> SemVer(1, 0, 0).toJson,
         "api_version_path" -> apiVersion.toJson,
-        "build" -> whiskConfig(whiskVersionDate).toJson,
-        "buildno" -> whiskConfig(whiskVersionBuildno).toJson,
+        "build" -> whiskInfo.date.toJson,
+        "buildno" -> whiskInfo.buildNo.toJson,
         "swagger_paths" -> JsObject("ui" -> s"/$swaggeruipath".toJson, "api-docs" ->
s"/$swaggerdocpath".toJson)))
   }
 
diff --git a/tests/src/test/scala/actionContainers/ActionContainer.scala b/tests/src/test/scala/actionContainers/ActionContainer.scala
index e0a2caf..b9398cd 100644
--- a/tests/src/test/scala/actionContainers/ActionContainer.scala
+++ b/tests/src/test/scala/actionContainers/ActionContainer.scala
@@ -117,7 +117,7 @@ object ActionContainer {
         .orElse(sys.env.get("DOCKER_HOST"))
         .orElse {
           // Check if we are running on docker-machine env.
-          Option(WhiskProperties.getProperty("whisk.version.name")).filter(_.toLowerCase.contains("mac")).map
{
+          Option(WhiskProperties.getProperty("environment.type")).filter(_.toLowerCase.contains("docker-machine")).map
{
             case _ => s"tcp://${WhiskProperties.getMainDockerEndpoint}"
           }
         }


Mime
View raw message