def stop(): rval = False _config_dict = _load_config(_default_config_path()) _auth_params = _config_dict['provider']['auth'] _instance = get_instance() conn = provider.cloud_connect(**_auth_params) if conn is None: conn = provider.cloud_connect(**_auth_params) if conn and _instance is not None: rval = provider.stop_instance(conn, _instance.id) sys.stdout.write("instance halted successfully\n") return rval
def start(wait=True): rval = False _instance = None _instance_id = None _config_dict = _load_config() _auth_params = _config_dict['provider']['auth'] _instance_params = _config_dict['provider']['instance'] if 'instance_id' in _config_dict['provider']['instance']: _instance_id = _config_dict['provider']['instance']['instance_id'] conn = provider.cloud_connect(**_auth_params) if conn is not None and _instance_id is None: _instance = provider.create_instance(conn, _instance_params) elif conn is not None and _instance_id is not None: _instance = provider.start_instance(conn, _instance_id) if _instance is not None: _istatus = 'pending' while(_istatus != 'running' and wait): _istatus = status(_instance) sys.stdout.write("Wait until instance is running. Status is: {0}\n".format(_istatus)) time.sleep(5) rval = True save(_instance) return rval
def get_instance(instance_id=None): instance = None _instance_id = instance_id _config_dict = _load_config(_default_config_path()) _auth_params = _config_dict['provider']['auth'] if _instance_id is None and 'instance_id' in _config_dict['provider']['instance']: _instance_id = _config_dict['provider']['instance']['instance_id'] conn = provider.cloud_connect(**_auth_params) _reservations = conn.get_all_instances(instance_ids=[_instance_id]) if _reservations is not None and len(_reservations[0].instances): _instance = _reservations[0].instances.pop() return _instance