Source code for bellatrix.stop
#!/usr/bin/python
'''
stop or terminate instances
'''
import logging
from bellatrix.lib.ec2_lib import Ec2lib
from bellatrix.lib import bellatrix_util
[docs]class Finisher():
def __init__(self, key, sec, message):
self._ec2 = Ec2lib(key, sec)
self.ALL_INSTANCES = "all"
self.message = message
[docs] def finish_instance(self, instance, finish_it):
instance = instance.lower()
inst = []
if self.ALL_INSTANCES == instance:
inst = self._ec2.getInstances()
else:
inst = [self._ec2.getInstance(instance)]
if inst[0] == None:
raise Exception("Instance %s has not been found in this account." % instance)
for i in inst:
finish_it(i)
logging.info("%s successfully %s." % (i, self.message) )
[docs]def stop(instance):
f = Finisher(bellatrix_util.getKey(), bellatrix_util.getSecret(), "stopped")
f.finish_instance(instance, f._ec2.stopInstance)
return 0
[docs]def terminate(instance):
f = Finisher(bellatrix_util.getKey(), bellatrix_util.getSecret(), "terminated")
f.finish_instance(instance, f._ec2.terminateInstance)
return 0