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
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)
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)