def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client messages = holder.client.messages node_group_ref = flags.MakeNodeGroupArg().ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(holder.client)) node_template_ref = util.ParseNodeTemplate( holder.resources, args.node_template, project=node_group_ref.project, region=compute_utils.ZoneNameToRegionName(node_group_ref.zone)) node_group = messages.NodeGroup( name=node_group_ref.Name(), description=args.description, nodeTemplate=node_template_ref.SelfLink()) request = messages.ComputeNodeGroupsInsertRequest( nodeGroup=node_group, initialNodeCount=args.target_size, project=node_group_ref.project, zone=node_group_ref.zone) service = holder.client.apitools_client.nodeGroups return client.MakeRequests([(service, 'Insert', request)])[0]
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client messages = holder.client.messages node_group_ref = flags.MakeNodeGroupArg().ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(holder.client)) node_template_ref = util.ParseNodeTemplate( holder.resources, args.node_template, project=node_group_ref.project, region=compute_utils.ZoneNameToRegionName(node_group_ref.zone)) node_group = messages.NodeGroup( name=node_group_ref.Name(), description=args.description, nodeTemplate=node_template_ref.SelfLink()) if hasattr(args, 'maintenance_policy'): mapper = flags.GetMaintenancePolicyEnumMapper(messages) maintenance_policy = mapper.GetEnumForChoice( args.maintenance_policy) node_group.maintenancePolicy = maintenance_policy if hasattr(args, 'autoscaler_mode') and args.autoscaler_mode: if args.autoscaler_mode != 'off' and args.max_nodes is None: raise exceptions.RequiredArgumentException( '--max-nodes', '--autoscaler-mode is on') autoscaling_policy = util.BuildAutoscaling(args, messages) node_group.autoscalingPolicy = autoscaling_policy if args.maintenance_window_start_time: node_group.maintenanceWindow = messages.NodeGroupMaintenanceWindow( startTime=args.maintenance_window_start_time) if hasattr(args, 'location_hint') and args.location_hint: node_group.locationHint = args.location_hint if hasattr(args, 'share_setting'): node_group.shareSettings = util.BuildShareSettings(messages, args) request = messages.ComputeNodeGroupsInsertRequest( nodeGroup=node_group, initialNodeCount=args.target_size, project=node_group_ref.project, zone=node_group_ref.zone) service = holder.client.apitools_client.nodeGroups return client.MakeRequests([(service, 'Insert', request)])[0]
def SetNodeTemplate(self, node_group_ref, node_template): """Sets the node template field on the node group.""" node_template_ref = util.ParseNodeTemplate( self.resources, node_template, project=node_group_ref.project, region=compute_util.ZoneNameToRegionName(node_group_ref.zone)) set_request = self.messages.NodeGroupsSetNodeTemplateRequest( nodeTemplate=node_template_ref.RelativeName()) request = self.messages.ComputeNodeGroupsSetNodeTemplateRequest( nodeGroupsSetNodeTemplateRequest=set_request, nodeGroup=node_group_ref.Name(), project=node_group_ref.project, zone=node_group_ref.zone) return self._service.SetNodeTemplate(request)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client messages = holder.client.messages node_group_ref = flags.MakeNodeGroupArg().ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(holder.client)) node_template_ref = util.ParseNodeTemplate( holder.resources, args.node_template, project=node_group_ref.project, region=compute_utils.ZoneNameToRegionName(node_group_ref.zone)) node_group = messages.NodeGroup( name=node_group_ref.Name(), description=args.description, nodeTemplate=node_template_ref.SelfLink()) if hasattr(args, 'maintenance_policy'): mapper = flags.GetMaintenancePolicyEnumMapper(messages) maintenance_policy = mapper.GetEnumForChoice(args.maintenance_policy) node_group.maintenancePolicy = maintenance_policy if hasattr(args, 'autoscaling_policy') and args.autoscaling_policy: mapper = flags.GetAutoscalingModeEnumMapper(messages) mode = mapper.GetEnumForChoice(args.autoscaling_policy['mode']) autoscaling_policy = messages.NodeGroupAutoscalingPolicy( mode=mode, minSize=args.autoscaling_policy.get('min-size'), maxSize=args.autoscaling_policy.get('max-size')) node_group.autoscalingPolicy = autoscaling_policy request = messages.ComputeNodeGroupsInsertRequest( nodeGroup=node_group, initialNodeCount=args.target_size, project=node_group_ref.project, zone=node_group_ref.zone) service = holder.client.apitools_client.nodeGroups return client.MakeRequests([(service, 'Insert', request)])[0]