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 (cherry picked from commita12a46bb8e
) (cherry picked from commitbbcfd784f4
)
This commit is contained in:
@@ -1129,16 +1129,15 @@ class CreateExternalPolicy(neutronV20.CreateCommand):
|
|||||||
parsed_args.consumed_policy_rule_sets.pop(key))
|
parsed_args.consumed_policy_rule_sets.pop(key))
|
||||||
|
|
||||||
if parsed_args.external_segments:
|
if parsed_args.external_segments:
|
||||||
for external_segment in parsed_args.external_segments:
|
body[self.resource]['external_segments'] = [
|
||||||
external_segment_id = neutronV20.find_resourceid_by_name_or_id(
|
neutronV20.find_resourceid_by_name_or_id(
|
||||||
self.get_client(), 'external_segment', external_segment)
|
self.get_client(),
|
||||||
parsed_args.external_segments.remove(external_segment)
|
'external_segment',
|
||||||
parsed_args.external_segments.append(external_segment_id)
|
elem) for elem in parsed_args.external_segments]
|
||||||
|
|
||||||
neutronV20.update_dict(parsed_args, body[self.resource],
|
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||||
['name', 'tenant_id', 'description',
|
['name', 'tenant_id', 'description',
|
||||||
'provided_policy_rule_sets',
|
'provided_policy_rule_sets',
|
||||||
'external_segments',
|
|
||||||
'consumed_policy_rule_sets', 'shared'])
|
'consumed_policy_rule_sets', 'shared'])
|
||||||
|
|
||||||
return body
|
return body
|
||||||
@@ -1197,16 +1196,15 @@ class UpdateExternalPolicy(neutronV20.UpdateCommand):
|
|||||||
parsed_args.consumed_policy_rule_sets.pop(key))
|
parsed_args.consumed_policy_rule_sets.pop(key))
|
||||||
|
|
||||||
if parsed_args.external_segments:
|
if parsed_args.external_segments:
|
||||||
for external_segment in parsed_args.external_segments:
|
body[self.resource]['external_segments'] = [
|
||||||
external_segment_id = neutronV20.find_resourceid_by_name_or_id(
|
neutronV20.find_resourceid_by_name_or_id(
|
||||||
self.get_client(), 'external_segment', external_segment)
|
self.get_client(),
|
||||||
parsed_args.external_segments.remove(external_segment)
|
'external_segment',
|
||||||
parsed_args.external_segments.append(external_segment_id)
|
elem) for elem in parsed_args.external_segments]
|
||||||
|
|
||||||
neutronV20.update_dict(parsed_args, body[self.resource],
|
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||||
['name', 'tenant_id', 'description',
|
['name', 'tenant_id', 'description',
|
||||||
'provided_policy_rule_sets',
|
'provided_policy_rule_sets',
|
||||||
'external_segments',
|
|
||||||
'consumed_policy_rule_sets', 'shared'])
|
'consumed_policy_rule_sets', 'shared'])
|
||||||
|
|
||||||
return body
|
return body
|
||||||
|
@@ -50,11 +50,13 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
|||||||
my_id = 'someid'
|
my_id = 'someid'
|
||||||
provided_policy_rule_sets = "prs1=true,prs2=true"
|
provided_policy_rule_sets = "prs1=true,prs2=true"
|
||||||
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
||||||
|
external_segments = "ES1 ES2"
|
||||||
shared = 'True'
|
shared = 'True'
|
||||||
args = ['--tenant-id', tenant_id,
|
args = ['--tenant-id', tenant_id,
|
||||||
'--description', description,
|
'--description', description,
|
||||||
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
||||||
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
||||||
|
'--external-segments', external_segments,
|
||||||
'--shared', shared,
|
'--shared', shared,
|
||||||
name]
|
name]
|
||||||
position_names = ['name', ]
|
position_names = ['name', ]
|
||||||
@@ -67,6 +69,8 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
|||||||
{'prs1': 'true', 'prs2': 'true'},
|
{'prs1': 'true', 'prs2': 'true'},
|
||||||
consumed_policy_rule_sets=
|
consumed_policy_rule_sets=
|
||||||
{'prs3': 'true', 'prs4': 'true'},
|
{'prs3': 'true', 'prs4': 'true'},
|
||||||
|
external_segments=
|
||||||
|
['ES1', 'ES2'],
|
||||||
shared=True)
|
shared=True)
|
||||||
|
|
||||||
def test_list_external_policies(self):
|
def test_list_external_policies(self):
|
||||||
@@ -99,11 +103,13 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
|||||||
my_id = 'someid'
|
my_id = 'someid'
|
||||||
provided_policy_rule_sets = "prs1=true,prs2=true"
|
provided_policy_rule_sets = "prs1=true,prs2=true"
|
||||||
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
consumed_policy_rule_sets = "prs3=true,prs4=true"
|
||||||
|
external_segments = "ES1 ES2"
|
||||||
shared = 'True'
|
shared = 'True'
|
||||||
args = ['--name', name,
|
args = ['--name', name,
|
||||||
'--description', description,
|
'--description', description,
|
||||||
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
'--provided-policy-rule-sets', provided_policy_rule_sets,
|
||||||
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
'--consumed-policy-rule-sets', consumed_policy_rule_sets,
|
||||||
|
'--external-segments', external_segments,
|
||||||
'--shared', shared,
|
'--shared', shared,
|
||||||
my_id]
|
my_id]
|
||||||
params = {
|
params = {
|
||||||
@@ -111,6 +117,7 @@ class CLITestV20ExternalPolicyJSON(test_cli20.CLITestV20Base):
|
|||||||
'description': description,
|
'description': description,
|
||||||
'provided_policy_rule_sets': {'prs1': 'true', 'prs2': 'true'},
|
'provided_policy_rule_sets': {'prs1': 'true', 'prs2': 'true'},
|
||||||
'consumed_policy_rule_sets': {'prs3': 'true', 'prs4': 'true'},
|
'consumed_policy_rule_sets': {'prs3': 'true', 'prs4': 'true'},
|
||||||
|
'external_segments': ['ES1', 'ES2'],
|
||||||
'shared': True
|
'shared': True
|
||||||
}
|
}
|
||||||
self._test_update_resource(resource, cmd, my_id, args, params)
|
self._test_update_resource(resource, cmd, my_id, args, params)
|
||||||
|
Reference in New Issue
Block a user