Exemplo n.º 1
0
    def get(self, request, name, stage):
        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request,
                                                     name,
                                                     stage,
                                                     capacity_type="HOST")
            groups = common.get_non_cmp_group(request, name, stage)
            env = environs_helper.get_env_by_stage(request, name, stage)
            html = render_to_string(
                "configs/capacity.tmpl", {
                    "env": env,
                    "hosts": ','.join(hosts),
                    "groups": ','.join(groups),
                    "csrf_token": get_token(request),
                })
            return HttpResponse(json.dumps({'html': html}),
                                content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request,
                                                 name,
                                                 stage,
                                                 capacity_type="HOST")
        groups = common.get_non_cmp_group(request, name, stage)
        return render(
            request, 'configs/capacity.html', {
                "env": env,
                "stages": stages,
                "hosts": ','.join(hosts),
                "groups": ','.join(groups),
            })
Exemplo n.º 2
0
    def get(self, request, name, stage):
        if request.is_ajax():
            env = environs_helper.get_env_by_stage(request, name, stage)
            environs_helper.set_active_max_parallel(env)
            html = render_to_string('configs/env_config.tmpl', {
                "env": env,
                "csrf_token": get_token(request),
            })
            return HttpResponse(json.dumps({'html': html}), content_type="application/json")

        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)

        # get capacity to decide if we need to show the remove stage button
        show_remove = True
        # if people have already specified host capacity or group capacity but do not have cluster config
        # show capacity config page; otherwise, show cluster config page
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        if hosts:
            show_remove = False
        else:
            groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
            if groups:
                show_remove = False

        environs_helper.set_active_max_parallel(env)

        return render(request, 'configs/env_config.html', {
            "env": env,
            "stages": stages,
            "show_remove": show_remove,
            "pinterest": IS_PINTEREST,
        })
Exemplo n.º 3
0
    def get(self, request, name, stage):
        if request.is_ajax():
            env = environs_helper.get_env_by_stage(request, name, stage)
            html = render_to_string('configs/env_config.tmpl', {
                "env": env,
                "csrf_token": get_token(request),
            })
            return HttpResponse(json.dumps({'html': html}), content_type="application/json")

        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)

        # get capacity to decide if we need to show the remove stage button
        show_remove = True
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        if hosts:
            show_remove = False
        else:
            groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
            if groups:
                show_remove = False

        return render(request, 'configs/env_config.html', {
            "env": env,
            "stages": stages,
            "show_remove": show_remove,
            "pinterest": IS_PINTEREST,
        })
Exemplo n.º 4
0
    def get(self, request, name, stage):
        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
            groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
            env = environs_helper.get_env_by_stage(request, name, stage)
            html = render_to_string("configs/capacity.tmpl", {
                "env": env,
                "hosts": ','.join(hosts),
                "groups": ','.join(groups),
                "csrf_token": get_token(request),

            })
            return HttpResponse(json.dumps({'html': html}), content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
        return render(request, 'configs/capacity.html', {
            "env": env,
            "stages": stages,
            "hosts": ','.join(hosts),
            "groups": ','.join(groups),
        })
Exemplo n.º 5
0
    def get(self, request, name, stage):
        if request.is_ajax():
            env = environs_helper.get_env_by_stage(request, name, stage)
            environs_helper.set_active_max_parallel(env)
            html = render_to_string('configs/env_config.tmpl', {
                "env": env,
                "csrf_token": get_token(request),
            })
            return HttpResponse(json.dumps({'html': html}), content_type="application/json")

        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)

        # get capacity to decide if we need to show the remove stage button
        show_remove = True
        # if people have already specified host capacity or group capacity but do not have cluster config
        # show capacity config page; otherwise, show cluster config page
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        if hosts:
            show_remove = False
        else:
            groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
            if groups:
                show_remove = False

        environs_helper.set_active_max_parallel(env)

        return render(request, 'configs/env_config.html', {
            "envs": envs,
            "env": env,
            "stages": stages,
            "show_remove": show_remove,
            "pinterest": IS_PINTEREST,
        })
