From dc29068838c50844883ed7833195a6dd2181eaa6 Mon Sep 17 00:00:00 2001 From: Akihiro Motoki Date: Thu, 24 Sep 2015 07:40:00 +0900 Subject: [PATCH] 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 --- neutronclient/neutron/v2_0/floatingip.py | 18 +++++-------- .../neutron/v2_0/fw/firewallpolicy.py | 2 -- neutronclient/neutron/v2_0/metering.py | 15 +++-------- neutronclient/neutron/v2_0/networkprofile.py | 22 +++++----------- neutronclient/neutron/v2_0/port.py | 14 +++-------- neutronclient/neutron/v2_0/securitygroup.py | 25 ++++++------------- neutronclient/neutron/v2_0/subnet.py | 11 +++----- neutronclient/neutron/v2_0/vpn/ikepolicy.py | 18 ++++--------- neutronclient/neutron/v2_0/vpn/ipsecpolicy.py | 18 ++++--------- 9 files changed, 40 insertions(+), 103 deletions(-) diff --git a/neutronclient/neutron/v2_0/floatingip.py b/neutronclient/neutron/v2_0/floatingip.py index 3022508bb..15aa69a85 100644 --- a/neutronclient/neutron/v2_0/floatingip.py +++ b/neutronclient/neutron/v2_0/floatingip.py @@ -69,14 +69,10 @@ class CreateFloatingIP(neutronV20.CreateCommand): _network_id = neutronV20.find_resourceid_by_name_or_id( self.get_client(), 'network', parsed_args.floating_network_id) body = {'floating_network_id': _network_id} - if parsed_args.port_id: - body['port_id'] = parsed_args.port_id - if parsed_args.tenant_id: - body['tenant_id'] = parsed_args.tenant_id - 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 + neutronV20.update_dict(parsed_args, body, + ['port_id', 'tenant_id', + 'fixed_ip_address', + 'floating_ip_address']) return {self.resource: body} @@ -116,10 +112,8 @@ class AssociateFloatingIP(neutronV20.NeutronCommand): neutron_client = self.get_client() neutron_client.format = parsed_args.request_format update_dict = {} - if parsed_args.port_id: - update_dict['port_id'] = parsed_args.port_id - if parsed_args.fixed_ip_address: - update_dict['fixed_ip_address'] = parsed_args.fixed_ip_address + neutronV20.update_dict(parsed_args, update_dict, + ['port_id', 'fixed_ip_address']) neutron_client.update_floatingip(parsed_args.floatingip_id, {'floatingip': update_dict}) print(_('Associated floating IP %s') % parsed_args.floatingip_id, diff --git a/neutronclient/neutron/v2_0/fw/firewallpolicy.py b/neutronclient/neutron/v2_0/fw/firewallpolicy.py index e385d314c..1a6d062fc 100644 --- a/neutronclient/neutron/v2_0/fw/firewallpolicy.py +++ b/neutronclient/neutron/v2_0/fw/firewallpolicy.py @@ -149,7 +149,6 @@ class FirewallPolicyInsertRule(neutronv20.UpdateCommand): body = {'firewall_rule_id': _rule, 'insert_before': _insert_before, 'insert_after': _insert_after} - neutronv20.update_dict(parsed_args, body, []) return body def get_parser(self, prog_name): @@ -197,7 +196,6 @@ class FirewallPolicyRemoveRule(neutronv20.UpdateCommand): self.get_client(), 'firewall_rule', parsed_args.firewall_rule_id) body = {'firewall_rule_id': _rule} - neutronv20.update_dict(parsed_args, body, []) return body def get_parser(self, prog_name): diff --git a/neutronclient/neutron/v2_0/metering.py b/neutronclient/neutron/v2_0/metering.py index 095689616..ea793c3bd 100644 --- a/neutronclient/neutron/v2_0/metering.py +++ b/neutronclient/neutron/v2_0/metering.py @@ -51,12 +51,8 @@ class CreateMeteringLabel(neutronv20.CreateCommand): def args2body(self, parsed_args): body = {'name': parsed_args.name} - if parsed_args.tenant_id: - body['tenant_id'] = parsed_args.tenant_id - if parsed_args.description: - body['description'] = parsed_args.description - if parsed_args.shared: - body['shared'] = True + neutronv20.update_dict(parsed_args, body, + ['tenant_id', 'description', 'shared']) return {'metering_label': body} @@ -111,11 +107,8 @@ class CreateMeteringLabelRule(neutronv20.CreateCommand): body = {'metering_label_id': label_id, 'remote_ip_prefix': parsed_args.remote_ip_prefix} - - if parsed_args.direction: - body['direction'] = parsed_args.direction - if parsed_args.excluded: - body['excluded'] = True + neutronv20.update_dict(parsed_args, body, + ['direction', 'excluded']) return {'metering_label_rule': body} diff --git a/neutronclient/neutron/v2_0/networkprofile.py b/neutronclient/neutron/v2_0/networkprofile.py index d27ec7c32..6e2a5c913 100644 --- a/neutronclient/neutron/v2_0/networkprofile.py +++ b/neutronclient/neutron/v2_0/networkprofile.py @@ -68,18 +68,10 @@ class CreateNetworkProfile(neutronV20.CreateCommand): def args2body(self, parsed_args): body = {'name': parsed_args.name} - if parsed_args.segment_type: - body['segment_type'] = parsed_args.segment_type - if parsed_args.sub_type: - body['sub_type'] = parsed_args.sub_type - 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 + neutronV20.update_dict(parsed_args, body, + ['segment_type', 'sub_type', 'segment_range', + 'physical_network', 'multicast_ip_range', + 'add_tenants']) return {'network_profile': body} @@ -107,10 +99,8 @@ class UpdateNetworkProfile(neutronV20.UpdateCommand): def args2body(self, parsed_args): body = {} - if parsed_args.remove_tenants: - body['remove_tenants'] = parsed_args.remove_tenants - if parsed_args.add_tenants: - body['add_tenants'] = parsed_args.add_tenants + neutronV20.update_dict(parsed_args, body, + ['remove_tenants', 'add_tenants']) return {'network_profile': body} diff --git a/neutronclient/neutron/v2_0/port.py b/neutronclient/neutron/v2_0/port.py index f2483e1a8..698268703 100644 --- a/neutronclient/neutron/v2_0/port.py +++ b/neutronclient/neutron/v2_0/port.py @@ -68,12 +68,8 @@ def _add_updatable_args(parser): def _updatable_args2body(parsed_args, body, client): - if parsed_args.device_id: - body['device_id'] = parsed_args.device_id - if parsed_args.device_owner: - body['device_owner'] = parsed_args.device_owner - if parsed_args.name: - body['name'] = parsed_args.name + neutronV20.update_dict(parsed_args, body, + ['device_id', 'device_owner', 'name']) ips = [] if 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, 'network_id': _network_id, } _updatable_args2body(parsed_args, body, client) - if parsed_args.mac_address: - body['mac_address'] = parsed_args.mac_address - if parsed_args.tenant_id: - body['tenant_id'] = parsed_args.tenant_id + neutronV20.update_dict(parsed_args, body, + ['mac_address', 'tenant_id']) if parsed_args.vnic_type: body['binding:vnic_type'] = parsed_args.vnic_type if parsed_args.binding_profile: diff --git a/neutronclient/neutron/v2_0/securitygroup.py b/neutronclient/neutron/v2_0/securitygroup.py index 9e8d0dab5..962b3f874 100644 --- a/neutronclient/neutron/v2_0/securitygroup.py +++ b/neutronclient/neutron/v2_0/securitygroup.py @@ -124,10 +124,8 @@ class CreateSecurityGroup(neutronV20.CreateCommand): def args2body(self, parsed_args): 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 + neutronV20.update_dict(parsed_args, body, + ['description', 'tenant_id']) return {'security_group': body} @@ -153,10 +151,8 @@ class UpdateSecurityGroup(neutronV20.UpdateCommand): def args2body(self, parsed_args): body = {} - if parsed_args.name: - body['name'] = parsed_args.name - if parsed_args.description: - body['description'] = parsed_args.description + neutronV20.update_dict(parsed_args, body, + ['name', 'description']) return {'security_group': body} @@ -343,21 +339,14 @@ class CreateSecurityGroupRule(neutronV20.CreateCommand): body = {'security_group_id': _security_group_id, 'direction': parsed_args.direction, 'ethertype': parsed_args.ethertype} - if parsed_args.protocol: - body['protocol'] = parsed_args.protocol - if parsed_args.port_range_min: - 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 + neutronV20.update_dict(parsed_args, body, + ['protocol', 'port_range_min', 'port_range_max', + 'remote_ip_prefix', 'tenant_id']) if parsed_args.remote_group_id: _remote_group_id = neutronV20.find_resourceid_by_name_or_id( self.get_client(), 'security_group', parsed_args.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} diff --git a/neutronclient/neutron/v2_0/subnet.py b/neutronclient/neutron/v2_0/subnet.py index a0dd9947e..07da46b9a 100644 --- a/neutronclient/neutron/v2_0/subnet.py +++ b/neutronclient/neutron/v2_0/subnet.py @@ -107,22 +107,17 @@ def updatable_args2body(parsed_args, body, for_create=True, ip_version=None): raise exceptions.CommandError(_( "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: body['gateway_ip'] = None elif parsed_args.gateway: body['gateway_ip'] = parsed_args.gateway - if parsed_args.name: - body['name'] = parsed_args.name if parsed_args.disable_dhcp: body['enable_dhcp'] = False if parsed_args.enable_dhcp: 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 ip_version == 4: raise exceptions.CommandError(_("--ipv6-ra-mode is invalid " diff --git a/neutronclient/neutron/v2_0/vpn/ikepolicy.py b/neutronclient/neutron/v2_0/vpn/ikepolicy.py index e34c350ec..dcfad483c 100644 --- a/neutronclient/neutron/v2_0/vpn/ikepolicy.py +++ b/neutronclient/neutron/v2_0/vpn/ikepolicy.py @@ -78,19 +78,11 @@ class CreateIKEPolicy(neutronv20.CreateCommand): def args2body(self, parsed_args): - body = { - 'auth_algorithm': parsed_args.auth_algorithm, - 'encryption_algorithm': parsed_args.encryption_algorithm, - 'phase1_negotiation_mode': parsed_args.phase1_negotiation_mode, - 'ike_version': parsed_args.ike_version, - '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 + body = {} + neutronv20.update_dict(parsed_args, body, + ['auth_algorithm', 'encryption_algorithm', + 'phase1_negotiation_mode', 'ike_version', + 'pfs', 'name', 'description', 'tenant_id']) if parsed_args.lifetime: vpn_utils.validate_lifetime_dict(parsed_args.lifetime) body['lifetime'] = parsed_args.lifetime diff --git a/neutronclient/neutron/v2_0/vpn/ipsecpolicy.py b/neutronclient/neutron/v2_0/vpn/ipsecpolicy.py index bd3bf616e..138c941d3 100644 --- a/neutronclient/neutron/v2_0/vpn/ipsecpolicy.py +++ b/neutronclient/neutron/v2_0/vpn/ipsecpolicy.py @@ -77,19 +77,11 @@ class CreateIPsecPolicy(neutronv20.CreateCommand): def args2body(self, parsed_args): - body = { - 'auth_algorithm': parsed_args.auth_algorithm, - 'encryption_algorithm': parsed_args.encryption_algorithm, - 'encapsulation_mode': parsed_args.encapsulation_mode, - 'transform_protocol': parsed_args.transform_protocol, - '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 + body = {} + neutronv20.update_dict(parsed_args, body, + ['auth_algorithm', 'encryption_algorithm', + 'encapsulation_mode', 'transform_protocol', + 'pfs', 'name', 'description', 'tenant_id']) if parsed_args.lifetime: vpn_utils.validate_lifetime_dict(parsed_args.lifetime) body['lifetime'] = parsed_args.lifetime