Skip to content
This repository was archived by the owner on Dec 20, 2024. It is now read-only.

Commit

Permalink
Resolves #139
Browse files Browse the repository at this point in the history
  • Loading branch information
bdwilliams committed Jan 27, 2015
1 parent 49d37bf commit bbd2487
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
23 changes: 23 additions & 0 deletions bin/dcm-deprecate-machine-image
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env python

from mixcoatl.infrastructure.machine_image import MachineImage
import argparse
import sys

if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--image', '-i', type=int, help='Machine Image ID', required=True)
cmd_args = parser.parse_args()

if cmd_args.image is None:
parser.print_help()
sys.exit(1)

image = MachineImage(cmd_args.image)
result = image.deprecate()

if isinstance(result, dict):
print(result['jobs'][0]['jobId'])
elif isinstance(result, unicode):
print(result)
sys.exit(1)
2 changes: 2 additions & 0 deletions bin/dcm-list-machine-images
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ from mixcoatl.infrastructure.machine_image import MachineImage
from mixcoatl import resource_utils, utils
from prettytable import PrettyTable
import argparse
import time
import sys
import os

if __name__ == '__main__':
""" List machine images in a region. """
start = time.time()
parser = argparse.ArgumentParser()
region_args = parser.add_mutually_exclusive_group(required=True)
region_args.add_argument('--regionid', '-r', type=int, help="Region ID.")
Expand Down
14 changes: 14 additions & 0 deletions mixcoatl/infrastructure/machine_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,20 @@ def destroy(self, reason='no reason provided'):
qopts = {'reason':reason}
return self.delete(p, params=qopts)

@required_attrs(['machine_image_id'])
def deprecate(self, callback=None):
"""Deprecates a machine image by id"""
p = '%s/%s' % (self.PATH, str(self.machine_image_id))
payload = {'deprecateImage':[{}]}
self.put(p, data=json.dumps(payload))
if self.last_error is None:
if callback is not None:
callback(self.current_job)
else:
return self.current_job
else:
raise MachineImageException(self.last_error)

@required_attrs(['server_id', 'name', 'budget', 'description', 'owning_groups'])
def create(self, callback=None):
"""Creates a machine image from server_id
Expand Down

0 comments on commit bbd2487

Please sign in to comment.