Exemplo n.º 6
0
    def get(self, request, name, stage):
        # cluster manager
        provider_list = None
        basic_cluster_info = None
        create_new = False
        adv = False
        env = environs_helper.get_env_by_stage(request, name, stage)
        if IS_PINTEREST:
            provider_list = baseimages_helper.get_all_providers(request)
            basic_cluster_info = clusters_helper.get_cluster(request, env.get('clusterName'))
            if basic_cluster_info:
                base_image_id = basic_cluster_info.get('baseImageId')
                base_image = baseimages_helper.get_by_id(request, base_image_id)
                if base_image.get('abstract_name') != 'CMP-DOCKER':
                    adv = True

            params = request.GET
            if params.get('adv'):
                adv = params.get('adv')
            if params.get('create_new'):
                create_new = params.get('create_new')

        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
            groups = common.get_non_cmp_group(request, name, stage)
            html = render_to_string("configs/capacity.tmpl", {
                "env": env,
                "hosts": ','.join(hosts),
                "groups": ','.join(groups),
                "csrf_token": get_token(request),
                'is_pinterest': IS_PINTEREST,
                'provider_list': provider_list,
                'basic_cluster_info': basic_cluster_info,
                'adv': adv,
                'create_new': create_new,
            })
            return HttpResponse(json.dumps({'html': html}), content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        groups = common.get_non_cmp_group(request, name, stage)
        return render(request, 'configs/capacity.html', {
            "envs": envs,
            "env": env,
            "stages": stages,
            "hosts": ','.join(hosts),
            "groups": ','.join(groups),
            'is_pinterest': IS_PINTEREST,
            'provider_list': provider_list,
            'basic_cluster_info': basic_cluster_info,
            'adv': adv,
            'create_new': create_new,
        })
Exemplo n.º 7
0
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))
Exemplo n.º 8
0
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))
Exemplo n.º 9
0
    def get(self, request, name, stage=None):
        envs = environs_helper.get_all_env_stages(request, name)

        if len(envs) == 0:
            return redirect('/')

        stages, env = common.get_all_stages(envs, stage)
        env_promote = environs_helper.get_env_promotes_config(request, name, env['stageName'])
        stage = env['stageName']
        username = request.teletraan_user_id.name
        request_feedback = check_feedback_eligible(request, username)
        groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
        metrics = environs_helper.get_env_metrics_config(request, name, stage)
        alarms = environs_helper.get_env_alarms_config(request, name, stage)

        if not env['deployId']:
            capacity_hosts = deploys_helper.get_missing_hosts(request, name, stage)
            response = render(request, 'environs/env_landing.html', {
                "env": env,
                "env_promote": env_promote,
                "stages": stages,
                "metrics": metrics,
                "alarms": alarms,
                "request_feedback": request_feedback,
                "groups": groups,
                "capacity_hosts": capacity_hosts,
                "pinterest": IS_PINTEREST,
            })
            showMode = 'complete'
            sortByStatus = 'true'
        else:
            # Get deploy progress
            progress = deploys_helper.update_progress(request, name, stage)
            showMode = _fetch_param_with_cookie(
                request, 'showMode', MODE_COOKIE_NAME, 'complete')
            sortByStatus = _fetch_param_with_cookie(
                request, 'sortByStatus', STATUS_COOKIE_NAME, 'true')
            report = agent_report.gen_report(request, env, progress, sortByStatus=sortByStatus)
            report.showMode = showMode
            report.sortByStatus = sortByStatus
            response = render(request, 'environs/env_landing.html', {
                "env": env,
                "env_promote": env_promote,
                "stages": stages,
                "report": report,
                "has_deploy": True,
                "metrics": metrics,
                "alarms": alarms,
                "request_feedback": request_feedback,
                "groups": groups,
                "pinterest": IS_PINTEREST,
            })

        # save preferences
        response.set_cookie(ENV_COOKIE_NAME, genEnvCookie(request, name))
        response.set_cookie(MODE_COOKIE_NAME, showMode)
        response.set_cookie(STATUS_COOKIE_NAME, sortByStatus)

        return response
Exemplo n.º 10
0
def get_non_cmp_group(request, name, stage):
    groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
    if IS_PINTEREST:
        basic_cluster_info = clusters_helper.get_cluster(request, name, stage)
        if basic_cluster_info:
            cluster_name = get_cluster_name(request, name, stage)
            groups.remove(cluster_name)
    return groups
Exemplo n.º 11
0
def get_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request,
                                              name,
                                              stage,
                                              capacity_type="GROUP")
    html = render_to_string('groups/simple_groups.tmpl', {
        "groups": groups,
    })
    return HttpResponse(html)
