@@ -1004,59 +1004,26 @@ def mvrf_restart_services():
10041004 cmd = "service ntp start"
10051005 os .system (cmd )
10061006
1007- def vrf_add_management_vrf ():
1007+ def vrf_add_management_vrf (config_db ):
10081008 """Enable management vrf in config DB"""
10091009
1010- config_db = ConfigDBConnector ()
1011- config_db .connect ()
10121010 entry = config_db .get_entry ('MGMT_VRF_CONFIG' , "vrf_global" )
10131011 if entry and entry ['mgmtVrfEnabled' ] == 'true' :
10141012 click .echo ("ManagementVRF is already Enabled." )
10151013 return None
10161014 config_db .mod_entry ('MGMT_VRF_CONFIG' ,"vrf_global" ,{"mgmtVrfEnabled" : "true" })
10171015 mvrf_restart_services ()
10181016
1019- def vrf_delete_management_vrf ():
1017+ def vrf_delete_management_vrf (config_db ):
10201018 """Disable management vrf in config DB"""
10211019
1022- config_db = ConfigDBConnector ()
1023- config_db .connect ()
10241020 entry = config_db .get_entry ('MGMT_VRF_CONFIG' , "vrf_global" )
10251021 if not entry or entry ['mgmtVrfEnabled' ] == 'false' :
10261022 click .echo ("ManagementVRF is already Disabled." )
10271023 return None
10281024 config_db .mod_entry ('MGMT_VRF_CONFIG' ,"vrf_global" ,{"mgmtVrfEnabled" : "false" })
10291025 mvrf_restart_services ()
10301026
1031- #
1032- # 'vrf' group ('config vrf ...')
1033- #
1034-
1035- @config .group ('vrf' )
1036- def vrf ():
1037- """VRF-related configuration tasks"""
1038- pass
1039-
1040- @vrf .command ('add' )
1041- @click .argument ('vrfname' , metavar = '<vrfname>. Type mgmt for management VRF' , required = True )
1042- @click .pass_context
1043- def vrf_add (ctx , vrfname ):
1044- """Create management VRF and move eth0 into it"""
1045- if vrfname == 'mgmt' or vrfname == 'management' :
1046- vrf_add_management_vrf ()
1047- else :
1048- click .echo ("Creation of data vrf={} is not yet supported" .format (vrfname ))
1049-
1050- @vrf .command ('del' )
1051- @click .argument ('vrfname' , metavar = '<vrfname>. Type mgmt for management VRF' , required = False )
1052- @click .pass_context
1053- def vrf_del (ctx , vrfname ):
1054- """Delete management VRF and move back eth0 to default VRF"""
1055- if vrfname == 'mgmt' or vrfname == 'management' :
1056- vrf_delete_management_vrf ()
1057- else :
1058- click .echo ("Deletion of data vrf={} is not yet supported" .format (vrfname ))
1059-
10601027@config .group ()
10611028@click .pass_context
10621029def snmpagentaddress (ctx ):
@@ -1581,7 +1548,7 @@ def unbind(ctx, interface_name):
15811548# 'vrf' group ('config vrf ...')
15821549#
15831550
1584- @config .group ()
1551+ @config .group ('vrf' )
15851552@click .pass_context
15861553def vrf (ctx ):
15871554 """VRF-related configuration tasks"""
@@ -1597,24 +1564,30 @@ def vrf(ctx):
15971564def add_vrf (ctx , vrf_name ):
15981565 """Add vrf"""
15991566 config_db = ctx .obj ['config_db' ]
1600- if not vrf_name .startswith ("Vrf" ):
1601- ctx .fail ("'vrf_name' is not start with Vrf!" )
1567+ if not vrf_name .startswith ("Vrf" ) and not ( vrf_name == 'mgmt' ) and not ( vrf_name == 'management' ) :
1568+ ctx .fail ("'vrf_name' is not start with Vrf, mgmt or management !" )
16021569 if len (vrf_name ) > 15 :
16031570 ctx .fail ("'vrf_name' is too long!" )
1604- config_db .set_entry ('VRF' , vrf_name , {"NULL" : "NULL" })
1571+ if (vrf_name == 'mgmt' or vrf_name == 'management' ):
1572+ vrf_add_management_vrf (config_db )
1573+ else :
1574+ config_db .set_entry ('VRF' , vrf_name , {"NULL" : "NULL" })
16051575
16061576@vrf .command ('del' )
16071577@click .argument ('vrf_name' , metavar = '<vrf_name>' , required = True )
16081578@click .pass_context
16091579def del_vrf (ctx , vrf_name ):
16101580 """Del vrf"""
16111581 config_db = ctx .obj ['config_db' ]
1612- if not vrf_name .startswith ("Vrf" ):
1613- ctx .fail ("'vrf_name' is not start with Vrf!" )
1582+ if not vrf_name .startswith ("Vrf" ) and not ( vrf_name == 'mgmt' ) and not ( vrf_name == 'management' ) :
1583+ ctx .fail ("'vrf_name' is not start with Vrf, mgmt or management !" )
16141584 if len (vrf_name ) > 15 :
16151585 ctx .fail ("'vrf_name' is too long!" )
1616- del_interface_bind_to_vrf (config_db , vrf_name )
1617- config_db .set_entry ('VRF' , vrf_name , None )
1586+ if (vrf_name == 'mgmt' or vrf_name == 'management' ):
1587+ vrf_delete_management_vrf (config_db )
1588+ else :
1589+ del_interface_bind_to_vrf (config_db , vrf_name )
1590+ config_db .set_entry ('VRF' , vrf_name , None )
16181591
16191592
16201593#
0 commit comments