def _CreateInstanceGroupManager(self, args, group_ref, template_ref, client, holder): """Create parts of Instance Group Manager shared for the track.""" instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, holder.resources) instance_groups_flags.ValidateManagedInstanceGroupStatefulProperties( args) health_check = managed_instance_groups_utils.GetHealthCheckUri( holder.resources, args, self.HEALTH_CHECK_ARG) return client.messages.InstanceGroupManager( name=group_ref.Name(), description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=self._GetInstanceGroupManagerBaseInstanceName( args.base_instance_name, group_ref), targetPools=self._GetInstanceGroupManagerTargetPools( args.target_pool, group_ref, holder), targetSize=int(args.size), autoHealingPolicies=( managed_instance_groups_utils.CreateAutohealingPolicies( client.messages, health_check, args.initial_delay)), distributionPolicy=self._CreateDistributionPolicy( args.zones, holder.resources, client.messages), statefulPolicy=self._GetStatefulPolicy(args, client), )
def _CreateInstanceGroupManager(self, args, group_ref, template_ref, client, holder): """Create parts of Instance Group Manager shared for the track.""" instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, holder.resources) health_check = managed_instance_groups_utils.GetHealthCheckUri( holder.resources, args) auto_healing_policies = ( managed_instance_groups_utils.CreateAutohealingPolicies( client.messages, health_check, args.initial_delay)) managed_instance_groups_utils.ValidateAutohealingPolicies( auto_healing_policies) instance_groups_flags.ValidateMigInstanceRedistributionTypeFlag( args.GetValue('instance_redistribution_type'), group_ref) update_policy = (managed_instance_groups_utils .ApplyInstanceRedistributionTypeToUpdatePolicy)( client, args.GetValue('instance_redistribution_type'), None) return client.messages.InstanceGroupManager( name=group_ref.Name(), description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=self._GetInstanceGroupManagerBaseInstanceName( args.base_instance_name, group_ref), targetPools=self._GetInstanceGroupManagerTargetPools( args.target_pool, group_ref, holder), targetSize=int(args.size), autoHealingPolicies=auto_healing_policies, distributionPolicy=self._CreateDistributionPolicy( args.zones, holder.resources, client.messages), updatePolicy=update_policy, )
def _CreateInstanceGroupManager( self, args, group_ref, template_ref, client, holder): """Create parts of Instance Group Manager shared for the track.""" if (group_ref.Collection() != 'compute.instanceGroupManagers' and args.IsSpecified('stateful_disks')): raise exceptions.BadArgumentException( '--stateful-disks', 'Allowed only with zonal managed instance groups.') instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, holder.resources) health_check = managed_instance_groups_utils.GetHealthCheckUri( holder.resources, args, self.HEALTH_CHECK_ARG) return client.messages.InstanceGroupManager( name=group_ref.Name(), description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=self._GetInstanceGroupManagerBaseInstanceName( args.base_instance_name, group_ref), targetPools=self._GetInstanceGroupManagerTargetPools( args.target_pool, group_ref, holder), targetSize=int(args.size), autoHealingPolicies=( managed_instance_groups_utils.CreateAutohealingPolicies( client.messages, health_check, args.initial_delay)), distributionPolicy=self._CreateDistributionPolicy( args.zones, holder.resources, client.messages), statefulPolicy=self._GetStatefulPolicy(args.stateful_disks, client), )
def CreateRequests(self, args): """Creates and returns an instanceGroupManagers.Insert request. Args: args: the argparse arguments that this command was invoked with. Returns: request: a singleton list containing ComputeManagedInstanceGroupsInsertRequest message object. """ instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, self.resources) group_ref = self._CreateGroupReference(args) template_ref = self.resources.Parse( args.template, collection='compute.instanceTemplates') instance_group_manager = self._CreateInstanceGroupManager( args, group_ref, template_ref) instance_group_manager.autoHealingPolicies = ( managed_instance_groups_utils.CreateAutohealingPolicies( self.resources, self.messages, args)) instance_group_manager.distributionPolicy = self._CreateDistributionPolicy( args.zones) request = self.CreateResourceRequest(group_ref, instance_group_manager) service = self.GetServiceForGroup(group_ref) return [(service, self.method, request)]
def _CreateInstanceGroupManager(self, args, group_ref, template_ref, client, holder): """Create parts of Instance Group Manager shared for the track.""" instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, holder.resources) return client.messages.InstanceGroupManager( name=group_ref.Name(), description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=self._GetInstanceGroupManagerBaseInstanceName( args.base_instance_name, group_ref), targetPools=self._GetInstanceGroupManagerTargetPools( args.target_pool, group_ref, holder), targetSize=int(args.size), distributionPolicy=self._CreateDistributionPolicy( args.zones, holder.resources, client.messages), )
def _CreateInstanceGroupManager(self, args, group_ref, template_ref, client, holder): """Create parts of Instance Group Manager shared for the track.""" managed_flags.ValidateRegionalMigFlagsUsage(args, REGIONAL_FLAGS, group_ref) instance_groups_flags.ValidateManagedInstanceGroupScopeArgs( args, holder.resources) health_check = managed_instance_groups_utils.GetHealthCheckUri( holder.resources, args) auto_healing_policies = ( managed_instance_groups_utils.CreateAutohealingPolicies( client.messages, health_check, args.initial_delay)) managed_instance_groups_utils.ValidateAutohealingPolicies( auto_healing_policies) update_policy = (managed_instance_groups_utils. ApplyInstanceRedistributionTypeToUpdatePolicy)( client, args.GetValue('instance_redistribution_type'), None) instance_group_manager = client.messages.InstanceGroupManager( name=group_ref.Name(), description=args.description, instanceTemplate=template_ref.SelfLink(), baseInstanceName=args.base_instance_name, targetPools=self._GetInstanceGroupManagerTargetPools( args.target_pool, group_ref, holder), targetSize=int(args.size), autoHealingPolicies=auto_healing_policies, distributionPolicy=self._CreateDistributionPolicy( args, holder.resources, client.messages), updatePolicy=update_policy, ) self._HandleStatefulArgs(instance_group_manager, args, client) # Validate updatePolicy + statefulPolicy combination ValidateUpdatePolicyAgainstStateful( instance_group_manager.updatePolicy, group_ref, instance_group_manager.statefulPolicy, client) return instance_group_manager