neutron v2 command module cleanup (2)

Use neutronV20.update_dict(parsed_args, body, [attr list])
if possible rather than many if-clause.
update_dict() checks attribute existence and non-None
and most if-clause does the same.

Change-Id: I22f8407f0b8f7db6ffda1c1f9b4991cd9f3f9409
This commit is contained in:
Akihiro Motoki
2015-09-24 07:40:00 +09:00
parent 647b0847b2
commit dc29068838
9 changed files with 40 additions and 103 deletions

View File

@@ -69,14 +69,10 @@ class CreateFloatingIP(neutronV20.CreateCommand):
_network_id = neutronV20.find_resourceid_by_name_or_id( _network_id = neutronV20.find_resourceid_by_name_or_id(
self.get_client(), 'network', parsed_args.floating_network_id) self.get_client(), 'network', parsed_args.floating_network_id)
body = {'floating_network_id': _network_id} body = {'floating_network_id': _network_id}
if parsed_args.port_id: neutronV20.update_dict(parsed_args, body,
body['port_id'] = parsed_args.port_id ['port_id', 'tenant_id',
if parsed_args.tenant_id: 'fixed_ip_address',
body['tenant_id'] = parsed_args.tenant_id 'floating_ip_address'])
if parsed_args.fixed_ip_address:
body['fixed_ip_address'] = parsed_args.fixed_ip_address
if parsed_args.floating_ip_address:
body['floating_ip_address'] = parsed_args.floating_ip_address
return {self.resource: body} return {self.resource: body}
@@ -116,10 +112,8 @@ class AssociateFloatingIP(neutronV20.NeutronCommand):
neutron_client = self.get_client() neutron_client = self.get_client()
neutron_client.format = parsed_args.request_format neutron_client.format = parsed_args.request_format
update_dict = {} update_dict = {}
if parsed_args.port_id: neutronV20.update_dict(parsed_args, update_dict,
update_dict['port_id'] = parsed_args.port_id ['port_id', 'fixed_ip_address'])
if parsed_args.fixed_ip_address:
update_dict['fixed_ip_address'] = parsed_args.fixed_ip_address
neutron_client.update_floatingip(parsed_args.floatingip_id, neutron_client.update_floatingip(parsed_args.floatingip_id,
{'floatingip': update_dict}) {'floatingip': update_dict})
print(_('Associated floating IP %s') % parsed_args.floatingip_id, print(_('Associated floating IP %s') % parsed_args.floatingip_id,

View File

@@ -149,7 +149,6 @@ class FirewallPolicyInsertRule(neutronv20.UpdateCommand):
body = {'firewall_rule_id': _rule, body = {'firewall_rule_id': _rule,
'insert_before': _insert_before, 'insert_before': _insert_before,
'insert_after': _insert_after} 'insert_after': _insert_after}
neutronv20.update_dict(parsed_args, body, [])
return body return body
def get_parser(self, prog_name): def get_parser(self, prog_name):
@@ -197,7 +196,6 @@ class FirewallPolicyRemoveRule(neutronv20.UpdateCommand):
self.get_client(), 'firewall_rule', self.get_client(), 'firewall_rule',
parsed_args.firewall_rule_id) parsed_args.firewall_rule_id)
body = {'firewall_rule_id': _rule} body = {'firewall_rule_id': _rule}
neutronv20.update_dict(parsed_args, body, [])
return body return body
def get_parser(self, prog_name): def get_parser(self, prog_name):

View File

