def main(): available_cloud_setup = common_functions.get_cloud_setup() if 'aws' not in available_cloud_setup: print("Cloud setup not found for aws.") print("Doing the setup now..") os.system("pip install awscli") os.system("aws configure") ec2_handler = EC2ResourceHandler() print("Spinning up EC2 instance") instance_id = ec2_handler.create() print("EC2 instance provisioning started") input("Hit Enter to continue>") ec2_handler.get(instance_id) input("Hit Enter to continue>") ec2_handler.delete(instance_id)
def post(self): fmlogging.debug("Received POST request to create environment") args = request.get_json(force=True) response = jsonify() response.status_code = 201 args_dict = dict(args) cloud_setup_done = common_functions.get_cloud_setup() if len(cloud_setup_done) == 0: resp_data = {} err_msg = 'No cloud setup found.' err_msg = err_msg + ' Run "cld setup aws" or "cld setup gcloud". Then restart cloudark server using the start-cloudark.sh script.' resp_data['error'] = err_msg response = jsonify(**resp_data) response.status_code = 412 return response try: if 'environment_def' not in args_dict: response.status_code = 400 else: environment_def = args_dict['environment_def'] environment_name = args_dict['environment_name'] env_version_stamp = common_functions.get_version_stamp() env_location = ( ENV_STORE_PATH + "/environments/{env_name}-{env_version_stamp}").format( env_name=environment_name, env_version_stamp=env_version_stamp) mkdir_env_location = ("mkdir {env_dir}").format( env_dir=env_location) os.system(mkdir_env_location) env_data = {} env_data['name'] = environment_name env_data['location'] = env_location env_data['env_version_stamp'] = env_version_stamp env_data['env_definition'] = environment_def env_id = '' try: env_id = env_db.Environment().insert(env_data) except Exception as e: fmlogging.error( "Failed inserting environment data in db: %s" % str(e)) message = ("Environment with name {env_name} already exists. Choose different name.").format(env_name=\ environment_name) fmlogging.debug(message) resp_data = {'error': message} response = jsonify(**resp_data) response.status_code = 400 return response environment_info = {} environment_info['name'] = environment_name environment_info['location'] = env_location request_handler_thread = environment_handler.EnvironmentHandler( env_id, environment_def, environment_info, action='create') # Check permissions here # permission_list = request_handler_thread.check_permissions() thread.start_new_thread(start_thread, (request_handler_thread, )) response.headers['location'] = ( '/environments/{env_name}').format( env_name=environment_name) except OSError as oe: fmlogging.error(oe) response.status_code = 503 return response
parser = reqparse.RequestParser() parser.add_argument('app_content', location='form') parser.add_argument('app_name', location='form') home_dir = expanduser("~") APP_STORE_PATH = ("{home_dir}/.cld/data/deployments").format(home_dir=home_dir) ENV_STORE_PATH = APP_STORE_PATH CLOUDARK_STATUS_FILE = "cloudark.status" from common import common_functions from common import fm_logger cloud_setup = common_functions.get_cloud_setup() if len(cloud_setup) == 0: fm_logger.Logging().error("No cloud setup found.") message = "No cloud setup found.\n" message = message + "Please run cloud setup commands and then start-cloudark.sh\n" message = message + "- cld setup aws\n" message = message + "- cld setup gcloud\n" print(message) fp = open("cloudark.error", "w") fp.write(message) fp.close() exit() from dbmodule import db_main from dbmodule.objects import app as app_db