Fix providing multiple ES for External Policy
There was a bug in processing the list of External Segments specified by the user which was causing the name of the External Segment to be sent to the backend. List comprehension in now being used to build the list of UUIDs for the specified External Segments. Change-Id: I7b79fccaffdc22e5f3a5f10b485803a0ba7634ff Closes-bug: 1505402
This commit is contained in:
parent
df9540094a
commit
a12a46bb8e
@ -1129,16 +1129,15 @@ class CreateExternalPolicy(neutronV20.CreateCommand):
|
||||
parsed_args.consumed_policy_rule_sets.pop(key))
|
||||
|
||||
if parsed_args.external_segments:
|
||||
for external_segment in parsed_args.external_segments:
|
||||
external_segment_id = neutronV20.find_resourceid_by_name_or_id(
|
||||
self.get_client(), 'external_segment', external_segment)
|
||||
parsed_args.external_segments.remove(external_segment)
|
||||
parsed_args.external_segments.append(external_segment_id)
|
||||
body[self.resource]['external_segments'] = [
|
||||
neutronV20.find_resourceid_by_name_or_id(
|
||||
self.get_client(),
|
||||
'external_segment',
|
||||
elem) for elem in parsed_args.external_segments]
|
||||
|
||||
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||
['name', 'tenant_id', 'description',
|
||||
'provided_policy_rule_sets',
|
||||
'external_segments',
|
||||
'consumed_policy_rule_sets', 'shared'])
|
||||
|
||||
return body
|
||||
@ -1197,16 +1196,15 @@ class UpdateExternalPolicy(neutronV20.UpdateCommand):
|
||||
parsed_args.consumed_policy_rule_sets.pop(key))
|
||||
|
||||
if parsed_args.external_segments:
|
||||
for external_segment in parsed_args.external_segments:
|
||||
external_segment_id = neutronV20.find_resourceid_by_name_or_id(
|
||||
self.get_client(), 'external_segment', external_segment)
|
||||
parsed_args.external_segments.remove(external_segment)
|
||||
parsed_args.external_segments.append(external_segment_id)
|
||||
body[self.resource]['external_segments'] = [
|
||||
neutronV20.find_resourceid_by_name_or_id(
|
||||
self.get_client(),
|
||||
'external_segment',
|
||||
elem) for elem in parsed_args.external_segments]
|
||||
|
||||
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||
['name', 'tenant_id', 'description',
|
||||
'provided_policy_rule_sets',
|
||||
'external_segments',
|
||||
'consumed_policy_rule_sets', 'shared'])
|
||||
|
||||
return body
|
||||
|
@ -50,11 +50,13 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
||||
my_id = 'someid'
|
||||
provided_policy_rule_sets = "prs1=true,prs2=true"
|
||||
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
||||
external_segments = "ES1 ES2"
|
||||
shared = 'True'
|
||||
args = ['--tenant-id', tenant_id,
|
||||
'--description', description,
|
||||
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
||||
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
||||
'--external-segments', external_segments,
|
||||
'--shared', shared,
|
||||
name]
|
||||
position_names = ['name', ]
|
||||
@ -67,6 +69,8 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
||||
{'prs1': 'true', 'prs2': 'true'},
|
||||
consumed_policy_rule_sets=
|
||||
{'prs3': 'true', 'prs4': 'true'},
|
||||
external_segments=
|
||||
['ES1', 'ES2'],
|
||||
shared=True)
|
||||
|
||||
def test_list_external_policies(self):
|
||||
@ -99,11 +103,13 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
||||
my_id = 'someid'
|
||||
provided_policy_rule_sets = "prs1=true,prs2=true"
|
||||
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
||||
external_segments = "ES1 ES2"
|
||||
shared = 'True'
|
||||
args = ['--name', name,
|
||||
'--description', description,
|
||||
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
||||
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
||||
'--external-segments', external_segments,
|
||||
'--shared', shared,
|
||||
my_id]
|
||||
params = {
|
||||
@ -111,6 +117,7 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
||||
'description': description,
|
||||
'provided_policy_rule_sets': {'prs1': 'true', 'prs2': 'true'},
|
||||
'consumed_policy_rule_sets': {'prs3': 'true', 'prs4': 'true'},
|
||||
'external_segments': ['ES1', 'ES2'],
|
||||
'shared': True
|
||||
}
|
||||
self._test_update_resource(resource, cmd, my_id, args, params)
|
||||
|
Loading…
x
Reference in New Issue
Block a user