[CORD-1724] Add Ability to Create Tenants/Instances in TOSCA

Change-Id: Ic58116693de06c650a32361b5bdacc900f6373f9
diff --git a/roles/test-mcord-tenants-config/defaults/main.yml b/roles/test-mcord-tenants-config/defaults/main.yml
new file mode 100644
index 0000000..30ea86a
--- /dev/null
+++ b/roles/test-mcord-tenants-config/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+# test-mcord-tenants-config/defaults/main.yml
+
+cord_profile_dir: "{{ ansible_user_dir + '/cord_profile' }}"
diff --git a/roles/test-mcord-tenants-config/tasks/main.yml b/roles/test-mcord-tenants-config/tasks/main.yml
new file mode 100644
index 0000000..10c2ba9
--- /dev/null
+++ b/roles/test-mcord-tenants-config/tasks/main.yml
@@ -0,0 +1,9 @@
+---
+# test-mcord-tenants-config/tasks/main.yml
+
+- name: Create onboard-mcord-tenants.yaml TOSCA config
+  template:
+    src: onboard-mcord-tenants.yaml.j2
+    dest: "{{ cord_profile_dir }}/onboard-mcord-tenants.yaml"
+    owner: "{{ ansible_user_id }}"
+    mode: 0644
diff --git a/roles/test-mcord-tenants-config/templates/onboard-mcord-tenants.yaml.j2 b/roles/test-mcord-tenants-config/templates/onboard-mcord-tenants.yaml.j2
new file mode 100644
index 0000000..1e55678
--- /dev/null
+++ b/roles/test-mcord-tenants-config/templates/onboard-mcord-tenants.yaml.j2
@@ -0,0 +1,81 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Creates desired M-CORD instances and tenants during build time
+
+imports:
+   - custom_types/xos.yaml
+   - custom_types/vbbu.yaml
+   - custom_types/vmme.yaml
+
+topology_template:
+  node_templates:
+
+# site, fully created in deployment.yaml
+    {{ site_name }}:
+      type: tosca.nodes.Site
+      properties:
+        no-delete: true
+        no-create: true
+        no-update: true
+
+    trusty-server-multi-nic:
+      type: tosca.nodes.Image
+
+# vbbu and vmme  slices/services fully created in mcord-services.yaml
+    service#vbbu:
+      type: tosca.nodes.VBBUService
+      properties:
+        no-delete: true
+        no-create: true
+        no-update: true
+
+    service#vmme:
+      type: tosca.nodes.VMMEService
+      properties:
+        no-delete: true
+        no-create: true
+        no-update: true
+
+    mysite_vBBU_slice:
+      type: tosca.nodes.Slice
+      properties:
+        no-delete: true
+        no-create: true
+        no-update: true
+
+    mysite_vMME_slice:
+      type: tosca.nodes.Slice
+      properties:
+        no-delete: true
+        no-create: true
+        no-update: true
+
+# create a sample tenant and sample instance
+    tenant#vmmetenant1:
+      type: tosca.nodes.VMMETenant
+      properties:
+           kind: vEPC
+      requirements:
+          - tenant:
+              node: service#vmme
+              relationship: tosca.relationships.TenantOfService
+          - dependency:
+              node: mysite_vMME_slice
+              relationship: tosca.relationships.DependsOn
+
+    instance#vbbuinstance1:
+      type: tosca.nodes.Compute
+      capabilities:
+          # Host container properties
+          host:
+            properties:
+              num_cpus: 1
+              disk_size: 10 GB
+              mem_size: 2 GB
+      requirements:
+          - slice:
+              node: mysite_vBBU_slice
+              relationship: tosca.relationships.MemberOfSlice
+          - image:
+              node: trusty-server-multi-nic
+              relationship: tosca.relationships.UseImage
diff --git a/roles/test-mcord-tenants-enable/tasks/main.yml b/roles/test-mcord-tenants-enable/tasks/main.yml
new file mode 100644
index 0000000..e29c088
--- /dev/null
+++ b/roles/test-mcord-tenants-enable/tasks/main.yml
@@ -0,0 +1,7 @@
+---
+# test-mcord-tenants-enable/tasks/main.yml
+
+- name: Run TOSCA to add MCORD tenants and instances
+  command: "python /opt/xos/tosca/run.py {{ xos_admin_user }} /opt/cord_profile/onboard-mcord-tenants.yaml"
+  tags:
+    - skip_ansible_lint # TOSCA loading should be idempotent
\ No newline at end of file