From 3d06e07f9c69456dd5fb3b71f56b1b5834f10f63 Mon Sep 17 00:00:00 2001
From: Dmitriy R <dmitriy.r@sitevalley.com>
Date: Tue, 17 Jul 2018 17:14:44 +0300
Subject: [PATCH] Added required defaults, env example, Manage LB hook

I've decided to add env and required secrets example for easier stratup.
Also added missing variables to defaults, as playbook was just failiing without them.
Variables regarding rabbitmq were missing.
Also, as masakari_venv_download_url is not defined by default,
masakari_venv_download had been set to false.

Handlers were missing Manage LB task and had wrong variable -
masakari-services instead of masakari_services

Functional test was missing USER system environment variable.
Also test inventory had mistakes.

test-masakari-functions.yml wasn't able to pass test due to error.
Functional tests moved to voting.

Change-Id: I6644d576177f441ca59e9221ce9a2e5b7cc0fc46
---
 defaults/main.yml                  |  8 ++++++++
 examples/env.d/masakari.yml        | 25 +++++++++++++++++++++++++
 examples/masakari_secrets.yml      |  3 +++
 handlers/main.yml                  |  5 ++++-
 tasks/masakari_install.yml         |  6 +++---
 tests/host_vars/infra1.yml         |  2 +-
 tests/inventory                    | 11 ++++++-----
 tests/test-masakari-functional.yml |  1 +
 tox.ini                            |  1 +
 zuul.d/project.yaml                | 15 +++------------
 10 files changed, 55 insertions(+), 22 deletions(-)
 create mode 100644 examples/env.d/masakari.yml
 create mode 100644 examples/masakari_secrets.yml

diff --git a/defaults/main.yml b/defaults/main.yml
index ea792de..1683b5b 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -50,6 +50,7 @@ masakari_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('/etc/ssl/certs/ga
 # venv_download, even when true, will use the fallback method of building the
 # venv from scratch if the venv download fails.
 masakari_venv_download: "{{ not masakari_developer_mode | bool }}"
+masakari_venv_tag: untagged
 
 # Name of the virtual env to deploy into
 masakari_bin: "/openstack/venvs/masakari-{{ masakari_venv_tag }}/bin"
@@ -124,3 +125,10 @@ masakari_services:
 # pip packages required by this role. The value is picked up
 # by the py_pkgs lookup.
 masakari_role_project_group: masakari_all
+
+## Configuration for RPC communications
+masakari_rabbitmq_userid: masakari
+masakari_rabbitmq_vhost: /masakari
+masakari_rabbitmq_port: 5672
+# Comma separated list of hosts
+masakari_rabbitmq_servers: "{{ rabbitmq_all|default('127.0.0.1') }}"
diff --git a/examples/env.d/masakari.yml b/examples/env.d/masakari.yml
new file mode 100644
index 0000000..7bb68a6
--- /dev/null
+++ b/examples/env.d/masakari.yml
@@ -0,0 +1,25 @@
+---
+component_skel:
+  masakari_engine:
+    belongs_to:
+      - masakari_all
+  masakari_api:
+    belongs_to:
+      - masakari_all
+
+container_skel:
+  masakari_container:
+    belongs_to:
+      - instance_ha_containers
+      - masakari-infra_hosts
+    contains:
+      - masakari_engine
+      - masakari_api
+
+physical_skel:
+  instance_ha_containers:
+    belongs_to:
+      - all_containers
+  masakari_hosts:
+    belongs_to:
+      - hosts
\ No newline at end of file
diff --git a/examples/masakari_secrets.yml b/examples/masakari_secrets.yml
new file mode 100644
index 0000000..69e21fd
--- /dev/null
+++ b/examples/masakari_secrets.yml
@@ -0,0 +1,3 @@
+masakari_container_mysql_password:
+masakari_rabbitmq_password:
+masakari_service_password:
\ No newline at end of file
diff --git a/handlers/main.yml b/handlers/main.yml
index 57e19c9..acdbd85 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -18,6 +18,9 @@
     name: "{{ item.value.service_name }}"
     state: restarted
     daemon_reload: yes
-  with_dict: "{{ masakari-services }}"
+  with_dict: "{{ masakari_services }}"
   when: inventory_hostname in groups[item.value.group]
 
+- meta: noop
+  listen: Manage LB
+  when: false
\ No newline at end of file
diff --git a/tasks/masakari_install.yml b/tasks/masakari_install.yml
index f1a2405..2252f7e 100644
--- a/tasks/masakari_install.yml
+++ b/tasks/masakari_install.yml
@@ -124,9 +124,9 @@
     section: masakari
     option: need_service_restart
     value: True
-  when: (masakari_get_venv | changed) or
-        (masakari_venv_dir | changed) or
-        (install_packages | changed) or
+  when: (masakari_get_venv is changed) or
+        (masakari_venv_dir is changed) or
+        (install_packages is changed) or
         (ansible_local is not defined) or
         ('openstack_ansible' not in ansible_local) or
         ('masakari' not in ansible_local['openstack_ansible']) or
diff --git a/tests/host_vars/infra1.yml b/tests/host_vars/infra1.yml
index 671e847..be40819 100644
--- a/tests/host_vars/infra1.yml
+++ b/tests/host_vars/infra1.yml
@@ -13,6 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-ansible_host: 10.1.1.101
+ansible_host: 10.1.0.2
 ansible_become: True
 ansible_user: root
diff --git a/tests/inventory b/tests/inventory
index e257362..1f49378 100644
--- a/tests/inventory
+++ b/tests/inventory
@@ -24,14 +24,15 @@ memcached_all
 [keystone_all]
 infra1
 
-[masakari_all]
-masakari1
+[masakari_all:children]
+masakari_api
+masakari_engine
 
 [utility_all]
 masakari1
 
 [masakari_api]
-masakari
-
-[masakari_all]
+masakari1
+
+[masakari_engine]
 masakari1
diff --git a/tests/test-masakari-functional.yml b/tests/test-masakari-functional.yml
index 613338a..a9f1e75 100644
--- a/tests/test-masakari-functional.yml
+++ b/tests/test-masakari-functional.yml
@@ -26,3 +26,4 @@
       until: result.status == 200
       retries: 5
       delay: 10
+
diff --git a/tox.ini b/tox.ini
index e7a26c3..1f7d4ac 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,6 +18,7 @@ passenv =
     HTTPS_PROXY
     no_proxy
     NO_PROXY
+    USER
 whitelist_externals =
     bash
 setenv =
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index f58e024..f5e2938 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -14,15 +14,6 @@
 # limitations under the License.
 
 - project:
-    check:
-      jobs:
-        - openstack-ansible-linters
-        - openstack-ansible-functional-centos-7:
-            voting: false
-        - openstack-ansible-functional-opensuse-423:
-            voting: false
-        - openstack-ansible-functional-ubuntu-xenial:
-            voting: false
-    gate:
-      jobs:
-        - openstack-ansible-linters
+    templates:
+      - openstack-ansible-role-jobs
+