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

