# 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.

# curl -H "xos-username: admin@opencord.org" -H "xos-password: letmein" -X POST --data-binary @onlab-pod1-olt.yaml http://10.90.0.101:30007/run

tosca_definitions_version: tosca_simple_yaml_1_0
imports:
  - custom_types/oltdevice.yaml
  - custom_types/onudevice.yaml
  - custom_types/voltservice.yaml
  - custom_types/attworkflowdriverwhitelistentry.yaml
  - custom_types/attworkflowdriverservice.yaml
  - custom_types/rcordsubscriber.yaml
  - custom_types/switch.yaml
  - custom_types/switchport.yaml
description: Create a simulated OLT Device in VOLTHA
topology_template:
  node_templates:

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

    # CIG
    olt_device:
      type: tosca.nodes.OLTDevice
      properties:
        name: CIG
        device_type: openolt
        host: 10.90.0.115
        port: 10400
        switch_datapath_id: of:0000000000000001
        switch_port: "4"
        outer_tpid: "0x8100"
        uplink: "65536"
        nas_id: "NAS_ID"
      requirements:
        - volt_service:
            node: service#volt
            relationship: tosca.relationships.BelongsToOne

    # Whitelist
    service#att:
      type: tosca.nodes.AttWorkflowDriverService
      properties:
        name: att-workflow-driver
        must-exist: true

    CIG:
      type: tosca.nodes.AttWorkflowDriverWhiteListEntry
      properties:
        serial_number: CIGG70606829
        pon_port_id: 536870913
        device_id: of:000000000a5a0073
      requirements:
        - owner:
            node: service#att
            relationship: tosca.relationships.BelongsToOne

    # Pre-provision the subscriber
    cig_subscriber_1:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_CIGG70606829
        status: pre-provisioned
        c_tag: 444
        s_tag: 444
        onu_device: CIGG70606829
        nas_port_id : "PON 1/1/03/1:1.1.1"
        circuit_id: foo1
        remote_id: bar1

    switch#leaf_1:
      type: tosca.nodes.Switch
      properties:
        name: AGG_SWITCH
        must-exist: true

    port#cig_olt_port:
      type: tosca.nodes.SwitchPort
      properties:
        portId: 4
        host_learning: false
      requirements:
        - switch:
            node: switch#leaf_1
            relationship: tosca.relationships.BelongsToOne