def Run(self, args): """Creates and issues an instanceGroupManagers.Insert request. Args: args: the argparse arguments that this command was invoked with. Returns: List containing one dictionary: resource augmented with 'autoscaled' property """ holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client group_ref = self.CreateGroupReference(args, client, holder.resources) template_ref = holder.resources.Parse( args.template, params={'project': properties.VALUES.core.project.GetOrFail}, collection='compute.instanceTemplates') instance_group_manager = self._CreateInstanceGroupManager( args, group_ref, template_ref, client, holder) request = self.CreateResourceRequest(group_ref, instance_group_manager, client, holder.resources) service = self.GetServiceForGroup(group_ref, client.apitools_client) migs = client.MakeRequests([(service, 'Insert', request)]) migs_as_dicts = [encoding.MessageToDict(m) for m in migs] _, augmented_migs = ( managed_instance_groups_utils.AddAutoscaledPropertyToMigs( migs_as_dicts, client, holder.resources)) return augmented_migs
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client request_data = lister.ParseMultiScopeFlags(args, holder.resources) list_implementation = lister.MultiScopeLister( client, zonal_service=client.apitools_client.instanceGroupManagers, regional_service=client.apitools_client.regionInstanceGroupManagers, aggregation_service=client.apitools_client.instanceGroupManagers) migs = lister.Invoke(request_data, list_implementation) (self._had_errors, results) = managed_instance_groups_utils.AddAutoscaledPropertyToMigs( list(migs), client, holder.resources) return results
def Run(self, args): """Creates and issues an instanceGroupManagers.Insert request. Args: args: the argparse arguments that this command was invoked with. Returns: List containing one dictionary: resource augmented with 'autoscaled' property """ holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client group_ref = self.CreateGroupReference(args, client, holder.resources) template_ref = holder.resources.Parse( args.template, params={'project': properties.VALUES.core.project.GetOrFail}, collection='compute.instanceTemplates') if args.target_pool: region = self.GetRegionForGroup(group_ref) pool_refs = [ holder.resources.Parse( pool, params={ 'project': properties.VALUES.core.project.GetOrFail, 'region': region }, collection='compute.targetPools') for pool in args.target_pool ] pools = [pool_ref.SelfLink() for pool_ref in pool_refs] else: pools = [] name = group_ref.Name() if args.base_instance_name: base_instance_name = args.base_instance_name else: base_instance_name = name[0:54] instance_group_manager = client.messages.InstanceGroupManager( name=name, description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=base_instance_name, targetPools=pools, targetSize=int(args.size)) auto_healing_policies = ( managed_instance_groups_utils.CreateAutohealingPolicies( holder.resources, client.messages, args)) if auto_healing_policies: instance_group_manager.autoHealingPolicies = auto_healing_policies request = self.CreateResourceRequest(group_ref, instance_group_manager, client, holder.resources) service = self.GetServiceForGroup(group_ref, client.apitools_client) migs = client.MakeRequests([(service, 'Insert', request)]) migs_as_dicts = [encoding.MessageToDict(m) for m in migs] _, augmented_migs = ( managed_instance_groups_utils.AddAutoscaledPropertyToMigs( migs_as_dicts, client, holder.resources)) return augmented_migs