Skip to content

Commit 870e7dd

Browse files
author
Dean Troyer
committed
Change volume create --volume-type to --type
This makes it consistent with the other --type options in OSC. Also add a few more volume_create tests. Change-Id: I50ef927932cabf157ecdfd6c4faa1914b4fdf413
1 parent a93851d commit 870e7dd

3 files changed

Lines changed: 158 additions & 18 deletions

File tree

‎openstackclient/tests/volume/v1/fakes.py‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,14 @@
2424
volume_name = 'nigel'
2525
volume_description = 'Nigel Tufnel'
2626
volume_size = 120
27-
volume_metadata = {}
27+
volume_type = 'to-eleven'
28+
volume_zone = 'stonehenge'
29+
volume_metadata = {
30+
'Alpha': 'a',
31+
'Beta': 'b',
32+
'Gamma': 'g',
33+
}
34+
volume_metadata_str = "Alpha='a', Beta='b', Gamma='g'"
2835

2936
VOLUME = {
3037
'id': volume_id,
@@ -33,6 +40,8 @@
3340
'size': volume_size,
3441
'status': '',
3542
'attach_status': 'detached',
43+
'availability_zone': volume_zone,
44+
'volume_type': volume_type,
3645
'metadata': volume_metadata,
3746
}
3847

‎openstackclient/tests/volume/v1/test_volume.py‎

Lines changed: 138 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,6 @@ def test_volume_create_min_options(self):
7171
# DisplayCommandBase.take_action() returns two tuples
7272
columns, data = self.cmd.take_action(parsed_args)
7373

74-
# Set expected values
75-
#kwargs = {
76-
# 'metadata': volume_fakes.volume_metadata,
77-
#}
7874
# VolumeManager.create(size, snapshot_id=, source_volid=,
7975
# display_name=, display_description=,
8076
# volume_type=, user_id=,
@@ -96,22 +92,90 @@ def test_volume_create_min_options(self):
9692

9793
collist = (
9894
'attach_status',
95+
'availability_zone',
9996
'display_description',
10097
'display_name',
10198
'id',
10299
'properties',
103100
'size',
104101
'status',
102+
'type',
105103
)
106104
self.assertEqual(columns, collist)
107105
datalist = (
108106
'detached',
107+
volume_fakes.volume_zone,
109108
volume_fakes.volume_description,
110109
volume_fakes.volume_name,
111110
volume_fakes.volume_id,
111+
volume_fakes.volume_metadata_str,
112+
volume_fakes.volume_size,
112113
'',
114+
volume_fakes.volume_type,
115+
)
116+
self.assertEqual(data, datalist)
117+
118+
def test_volume_create_options(self):
119+
arglist = [
120+
'--size', str(volume_fakes.volume_size),
121+
'--description', volume_fakes.volume_description,
122+
'--type', volume_fakes.volume_type,
123+
'--availability-zone', volume_fakes.volume_zone,
124+
volume_fakes.volume_name,
125+
]
126+
verifylist = [
127+
('size', volume_fakes.volume_size),
128+
('description', volume_fakes.volume_description),
129+
('type', volume_fakes.volume_type),
130+
('availability_zone', volume_fakes.volume_zone),
131+
('name', volume_fakes.volume_name),
132+
]
133+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
134+
135+
# DisplayCommandBase.take_action() returns two tuples
136+
columns, data = self.cmd.take_action(parsed_args)
137+
138+
# VolumeManager.create(size, snapshot_id=, source_volid=,
139+
# display_name=, display_description=,
140+
# volume_type=, user_id=,
141+
# project_id=, availability_zone=,
142+
# metadata=, imageRef=)
143+
self.volumes_mock.create.assert_called_with(
144+
volume_fakes.volume_size,
145+
None,
146+
None,
147+
volume_fakes.volume_name,
148+
volume_fakes.volume_description,
149+
volume_fakes.volume_type,
150+
None,
151+
None,
152+
volume_fakes.volume_zone,
153+
None,
154+
None,
155+
)
156+
157+
collist = (
158+
'attach_status',
159+
'availability_zone',
160+
'display_description',
161+
'display_name',
162+
'id',
163+
'properties',
164+
'size',
165+
'status',
166+
'type',
167+
)
168+
self.assertEqual(columns, collist)
169+
datalist = (
170+
'detached',
171+
volume_fakes.volume_zone,
172+
volume_fakes.volume_description,
173+
volume_fakes.volume_name,
174+
volume_fakes.volume_id,
175+
volume_fakes.volume_metadata_str,
113176
volume_fakes.volume_size,
114177
'',
178+
volume_fakes.volume_type,
115179
)
116180
self.assertEqual(data, datalist)
117181

@@ -146,10 +210,6 @@ def test_volume_create_user_project_id(self):
146210
# DisplayCommandBase.take_action() returns two tuples
147211
columns, data = self.cmd.take_action(parsed_args)
148212

149-
# Set expected values
150-
#kwargs = {
151-
# 'metadata': volume_fakes.volume_metadata,
152-
#}
153213
# VolumeManager.create(size, snapshot_id=, source_volid=,
154214
# display_name=, display_description=,
155215
# volume_type=, user_id=,
@@ -172,22 +232,26 @@ def test_volume_create_user_project_id(self):
172232

