Exemple #1
0
    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)))
Exemple #2
0
    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)))