diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-06-15 13:34:15 +0800 |
|---|---|---|
| committer | Steve Martinelli <s.martinelli@gmail.com> | 2016-06-21 16:28:18 +0000 |
| commit | 014835930d50130a2efca0786920876efc60a8eb (patch) | |
| tree | b1e78659a81630e7178b155021bdf9cd6b474431 /openstackclient/compute | |
| parent | 7cda2b2a066cd45c7aeb9a6d92c1a83e49d48128 (diff) | |
| download | python-openstackclient-014835930d50130a2efca0786920876efc60a8eb.tar.gz | |
Add "--project" option to the "flavor create" command.
Add ``--project`` and ``--project-domain`` options to the
``flavor create`` command. We can use these options to add
the flavor access to a givin project when we create the flavor.
Change-Id: Ic1907272c1d1ae526f9c9e86f32ba06c6da147c0
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/flavor.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py index 0a0d25c2..49cc4e36 100644 --- a/openstackclient/compute/v2/flavor.py +++ b/openstackclient/compute/v2/flavor.py @@ -121,10 +121,22 @@ class CreateFlavor(command.ShowOne): action="store_false", help=_("Flavor is not available to other projects") ) + parser.add_argument( + '--project', + metavar='<project>', + help=_("Allow <project> to access private flavor (name or ID) " + "(Must be used with --private option)"), + ) + identity_common.add_project_domain_option_to_parser(parser) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute + identity_client = self.app.client_manager.identity + + if parsed_args.project and parsed_args.public: + msg = _("--project is only allowed with --private") + raise exceptions.CommandError(msg) args = ( parsed_args.name, @@ -141,6 +153,20 @@ class CreateFlavor(command.ShowOne): flavor = compute_client.flavors.create(*args)._info.copy() flavor.pop("links") + if parsed_args.project: + try: + project_id = identity_common.find_project( + identity_client, + parsed_args.project, + parsed_args.project_domain, + ).id + compute_client.flavor_access.add_tenant_access( + parsed_args.id, project_id) + except Exception as e: + msg = _("Failed to add project %(project)s access to " + "flavor: %(e)s") + LOG.error(msg % {'project': parsed_args.project, 'e': e}) + return zip(*sorted(six.iteritems(flavor))) |