Exemplo n.º 12
0
def get_non_cmp_group(request, name, stage):
    groups = environs_helper.get_env_capacity(request,
                                              name,
                                              stage,
                                              capacity_type="GROUP")
    if IS_PINTEREST:
        basic_cluster_info = clusters_helper.get_cluster(request, name, stage)
        if basic_cluster_info:
            cluster_name = get_cluster_name(name, stage)
            groups.remove(cluster_name)
    return groups
Exemplo n.º 13
0
def get_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")

    # Hide cluster group info
    basic_cluster_info = clusters_helper.get_cluster(request, name, stage)
    if basic_cluster_info:
        cluster_name = '{}-{}'.format(name, stage)
        groups.remove(cluster_name)

    html = render_to_string('groups/simple_groups.tmpl', {
        "groups": groups,
    })
    return HttpResponse(html)
Exemplo n.º 14
0
def get_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request,
                                              name,
                                              stage,
                                              capacity_type="GROUP")

    # Hide cluster group info
    basic_cluster_info = clusters_helper.get_cluster(request, name, stage)
    if basic_cluster_info:
        cluster_name = '{}-{}'.format(name, stage)
        groups.remove(cluster_name)

    html = render_to_string('groups/simple_groups.tmpl', {
        "groups": groups,
    })
    return HttpResponse(html)
Exemplo n.º 15
0
    def get(self, request, name, stage, hostname):
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        duplicate_stage = ''
        for stage_name in stages:
            if stage_name != stage:
                hosts = environs_helper.get_env_capacity(request,
                                                         name,
                                                         stage_name,
                                                         capacity_type="HOST")
                if hostname in hosts:
                    duplicate_stage = stage_name

        hosts = environ_hosts_helper.get_host_by_env_and_hostname(
            request, name, stage, hostname)
        host_id = get_host_id(hosts)
        show_terminate = get_show_terminate(hosts)
        show_warning_message = not show_terminate
        asg = get_asg_name(request, hosts)
        is_protected = False
        if asg:
            is_protected = autoscaling_groups_helper.is_hosts_protected(
                request, asg, [host_id])

        agent_wrappers, is_unreachable = get_agent_wrapper(request, hostname)
        host_details = get_host_details(host_id)

        return render(
            request, 'hosts/host_details.html', {
                'env_name': name,
                'stage_name': stage,
                'hostname': hostname,
                'hosts': hosts,
                'host_id': host_id,
                'agent_wrappers': agent_wrappers,
                'show_terminate': show_terminate,
                'show_warning_message': show_warning_message,
                'show_force_terminate': IS_PINTEREST,
                'asg_group': asg,
                'is_unreachable': is_unreachable,
                'pinterest': IS_PINTEREST,
                'host_information_url': CMDB_UI_HOST,
                'instance_protected': is_protected,
                'host_details': host_details,
                'duplicate_stage': duplicate_stage,
            })
Exemplo n.º 16
0
    def get(self, request, name, stage, hostname):
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        duplicate_stage = ''
        for stage_name in stages:
            if stage_name != stage:
                hosts = environs_helper.get_env_capacity(request, name, stage_name, capacity_type="HOST")
                if hostname in hosts:
                    duplicate_stage = stage_name

        hosts = environ_hosts_helper.get_host_by_env_and_hostname(request, name, stage, hostname)
        host_id = get_host_id(hosts)
        show_terminate = get_show_terminate(hosts)
        show_warning_message = not show_terminate
        asg = get_asg_name(request, hosts)
        is_protected = False
        if asg:
            is_protected = autoscaling_groups_helper.is_hosts_protected(request, asg, [host_id])

        agent_wrappers, is_unreachable = get_agent_wrapper(request, hostname)
        host_details = get_host_details(host_id)

        return render(request, 'hosts/host_details.html', {
            'env_name': name,
            'stage_name': stage,
            'hostname': hostname,
            'hosts': hosts,
            'host_id': host_id,
            'agent_wrappers': agent_wrappers,
            'show_terminate': show_terminate,
            'show_warning_message': show_warning_message,
            'show_force_terminate': IS_PINTEREST,
            'asg_group': asg,
            'is_unreachable': is_unreachable,
            'pinterest': IS_PINTEREST,
            'host_information_url': CMDB_UI_HOST,
            'instance_protected': is_protected,
            'host_details': host_details,
            'duplicate_stage': duplicate_stage,
        })
