コード例 #1
0
def _Run(args, holder, include_l7_internal_load_balancing, include_log_config):
  """Issues the request necessary for adding the health check."""
  client = holder.client
  messages = client.messages

  # Check that port related flags are set for gRPC health check.
  args_unset = not (args.port or args.port_name or args.use_serving_port)
  if args_unset:
    raise exceptions.ToolException(
        'Either --port, --port-name or --use-serving-port must be set for gRPC '
        'health check.'
    )

  health_check_ref = flags.HealthCheckArgument(
      'gRPC',
      include_l7_internal_load_balancing=include_l7_internal_load_balancing
  ).ResolveAsResource(
      args, holder.resources, default_scope=compute_scope.ScopeEnum.GLOBAL)
  grpc_health_check = messages.GRPCHealthCheck(
      port=args.port,
      portName=args.port_name,
      grpcServiceName=args.grpc_service_name)

  health_checks_utils.ValidateAndAddPortSpecificationToHealthCheck(
      args, grpc_health_check)

  if health_checks_utils.IsRegionalHealthCheckRef(health_check_ref):
    request = messages.ComputeRegionHealthChecksInsertRequest(
        healthCheck=messages.HealthCheck(
            name=health_check_ref.Name(),
            description=args.description,
            type=messages.HealthCheck.TypeValueValuesEnum.GRPC,
            grpcHealthCheck=grpc_health_check,
            checkIntervalSec=args.check_interval,
            timeoutSec=args.timeout,
            healthyThreshold=args.healthy_threshold,
            unhealthyThreshold=args.unhealthy_threshold),
        project=health_check_ref.project,
        region=health_check_ref.region)
    collection = client.apitools_client.regionHealthChecks
  else:
    request = messages.ComputeHealthChecksInsertRequest(
        healthCheck=messages.HealthCheck(
            name=health_check_ref.Name(),
            description=args.description,
            type=messages.HealthCheck.TypeValueValuesEnum.GRPC,
            grpcHealthCheck=grpc_health_check,
            checkIntervalSec=args.check_interval,
            timeoutSec=args.timeout,
            healthyThreshold=args.healthy_threshold,
            unhealthyThreshold=args.unhealthy_threshold),
        project=health_check_ref.project)
    collection = client.apitools_client.healthChecks

  if include_log_config:
    request.healthCheck.logConfig = health_checks_utils.CreateLogConfig(
        client, args)

  return client.MakeRequests([(collection, 'Insert', request)])
コード例 #2
0
ファイル: http2.py プロジェクト: bopopescu/gcloud_cli
def _Run(args, holder, include_l7_internal_load_balancing, include_log_config):
    """Issues the request necessary for adding the health check."""
    client = holder.client
    messages = client.messages

    health_check_ref = flags.HealthCheckArgument(
        'HTTP2',
        include_l7_internal_load_balancing=include_l7_internal_load_balancing
    ).ResolveAsResource(args,
                        holder.resources,
                        default_scope=compute_scope.ScopeEnum.GLOBAL)
    proxy_header = messages.HTTP2HealthCheck.ProxyHeaderValueValuesEnum(
        args.proxy_header)
    http2_health_check = messages.HTTP2HealthCheck(
        host=args.host,
        port=args.port,
        portName=args.port_name,
        requestPath=args.request_path,
        proxyHeader=proxy_header,
        response=args.response)

    health_checks_utils.ValidateAndAddPortSpecificationToHealthCheck(
        args, http2_health_check)

    if health_checks_utils.IsRegionalHealthCheckRef(health_check_ref):
        request = messages.ComputeRegionHealthChecksInsertRequest(
            healthCheck=messages.HealthCheck(
                name=health_check_ref.Name(),
                description=args.description,
                type=messages.HealthCheck.TypeValueValuesEnum.HTTP2,
                http2HealthCheck=http2_health_check,
                checkIntervalSec=args.check_interval,
                timeoutSec=args.timeout,
                healthyThreshold=args.healthy_threshold,
                unhealthyThreshold=args.unhealthy_threshold,
            ),
            project=health_check_ref.project,
            region=health_check_ref.region)
        collection = client.apitools_client.regionHealthChecks
    else:
        request = messages.ComputeHealthChecksInsertRequest(
            healthCheck=messages.HealthCheck(
                name=health_check_ref.Name(),
                description=args.description,
                type=messages.HealthCheck.TypeValueValuesEnum.HTTP2,
                http2HealthCheck=http2_health_check,
                checkIntervalSec=args.check_interval,
                timeoutSec=args.timeout,
                healthyThreshold=args.healthy_threshold,
                unhealthyThreshold=args.unhealthy_threshold),
            project=health_check_ref.project)
        collection = client.apitools_client.healthChecks

    if include_log_config:
        request.healthCheck.logConfig = health_checks_utils.CreateLogConfig(
            client, args)

    return client.MakeRequests([(collection, 'Insert', request)])