network_attach.py¶
Description¶
Attach one or more networks.
Example configuration file¶
config/network_attach.yaml
---
config:
- deployment: true
detach_switch_ports: []
dot1q_vlan: ""
extension_values: ""
fabric_name: SITE1
freeform_config: []
instance_values: ""
mso_created: false
mso_set_vlan: false
network_name: ndfc-python-net1
serial_number: 96KWEIQE2HC
switch_ports:
- Ethernet1/2
untagged: true
tor_ports: []
vlan: 2301
Example Usage¶
The example below uses environment variables for credentials, so requires
only the --config
argument. See Running the Example Scripts
for details around specifying credentials from the command line, from
environment variables, from Ansible Vault, or a combination of these
credentials sources.
export ND_DOMAIN=local
export ND_IP4=10.1.1.1
export ND_PASSWORD=MySecret
export ND_USERNAME=admin
./network_attach.py --config config/network_attach.yaml
# output not shown
Example output¶
Success¶
(ndfc-python) arobel@Allen-M4 examples % ./network_attach.py --config config/network_attach.yaml
Network ndfc-python-net1 attached to fabric SITE1, serial number 96KWEIQE2HC.
Network ndfc-python-net1 attached to fabric SITE2, serial number 9OW9132EH2M.
(ndfc-python) arobel@Allen-M4 examples %
Example Failure Messages¶
Network does not exist¶
(ndfc-python) arobel@Allen-M4 examples % ./network_attach.py --config test_network_attach.yaml
Error attaching network. Error detail: NetworkAttach._final_verification: networkName foo does not exist in fabric SITE1. Create it first before calling NetworkAttach.commit
(ndfc-python) arobel@Allen-M4 examples %
Switch serial_number is invalid¶
(ndfc-python) arobel@Allen-M4 examples % ./network_attach.py --config test_network_attach.yaml
Invalid Switch Serial Number :96KWEIQE2H
(ndfc-python) arobel@Allen-M4 examples %
Invalid interface¶
(ndfc-python) arobel@Allen-M4 examples % ./network_attach.py --config test_network_attach.yaml
Error attaching network. Controller response: {'RETURN_CODE': 200, 'DATA': {'ndfc-python-net1-[96KWEIQE2HC/LE1]': 'Invalid Interfaces in LE1. Invalid interfaces are Po2.'}, 'MESSAGE': 'OK', 'METHOD': 'POST', 'REQUEST_PATH': 'https://192.168.7.7/appcenter/cisco/ndfc/api/v1/lan-fabric/rest/top-down/fabrics/SITE1/networks/attachments'}
(ndfc-python) arobel@Allen-M4 examples %
Invalid value for untagged
¶
(ndfc-python) arobel@Allen-M4 examples % ./network_attach.py --config test_network_attach.yaml
1 validation error for NetworkAttachConfigValidator
config.0.untagged
Input should be a valid boolean [type=bool_type, input_value='foo', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/bool_type
(ndfc-python) arobel@Allen-M4 examples %