
{#
Copyright 2017-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.
#}


tosca_definitions_version: tosca_simple_yaml_1_0

description: Creates a CORD test subscriber, created by platform-install

imports:
  - custom_types/cordsubscriberroot.yaml
  - custom_types/site.yaml
  - custom_types/slice.yaml
  - custom_types/user.yaml
  - custom_types/voltservice.yaml
  - custom_types/voltdevice.yaml
  - custom_types/voltdeviceport.yaml
  - custom_types/serviceinstancelink.yaml

topology_template:
  node_templates:

    # site, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        name: {{ site_name }}
        must-exist: true

    # vsg slice, volt service, fully created in cord-services.yaml
    {{ site_name }}_vsg:
      type: tosca.nodes.Slice
      properties:
        name: {{ site_name }}_vsg
        must-exist: true

    service#volt:
      type: tosca.nodes.VOLTService
      properties:
        name: volt
        must-exist: true

    # Setup an OLT Device
    volt_device:
      type: tosca.nodes.VOLTDevice
      properties:
        name: test-volt-device
        device_id: volt-1
        host: 8.8.8.8
        port: 2194
      requirements:
        - volt_service:
            node: service#volt
            relationship: tosca.relationships.BelongsToOne

    volt_port:
      type: tosca.nodes.VOLTDevicePort
      properties:
        port_id: volt-port-1
        s_tag: 222
      requirements:
        - volt_device:
            node: volt_device
            relationship: tosca.relationships.BelongsToOne

    # A subscriber
    my_house:
      type: tosca.nodes.CordSubscriberRoot
      properties:
        name: My House
        service_specific_id: "123"
        firewall_enable: false
        cdn_enable: false
        url_filter_enable: false
        url_filter_level: R
        c_tag: 111
        olt_device: volt-1
        olt_port: volt-port-1

    # TODO needs to be moved to a new model (now they are JSON encoded)
    # Mom's PC:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 01:02:03:04:05:06
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Dad's PC:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 90:E2:BA:82:F9:75
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Jack's Laptop:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 68:5B:35:9D:91:D5
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Jill's Laptop:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 34:36:3B:C9:B6:A6
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice
