@@ -165,6 +165,26 @@ def update_parser_network(self, parser):
165165 action = 'store_true' ,
166166 help = 'Do not use the network as the default external network.'
167167 'By default, no network is set as an external network.' )
168+ parser .add_argument (
169+ '--provider-network-type' ,
170+ metavar = '<provider-network-type>' ,
171+ choices = ['flat' , 'gre' , 'local' ,
172+ 'vlan' , 'vxlan' ],
173+ help = 'The physical mechanism by which the virtual network '
174+ 'is implemented. The supported options are: '
175+ 'flat, gre, local, vlan, vxlan' )
176+ parser .add_argument (
177+ '--provider-physical-network' ,
178+ metavar = '<provider-physical-network>' ,
179+ dest = 'physical_network' ,
180+ help = 'Name of the physical network over which the virtual '
181+ 'network is implemented' )
182+ parser .add_argument (
183+ '--provider-segmentation-id' ,
184+ metavar = '<provider-segmentation-id>' ,
185+ dest = 'segmentation_id' ,
186+ help = 'VLAN ID for VLAN networks or tunnel-id for GRE/VXLAN '
187+ 'networks' )
168188 return parser
169189
170190 def update_parser_compute (self , parser ):
@@ -185,6 +205,12 @@ def take_action_network(self, client, parsed_args):
185205 attrs ['is_default' ] = False
186206 if parsed_args .default :
187207 attrs ['is_default' ] = True
208+ if parsed_args .provider_network_type :
209+ attrs ['provider:network_type' ] = parsed_args .provider_network_type
210+ if parsed_args .physical_network :
211+ attrs ['provider:physical_network' ] = parsed_args .physical_network
212+ if parsed_args .segmentation_id :
213+ attrs ['provider:segmentation_id' ] = parsed_args .segmentation_id
188214 obj = client .create_network (** attrs )
189215 columns = _get_columns (obj )
190216 data = utils .get_item_properties (obj , columns , formatters = _formatters )
0 commit comments