def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client managed_instance_groups_utils.ValidateAutoscalerArgs(args) managed_instance_groups_utils.ValidateStackdriverMetricsFlags(args) managed_instance_groups_utils.ValidateConflictsWithAutoscalingFile( args, (managed_instance_groups_utils. ARGS_CONFLICTING_WITH_AUTOSCALING_FILE_ALPHA)) igm_ref = self.CreateGroupReference(client, holder.resources, args) # Assert that Instance Group Manager exists. managed_instance_groups_utils.GetInstanceGroupManagerOrThrow( igm_ref, client) autoscaler_resource, is_new = self.CreateAutoscalerResource( client, holder.resources, igm_ref, args) managed_instance_groups_utils.ValidateGeneratedAutoscalerIsValid( args, autoscaler_resource) if args.IsSpecified('autoscaling_file'): if is_new: existing_autoscaler_name = None else: existing_autoscaler_name = autoscaler_resource.name return self._SetAutoscalerFromFile(args.autoscaling_file, client, igm_ref, existing_autoscaler_name) if is_new: managed_instance_groups_utils.AdjustAutoscalerNameForCreation( autoscaler_resource, igm_ref) return self._InsertAutoscaler(client, igm_ref, autoscaler_resource) return self._UpdateAutoscaler(client, igm_ref, autoscaler_resource)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client managed_instance_groups_utils.ValidateAutoscalerArgs(args) managed_instance_groups_utils.ValidateStackdriverMetricsFlags(args) igm_ref = instance_groups_flags.CreateGroupReference( client, holder.resources, args) # Assert that Instance Group Manager exists. managed_instance_groups_utils.GetInstanceGroupManagerOrThrow( igm_ref, client) # Require confirmation if autoscaling a GKE node group. self._PromptToAutoscaleGKENodeGroup(args) autoscaler_resource, is_new = self.CreateAutoscalerResource( client, holder.resources, igm_ref, args) managed_instance_groups_utils.ValidateGeneratedAutoscalerIsValid( args, autoscaler_resource) autoscalers_client = autoscalers_api.GetClient(client, igm_ref) if is_new: managed_instance_groups_utils.AdjustAutoscalerNameForCreation( autoscaler_resource, igm_ref) return autoscalers_client.Insert(igm_ref, autoscaler_resource) return autoscalers_client.Update(igm_ref, autoscaler_resource)