示例#1
0
def CreateNodeTemplate(node_template_ref, args, messages,
                       enable_server_binding):
    """Creates a Node Template message from args."""
    node_affinity_labels = None
    if args.node_affinity_labels:
        node_affinity_labels = _ParseNodeAffinityLabels(
            args.node_affinity_labels, messages)

    node_type_flexbility = None
    if args.IsSpecified('node_requirements'):
        node_type_flexbility = messages.NodeTemplateNodeTypeFlexibility(
            cpus=str(args.node_requirements.get('vCPU', 'any')),
            # local SSD is unique because the user may omit the local SSD constraint
            # entirely to include the possibility of node types with no local SSD.
            # "any" corresponds to "greater than zero".
            localSsd=args.node_requirements.get('localSSD', None),
            memory=args.node_requirements.get('memory', 'any'))

    node_template = messages.NodeTemplate(
        name=node_template_ref.Name(),
        description=args.description,
        nodeAffinityLabels=node_affinity_labels,
        nodeType=args.node_type,
        nodeTypeFlexibility=node_type_flexbility)

    if enable_server_binding:
        server_binding_flag = flags.GetServerBindingMapperFlag(messages)
        server_binding = messages.ServerBinding(
            type=server_binding_flag.GetEnumForChoice(args.server_binding))
        node_template.serverBinding = server_binding

    return node_template
示例#2
0
def _CommonArgs(parser, api_version):
  """Common arguments for each release track."""
  messages = apis.GetMessagesModule('compute', api_version)
  flags.MakeNodeTemplateArg().AddArgument(parser)
  flags.AddCreateArgsToParser(parser)
  flags.GetServerBindingMapperFlag(messages).choice_arg.AddToParser(parser)
  flags.AddAcceleratorArgs(parser)
  flags.AddDiskArgToParser(parser)
示例#3
0
文件: util.py 项目: PinTrees/novelhub
def CreateNodeTemplate(node_template_ref,
                       args,
                       project,
                       region,
                       messages,
                       resource_parser,
                       enable_disk=False,
                       enable_accelerator=False):
    """Creates a Node Template message from args."""
    node_affinity_labels = None
    if args.node_affinity_labels:
        node_affinity_labels = _ParseNodeAffinityLabels(
            args.node_affinity_labels, messages)

    node_type_flexbility = None
    if args.IsSpecified('node_requirements'):
        node_type_flexbility = messages.NodeTemplateNodeTypeFlexibility(
            cpus=six.text_type(args.node_requirements.get('vCPU', 'any')),
            # local SSD is unique because the user may omit the local SSD constraint
            # entirely to include the possibility of node types with no local SSD.
            # "any" corresponds to "greater than zero".
            localSsd=args.node_requirements.get('localSSD', None),
            memory=args.node_requirements.get('memory', 'any'))

    node_template = messages.NodeTemplate(
        name=node_template_ref.Name(),
        description=args.description,
        nodeAffinityLabels=node_affinity_labels,
        nodeType=args.node_type,
        nodeTypeFlexibility=node_type_flexbility)

    if enable_disk:
        if args.IsSpecified('disk'):
            local_disk = messages.LocalDisk(diskCount=args.disk.get('count'),
                                            diskSizeGb=args.disk.get('size'),
                                            diskType=args.disk.get('type'))
            node_template.disks = [local_disk]

    if args.IsSpecified('cpu_overcommit_type'):
        overcommit_type = arg_utils.ChoiceToEnum(
            args.cpu_overcommit_type,
            messages.NodeTemplate.CpuOvercommitTypeValueValuesEnum)
        node_template.cpuOvercommitType = overcommit_type

    if enable_accelerator:
        node_template.accelerators = GetAccelerators(args, messages,
                                                     resource_parser, project,
                                                     region)

    server_binding_flag = flags.GetServerBindingMapperFlag(messages)
    server_binding = messages.ServerBinding(
        type=server_binding_flag.GetEnumForChoice(args.server_binding))
    node_template.serverBinding = server_binding

    return node_template
 def Args(parser):
     _CommonArgs(parser)
     messages = apis.GetMessagesModule('compute', 'alpha')
     flags.GetServerBindingMapperFlag(messages).choice_arg.AddToParser(
         parser)
     flags.AddDiskArgToParser(parser)