@@ -86,10 +86,40 @@ def _get_attrs(client_manager, parsed_args):
8686 attrs ['is_default' ] = False
8787 if parsed_args .default :
8888 attrs ['is_default' ] = True
89-
89+ # Update Provider network options
90+ if parsed_args .provider_network_type :
91+ attrs ['provider:network_type' ] = parsed_args .provider_network_type
92+ if parsed_args .physical_network :
93+ attrs ['provider:physical_network' ] = parsed_args .physical_network
94+ if parsed_args .segmentation_id :
95+ attrs ['provider:segmentation_id' ] = parsed_args .segmentation_id
9096 return attrs
9197
9298
99+ def _add_provider_network_options (parser ):
100+ # Add provider network options
101+ parser .add_argument (
102+ '--provider-network-type' ,
103+ metavar = '<provider-network-type>' ,
104+ choices = ['flat' , 'gre' , 'local' ,
105+ 'vlan' , 'vxlan' ],
106+ help = _ ("The physical mechanism by which the virtual network "
107+ "is implemented. The supported options are: "
108+ "flat, gre, local, vlan, vxlan" ))
109+ parser .add_argument (
110+ '--provider-physical-network' ,
111+ metavar = '<provider-physical-network>' ,
112+ dest = 'physical_network' ,
113+ help = _ ("Name of the physical network over which the virtual "
114+ "network is implemented" ))
115+ parser .add_argument (
116+ '--provider-segment' ,
117+ metavar = '<provider-segment>' ,
118+ dest = 'segmentation_id' ,
119+ help = _ ("VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN "
120+ "networks" ))
121+
122+
93123def _get_attrs_compute (client_manager , parsed_args ):
94124 attrs = {}
95125 if parsed_args .name is not None :
@@ -100,7 +130,6 @@ def _get_attrs_compute(client_manager, parsed_args):
100130 attrs ['share_address' ] = False
101131 if parsed_args .subnet is not None :
102132 attrs ['cidr' ] = parsed_args .subnet
103-
104133 return attrs
105134
106135
@@ -180,29 +209,7 @@ def update_parser_network(self, parser):
180209 help = _ ("Do not use the network as the default external network. "
181210 "(default)" )
182211 )
183- parser .add_argument (
184- '--provider-network-type' ,
185- metavar = '<provider-network-type>' ,
186- choices = ['flat' , 'gre' , 'local' ,
187- 'vlan' , 'vxlan' ],
188- help = _ ("The physical mechanism by which the virtual network "
189- "is implemented. The supported options are: "
190- "flat, gre, local, vlan, vxlan" )
191- )
192- parser .add_argument (
193- '--provider-physical-network' ,
194- metavar = '<provider-physical-network>' ,
195- dest = 'physical_network' ,
196- help = _ ("Name of the physical network over which the virtual "
197- "network is implemented" )
198- )
199- parser .add_argument (
200- '--provider-segment' ,
201- metavar = '<provider-segment>' ,
202- dest = 'segmentation_id' ,
203- help = _ ("VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN "
204- "networks" )
205- )
212+ _add_provider_network_options (parser )
206213 return parser
207214
208215 def update_parser_compute (self , parser ):
@@ -215,12 +222,6 @@ def update_parser_compute(self, parser):
215222
216223 def take_action_network (self , client , parsed_args ):
217224 attrs = _get_attrs (self .app .client_manager , parsed_args )
218- if parsed_args .provider_network_type :
219- attrs ['provider:network_type' ] = parsed_args .provider_network_type
220- if parsed_args .physical_network :
221- attrs ['provider:physical_network' ] = parsed_args .physical_network
222- if parsed_args .segmentation_id :
223- attrs ['provider:segmentation_id' ] = parsed_args .segmentation_id
224225 obj = client .create_network (** attrs )
225226 columns = _get_columns (obj )
226227 data = utils .get_item_properties (obj , columns , formatters = _formatters )
@@ -412,6 +413,7 @@ def get_parser(self, prog_name):
412413 action = 'store_true' ,
413414 help = _ ("Do not use the network as the default external network" )
414415 )
416+ _add_provider_network_options (parser )
415417 return parser
416418
417419 def take_action (self , parsed_args ):
0 commit comments