Skip to content

Commit 7fc1413

Browse files
committed
Fixed #151 -- deis flavors:update working with tests.
1 parent 1614736 commit 7fc1413

3 files changed

Lines changed: 30 additions & 7 deletions

File tree

api/models.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,6 @@ class Flavor(UuidAuditedModel):
206206
'us-west-2': 'ami-ea1e82da',
207207
}
208208

209-
def save(self, *args, **kwargs):
210-
print args, kwargs
211-
print self.params
212-
return super(Flavor, self).save(*args, **kwargs)
213-
214209
class Meta:
215210
unique_together = (('owner', 'id'),)
216211

api/tests/flavor.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ def test_flavor_update(self):
8787
url = "/api/flavors/{flavor_id}".format(**locals())
8888
response = self.client.get(url)
8989
self.assertEqual(response.status_code, 200)
90+
uuid = response.data['uuid']
91+
self.assertRegexpMatches(uuid, r'^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$')
9092
params = json.loads(response.data['params'])
9193
self.assertEqual(params['region'], 'us-west-2')
9294
self.assertEqual(params['zone'], 'any')
@@ -106,8 +108,9 @@ def test_flavor_update(self):
106108
url = "/api/flavors/{flavor_id}".format(**locals())
107109
response = self.client.get(url)
108110
self.assertEqual(response.status_code, 200)
111+
self.assertEqual(response.data['uuid'], uuid)
109112
params = json.loads(response.data['params'])
110-
self.assertEqual(params['region'], 'us-west-2')
111-
self.assertEqual(params['zone'], 'any')
113+
self.assertNotIn('region', params)
114+
self.assertNotIn('zone', params)
112115
self.assertEqual(params['size'], 'c1.xlarge')
113116
self.assertEqual(params['image'], 'ami-c98d1bf9')

client/deis.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,7 @@ def flavors(self, args):
626626
Valid commands for flavors:
627627
628628
flavors:create create a new node flavor
629+
flavors:update update an existing node flavor
629630
flavors:info print information about a node flavor
630631
flavors:list list available flavors
631632
flavors:delete delete a node flavor
@@ -658,6 +659,30 @@ def flavors_create(self, args):
658659
else:
659660
print('Error!', response.text)
660661

662+
def flavors_update(self, args):
663+
"""
664+
Create an existing node flavor
665+
666+
Usage: deis flavors:update <id> --params=<params> [options]
667+
668+
Options:
669+
670+
--params=PARAMS provider-specific parameters (size, region, zone, etc.)
671+
--init=INIT override Ubuntu cloud-init with custom YAML
672+
"""
673+
flavor = args.get('<id>')
674+
body = {'id': flavor}
675+
fields = ('params', 'init')
676+
for fld in fields:
677+
opt = args.get('--' + fld)
678+
if opt:
679+
body.update({fld: opt})
680+
response = self._dispatch('patch', '/api/flavors/{}'.format(flavor), json.dumps(body))
681+
if response.status_code == requests.codes.ok: # @UndefinedVariable
682+
print("{0[id]}".format(response.json()))
683+
else:
684+
print('Error!', response.text)
685+
661686
def flavors_delete(self, args):
662687
"""
663688
Delete a node flavor

0 commit comments

Comments
 (0)