CORD-3045 Reoganize TOSCA for base-openstack profile

Change-Id: I8f17e43fee973b219ec23ae8279516786618ee10
diff --git a/xos-services/openstack/templates/_tosca.tpl b/xos-services/openstack/templates/_tosca.tpl
new file mode 100644
index 0000000..a2fdd94
--- /dev/null
+++ b/xos-services/openstack/templates/_tosca.tpl
@@ -0,0 +1,185 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-present Open Networking Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+{{- define "openstack.flavorTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+  - custom_types/flavor.yaml
+
+description: openstack flavor models
+
+topology_template:
+  node_templates:
+
+    m1.tiny:
+      type: tosca.nodes.Flavor
+      properties:
+        name: m1.tiny
+
+    m1.small:
+      type: tosca.nodes.Flavor
+      properties:
+        name: m1.small
+
+    m1.medium:
+      type: tosca.nodes.Flavor
+      properties:
+        name: m1.medium
+
+    m1.large:
+      type: tosca.nodes.Flavor
+      properties:
+        name: m1.large
+
+    m1.xlarge:
+      type: tosca.nodes.Flavor
+      properties:
+        name: m1.xlarge
+{{- end -}}
+
+{{- define "openstack.networkTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+  - custom_types/network.yaml
+  - custom_types/networktemplate.yaml
+  - custom_types/site.yaml
+  - custom_types/slice.yaml
+
+description: openstack flavor models
+
+topology_template:
+  node_templates:
+
+    {{ .cordSiteName }}:
+      type: tosca.nodes.Site
+      properties:
+        name: {{ .cordSiteName }}
+        must-exist: true
+
+# For private networks (e.g., per-slice)
+    private_template:
+      type: tosca.nodes.NetworkTemplate
+      properties:
+        name: Private
+        visibility: private
+        translation: none
+        vtn_kind: PRIVATE
+
+# management (vtn: MANAGEMENT_LOCAL) network
+    management_template:
+      type: tosca.nodes.NetworkTemplate
+      properties:
+        name: management_template
+        visibility: private
+        translation: none
+        vtn_kind: MANAGEMENT_LOCAL
+
+    management:
+      type: tosca.nodes.Network
+      properties:
+        name: management
+        # ip_version: 4
+        subnet: 172.27.0.0/24
+        permit_all_slices: true
+      requirements:
+        - template:
+            node: management_template
+            relationship: tosca.relationships.BelongsToOne
+        - owner:
+            node: slice#{{ .cordSiteName }}_management
+            relationship: tosca.relationships.BelongsToOne
+
+# Slice to own management networks
+    slice#{{ .cordSiteName }}_management:
+      description: This slice exists solely to own the management network(s)
+      type: tosca.nodes.Slice
+      properties:
+        network: noauto
+        name: {{ .cordSiteName }}_management
+      requirements:
+        - site:
+            node: {{ .cordSiteName }}
+            relationship: tosca.relationships.BelongsToOne
+{{- end -}}
+
+{{- define "openstack.controllerTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+  - custom_types/controller.yaml
+  - custom_types/controllersite.yaml
+  - custom_types/deployment.yaml
+  - custom_types/site.yaml
+  - custom_types/sitedeployment.yaml
+
+description: openstack controller models
+
+topology_template:
+  node_templates:
+
+    {{ .cordSiteName }}:
+      type: tosca.nodes.Site
+      properties:
+          name: {{ .cordSiteName }}
+          must-exist: true
+
+    {{ .cordDeploymentName }}:
+      type: tosca.nodes.Deployment
+      properties:
+        name: {{ .cordDeploymentName }}
+        must-exist: true
+
+    {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack:
+      type: tosca.nodes.Controller
+      requirements:
+        - deployment:
+            node: {{ .cordDeploymentName }}
+            relationship: tosca.relationships.BelongsToOne
+      properties:
+          name: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+          backend_type: OpenStack
+          version: Newton
+          auth_url: http://keystone.openstack.svc.cluster.local/v3
+          admin_user: {{ .keystoneAdminUser }}
+          admin_password: {{ .keystoneAdminPassword }}
+          admin_tenant: {{ .keystoneAdminTenant }}
+          domain: {{ .keystoneDomain }}
+
+    {{ .cordSiteName }}_deployment_{{ .cordDeploymentName }}:
+        type: tosca.nodes.SiteDeployment
+        requirements:
+            - site:
+                node: {{ .cordSiteName }}
+                relationship: tosca.relationships.BelongsToOne
+            - deployment:
+                node: {{ .cordDeploymentName }}
+                relationship: tosca.relationships.BelongsToOne
+            - controller:
+                node: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+                relationship: tosca.relationships.BelongsToOne
+
+    {{ .cordSiteName }}_openstack_controller:
+        type: tosca.nodes.ControllerSite
+        requirements:
+            - site:
+                node: {{ .cordSiteName }}
+                relationship: tosca.relationships.BelongsToOne
+            - controller:
+                node: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+                relationship: tosca.relationships.BelongsToOne
+{{- end -}}