tosca_definitions_version: tosca_simple_yaml_1_0

description: Setup CORD-related services -- vOLT, vCPE, vBNG.

imports:
   - custom_types/xos.yaml

node_types:
    tosca.nodes.CeilometerTenant:
        derived_from: tosca.nodes.Root
        description: >
            CORD: A Tenant of the Ceilometer Service.
        properties:
            kind:
                type: string
                default: generic
                description: Kind of tenant

topology_template:
  node_templates:
    service_ceilometer:
      type: tosca.nodes.Service
      requirements:
      properties:
          view_url: /admin/ceilometer/ceilometerservice/$id$/
          kind: ceilometer
#          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
#      artifacts:
#          pubkey: /opt/xos/observers/vcpe/vcpe_public_key


    Private:
      type: tosca.nodes.NetworkTemplate

    ceilometer_network:
      type: tosca.nodes.network.Network.XOS
      properties:
          ip_version: 4
          labels: ceilometer_client_access
      requirements:
          - network_template:
              node: Private
              relationship: tosca.relationships.UsesNetworkTemplate
          - owner:
              node: mysite_ceilometer
              relationship: tosca.relationships.MemberOfSlice
          - connection:
              node: mysite_ceilometer
              relationship: tosca.relationships.ConnectsToSlice

    mysite:
      type: tosca.nodes.Site

    mysite_ceilometer:
      description: Ceilometer Proxy Slice
      type: tosca.nodes.Slice
      requirements:
          - ceilometer_service:
              node: service_ceilometer
              relationship: tosca.relationships.MemberOfService
          - site:
              node: mysite
              relationship: tosca.relationships.MemberOfSite

    my_ceilometer_tenant:
      description: Ceilometer Service default Tenant
      type: tosca.nodes.CeilometerTenant
      requirements:
          - provider_service:
              node: service_ceilometer
              relationship: tosca.relationships.MemberOfService
       
    Ceilometer:
      type: tosca.nodes.DashboardView
      properties:
          url: { get_artifact: [ SELF, ceilometer_url, LOCAL_FILE] }
      artifacts:
          ceilometer_url: /root/setup/ceilometer_url

    Tenant:
      type: tosca.nodes.DashboardView
      properties:
          no-create: true
          no-update: true
          no-delete: true

    padmin@vicci.org:
      type: tosca.nodes.User
      properties:
          firstname: XOS
          lastname: admin
          is_admin: true
      requirements:
          - tenant_dashboard:
              node: Tenant
              relationship: tosca.relationships.UsesDashboard
          - ceilometer_dashboard:
              node: Ceilometer
              relationship: tosca.relationships.UsesDashboard