173233
collist = (
174234
'attach_status',
235+
'availability_zone',
175236
'display_description',
176237
'display_name',
177238
'id',
178239
'properties',
179240
'size',
180241
'status',
242+
'type',
181243
)
182244
self.assertEqual(columns, collist)
183245
datalist = (
184246
'detached',
247+
volume_fakes.volume_zone,
185248
volume_fakes.volume_description,
186249
volume_fakes.volume_name,
187250
volume_fakes.volume_id,
188-
'',
251+
volume_fakes.volume_metadata_str,
189252
volume_fakes.volume_size,
190253
'',
254+
volume_fakes.volume_type,
191255
)
192256
self.assertEqual(data, datalist)
193257

@@ -222,10 +286,6 @@ def test_volume_create_user_project_name(self):
222286
# DisplayCommandBase.take_action() returns two tuples
223287
columns, data = self.cmd.take_action(parsed_args)
224288

225-
# Set expected values
226-
#kwargs = {
227-
# 'metadata': volume_fakes.volume_metadata,
228-
#}
229289
# VolumeManager.create(size, snapshot_id=, source_volid=,
230290
# display_name=, display_description=,
231291
# volume_type=, user_id=,
@@ -248,21 +308,86 @@ def test_volume_create_user_project_name(self):
248308

249309
collist = (
250310
'attach_status',
311+
'availability_zone',
251312
'display_description',
252313
'display_name',
253314
'id',
254315
'properties',
255316
'size',
256317
'status',
318+
'type',
257319
)
258320
self.assertEqual(columns, collist)
259321
datalist = (
260322
'detached',
323+
volume_fakes.volume_zone,
261324
volume_fakes.volume_description,
262325
volume_fakes.volume_name,
263326
volume_fakes.volume_id,
327+
volume_fakes.volume_metadata_str,
328+
volume_fakes.volume_size,
264329
'',
330+
volume_fakes.volume_type,
331+
)
332+
self.assertEqual(data, datalist)
333+
334+
def test_volume_create_properties(self):
335+
arglist = [
336+
'--property', 'Alpha=a',
337+
'--property', 'Beta=b',
338+
'--size', str(volume_fakes.volume_size),
339+
volume_fakes.volume_name,
340+
]
341+
verifylist = [
342+
('property', {'Alpha': 'a', 'Beta': 'b'}),
343+
('size', volume_fakes.volume_size),
344+
('name', volume_fakes.volume_name),
345+
]
346+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
347+
348+
# DisplayCommandBase.take_action() returns two tuples
349+
columns, data = self.cmd.take_action(parsed_args)
350+
351+
# VolumeManager.create(size, snapshot_id=, source_volid=,
352+
# display_name=, display_description=,
353+
# volume_type=, user_id=,
354+
# project_id=, availability_zone=,
355+
# metadata=, imageRef=)
356+
self.volumes_mock.create.assert_called_with(
357+
volume_fakes.volume_size,
358+
None,
359+
None,
360+
volume_fakes.volume_name,
361+
None,
362+
None,
363+
None,
364+
None,
365+
None,
366+
{'Alpha': 'a', 'Beta': 'b'},
367+
None,
368+
)
369+
370+
collist = (
371+
'attach_status',
372+
'availability_zone',
373+
'display_description',
374+
'display_name',
375+
'id',
376+
'properties',
377+
'size',
378+
'status',
379+
'type',
380+
)
381+
self.assertEqual(columns, collist)
382+
datalist = (
383+
'detached',
384+
volume_fakes.volume_zone,
385+
volume_fakes.volume_description,
386+
volume_fakes.volume_name,
387+
volume_fakes.volume_id,
388+
volume_fakes.volume_metadata_str,
265389
volume_fakes.volume_size,
266390
'',
391+
volume_fakes.volume_type,
267392
)
268393
self.assertEqual(data, datalist)

‎openstackclient/volume/v1/volume.py‎

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def get_parser(self, prog_name):
5656
help='Description of the volume',
5757
)
5858
parser.add_argument(
59-
'--volume-type',
59+
'--type',
6060
metavar='<volume-type>',
6161
help='Type of volume',
6262
)
@@ -124,7 +124,7 @@ def take_action(self, parsed_args):
124124
source_volume,
125125
parsed_args.name,
126126
parsed_args.description,
127-
parsed_args.volume_type,
127+
parsed_args.type,
128128
user,
129129
project,
130130
parsed_args.availability_zone,
@@ -133,7 +133,10 @@ def take_action(self, parsed_args):
133133
)
134134
# Map 'metadata' column to 'properties'
135135
volume._info.update(
136-
{'properties': utils.format_dict(volume._info.pop('metadata'))}
136+
{
137+
'properties': utils.format_dict(volume._info.pop('metadata')),
138+
'type': volume._info.pop('volume_type'),
139+
},
137140
)
138141

139142
return zip(*sorted(six.iteritems(volume._info)))
@@ -331,7 +334,10 @@ def take_action(self, parsed_args):
331334
volume = utils.find_resource(volume_client.volumes, parsed_args.volume)
332335
# Map 'metadata' column to 'properties'
333336
volume._info.update(
334-
{'properties': utils.format_dict(volume._info.pop('metadata'))}
337+
{
338+
'properties': utils.format_dict(volume._info.pop('metadata')),
339+
'type': volume._info.pop('volume_type'),
340+
},
335341
)
336342
if 'os-vol-tenant-attr:tenant_id' in volume._info:
337343
volume._info.update(

0 commit comments

Comments
 (0)