Exemplo n.º 17
0
def get_env_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request,
                                              name,
                                              stage,
                                              capacity_type="GROUP")
    return groups
Exemplo n.º 18
0
    def get(self, request, name, stage=None):
        envs = environs_helper.get_all_env_stages(request, name)

        if len(envs) == 0:
            return redirect('/')

        stages, env = common.get_all_stages(envs, stage)
        env_promote = environs_helper.get_env_promotes_config(request, name, env['stageName'])
        stage = env['stageName']
        username = request.teletraan_user_id.name
        request_feedback = check_feedback_eligible(request, username)
        groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
        metrics = environs_helper.get_env_metrics_config(request, name, stage)
        alarms = environs_helper.get_env_alarms_config(request, name, stage)
        basic_cluster_info = None
        if IS_PINTEREST:
            basic_cluster_info = clusters_helper.get_cluster(request, name, stage)

        if not env['deployId']:
            capacity_hosts = deploys_helper.get_missing_hosts(request, name, stage)
            provisioning_hosts = environ_hosts_helper.get_hosts(request, name, stage)
            if IS_PINTEREST:
                basic_cluster_info = clusters_helper.get_cluster(request, env['envName'], env['stageName'])
                if basic_cluster_info and basic_cluster_info.get('capacity'):
                    hosts_in_cluster = clusters_helper.get_host_names(request, env['envName'], env['stageName'])
                    num_to_fake = basic_cluster_info.get('capacity') - len(hosts_in_cluster)
                    for i in range(num_to_fake):
                        faked_host = {}
                        faked_host['hostName'] = 'UNKNOWN'
                        faked_host['hostId'] = 'UNKNOWN'
                        faked_host['state'] = 'PROVISIONED'
                        provisioning_hosts.append(faked_host)

            response = render(request, 'environs/env_landing.html', {
                "env": env,
                "env_promote": env_promote,
                "stages": stages,
                "metrics": metrics,
                "alarms": alarms,
                "request_feedback": request_feedback,
                "groups": groups,
                "capacity_hosts": capacity_hosts,
                "provisioning_hosts": provisioning_hosts,
                "basic_cluster_info": basic_cluster_info,
                "pinterest": IS_PINTEREST,
            })
            showMode = 'complete'
            sortByStatus = 'true'
        else:
            # Get deploy progress
            progress = deploys_helper.update_progress(request, name, stage)
            showMode = _fetch_param_with_cookie(
                request, 'showMode', MODE_COOKIE_NAME, 'complete')
            sortByStatus = _fetch_param_with_cookie(
                request, 'sortByStatus', STATUS_COOKIE_NAME, 'true')
            report = agent_report.gen_report(request, env, progress, sortByStatus=sortByStatus)
            report.showMode = showMode
            report.sortByStatus = sortByStatus
            response = render(request, 'environs/env_landing.html', {
                "env": env,
                "env_promote": env_promote,
                "stages": stages,
                "report": report,
                "has_deploy": True,
                "metrics": metrics,
                "alarms": alarms,
                "request_feedback": request_feedback,
                "groups": groups,
                "basic_cluster_info": basic_cluster_info,
                "pinterest": IS_PINTEREST,
            })

        # save preferences
        response.set_cookie(ENV_COOKIE_NAME, genEnvCookie(request, name))
        response.set_cookie(MODE_COOKIE_NAME, showMode)
        response.set_cookie(STATUS_COOKIE_NAME, sortByStatus)

        return response
