diff options
| author | xiexs <xiexs@cn.fujitsu.com> | 2015-12-05 19:25:30 +0800 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2015-12-21 11:17:42 -0600 |
| commit | 0a444fc949584c9ac2a555bfa9ad221913ad4779 (patch) | |
| tree | 2b2b7770040c20bda0687c870c5c7d8f917fbb1f /openstackclient/image/v2 | |
| parent | b61104563908dbf76c0fb94b6eb46c91fe109d48 (diff) | |
| download | python-openstackclient-0a444fc949584c9ac2a555bfa9ad221913ad4779.tar.gz | |
Add owner validation for "openstack image create/set"
Owner validation is necessary if a new image owner
will be created/set.
Change-Id: I621774e02866bfa98a31b613deff5d7b6a962737
Closes-Bug: #1517134
Diffstat (limited to 'openstackclient/image/v2')
| -rw-r--r-- | openstackclient/image/v2/image.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index 1fcb92d9..ad536ba2 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -220,6 +220,7 @@ class CreateImage(show.ShowOne): help="Set a tag on this image " "(repeat option to set multiple tags)", ) + common.add_project_domain_option_to_parser(parser) for deadopt in self.deadopts: parser.add_argument( "--%s" % deadopt, @@ -231,6 +232,7 @@ class CreateImage(show.ShowOne): def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) + identity_client = self.app.client_manager.identity image_client = self.app.client_manager.image for deadopt in self.deadopts: @@ -285,6 +287,13 @@ class CreateImage(show.ShowOne): self.log.warning("Failed to get an image file.") return {}, {} + if parsed_args.owner: + kwargs['owner'] = common.find_project( + identity_client, + parsed_args.owner, + parsed_args.project_domain, + ).id + # If a volume is specified. if parsed_args.volume: volume_client = self.app.client_manager.volume @@ -704,6 +713,7 @@ class SetImage(command.Command): action="store_true", help="Activate the image", ) + common.add_project_domain_option_to_parser(parser) for deadopt in self.deadopts: parser.add_argument( "--%s" % deadopt, @@ -715,6 +725,7 @@ class SetImage(command.Command): def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) + identity_client = self.app.client_manager.identity image_client = self.app.client_manager.image for deadopt in self.deadopts: @@ -779,6 +790,13 @@ class SetImage(command.Command): # Tags should be extended, but duplicates removed kwargs['tags'] = list(set(image.tags).union(set(parsed_args.tags))) + if parsed_args.owner: + kwargs['owner'] = common.find_project( + identity_client, + parsed_args.owner, + parsed_args.project_domain, + ).id + try: image = image_client.images.update(image.id, **kwargs) except Exception as e: |
