def force_terminate_hosts(request, name, stage): get_params = request.GET post_params = request.POST host_ids = None if 'host_id' in get_params: host_ids = [get_params.get('host_id')] if 'hostIds' in post_params: hosts_str = post_params['hostIds'] host_ids = [x.strip() for x in hosts_str.split(',')] if 'replaceHost' in post_params: replace_host = True else: replace_host = False cluster_name = common.get_cluster_name(request, name, stage) if not cluster_name: groups = environs_helper.get_env_capacity( request, name, stage, capacity_type="GROUP") for group_name in groups: cluster_name = group_name clusters_helper.force_terminate_hosts( request, cluster_name, host_ids, replace_host) return redirect('/env/{}/{}'.format(name, stage))
def get_advanced_cluster(request): params = request.GET provider = params['provider'] name = params['env'] stage = params['stage'] image_name = params['image_name'] cluster_name = common.get_cluster_name(request, name, stage) config_list = None advanced_cluster_info = {} if provider == PROVIDER_AWS: config_list = get_aws_config_name_list_by_image(image_name) basic_cluster_info = clusters_helper.get_cluster(request, cluster_name) if not basic_cluster_info: if image_name != 'CMP-DOCKER': advanced_cluster_info['aws_role'] = 'base' else: if image_name != 'CMP-DOCKER': advanced_cluster_info = basic_cluster_info.get('configs') else: cmp_configs = get_default_cmp_configs(name, stage) advanced_cluster_info = basic_cluster_info.get('configs') for key, value in cmp_configs.iteritems(): if advanced_cluster_info.get(key) == value: advanced_cluster_info.pop(key) contents = render_to_string('clusters/get_advanced_config.tmpl', { 'provider': provider, 'advanced_cluster_info': advanced_cluster_info, 'config_list': config_list, }) return HttpResponse(json.dumps(contents), content_type="application/json")
def get_advanced_cluster(request): params = request.GET provider = params["provider"] name = params["env"] stage = params["stage"] image_name = params["image_name"] cluster_name = common.get_cluster_name(request, name, stage) config_list = None advanced_cluster_info = {} if provider == PROVIDER_AWS: config_list = get_aws_config_name_list_by_image(image_name) basic_cluster_info = clusters_helper.get_cluster(request, cluster_name) if not basic_cluster_info: if image_name != CMP_DOCKER_IMAGE: advanced_cluster_info["aws_role"] = "base" else: advanced_cluster_info = get_default_cmp_configs(name, stage) else: if image_name != CMP_DOCKER_IMAGE: advanced_cluster_info = basic_cluster_info.get("configs") else: cmp_configs = get_default_cmp_configs(name, stage) advanced_cluster_info = basic_cluster_info.get("configs") for key, value in cmp_configs.iteritems(): if advanced_cluster_info.get(key) == value: advanced_cluster_info.pop(key) contents = render_to_string( "clusters/get_advanced_config.tmpl", {"provider": provider, "advanced_cluster_info": advanced_cluster_info, "config_list": config_list}, ) return HttpResponse(json.dumps(contents), content_type="application/json")
def update_cluster(request, name, stage): params = request.POST cluster_name = common.get_cluster_name(request, name, stage) cluster_info = parse_cluster_info(request, name, stage, cluster_name) user_data_configs = parse_configs(params) cluster_info['configs'] = user_data_configs clusters_helper.update_cluster(request, cluster_name, cluster_info) return get_basic_cluster(request, name, stage)
def delete_cluster(request, name, stage): cluster_name = common.get_cluster_name(request, name, stage) log.info("Delete cluster {}".format(cluster_name)); clusters_helper.delete_cluster(request, cluster_name) # Remove group and env relationship environs_helper.remove_env_capacity(request, name, stage, capacity_type="GROUP", data=cluster_name) return redirect('/env/{}/{}/config/capacity/'.format(name, stage))
def update_cmp_cluster(request, name, stage): params = request.POST cluster_name = common.get_cluster_name(request, name, stage) cluster_info = parse_cluster_info(request, name, stage, cluster_name) config_map = get_default_cmp_configs(name, stage) user_data_configs = parse_configs(params) config_map.update(user_data_configs) cluster_info['configs'] = config_map clusters_helper.update_cluster(request, cluster_name, cluster_info) return get_cmp_cluster(request, name, stage)
def delete_cluster(request, name, stage): cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.delete_cluster(request, cluster_name) # Update isDocker and cluster name in env_info = {} env_info['clusterName'] = '' env_info['isDocker'] = False environs_helper.update_env_basic_config(request, name, stage, data=env_info) # Remove group and env relationship environs_helper.remove_env_capacity(request, name, stage, capacity_type="GROUP", data=cluster_name) return redirect('/env/{}/{}/config/capacity/'.format(name, stage))
def force_terminate_hosts(request, name, stage): get_params = request.GET post_params = request.POST host_ids = None if 'host_id' in get_params: host_ids = [get_params.get('host_id')] if 'hostIds' in post_params: hosts_str = post_params['hostIds'] host_ids = [x.strip() for x in hosts_str.split(',')] cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.force_terminate_hosts(request, cluster_name, host_ids) return redirect('/env/{}/{}'.format(name, stage))
def post(self, request, name, stage): query_dict = request.POST hosts_str = query_dict["hosts"] hosts = [] if hosts_str: hosts = [x.strip() for x in hosts_str.split(',')] environs_helper.update_env_capacity(request, name, stage, capacity_type="HOST", data=hosts) groups_str = query_dict["groups"] groups = [] if groups_str: groups = [x.strip() for x in groups_str.split(',')] if IS_PINTEREST: cluster_name = common.get_cluster_name(request, name, stage) basic_cluster_info = clusters_helper.get_cluster(request, cluster_name) if basic_cluster_info: cluster_name = common.get_cluster_name(request, name, stage) groups.append(cluster_name) environs_helper.update_env_capacity(request, name, stage, capacity_type="GROUP", data=groups) return self.get(request, name, stage)
def cancel_cluster_replacement(request, name, stage): cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.cancel_cluster_replacement(request, cluster_name) return redirect('/env/{}/{}/config/capacity/'.format(name, stage))
def launch_hosts(request, name, stage): params = request.POST num = int(params['num']) cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.launch_hosts(request, cluster_name, num) return redirect('/env/{}/{}/'.format(name, stage))
def resume_cluster_replacement(request, name, stage): cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.resume_cluster_replacement(request, cluster_name) return redirect('/env/{}/{}/config/clusters/'.format(name, stage))
def pause_cluster_replacement(request, name, stage): cluster_name = common.get_cluster_name(request, name, stage) clusters_helper.pause_cluster_replacement(request, cluster_name) return redirect("/env/{}/{}/config/capacity/".format(name, stage))