def Run(self, args): flags.ValidateDiskSize('--disk-size', args.disk_size) env_ref = args.CONCEPTS.environment.Parse() env_name = env_ref.Name() if not command_util.IsValidEnvironmentName(env_name): raise command_util.InvalidUserInputError( 'Invalid environment name: [{}]. Must match pattern: {}'. format(env_name, command_util.ENVIRONMENT_NAME_PATTERN.pattern)) zone_ref = parsers.ParseZone(args.zone) if args.zone else None zone = zone_ref.RelativeName() if zone_ref else None machine_type = None network = None subnetwork = None if args.machine_type: machine_type = parsers.ParseMachineType( args.machine_type, fallback_zone=zone_ref.Name() if zone_ref else None).RelativeName() if args.network: network = parsers.ParseNetwork(args.network).RelativeName() if args.subnetwork: subnetwork = parsers.ParseSubnetwork( args.subnetwork, fallback_region=env_ref.Parent().Name()).RelativeName() operation = environments_api_util.Create( env_ref, args.node_count, labels=args.labels, location=zone, machine_type=machine_type, network=network, subnetwork=subnetwork, env_variables=args.env_variables, airflow_config_overrides=args.airflow_configs, service_account=args.service_account, oauth_scopes=args.oauth_scopes, tags=args.tags, disk_size_gb=args.disk_size >> 30, release_track=self.ReleaseTrack()) details = 'with operation [{0}]'.format(operation.name) if args. async: log.CreatedResource(env_ref.RelativeName(), kind='environment', is_async=True, details=details) return operation else: try: operations_api_util.WaitForOperation( operation, 'Waiting for [{}] to be created with [{}]'.format( env_ref.RelativeName(), operation.name), release_track=self.ReleaseTrack()) except command_util.OperationError as e: raise command_util.EnvironmentCreateError( 'Error creating [{}]: {}'.format(env_ref.RelativeName(), str(e)))
def Run(self, args): self.ParseIpAliasConfigOptions(args) self.ParsePrivateEnvironmentConfigOptions(args) if self._support_web_server_cloud_sql_private_ip_ranges: self.ParsePrivateEnvironmentWebServerCloudSqlRanges(args) flags.ValidateDiskSize('--disk-size', args.disk_size) self.env_ref = args.CONCEPTS.environment.Parse() env_name = self.env_ref.Name() if not command_util.IsValidEnvironmentName(env_name): raise command_util.InvalidUserInputError( 'Invalid environment name: [{}]. Must match pattern: {}'. format(env_name, command_util.ENVIRONMENT_NAME_PATTERN.pattern)) self.zone_ref = parsers.ParseZone(args.zone) if args.zone else None self.zone = self.zone_ref.RelativeName() if self.zone_ref else None self.machine_type = None self.network = None self.subnetwork = None if args.machine_type: self.machine_type = parsers.ParseMachineType( args.machine_type, fallback_zone=self.zone_ref.Name() if self.zone_ref else None).RelativeName() if args.network: self.network = parsers.ParseNetwork(args.network).RelativeName() if args.subnetwork: self.subnetwork = parsers.ParseSubnetwork( args.subnetwork, fallback_region=self.env_ref.Parent().Name()).RelativeName() self.image_version = None if args.airflow_version: self.image_version = image_versions_util.ImageVersionFromAirflowVersion( args.airflow_version) elif args.image_version: self.image_version = args.image_version operation = self.GetOperationMessage(args) details = 'with operation [{0}]'.format(operation.name) if args.async_: log.CreatedResource(self.env_ref.RelativeName(), kind='environment', is_async=True, details=details) return operation else: try: operations_api_util.WaitForOperation( operation, 'Waiting for [{}] to be created with [{}]'.format( self.env_ref.RelativeName(), operation.name), release_track=self.ReleaseTrack()) except command_util.OperationError as e: raise command_util.EnvironmentCreateError( 'Error creating [{}]: {}'.format( self.env_ref.RelativeName(), six.text_type(e)))
def Run(self, args): flags.ValidateDiskSize('--disk-size', args.disk_size) self.env_ref = args.CONCEPTS.environment.Parse() env_name = self.env_ref.Name() if not command_util.IsValidEnvironmentName(env_name): raise command_util.InvalidUserInputError( 'Invalid environment name: [{}]. Must match pattern: {}'. format(env_name, command_util.ENVIRONMENT_NAME_PATTERN.pattern)) self.zone_ref = parsers.ParseZone(args.zone) if args.zone else None self.zone = self.zone_ref.RelativeName() if self.zone_ref else None self.machine_type = None self.network = None self.subnetwork = None if args.machine_type: self.machine_type = parsers.ParseMachineType( args.machine_type, fallback_zone=self.zone_ref.Name() if self.zone_ref else None).RelativeName() if args.network: self.network = parsers.ParseNetwork(args.network).RelativeName() if args.subnetwork: self.subnetwork = parsers.ParseSubnetwork( args.subnetwork, fallback_region=self.env_ref.Parent().Name()).RelativeName() operation = self.GetOperationMessage(args) details = 'with operation [{0}]'.format(operation.name) if args. async: log.CreatedResource(self.env_ref.RelativeName(), kind='environment', is_async=True, details=details) return operation else: try: operations_api_util.WaitForOperation( operation, 'Waiting for [{}] to be created with [{}]'.format( self.env_ref.RelativeName(), operation.name), release_track=self.ReleaseTrack()) except command_util.OperationError as e: raise command_util.EnvironmentCreateError( 'Error creating [{}]: {}'.format( self.env_ref.RelativeName(), str(e)))