@@ -51,12 +51,8 @@ class CreateMeteringLabel(neutronv20.CreateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = {'name': parsed_args.name} body = {'name': parsed_args.name}
if parsed_args.tenant_id: neutronv20.update_dict(parsed_args, body,
body['tenant_id'] = parsed_args.tenant_id ['tenant_id', 'description', 'shared'])
if parsed_args.description:
body['description'] = parsed_args.description
if parsed_args.shared:
body['shared'] = True
return {'metering_label': body} return {'metering_label': body}
@@ -111,11 +107,8 @@ class CreateMeteringLabelRule(neutronv20.CreateCommand):
body = {'metering_label_id': label_id, body = {'metering_label_id': label_id,
'remote_ip_prefix': parsed_args.remote_ip_prefix} 'remote_ip_prefix': parsed_args.remote_ip_prefix}
neutronv20.update_dict(parsed_args, body,
if parsed_args.direction: ['direction', 'excluded'])
body['direction'] = parsed_args.direction
if parsed_args.excluded:
body['excluded'] = True
return {'metering_label_rule': body} return {'metering_label_rule': body}

View File

@@ -68,18 +68,10 @@ class CreateNetworkProfile(neutronV20.CreateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = {'name': parsed_args.name} body = {'name': parsed_args.name}
if parsed_args.segment_type: neutronV20.update_dict(parsed_args, body,
body['segment_type'] = parsed_args.segment_type ['segment_type', 'sub_type', 'segment_range',
if parsed_args.sub_type: 'physical_network', 'multicast_ip_range',
body['sub_type'] = parsed_args.sub_type 'add_tenants'])
if parsed_args.segment_range:
body['segment_range'] = parsed_args.segment_range
if parsed_args.physical_network:
body['physical_network'] = parsed_args.physical_network
if parsed_args.multicast_ip_range:
body['multicast_ip_range'] = parsed_args.multicast_ip_range
if parsed_args.add_tenants:
body['add_tenants'] = parsed_args.add_tenants
return {'network_profile': body} return {'network_profile': body}
@@ -107,10 +99,8 @@ class UpdateNetworkProfile(neutronV20.UpdateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = {} body = {}
if parsed_args.remove_tenants: neutronV20.update_dict(parsed_args, body,
body['remove_tenants'] = parsed_args.remove_tenants ['remove_tenants', 'add_tenants'])
if parsed_args.add_tenants:
body['add_tenants'] = parsed_args.add_tenants
return {'network_profile': body} return {'network_profile': body}

View File

@@ -68,12 +68,8 @@ def _add_updatable_args(parser):
def _updatable_args2body(parsed_args, body, client): def _updatable_args2body(parsed_args, body, client):
if parsed_args.device_id: neutronV20.update_dict(parsed_args, body,
body['device_id'] = parsed_args.device_id ['device_id', 'device_owner', 'name'])
if parsed_args.device_owner:
body['device_owner'] = parsed_args.device_owner
if parsed_args.name:
body['name'] = parsed_args.name
ips = [] ips = []
if parsed_args.fixed_ip: if parsed_args.fixed_ip:
for ip_spec in parsed_args.fixed_ip: for ip_spec in parsed_args.fixed_ip:
@@ -244,10 +240,8 @@ class CreatePort(neutronV20.CreateCommand, UpdatePortSecGroupMixin,
body = {'admin_state_up': parsed_args.admin_state, body = {'admin_state_up': parsed_args.admin_state,
'network_id': _network_id, } 'network_id': _network_id, }
_updatable_args2body(parsed_args, body, client) _updatable_args2body(parsed_args, body, client)
if parsed_args.mac_address: neutronV20.update_dict(parsed_args, body,
body['mac_address'] = parsed_args.mac_address ['mac_address', 'tenant_id'])
if parsed_args.tenant_id:
body['tenant_id'] = parsed_args.tenant_id
if parsed_args.vnic_type: if parsed_args.vnic_type:
body['binding:vnic_type'] = parsed_args.vnic_type body['binding:vnic_type'] = parsed_args.vnic_type
if parsed_args.binding_profile: if parsed_args.binding_profile:

View File

@@ -124,10 +124,8 @@ class CreateSecurityGroup(neutronV20.CreateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = {'name': parsed_args.name} body = {'name': parsed_args.name}
if parsed_args.description: neutronV20.update_dict(parsed_args, body,
body['description'] = parsed_args.description ['description', 'tenant_id'])
if parsed_args.tenant_id:
body['tenant_id'] = parsed_args.tenant_id
return {'security_group': body} return {'security_group': body}
@@ -153,10 +151,8 @@ class UpdateSecurityGroup(neutronV20.UpdateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = {} body = {}
if parsed_args.name: neutronV20.update_dict(parsed_args, body,
body['name'] = parsed_args.name ['name', 'description'])
if parsed_args.description:
body['description'] = parsed_args.description
return {'security_group': body} return {'security_group': body}
@@ -343,21 +339,14 @@ class CreateSecurityGroupRule(neutronV20.CreateCommand):
body = {'security_group_id': _security_group_id, body = {'security_group_id': _security_group_id,
'direction': parsed_args.direction, 'direction': parsed_args.direction,
'ethertype': parsed_args.ethertype} 'ethertype': parsed_args.ethertype}
if parsed_args.protocol: neutronV20.update_dict(parsed_args, body,
body['protocol'] = parsed_args.protocol ['protocol', 'port_range_min', 'port_range_max',
if parsed_args.port_range_min: 'remote_ip_prefix', 'tenant_id'])
body['port_range_min'] = parsed_args.port_range_min
if parsed_args.port_range_max:
body['port_range_max'] = parsed_args.port_range_max
if parsed_args.remote_ip_prefix:
body['remote_ip_prefix'] = parsed_args.remote_ip_prefix
if parsed_args.remote_group_id: if parsed_args.remote_group_id:
_remote_group_id = neutronV20.find_resourceid_by_name_or_id( _remote_group_id = neutronV20.find_resourceid_by_name_or_id(
self.get_client(), 'security_group', self.get_client(), 'security_group',
parsed_args.remote_group_id) parsed_args.remote_group_id)
body['remote_group_id'] = _remote_group_id body['remote_group_id'] = _remote_group_id
if parsed_args.tenant_id:
body['tenant_id'] = parsed_args.tenant_id
return {'security_group_rule': body} return {'security_group_rule': body}

View File

@@ -107,22 +107,17 @@ def updatable_args2body(parsed_args, body, for_create=True, ip_version=None):
raise exceptions.CommandError(_( raise exceptions.CommandError(_(
"You cannot enable and disable DHCP at the same time.")) "You cannot enable and disable DHCP at the same time."))
neutronV20.update_dict(parsed_args, body,
['name', 'allocation_pools',
'host_routes', 'dns_nameservers'])
if parsed_args.no_gateway: if parsed_args.no_gateway:
body['gateway_ip'] = None body['gateway_ip'] = None
elif parsed_args.gateway: elif parsed_args.gateway:
body['gateway_ip'] = parsed_args.gateway body['gateway_ip'] = parsed_args.gateway
if parsed_args.name:
body['name'] = parsed_args.name
if parsed_args.disable_dhcp: if parsed_args.disable_dhcp:
body['enable_dhcp'] = False body['enable_dhcp'] = False
if parsed_args.enable_dhcp: if parsed_args.enable_dhcp:
body['enable_dhcp'] = True body['enable_dhcp'] = True
if parsed_args.allocation_pools:
body['allocation_pools'] = parsed_args.allocation_pools
if parsed_args.host_routes:
body['host_routes'] = parsed_args.host_routes
if parsed_args.dns_nameservers:
body['dns_nameservers'] = parsed_args.dns_nameservers
if for_create and parsed_args.ipv6_ra_mode: if for_create and parsed_args.ipv6_ra_mode:
if ip_version == 4: if ip_version == 4:
raise exceptions.CommandError(_("--ipv6-ra-mode is invalid " raise exceptions.CommandError(_("--ipv6-ra-mode is invalid "

View File

@@ -78,19 +78,11 @@ class CreateIKEPolicy(neutronv20.CreateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = { body = {}
'auth_algorithm': parsed_args.auth_algorithm, neutronv20.update_dict(parsed_args, body,
'encryption_algorithm': parsed_args.encryption_algorithm, ['auth_algorithm', 'encryption_algorithm',
'phase1_negotiation_mode': parsed_args.phase1_negotiation_mode, 'phase1_negotiation_mode', 'ike_version',
'ike_version': parsed_args.ike_version, 'pfs', 'name', 'description', 'tenant_id'])
'pfs': parsed_args.pfs,
}
if parsed_args.name:
body['name'] = parsed_args.name
if parsed_args.description:
body['description'] = parsed_args.description
if parsed_args.tenant_id:
body['tenant_id'] = parsed_args.tenant_id
if parsed_args.lifetime: if parsed_args.lifetime:
vpn_utils.validate_lifetime_dict(parsed_args.lifetime) vpn_utils.validate_lifetime_dict(parsed_args.lifetime)
body['lifetime'] = parsed_args.lifetime body['lifetime'] = parsed_args.lifetime

View File

@@ -77,19 +77,11 @@ class CreateIPsecPolicy(neutronv20.CreateCommand):
def args2body(self, parsed_args): def args2body(self, parsed_args):
body = { body = {}
'auth_algorithm': parsed_args.auth_algorithm, neutronv20.update_dict(parsed_args, body,
'encryption_algorithm': parsed_args.encryption_algorithm, ['auth_algorithm', 'encryption_algorithm',
'encapsulation_mode': parsed_args.encapsulation_mode, 'encapsulation_mode', 'transform_protocol',
'transform_protocol': parsed_args.transform_protocol, 'pfs', 'name', 'description', 'tenant_id'])
'pfs': parsed_args.pfs,
}
if parsed_args.name:
body['name'] = parsed_args.name
if parsed_args.description:
body['description'] = parsed_args.description
if parsed_args.tenant_id:
body['tenant_id'] = parsed_args.tenant_id
if parsed_args.lifetime: if parsed_args.lifetime:
vpn_utils.validate_lifetime_dict(parsed_args.lifetime) vpn_utils.validate_lifetime_dict(parsed_args.lifetime)
body['lifetime'] = parsed_args.lifetime body['lifetime'] = parsed_args.lifetime