diff options
Diffstat (limited to 'resources/topology_schemas')
-rw-r--r-- | resources/topology_schemas/3_node_topology.sch.yaml | 49 | ||||
-rw-r--r-- | resources/topology_schemas/topology.sch.yaml | 113 |
2 files changed, 162 insertions, 0 deletions
diff --git a/resources/topology_schemas/3_node_topology.sch.yaml b/resources/topology_schemas/3_node_topology.sch.yaml new file mode 100644 index 0000000000..da5c368bc6 --- /dev/null +++ b/resources/topology_schemas/3_node_topology.sch.yaml @@ -0,0 +1,49 @@ +# Copyright (c) 2016 Cisco and/or its affiliates. +# 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. + +# This file defines required nodes for 3-node topology. + +name: 3_node_topology + +# +------+ +-----+ port1 +# | | port1 port3 | +------+ +# | DUT1 +-----------------+ TG | | +# | +-----------------+ +------+ +# | | port2 port4 | | port2 +# +-+-+--+ +-+-+-+ +# port3 | | port4 port5 | | port6 +# | | | | +# | | | | +# port3 | | port4 | | +# +-+-+--+ | | +# | | port1 | | +# | DUT2 +-------------------+ | +# | +---------------------+ +# | | port2 +# +------+ + +type: map +mapping: + metadata: + include: topology_metadata_map + + nodes: + type: map + required: yes + mapping: + TG: + include: type_tg + DUT1: + include: type_dut + DUT2: + include: type_dut diff --git a/resources/topology_schemas/topology.sch.yaml b/resources/topology_schemas/topology.sch.yaml new file mode 100644 index 0000000000..b69cd2df02 --- /dev/null +++ b/resources/topology_schemas/topology.sch.yaml @@ -0,0 +1,113 @@ +# Copyright (c) 2016 Cisco and/or its affiliates. +# 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. + +# This file defines yaml schema for topolgy yaml. + +schema;topology_metadata_map: + type: map + mapping: + version: + type: any + schema: + required: yes + type: seq + sequence: + - type: str + unique: True + tags: + include: list_tags + check_script: + type: str + start_script: + type: str + + +schema;list_tags: + type: seq + sequence: + - type: str + unique: True + +schema;type_interfaces: + type: map + mapping: &type_interface_mapping + regex;(port\d+): &type_interface_mapping_port + type: map + mapping: &type_interface_mapping_port_mapping + name: + type: str + pci_address: + type: str + pattern: "[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\\.\\d{1}" + mac_address: + type: str + pattern: "[0-9a-f]{2}(:[0-9a-f]{2}){5}" + link: + type: str + required: yes + driver: &type_interface_mapping_driver + type: str + +schema;type_interface_tg: &type_interface_tg + type: map + mapping: + <<: *type_interface_mapping + regex;(port\d+): + <<: *type_interface_mapping_port + mapping: + <<: *type_interface_mapping_port_mapping + driver: + <<: *type_interface_mapping_driver + required: yes + +schema;type_node: &type_node + type: map + mapping: &type_node_mapping + type: &type_node_mapping_type + required: yes + type: str + host: + required: yes + type: str + port: + type: int + username: + type: str + password: + type: str + priv_key: + type: str + interfaces: + type: map + mapping: + <<: *type_interface_mapping + +schema;type_tg: + type: map + mapping: + <<: *type_node_mapping + type: + <<: *type_node_mapping_type + enum: [TG] + interfaces: + <<: *type_interface_tg + +schema;type_dut: + type: map + mapping: + <<: *type_node_mapping + type: + <<: *type_node_mapping_type + enum: [DUT] + +# vim: sw=2:sts=2 |