blob: 7c4cfd7fb958bb1eac8a5edb8ffa41ecfecc453a [file] [log] [blame]
FN=$SETUPDIR/fabric.yaml
rm -f $FN
cat >> $FN <<EOF
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- custom_types/xos.yaml
description: generate fabric configuration
topology_template:
node_templates:
service#ONOS_Fabric:
type: tosca.nodes.ONOSService
requirements:
properties:
kind: onos
view_url: /admin/onos/onosservice/\$id$/
no_container: true
rest_hostname: onos-fabric
replaces: service_ONOS_Fabric
rest_onos/v1/network/configuration/: { get_artifact: [ SELF, fabric_network_cfg_json, LOCAL_FILE ] }
artifacts:
fabric_network_cfg_json: /root/setup/base-config-2x2
service#fabric:
type: tosca.nodes.FabricService
properties:
view_url: /admin/fabric/fabricservice/\$id\$/
replaces: service_fabric
EOF
NODES=$( bash -c "source $SETUPDIR/admin-openrc.sh ; nova host-list" |grep compute|awk '{print $2}' )
I=0
for NODE in $NODES; do
echo $NODE
cat >> $FN <<EOF
$NODE:
type: tosca.nodes.Node
# Fabric location field for node $NODE
${NODE}_location_tag:
type: tosca.nodes.Tag
properties:
name: location
value: of:0000000000000001/1
requirements:
- target:
node: $NODE
relationship: tosca.relationships.TagsObject
- service:
node: service#ONOS_Fabric
relationship: tosca.relationships.MemberOfService
EOF
done
cat >> $FN <<EOF
Fabric_ONOS_app:
type: tosca.nodes.ONOSApp
requirements:
- onos_tenant:
node: service#ONOS_Fabric
relationship: tosca.relationships.TenantOfService
- fabric_service:
node: service#fabric
relationship: tosca.relationships.UsedByService
properties:
dependencies: org.onosproject.drivers, org.onosproject.openflow-base, org.onosproject.netcfghostprovider, org.onosproject.netcfglinksprovider, org.onosproject.segmentrouting, org.onosproject.vrouter, org.onosproject.hostprovider
EOF