tosca_definitions_version: tosca_simple_yaml_1_0

description: >
    * Adds OpenCloud Sites, Deployments, and Controllers.

imports:
   - custom_types/xos.yaml

topology_template:
  node_templates:

    MyDeployment:
      type: tosca.nodes.Deployment
      properties:
          flavors: m1.xlarge, m1.large, m1.medium, m1.small

    m1.xlarge:
      type: tosca.nodes.Flavor


    MyOpenStack:
      type: tosca.nodes.Controller
      requirements:
          - deployment:
              node: MyDeployment
              relationship: tosca.relationships.ControllerDeployment
      properties:
          backend_type: OpenStack
          version: Kilo
          auth_url: { get_script_env: [ SELF, adminrc, OS_AUTH_URL, LOCAL_FILE] }
          admin_user: { get_script_env: [ SELF, adminrc, OS_USERNAME, LOCAL_FILE] }
          admin_password: { get_script_env: [ SELF, adminrc, OS_PASSWORD, LOCAL_FILE] }
          admin_tenant: { get_script_env: [ SELF, adminrc, OS_TENANT_NAME, LOCAL_FILE] }
          domain: Default
      artifacts:
          adminrc: /root/setup/admin-openrc.sh

    mysite:
      type: tosca.nodes.Site
      properties:
          display_name: MySite
          site_url: http://xosproject.org/
      requirements:
          - deployment:
               node: MyDeployment
               relationship: tosca.relationships.MemberOfDeployment
          - controller:
               node: MyOpenStack
               relationship: tosca.relationships.UsesController
    Topology:
      type: tosca.nodes.DashboardView
      properties:
          url: template:xosMcordTopology

    # This user already exists in XOS with this password
    # It's an example of how to create new users
    padmin@vicci.org:
      type: tosca.nodes.User
      properties:
          is_admin: true
          is_active: true
          firstname: XOS
          lastname: admin
          password: letmein
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.MemberOfSite
          - mcord_dashboard:
              node: Topology
              relationship: tosca.relationships.UsesDashboard

    johndoe@stanford.us:
      type: tosca.nodes.User
      properties:
          is_active: true
          password: letmein
          firstname: john
          lastname: doe
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.MemberOfSite
    
    # A subscriber
    #Stanford:
    #   type: tosca.nodes.CORDSubscriber
    #   properties:
    #       service_specific_id: 123
    #       firewall_enable: false
    #       cdn_enable: false
    #       url_filter_enable: false
    #       url_filter_level: R
    #   requirements:
    #      - house_admin:
    #          node: johndoe@stanford.us
    #          relationship: tosca.relationships.AdminPrivilege

    #Barbera Lapinski:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #       mac: 01:02:03:04:05:06
    #       level: PG_13
    #   requirements:
    #       - household:
    #           node: Stanford
    #           relationship: tosca.relationships.SubscriberDevice

    #Norbert Shumway:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #       mac: 90:E2:BA:82:F9:75
    #       level: PG_13
    #   requirements:
    #       - household:
    #           node: Stanford
    #           relationship: tosca.relationships.SubscriberDevice

    #Fay Muldoon:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #       mac: 68:5B:35:9D:91:D5
    #       level: PG_13
    #   requirements:
    #       - household:
    #           node: Stanford
    #           relationship: tosca.relationships.SubscriberDevice

    #Janene Earnest:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #       mac: 34:36:3B:C9:B6:A6
    #       level: PG_13
    #   requirements:
    #       - household:
    #           node: Stanford
    #           relationship: tosca.relationships.SubscriberDevice

    RRU:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=vBBU
          icon_url: /static/mCordServices/service_rru.png
          kind: RAN

    eSON:
      type: tosca.nodes.Service
      properties:
          icon_url: /static/mCordServices/service_server.png
          view_url: http://www.google.com
          kind: RAN

    # EPC
    vMME:
      type: tosca.nodes.Service
      properties:
          icon_url: /static/mCordServices/service_server.png
          view_url: /mcord/?service=vMME
          kind: vEPC

    vSGW:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=vSGW
          icon_url: /static/mCordServices/service_server.png
          kind: vEPC


    # EDGE
    Cache:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Cache
          icon_url: /static/mCordServices/service_cache.png
          kind: EDGE

    Firewall:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Firewall
          icon_url: /static/mCordServices/service_firewall.png
          kind: EDGE

    Video Optimization:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Video%20Optimization
          icon_url: /static/mCordServices/service_video.png
          kind: EDGE

    RRU:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=vBBU
          icon_url: /static/mCordServices/service_rru.png
          kind: RAN
    eSON:
      type: tosca.nodes.Service
      properties:
          icon_url: /static/mCordServices/service_server.png
          view_url: http://www.google.com
          kind: RAN

    # EPC
    vMME:
      type: tosca.nodes.Service
      properties:
          icon_url: /static/mCordServices/service_server.png
          view_url: /mcord/?service=vMME
          kind: vEPC

    vSGW:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=vSGW
          icon_url: /static/mCordServices/service_server.png
          kind: vEPC

    vPGWC:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=vPGWC
          icon_url: /static/mCordServices/service_server.png
          kind: vEPC

    # EDGE
    Cache:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Cache
          icon_url: /static/mCordServices/service_cache.png
          kind: EDGE

    Firewall:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Firewall
          icon_url: /static/mCordServices/service_firewall.png
          kind: EDGE

    Video Optimization:
      type: tosca.nodes.Service
      properties:
          view_url: /mcord/?service=Video%20Optimization
          icon_url: /static/mCordServices/service_video.png
          kind: EDGE

