Add vSGWU and vPGWU services, and rename vSGW to vSGWC

Change-Id: Iddcee51b958f125a7878a2ed2dd4b419ba7e977e
diff --git a/profile_manifests/mcord.yml b/profile_manifests/mcord.yml
index 6aa141a..694bc22 100644
--- a/profile_manifests/mcord.yml
+++ b/profile_manifests/mcord.yml
@@ -78,12 +78,8 @@
     path: orchestration/xos_services/vmme
     keypair: mcord_rsa
     synchronizer: true
-  - name: vsgw
-    path: orchestration/xos_services/vsgw
-    keypair: mcord_rsa
-    synchronizer: true
-  - name: vpgwc
-    path: orchestration/xos_services/vpgwc
+  - name: vsgwc
+    path: orchestration/xos_services/vsgwc
     keypair: mcord_rsa
     synchronizer: true
   - name: vhss
@@ -98,6 +94,18 @@
     path: orchestration/xos_services/vsm
     keypaird: mcord_rsa
     synchronizer: true
+  - name: vpgwc
+    path: orchestration/xos_services/vpgwc
+    keypaird: mcord_rsa
+    synchronizer: true
+  - name: vpgwu
+    path: orchestration/xos_services/vpgwu
+    keypaird: mcord_rsa
+    synchronizer: true
+  - name: vsgwu
+    path: orchestration/xos_services/vsgwu
+    keypaird: mcord_rsa
+    synchronizer: true
 # needed onboarding synchronizer doesn't require service code to be present when started
   - name: exampleservice
     path: orchestration/xos_services/exampleservice
diff --git a/roles/cord-profile/templates/mcord-services.yaml.j2 b/roles/cord-profile/templates/mcord-services.yaml.j2
index eca2d08..cb736cc 100644
--- a/roles/cord-profile/templates/mcord-services.yaml.j2
+++ b/roles/cord-profile/templates/mcord-services.yaml.j2
@@ -6,9 +6,11 @@
    - custom_types/xos.yaml
    - custom_types/vmme.yaml
    - custom_types/vbbu.yaml
-   - custom_types/vsgw.yaml
+   - custom_types/vsgwc.yaml
+   - custom_types/vsgwu.yaml
    - custom_types/vhss.yaml
    - custom_types/vpgwc.yaml
+   - custom_types/vpgwu.yaml
    - custom_types/vmm.yaml
    - custom_types/vsm.yaml
 
@@ -119,13 +121,33 @@
       artifacts:
           pubkey: /opt/cord_profile/key_import/mcord_rsa.pub
 
-    service#vsgw:
-      type: tosca.nodes.VSGWService
+    service#vpgwu:
+      type: tosca.nodes.VPGWUService
       properties:
-          view_url: /admin/vsgw/vsgwservice/$id$/
+          view_url: /admin/vpgwu/vpgwuservice/$id$/
           kind: vEPC
           public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
-          private_key_fn: /opt/xos/services/vsgw/keys/mcord_rsa
+          private_key_fn: /opt/xos/services/vpgwu/keys/mcord_rsa
+      artifacts:
+          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub
+
+    service#vsgwc:
+      type: tosca.nodes.VSGWCService
+      properties:
+          view_url: /admin/vsgwc/vsgwcservice/$id$/
+          kind: vEPC
+          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
+          private_key_fn: /opt/xos/services/vsgwc/keys/mcord_rsa
+      artifacts:
+          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub
+
+    service#vsgwu:
+      type: tosca.nodes.VSGWUService
+      properties:
+          view_url: /admin/vsgwu/vsgwuservice/$id$/
+          kind: vEPC
+          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
+          private_key_fn: /opt/xos/services/vsgwu/keys/mcord_rsa
       artifacts:
           pubkey: /opt/cord_profile/key_import/mcord_rsa.pub
 
@@ -243,8 +265,8 @@
               node: wan_network
               relationship: tosca.relationships.ConnectsToNetwork
 
-    mysite_vSGW_slice:
-      description: vSGW Service Slice
+    mysite_vSGWC_slice:
+      description: vSGWC Service Slice
       type: tosca.nodes.Slice
       properties:
           network: noauto
@@ -253,7 +275,32 @@
               node: mysite
               relationship: tosca.relationships.MemberOfSite
           - vSGW:
-              node: service#vsgw
+              node: service#vsgwc
+              relationship: tosca.relationships.MemberOfService
+          - default_image:
+              node: trusty-server-multi-nic
+              relationship: tosca.relationships.DefaultImage
+          - default_flavor:
+              node: m1.small
+              relationship: tosca.relationships.DefaultFlavor
+          - connection_to_management:
+              node: management
+              relationship: tosca.relationships.ConnectsToNetwork
+          - connection_to_shared_network:
+              node: shared_network
+              relationship: tosca.relationships.ConnectsToNetwork
+
+    mysite_vSGWU_slice:
+      description: vSGWU Service Slice
+      type: tosca.nodes.Slice
+      properties:
+          network: noauto
+      requirements:
+          - site:
+              node: mysite
+              relationship: tosca.relationships.MemberOfSite
+          - vSGW:
+              node: service#vsgwu
               relationship: tosca.relationships.MemberOfService
           - default_image:
               node: trusty-server-multi-nic
@@ -296,6 +343,34 @@
               node: wan_network
               relationship: tosca.relationships.ConnectsToNetwork
 
+    mysite_vPGWU_slice:
+      description: vPGWU Service Slice
+      type: tosca.nodes.Slice
+      properties:
+          network: noauto
+      requirements:
+          - site:
+              node: mysite
+              relationship: tosca.relationships.MemberOfSite
+          - vPGWC:
+              node: service#vpgwu
+              relationship: tosca.relationships.MemberOfService
+          - default_image:
+              node: trusty-server-multi-nic
+              relationship: tosca.relationships.DefaultImage
+          - default_flavor:
+              node: m1.small
+              relationship: tosca.relationships.DefaultFlavor
+          - connection_to_management:
+              node: management
+              relationship: tosca.relationships.ConnectsToNetwork
+          - connection_to_shared_network:
+              node: shared_network
+              relationship: tosca.relationships.ConnectsToNetwork
+          - connection_to_wan_network:
+              node: wan_network
+              relationship: tosca.relationships.ConnectsToNetwork
+
     mysite_vMM_slice:
       description: vMM Service Slice
       type: tosca.nodes.Slice