# Copyright (c) 2014 Brocade Communications Systems, Inc.
# All Rights Reserved.
#
# 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.
"""NOS NETCONF XML Configuration Command Templates.
Interface Configuration Commands
"""
# Get NOS Version
SHOW_FIRMWARE_VERSION = (
"show-firmware-version xmlns:nc="
"'urn:brocade.com:mgmt:brocade-firmware-ext'"
)
GET_VCS_DETAILS = (
'get-vcs-details xmlns:nc="urn:brocade.com:mgmt:brocade-vcs"'
)
SHOW_VIRTUAL_FABRIC = (
'show-virtual-fabric xmlns:nc="urn:brocade.com:mgmt:brocade-vcs"'
)
GET_VIRTUAL_FABRIC_INFO = (
'interface xmlns:nc="urn:brocade.com:mgmt:brocade-firmware-ext"'
)
NOS_VERSION = "./*/{urn:brocade.com:mgmt:brocade-firmware-ext}os-version"
VFAB_ENABLE = "./*/*/*/{urn:brocade.com:mgmt:brocade-vcs}vfab-enable"
# Create VLAN (vlan_id)
CREATE_VLAN_INTERFACE = """
{vlan_id}
"""
# Delete VLAN (vlan_id)
DELETE_VLAN_INTERFACE = """
{vlan_id}
"""
#
# AMPP Life-cycle Management Configuration Commands
#
# Create AMPP port-profile (port_profile_name)
CREATE_PORT_PROFILE = """
{name}
"""
# Create VLAN sub-profile for port-profile (port_profile_name)
CREATE_VLAN_PROFILE_FOR_PORT_PROFILE = """
{name}
"""
# Configure L2 mode for VLAN sub-profile (port_profile_name)
CONFIGURE_L2_MODE_FOR_VLAN_PROFILE_IN_DOMAIN = """
{name}
"""
# Configure L2 mode for VLAN sub-profile (port_profile_name)
CONFIGURE_L2_MODE_FOR_VLAN_PROFILE = """
{name}
"""
# Configure trunk mode for VLAN sub-profile (port_profile_name)
CONFIGURE_TRUNK_MODE_FOR_VLAN_PROFILE = """
{name}
trunk
"""
# Configure allowed VLANs for VLAN sub-profile
# (port_profile_name, allowed_vlan, native_vlan)
CONFIGURE_ALLOWED_VLANS_FOR_VLAN_PROFILE = """
{name}
{vlan_id}
"""
# Delete port-profile (port_profile_name)
DELETE_PORT_PROFILE = """
{name}
"""
# Activate port-profile (port_profile_name)
ACTIVATE_PORT_PROFILE = """
{name}
"""
# Deactivate port-profile (port_profile_name)
DEACTIVATE_PORT_PROFILE = """
{name}
"""
# Associate MAC address to port-profile (port_profile_name, mac_address)
ASSOCIATE_MAC_TO_PORT_PROFILE = """
{name}
{mac_address}
"""
# Dissociate MAC address from port-profile (port_profile_name, mac_address)
DISSOCIATE_MAC_FROM_PORT_PROFILE = """
{name}
{mac_address}
"""
# port-profile domain management commands
REMOVE_PORTPROFILE_FROM_DOMAIN = """
{domain_name}
{name}
"""
# put port profile in default domain
CONFIGURE_PORTPROFILE_IN_DOMAIN = """
{domain_name}
{name}
"""
#
# L3 Life-cycle Management Configuration Commands
#
# Create SVI and assign ippaddres (rbridge_id,vlan_id,ip_address)
CONFIGURE_SVI_WITH_IP_ADDRESS = """
{rbridge_id}
{vlan_id}
{ip_address}
"""
# delete SVI (rbridge_id,vlan_id)
DELETE_SVI = """
{rbridge_id}
{vlan_id}
"""
# Activate SVI (rbridge_id,vlan_id)
ACTIVATE_SVI = """
{rbridge_id}
{vlan_id}
"""
# Remove ipaddress from SVI (rbridge_id,vlan_id)
DECONFIGURE_IP_FROM_SVI = """
{rbridge_id}
{vlan_id}
{gw_ip}
"""
# create vrf (rbridge_id,vrf_name)
CREATE_VRF = """
{rbridge_id}
{vrf_name}
"""
# delete vrf (rbridge_id,vrf_name)
DELETE_VRF = """
{rbridge_id}
{vrf_name}
"""
# configure route distinguisher for vrf (rbridge_id,vrf_name, rd)
CONFIGURE_RD_FOR_VRF = """
{rbridge_id}
{vrf_name}
{rd}
"""
# configure address-family for vrf (rbridge_id,vrf_name)
ADD_ADDRESS_FAMILY_FOR_VRF_V1 = """
{rbridge_id}
{vrf_name}
1200
"""
# configure address-family for vrf (rbridge_id,vrf_name)
ADD_ADDRESS_FAMILY_FOR_VRF = """
{rbridge_id}
{vrf_name}
"""
# Bind vrf to SVI (rbridge_id,vlan_idi, vrf)
ADD_VRF_TO_SVI = """
{rbridge_id}
{vlan_id}
{vrf_name}
"""
# unbind vrf from SVI (rbridge_id,vlan_idi, vrf)
DELETE_VRF_FROM_SVI = """
{rbridge_id}
{vlan_id}
{vrf_name}
"""
#
# Constants
#
# Port profile naming convention for Neutron networks
OS_PORT_PROFILE_NAME = "openstack-profile-{id}"
OS_VRF_NAME = "osv-{id}"
# Port profile filter expressions
PORT_PROFILE_XPATH_FILTER = "/port-profile"
PORT_PROFILE_NAME_XPATH_FILTER = "/port-profile[name='{name}']"