def take_action(self, parsed_args): env_name = parsed_args.env_name command_string = parsed_args.command_string response = server.TakeAction().get_environment(env_name) if response: response_json = json.loads(response) env_output_config = ast.literal_eval( response_json['data']['env_definition']) type = env_output_config['environment']['app_deployment']['type'] if type == 'local-docker': print( "Shell functionality not available for local deployment target." ) print("You can use docker commands from command-line instead.") exit() if response_json['data']['status'] == 'available': print("Running the command %s on the environment..." % command_string) response = server.TakeAction().run_command( env_name, command_string) print(response) else: print("Environment %s is not in appropriate state." % env_name)
def take_action(self, parsed_args): env_name = parsed_args.env_name force_flag = '' # if parsed_args.force: # force_flag = 'true' server.TakeAction().delete_environment(env_name, force_flag=force_flag)
def take_action(self, parsed_args): app_name = parsed_args.app_name app_info = {} app_location = os.getcwd() app_folder_name = self._get_app_folder_name(app_location) app_info['app_folder_name'] = app_folder_name server.TakeAction().redeploy_app(app_location, app_info, app_names)
def take_action(self, parsed_args): app_name = parsed_args.app_name print( "Retrieving application deployment and runtime logs from the COE..." ) response = server.TakeAction().get_app_logs(app_name) print(response)
def take_action(self, parsed_args): cont_info = {} cont_name = parsed_args.container_name cont_info['cont_name'] = cont_name repository = parsed_args.repository.strip() cont_info['dep_target'] = repository if repository != 'gcr' and repository != 'ecr' and repository != 'local': print( "Incorrect repository destination specified. Should be one of: ecr, gcr, local" ) exit() if repository == 'gcr': if not common.cloud_setup('gcloud'): print( "Cloud setup not done for Google cloud. Please run 'cld setup gcloud' and then ./<cloudark-dir>/restart-cloudark.sh" ) exit() project_id = '' if not parsed_args.project_id: project_id = raw_input("Project ID>") else: project_id = parsed_args.project_id cont_info['project'] = project_id if repository == 'ecr': if not common.cloud_setup('aws'): print( "Cloud setup not done for AWS cloud. Please run 'cld setup aws' and then ./<cloudark-dir>/restart-cloudark.sh" ) exit() cont_df_location = os.getcwd() if not os.path.exists(cont_df_location + "/Dockerfile"): print("There is no Dockerfile in this directory. Exiting.") exit() cont_df_folder_name = common.get_app_folder_name(cont_df_location) cont_info['cont_df_folder_name'] = cont_df_folder_name source_dir = os.getcwd() server.TakeAction().create_container(source_dir, cont_info)
def take_action(self, parsed_args): app_info = {} app_info['app_name'] = parsed_args.app_name app_info['env_name'] = parsed_args.env_name app_info['app_yaml'] = parsed_args.app_file is_valid_app_format = common.validate_app_format(parsed_args.app_file) if not is_valid_app_format: print("Invalid app format:") print("Currently supported formats are:") print("- CloudARK's app yaml") print("- Kubernetes's format with Pod definitions only") print(" - https://github.com/cloud-ark/cloudark/issues/200") exit() # Check if app_file contains container_port defined or not try: fp = open(parsed_args.app_file, "r") app_def = yaml.load(fp.read()) if 'app' in app_def: if app_def['app'] is None: print("app yaml cannot be empty.") exit() if 'container_port' not in app_def['app']: print( "'container_port' attribute is missing from app definition." ) exit() elif 'image' not in app_def['app']: print("'image' attribute is missing from app definition.") exit() except Exception as e: print("Could not parse %s" % parsed_args.app_file) exit() app_location = os.getcwd() app_folder_name = common.get_app_folder_name(app_location) app_info['app_folder_name'] = app_folder_name server.TakeAction().deploy_app(app_location, app_info)
def take_action(self, parsed_args): app_name = parsed_args.app_name server.TakeAction().delete_app(app_name)
def take_action(self, parsed_args): container_name = parsed_args.container_name response = server.TakeAction().get_container(container_name) print(response)
def take_action(self, parsed_args): env_name = parsed_args.env_name response = server.TakeAction().get_environment(env_name) print(response)
def take_action(self, parsed_args): response = server.TakeAction().get_app_list() print(response)
def take_action(self, parsed_args): response = server.TakeAction().get_resources() print(response)
def take_action(self, parsed_args): env_name = parsed_args.env_name is_name_invalid = common.check_env_name(env_name, not_allowed_regex_list) if is_name_invalid or len(env_name) > 10: print( "Invalid environment name. Please follow these constraints for env name:" ) print("- Must be upto 10 characters in length.") print("- May contain alphanumeric characters or hyphens.") print("- First character must be a letter.") print( "- Cannot end with a hyphen or contain two consecutive hyphens." ) exit(0) if not env_name: env_name = raw_input("Please enter name for the environment>") file_name = parsed_args.file_name if not file_name: file_name = raw_input("Please enter " + env_file_request_string + ">") try: fp = open(file_name, "r") except Exception as e: print(e) exit() environment_def = '' try: environment_def = yaml.load(fp.read()) # TODO(devdatta): Verify that each resource definition contains the 'type' attribute except Exception as exp: print("Error parsing %s" % file_name) print(exp) exit() cloud_list = common.parse_clouds(environment_def) setup_not_done = False for cloud in cloud_list: if not common.cloud_setup(cloud): setup_not_done = True print( "Setup not done for cloud %s. Run 'cld setup %s' to do the setup." % (cloud, cloud)) print( "Once setup is done, restart cloudark server: ./<cloudark-dir>/restart-cloudark.sh" ) if setup_not_done: exit() if 'app_deployment' not in environment_def['environment']: print( "app_deployment attribute missing from environment definition." ) exit() if environment_def['environment']['app_deployment'][ 'target'] == 'gcloud': project_id = '' if not parsed_args.project_id: project_id = raw_input("Project ID>") else: project_id = parsed_args.project_id environment_def['environment']['app_deployment'][ 'project'] = project_id.strip() zone = '' cloudark_google_setup_details_path = APP_STORE_PATH + "/google-creds-cloudark" fp = open(cloudark_google_setup_details_path, "r") line = fp.readline() parts = line.split(":") zone = parts[1] environment_def['environment']['app_deployment'][ 'project'] = project_id environment_def['environment']['app_deployment']['zone'] = zone server.TakeAction().create_environment(env_name, environment_def)
def take_action(self, parsed_args): cont_name = parsed_args.cont_name server.TakeAction().delete_container(cont_name)
def take_action(self, parsed_args): app_name = parsed_args.app_name response = server.TakeAction().get_app(app_name) print(response)