예제 #1
0
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)
예제 #2
0
    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
예제 #3
0
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