diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-08-03 12:54:03 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-08-03 12:54:03 +0000 |
| commit | a42664ccaa9860c34fcd91cb4c3dbdf6805b3eb0 (patch) | |
| tree | acc389ec96467607cf8bbab438105302127ea103 /openstackclient/network | |
| parent | ab32f37e6715c15b9b6fb195f273c7672ef2a532 (diff) | |
| parent | fac321458166cccffc0eb1d13a986a01c9e6d33e (diff) | |
| download | python-openstackclient-a42664ccaa9860c34fcd91cb4c3dbdf6805b3eb0.tar.gz | |
Merge "Implement "network rbac set" command"
Diffstat (limited to 'openstackclient/network')
| -rw-r--r-- | openstackclient/network/v2/network_rbac.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/openstackclient/network/v2/network_rbac.py b/openstackclient/network/v2/network_rbac.py index 62968376..f4dfd4e7 100644 --- a/openstackclient/network/v2/network_rbac.py +++ b/openstackclient/network/v2/network_rbac.py @@ -186,6 +186,47 @@ class ListNetworkRBAC(command.Lister): ) for s in data)) +class SetNetworkRBAC(command.Command): + """Set network RBAC policy properties""" + + def get_parser(self, prog_name): + parser = super(SetNetworkRBAC, self).get_parser(prog_name) + parser.add_argument( + 'rbac_policy', + metavar="<rbac-policy>", + help=_("RBAC policy to be modified (ID only)") + ) + parser.add_argument( + '--target-project', + metavar="<target-project>", + help=_('The project to which the RBAC policy ' + 'will be enforced (name or ID)') + ) + parser.add_argument( + '--target-project-domain', + metavar='<target-project-domain>', + help=_('Domain the target project belongs to (name or ID). ' + 'This can be used in case collisions between project names ' + 'exist.'), + ) + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.network + obj = client.find_rbac_policy(parsed_args.rbac_policy, + ignore_missing=False) + attrs = {} + if parsed_args.target_project: + identity_client = self.app.client_manager.identity + project_id = identity_common.find_project( + identity_client, + parsed_args.target_project, + parsed_args.target_project_domain, + ).id + attrs['target_tenant'] = project_id + client.update_rbac_policy(obj, **attrs) + + class ShowNetworkRBAC(command.ShowOne): """Display network RBAC policy details""" |