Exemplo n.º 19
0
    def get(self, request, name, stage):
        # cluster manager
        provider_list = None
        basic_cluster_info = None
        create_new = False
        adv = False
        env = environs_helper.get_env_by_stage(request, name, stage)
        cluster_name = env.get('clusterName')
        if IS_PINTEREST:
            provider_list = baseimages_helper.get_all_providers(request)
            basic_cluster_info = clusters_helper.get_cluster(request, cluster_name)
            if basic_cluster_info:
                base_image_id = basic_cluster_info.get('baseImageId')
                base_image = baseimages_helper.get_by_id(request, base_image_id)
                asg_cluster = autoscaling_groups_helper.get_group_info(request, cluster_name)
                basic_cluster_info['asg_info'] = asg_cluster

            params = request.GET
            if params.get('adv'):
                adv = params.get('adv')
            if params.get('create_new'):
                create_new = params.get('create_new')

        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
            groups = common.get_env_groups(request, name, stage)
            if cluster_name in groups:
                groups.remove(cluster_name)
            info = {
                "env": env,
                "hosts": hosts,
                "groups": groups,
                "csrf_token": get_token(request),
                'is_pinterest': IS_PINTEREST,
                'provider_list': provider_list,
                'basic_cluster_info': basic_cluster_info,
                'adv': adv,
                'create_new': create_new,
            }
            return HttpResponse(json.dumps(info), content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        groups = common.get_env_groups(request, name, stage)
        if cluster_name in groups:
            groups.remove(cluster_name)
        data = {
            "envs": envs,
            "env": env,
            "stages": stages,
            "hosts": hosts,
            "groups": groups,
            'is_pinterest': IS_PINTEREST,
            'provider_list': provider_list,
            'basic_cluster_info': basic_cluster_info,
            'adv': adv,
            'create_new': create_new
        }
        data['info'] = json.dumps(data)
        return render(request, 'configs/capacity.html', data)
Exemplo n.º 20
0
    def get(self, request, name, stage=None):
        envs = environs_helper.get_all_env_stages(request, name)

        if len(envs) == 0:
            return redirect('/')

        stages, env = common.get_all_stages(envs, stage)
        env_promote = environs_helper.get_env_promotes_config(
            request, name, env['stageName'])
        stage = env['stageName']
        username = request.teletraan_user_id.name
        request_feedback = check_feedback_eligible(request, username)
        groups = environs_helper.get_env_capacity(request,
                                                  name,
                                                  stage,
                                                  capacity_type="GROUP")
        metrics = environs_helper.get_env_metrics_config(request, name, stage)
        alarms = environs_helper.get_env_alarms_config(request, name, stage)
        basic_cluster_info = clusters_helper.get_cluster(request, name, stage)

        if not env['deployId']:
            capacity_hosts = deploys_helper.get_missing_hosts(
                request, name, stage)
            provisioning_hosts = environ_hosts_helper.get_hosts(
                request, name, stage)
            response = render(
                request, 'environs/env_landing.html', {
                    "env": env,
                    "env_promote": env_promote,
                    "stages": stages,
                    "metrics": metrics,
                    "alarms": alarms,
                    "request_feedback": request_feedback,
                    "groups": groups,
                    "capacity_hosts": capacity_hosts,
                    "provisioning_hosts": provisioning_hosts,
                    "basic_cluster_info": basic_cluster_info,
                    "pinterest": IS_PINTEREST,
                })
            showMode = 'complete'
            sortByStatus = 'true'
        else:
            # Get deploy progress
            progress = deploys_helper.update_progress(request, name, stage)
            showMode = _fetch_param_with_cookie(request, 'showMode',
                                                MODE_COOKIE_NAME, 'complete')
            sortByStatus = _fetch_param_with_cookie(request, 'sortByStatus',
                                                    STATUS_COOKIE_NAME, 'true')
            report = agent_report.gen_report(request,
                                             env,
                                             progress,
                                             sortByStatus=sortByStatus)
            report.showMode = showMode
            report.sortByStatus = sortByStatus
            response = render(
                request, 'environs/env_landing.html', {
                    "env": env,
                    "env_promote": env_promote,
                    "stages": stages,
                    "report": report,
                    "has_deploy": True,
                    "metrics": metrics,
                    "alarms": alarms,
                    "request_feedback": request_feedback,
                    "groups": groups,
                    "basic_cluster_info": basic_cluster_info,
                    "pinterest": IS_PINTEREST,
                })

        # save preferences
        response.set_cookie(ENV_COOKIE_NAME, genEnvCookie(request, name))
        response.set_cookie(MODE_COOKIE_NAME, showMode)
        response.set_cookie(STATUS_COOKIE_NAME, sortByStatus)

        return response
Exemplo n.º 21
0
    def get(self, request, name, stage):
        # cluster manager
        provider_list = None
        basic_cluster_info = None
        create_new = False
        adv = False
        env = environs_helper.get_env_by_stage(request, name, stage)
        if IS_PINTEREST:
            provider_list = baseimages_helper.get_all_providers(request)
            basic_cluster_info = clusters_helper.get_cluster(
                request, env.get('clusterName'))
            if basic_cluster_info:
                base_image_id = basic_cluster_info.get('baseImageId')
                base_image = baseimages_helper.get_by_id(
                    request, base_image_id)
                if base_image.get('abstract_name') != 'CMP-DOCKER':
                    adv = True

            params = request.GET
            if params.get('adv'):
                adv = params.get('adv')
            if params.get('create_new'):
                create_new = params.get('create_new')

        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request,
                                                     name,
                                                     stage,
                                                     capacity_type="HOST")
            groups = common.get_non_cmp_group(request, name, stage)
            html = render_to_string(
                "configs/capacity.tmpl", {
                    "env": env,
                    "hosts": ','.join(hosts),
                    "groups": ','.join(groups),
                    "csrf_token": get_token(request),
                    'is_pinterest': IS_PINTEREST,
                    'provider_list': provider_list,
                    'basic_cluster_info': basic_cluster_info,
                    'adv': adv,
                    'create_new': create_new,
                })
            return HttpResponse(json.dumps({'html': html}),
                                content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request,
                                                 name,
                                                 stage,
                                                 capacity_type="HOST")
        groups = common.get_non_cmp_group(request, name, stage)
        return render(
            request, 'configs/capacity.html', {
                "envs": envs,
                "env": env,
                "stages": stages,
                "hosts": ','.join(hosts),
                "groups": ','.join(groups),
                'is_pinterest': IS_PINTEREST,
                'provider_list': provider_list,
                'basic_cluster_info': basic_cluster_info,
                'adv': adv,
                'create_new': create_new,
            })
