CORD-871: Migrating monitoring service to new build system-phase2

Change-Id: Ifc244500ee4ad0733fbe64ddaf095b61aba13926
diff --git a/monitoringservice-enable-exampleservicemonitoring.yml b/monitoringservice-enable-exampleservicemonitoring.yml
new file mode 100644
index 0000000..1187537
--- /dev/null
+++ b/monitoringservice-enable-exampleservicemonitoring.yml
@@ -0,0 +1,27 @@
+---
+# monitoringservice-enable-exampleservicemonitoring.yml
+# Enables monitoring for exampleservice
+# ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-enable-exampleservicemonitoring.yml
+
+- name: Include vars
+  hosts: all
+  tasks:
+    - name: Include variables
+      include_vars: "{{ item }}"
+      with_items:
+        - "profile_manifests/{{ cord_profile }}.yml"
+        - profile_manifests/local_vars.yml
+
+- name: Create config files for enabling exampleservice monitoring
+  hosts: head
+  roles:
+    - monitoringservice-enable-exampleservicemonitoring-config
+
+- include: add-onboard-containers-playbook.yml
+
+- name: Run role to execute TOSCA file
+  hosts: xos_ui
+  connection: docker
+  roles:
+    - monitoringservice-enable-exampleservicemonitoring
+
diff --git a/monitoringservice-enable-vsgmonitoring.yml b/monitoringservice-enable-vsgmonitoring.yml
new file mode 100644
index 0000000..ae8841a
--- /dev/null
+++ b/monitoringservice-enable-vsgmonitoring.yml
@@ -0,0 +1,27 @@
+---
+# monitoringservice-enable-vsgmonitoring.yml
+# Enables monitoring for vSG service
+# ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-enable-vsgmonitoring.yml
+
+- name: Include vars
+  hosts: all
+  tasks:
+    - name: Include variables
+      include_vars: "{{ item }}"
+      with_items:
+        - "profile_manifests/{{ cord_profile }}.yml"
+        - profile_manifests/local_vars.yml
+
+- name: Create config files for enabling vSG monitoring
+  hosts: head
+  roles:
+    - monitoringservice-enable-vsgmonitoring-config
+
+- include: add-onboard-containers-playbook.yml
+
+- name: Run role to execute TOSCA file
+  hosts: xos_ui
+  connection: docker
+  roles:
+    - monitoringservice-enable-vsgmonitoring
+
diff --git a/roles/monitoringservice-enable-exampleservicemonitoring-config/tasks/main.yml b/roles/monitoringservice-enable-exampleservicemonitoring-config/tasks/main.yml
new file mode 100644
index 0000000..9e92bd5
--- /dev/null
+++ b/roles/monitoringservice-enable-exampleservicemonitoring-config/tasks/main.yml
@@ -0,0 +1,11 @@
+
+---
+# monitoringservice-enable-exampleservicemonitoring-config/tasks/main.yml
+
+- name: TOSCA files to enable exampleservice monitoring
+  template:
+    src: "{{ item }}.j2"
+    dest: "{{ cord_profile_dir }}/{{ item }}"
+  with_items:
+    - "exampleservicemonitoring.yaml"
+
diff --git a/roles/monitoringservice-enable-exampleservicemonitoring-config/templates/exampleservicemonitoring.yaml.j2 b/roles/monitoringservice-enable-exampleservicemonitoring-config/templates/exampleservicemonitoring.yaml.j2
new file mode 100644
index 0000000..9d8a20d
--- /dev/null
+++ b/roles/monitoringservice-enable-exampleservicemonitoring-config/templates/exampleservicemonitoring.yaml.j2
@@ -0,0 +1,36 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Setup CORD-related services -- vOLT, vCPE, vBNG.
+
+imports:
+   - custom_types/xos.yaml
+   - custom_types/monitoring_tosca_types.yaml
+   - custom_types/exampleservice.yaml
+
+topology_template:
+  node_templates:
+    service_ceilometer:
+      type: tosca.nodes.CeilometerService
+      properties:
+          no-create: true
+          no-update: true
+          no-delete: true
+
+    service#exampleservice:
+      type: tosca.nodes.ExampleService
+      properties:
+          no-create: true
+          no-update: true
+          no-delete: true
+
+    exampleservice_monitoring_publisher_tenant:
+      description: Monitoring Publisher Tenant for Example service
+      type: tosca.nodes.UserServiceMonitoringPublisher
+      requirements:
+          - provider_service:
+              node: service_ceilometer
+              relationship: tosca.relationships.TenantOfService
+          - target_service:
+              node: service#exampleservice
+              relationship: tosca.relationships.PublishesMonitoringData
+
diff --git a/roles/monitoringservice-enable-exampleservicemonitoring/tasks/main.yml b/roles/monitoringservice-enable-exampleservicemonitoring/tasks/main.yml
new file mode 100644
index 0000000..aa5a17d
--- /dev/null
+++ b/roles/monitoringservice-enable-exampleservicemonitoring/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+# monitoringservice-enable-exampleservicemonitoring/tasks/main.yml
+
+- name: Run TOSCA to enable exampleservice monitoring
+  command: "python /opt/xos/tosca/run.py {{ xos_admin_user }} /opt/cord_profile/exampleservicemonitoring.yaml"
+  tags:
+    - skip_ansible_lint # TOSCA loading should be idempotent
+
diff --git a/roles/monitoringservice-enable-vsgmonitoring-config/tasks/main.yml b/roles/monitoringservice-enable-vsgmonitoring-config/tasks/main.yml
new file mode 100644
index 0000000..b6d8312
--- /dev/null
+++ b/roles/monitoringservice-enable-vsgmonitoring-config/tasks/main.yml
@@ -0,0 +1,11 @@
+
+---
+# monitoringservice-enable-vsgmonitoring-config/tasks/main.yml
+
+- name: TOSCA files to enable vSG service monitoring
+  template:
+    src: "{{ item }}.j2"
+    dest: "{{ cord_profile_dir }}/{{ item }}"
+  with_items:
+    - "vsgmonitoring.yaml"
+
diff --git a/roles/monitoringservice-enable-vsgmonitoring-config/templates/vsgmonitoring.yaml.j2 b/roles/monitoringservice-enable-vsgmonitoring-config/templates/vsgmonitoring.yaml.j2
new file mode 100644
index 0000000..bed81d9
--- /dev/null
+++ b/roles/monitoringservice-enable-vsgmonitoring-config/templates/vsgmonitoring.yaml.j2
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Setup CORD-related services -- vOLT, vCPE, vBNG.
+
+imports:
+   - custom_types/xos.yaml
+   - custom_types/monitoring_tosca_types.yaml
+
+topology_template:
+  node_templates:
+    service_ceilometer:
+      type: tosca.nodes.CeilometerService
+      properties:
+          no-create: true
+          no-update: true
+          no-delete: true
+
+    service#vsg:
+      type: tosca.nodes.VSGService
+      properties:
+          no-create: true
+          no-update: true
+          no-delete: true
+
+    vsg_monitoring_publisher_tenant:
+      description: vSG Monitoring Publisher Tenant
+      type: tosca.nodes.UserServiceMonitoringPublisher
+      requirements:
+          - provider_service:
+              node: service_ceilometer
+              relationship: tosca.relationships.TenantOfService
+          - target_service:
+              node: service#vsg
+              relationship: tosca.relationships.PublishesMonitoringData
diff --git a/roles/monitoringservice-enable-vsgmonitoring/tasks/main.yml b/roles/monitoringservice-enable-vsgmonitoring/tasks/main.yml
new file mode 100644
index 0000000..6fc1cd4
--- /dev/null
+++ b/roles/monitoringservice-enable-vsgmonitoring/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+# monitoringservice-enable-vsgmonitoring/tasks/main.yml
+
+- name: Run TOSCA to enable vSG monitoring
+  command: "python /opt/xos/tosca/run.py {{ xos_admin_user }} /opt/cord_profile/vsgmonitoring.yaml"
+  tags:
+    - skip_ansible_lint # TOSCA loading should be idempotent
+