Skip to content

Commit 5377da3

Browse files
author
Steve Martinelli
committed
Add metadata support for volume type
rebase added set and unset metadata Change-Id: I8d969e1de305975d7c71a0bad3a62b15f423c3e0
1 parent 2a39a70 commit 5377da3

2 files changed

Lines changed: 69 additions & 0 deletions

File tree

openstackclient/volume/v1/type.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,70 @@ def take_action(self, parsed_args):
9090
s, columns,
9191
formatters={},
9292
) for s in data))
93+
94+
95+
class SetType(command.Command):
96+
"""Set type command"""
97+
98+
api = 'volume'
99+
log = logging.getLogger(__name__ + '.SetType')
100+
101+
def get_parser(self, prog_name):
102+
parser = super(SetType, self).get_parser(prog_name)
103+
parser.add_argument(
104+
'type',
105+
metavar='<type>',
106+
help='Type ID to update',
107+
)
108+
parser.add_argument(
109+
'meta_data',
110+
metavar='<key=value>',
111+
help='meta-data to add to volume type',
112+
)
113+
return parser
114+
115+
def take_action(self, parsed_args):
116+
self.log.debug('take_action(%s)' % parsed_args)
117+
118+
meta = dict(v.split('=') for v in parsed_args.meta_data.split(' '))
119+
volume_client = self.app.client_manager.volume
120+
volume_type = volume_client.volume_types.get(
121+
parsed_args.type
122+
)
123+
124+
volume_type.set_keys(meta)
125+
126+
return
127+
128+
129+
class UnsetType(command.Command):
130+
"""Unset type command"""
131+
132+
api = 'volume'
133+
log = logging.getLogger(__name__ + '.UnsetType')
134+
135+
def get_parser(self, prog_name):
136+
parser = super(UnsetType, self).get_parser(prog_name)
137+
parser.add_argument(
138+
'type',
139+
metavar='<type>',
140+
help='Type ID to update',
141+
)
142+
parser.add_argument(
143+
'meta_data',
144+
metavar='<key>',
145+
help='meta-data to remove from volume type (key only)',
146+
)
147+
return parser
148+
149+
def take_action(self, parsed_args):
150+
self.log.debug('take_action(%s)' % parsed_args)
151+
volume_client = self.app.client_manager.volume
152+
volume_type = volume_client.volume_types.get(
153+
parsed_args.type
154+
)
155+
key_list = []
156+
key_list.append(parsed_args.meta_data)
157+
volume_type.unset_keys(key_list)
158+
159+
return

setup.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ def read(fname):
151151
'create_type=openstackclient.volume.v1.type:CreateType',
152152
'delete_type=openstackclient.volume.v1.type:DeleteType',
153153
'list_type=openstackclient.volume.v1.type:ListType',
154+
'set_type=openstackclient.volume.v1.type:SetType',
155+
'unset_type=openstackclient.volume.v1.type:UnsetType',
154156
'show_quota=openstackclient.volume.v1.quota:ShowQuota',
155157
'list_quota=openstackclient.volume.v1.quota:ListQuota',
156158
'set_quota=openstackclient.volume.v1.quota:SetQuota',

0 commit comments

Comments
 (0)