Exemplo n.º 22
0
    def get(self, request, name, stage):
        # cluster manager
        provider_list = None
        basic_cluster_info = None
        create_new = False
        adv = False
        env = environs_helper.get_env_by_stage(request, name, stage)
        cluster_name = env.get('clusterName')
        if IS_PINTEREST:
            provider_list = baseimages_helper.get_all_providers(request)
            basic_cluster_info = clusters_helper.get_cluster(request, cluster_name)
            if basic_cluster_info:
                base_image_id = basic_cluster_info.get('baseImageId')
                base_image = baseimages_helper.get_by_id(request, base_image_id)
                asg_cluster = autoscaling_groups_helper.get_group_info(request, cluster_name)
                basic_cluster_info['asg_info'] = asg_cluster
                basic_cluster_info['base_image_info'] = base_image

            params = request.GET
            if params.get('adv'):
                adv = params.get('adv')
            if params.get('create_new'):
                create_new = params.get('create_new')

        if request.is_ajax():
            # return data for ajax calls
            hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
            groups = common.get_env_groups(request, name, stage)
            if cluster_name in groups:
                groups.remove(cluster_name)
            info = {
                "env": env,
                "hosts": hosts,
                "groups": groups,
                "csrf_token": get_token(request),
                'is_pinterest': IS_PINTEREST,
                'provider_list': provider_list,
                'basic_cluster_info': basic_cluster_info,
                'adv': adv,
                'create_new': create_new,
            }
            return HttpResponse(json.dumps(info), content_type="application/json")

        # otherwise, return a page
        envs = environs_helper.get_all_env_stages(request, name)
        stages, env = common.get_all_stages(envs, stage)
        hosts = environs_helper.get_env_capacity(request, name, stage, capacity_type="HOST")
        groups = common.get_env_groups(request, name, stage)
        if cluster_name in groups:
            groups.remove(cluster_name)
        data = {
            "envs": envs,
            "env": env,
            "stages": stages,
            "hosts": hosts,
            "groups": groups,
            'is_pinterest': IS_PINTEREST,
            'provider_list': provider_list,
            'basic_cluster_info': basic_cluster_info,
            'adv': adv,
            'create_new': create_new
        }
        data['info'] = json.dumps(data)
        return render(request, 'configs/capacity.html', data)
Exemplo n.º 23
0
def get_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
    html = render_to_string('groups/simple_groups.tmpl', {
        "groups": groups,
    })
    return HttpResponse(html)
Exemplo n.º 24
0
def get_env_groups(request, name, stage):
    groups = environs_helper.get_env_capacity(request, name, stage, capacity_type="GROUP")
    return groups