コード例 #1
0
ファイル: cluster_view.py プロジェクト: lilida/teletraan
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))
コード例 #2
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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")
コード例 #3
0
ファイル: cluster_view.py プロジェクト: pinterest/teletraan
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")
コード例 #4
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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)
コード例 #5
0
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))
コード例 #6
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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)
コード例 #7
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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))
コード例 #8
0
ファイル: cluster_view.py プロジェクト: in-han/teletraan
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))
コード例 #9
0
ファイル: capacity_views.py プロジェクト: in-han/teletraan
    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)
コード例 #10
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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))
コード例 #11
0
ファイル: cluster_view.py プロジェクト: sonia-y/teletraan
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))
コード例 #12
0
ファイル: cluster_view.py プロジェクト: jawhnycooke/teletraan
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))
コード例 #13
0
ファイル: cluster_view.py プロジェクト: pinterest/teletraan
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))
コード例 #14
0
ファイル: cluster_view.py プロジェクト: songbaogang/teletraan
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))
コード例 #15
0
ファイル: cluster_view.py プロジェクト: songbaogang/teletraan
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))