def Stage(self): """Prepares for import args. It supports running new import wrapper (gce_vm_image_import). Returns: import_args - array of strings, import args. """ import_args = [] daisy_utils.AppendArg(import_args, 'zone', properties.VALUES.compute.zone.Get()) if self.args.storage_location: daisy_utils.AppendArg(import_args, 'storage_location', self.args.storage_location) daisy_utils.AppendArg(import_args, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.daisy_bucket)) daisy_utils.AppendArg( import_args, 'timeout', '{}s'.format(daisy_utils.GetDaisyTimeout(self.args))) daisy_utils.AppendArg(import_args, 'client_id', 'gcloud') daisy_utils.AppendArg(import_args, 'image_name', self.args.image_name) daisy_utils.AppendBoolArg(import_args, 'no_guest_environment', not self.args.guest_environment) daisy_utils.AppendNetworkAndSubnetArgs(self.args, import_args) daisy_utils.AppendArg(import_args, 'description', self.args.description) daisy_utils.AppendArg(import_args, 'family', self.args.family) if 'sysprep_windows' in self.args: daisy_utils.AppendBoolArg(import_args, 'sysprep_windows', self.args.sysprep_windows) return import_args
def Stage(self): """Prepares for import args. It supports running new import wrapper (gce_vm_image_import). Returns: import_args - array of strings, import args. """ import_args = [] messages = self.compute_holder.client.messages daisy_utils.AppendArg(import_args, 'zone', properties.VALUES.compute.zone.Get()) if self.args.storage_location: daisy_utils.AppendArg(import_args, 'storage_location', self.args.storage_location) daisy_utils.AppendArg(import_args, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.daisy_bucket)) daisy_utils.AppendArg( import_args, 'timeout', '{}s'.format(daisy_utils.GetDaisyTimeout(self.args))) daisy_utils.AppendArg(import_args, 'client_id', 'gcloud') daisy_utils.AppendArg(import_args, 'image_name', self.args.image_name) daisy_utils.AppendBoolArg(import_args, 'no_guest_environment', not self.args.guest_environment) daisy_utils.AppendNetworkAndSubnetArgs(self.args, import_args) daisy_utils.AppendArg(import_args, 'description', self.args.description) daisy_utils.AppendArg(import_args, 'family', self.args.family) if 'byol' in self.args: daisy_utils.AppendBoolArg(import_args, 'byol', self.args.byol) # The value of the attribute 'guest_os_features' can be can be a list, None, # or the attribute may not be present at all. # We treat the case when it is None or when it is not present as if the list # of features is empty. We need to use the trailing `or ()` rather than # give () as a default value to getattr() to handle the case where # args.guest_os_features is present, but it is None. guest_os_features = getattr(self.args, 'guest_os_features', None) or () uefi_compatible = ( messages.GuestOsFeature.TypeValueValuesEnum.UEFI_COMPATIBLE.name in guest_os_features) if uefi_compatible: daisy_utils.AppendBoolArg(import_args, 'uefi_compatible', True) if 'sysprep_windows' in self.args: daisy_utils.AppendBoolArg(import_args, 'sysprep_windows', self.args.sysprep_windows) if 'no_address' in self.args: daisy_utils.AppendBoolArg(import_args, 'no_external_ip', self.args.no_address) if 'compute_service_account' in self.args: daisy_utils.AppendArg(import_args, 'compute_service_account', self.args.compute_service_account) return import_args
def _BuildImportArgs(self, import_args): # Import and (maybe) translate from the scratch bucket. daisy_utils.AppendArg(import_args, 'source_file', self.gcs_uri) if self.args.data_disk: daisy_utils.AppendBoolArg(import_args, 'data_disk', self.args.data_disk) else: _AppendTranslateWorkflowArg(self.args, import_args) super(BaseImportFromFileStager, self)._BuildImportArgs(import_args)
def GetNetworkStepForImport(self, network=None, subnet=None, include_zone=True, from_image=False, include_storage_location=False, family=None, description=None, sysprep_windows=False): import_vars = [] if from_image: daisy_utils.AppendArg(import_vars, 'source_image', self.source_image) else: daisy_utils.AppendArg(import_vars, 'source_file', self.GetCopiedSource(regionalized=True)) daisy_utils.AppendArg(import_vars, 'os', 'ubuntu-1604') if include_zone: daisy_utils.AppendArg(import_vars, 'zone', 'my-region-c') if include_storage_location: daisy_utils.AppendArg(import_vars, 'storage_location', 'my-region') daisy_utils.AppendArg( import_vars, 'scratch_bucket_gcs_path', 'gs://{0}/'.format( self.GetScratchBucketName(not from_image or include_storage_location))) daisy_utils.AppendArg(import_vars, 'timeout', _DEFAULT_TIMEOUT) daisy_utils.AppendArg(import_vars, 'client_id', 'gcloud') daisy_utils.AppendArg(import_vars, 'image_name', self.image_name) if subnet: daisy_utils.AppendArg(import_vars, 'subnet', subnet) if network: daisy_utils.AppendArg(import_vars, 'network', network) if description: daisy_utils.AppendArg(import_vars, 'description', description) if family: daisy_utils.AppendArg(import_vars, 'family', family) if sysprep_windows: daisy_utils.AppendBoolArg(import_vars, 'sysprep_windows') return self.cloudbuild_v1_messages.BuildStep(args=import_vars, name=self.builder)
def GetImportStepForNonGSFile(self): import_vars = [] daisy_utils.AppendArg(import_vars, 'source_file', self.GetCopiedSource(regionalized=False)) daisy_utils.AppendBoolArg(import_vars, 'data_disk') daisy_utils.AppendArg( import_vars, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.GetScratchBucketNameWithoutRegion())) daisy_utils.AppendArg(import_vars, 'timeout', _DEFAULT_TIMEOUT) daisy_utils.AppendArg(import_vars, 'client_id', 'gcloud') daisy_utils.AppendArg(import_vars, 'image_name', self.image_name) return self.cloudbuild_v1_messages.BuildStep(args=import_vars, name=self.builder)
def GetImportStepForTimeoutTest(self, timeout): import_vars = [] daisy_utils.AppendArg(import_vars, 'source_file', self.GetCopiedSource()) daisy_utils.AppendBoolArg(import_vars, 'data_disk') daisy_utils.AppendArg( import_vars, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.GetScratchBucketNameWithRegion())) daisy_utils.AppendArg(import_vars, 'timeout', '{}s'.format(timeout)) daisy_utils.AppendArg(import_vars, 'client_id', 'gcloud') daisy_utils.AppendArg(import_vars, 'image_name', self.image_name) return self.cloudbuild_v1_messages.BuildStep(args=import_vars, name=self.builder)
def Stage(self): self._FileStage() import_args = [] # Import and (maybe) translate from the scratch bucket. daisy_utils.AppendArg(import_args, 'source_file', self.gcs_uri) if self.args.data_disk: daisy_utils.AppendBoolArg(import_args, 'data_disk', self.args.data_disk) else: _AppendTranslateWorkflowArg(self.args, import_args) import_args.extend(super(BaseImportFromFileStager, self).Stage()) return import_args
def GetImportStepForNoGooglePackageInstall(self): import_vars = [] daisy_utils.AppendArg(import_vars, 'source_file', self.GetCopiedSource()) daisy_utils.AppendArg(import_vars, 'os', 'ubuntu-1604') daisy_utils.AppendArg( import_vars, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.GetScratchBucketNameWithRegion())) daisy_utils.AppendArg(import_vars, 'timeout', _DEFAULT_TIMEOUT) daisy_utils.AppendArg(import_vars, 'client_id', 'gcloud') daisy_utils.AppendArg(import_vars, 'image_name', self.image_name) daisy_utils.AppendBoolArg(import_vars, 'no_guest_environment') return self.cloudbuild_v1_messages.BuildStep(args=import_vars, name=self.builder)
def Stage(self): _CheckForExistingImage(self.args.source_image, self.compute_holder, arg_name='source-image', expect_to_exist=True) import_args = [] daisy_utils.AppendArg(import_args, 'source_image', self.args.source_image) if self.args.data_disk: daisy_utils.AppendBoolArg(import_args, 'data_disk', self.args.data_disk) else: _AppendTranslateWorkflowArg(self.args, import_args) import_args.extend(super(ImportFromImageStager, self).Stage()) return import_args
def _BuildImportArgs(self, import_args): """Build args to support running new import wrapper - gce_vm_image_import. Args: import_args: array of str, args to build. """ daisy_utils.AppendArg(import_args, 'zone', properties.VALUES.compute.zone.Get()) daisy_utils.AppendArg(import_args, 'scratch_bucket_gcs_path', 'gs://{0}/'.format(self.GetDaisyBucket())) daisy_utils.AppendArg(import_args, 'timeout', '{}s'.format(daisy_utils.GetDaisyTimeout(self.args))) daisy_utils.AppendArg(import_args, 'client_id', 'gcloud') daisy_utils.AppendArg(import_args, 'image_name', self.args.image_name) daisy_utils.AppendBoolArg(import_args, 'no_guest_environment', not self.args.guest_environment) daisy_utils.AppendNetworkAndSubnetArgs(self.args, import_args)