├── CONTRIBUTING.md ├── LICENSE ├── OWNERS ├── OWNERS_ALIASES ├── README.md ├── cli_tools ├── README.md ├── common │ ├── assert │ │ ├── assert.go │ │ ├── assert_test.go │ │ └── doc.go │ ├── deleter │ │ ├── resource_deleter.go │ │ └── resource_deleter_test.go │ ├── disk │ │ ├── disk.go │ │ ├── disk_test.go │ │ ├── inspect.go │ │ ├── inspect_test.go │ │ └── mocks │ │ │ └── mock_inspect.go │ ├── distro │ │ ├── distro.go │ │ └── distro_test.go │ ├── domain │ │ └── interfaces.go │ ├── gcsfuse │ │ └── client.go │ ├── image │ │ ├── image.go │ │ ├── image_test.go │ │ └── importer │ │ │ ├── api_inflater.go │ │ │ ├── api_inflater_test.go │ │ │ ├── bootable_disk_processor.go │ │ │ ├── bootable_disk_processor_test.go │ │ │ ├── daisy_inflater.go │ │ │ ├── daisy_inflater_test.go │ │ │ ├── data_disk_processor.go │ │ │ ├── data_disk_processor_test.go │ │ │ ├── errors.go │ │ │ ├── errors_test.go │ │ │ ├── importer.go │ │ │ ├── importer_test.go │ │ │ ├── inflater.go │ │ │ ├── inflater_test.go │ │ │ ├── metadata_processor.go │ │ │ ├── metadata_processor_test.go │ │ │ ├── mocks │ │ │ ├── importer_mocks.go │ │ │ └── source_mocks.go │ │ │ ├── process_planner.go │ │ │ ├── process_planner_test.go │ │ │ ├── processor.go │ │ │ ├── processor_test.go │ │ │ ├── request.go │ │ │ ├── request_test.go │ │ │ ├── source.go │ │ │ ├── source_test.go │ │ │ ├── validator.go │ │ │ └── validator_test.go │ ├── imagefile │ │ ├── inspector.go │ │ ├── inspector_test.go │ │ ├── qemu_img.go │ │ └── qemu_img_test.go │ ├── mount │ │ ├── inspector.go │ │ ├── inspector_test.go │ │ └── mock_mount_inspector.go │ └── utils │ │ ├── collections │ │ ├── collections_utils.go │ │ └── collections_utils_test.go │ │ ├── compute │ │ ├── metadata_gce.go │ │ ├── node_affinity_label_parser.go │ │ ├── node_affinity_label_parser_test.go │ │ ├── zone_validator.go │ │ └── zone_validator_test.go │ │ ├── daisyutils │ │ ├── daisy_utils.go │ │ ├── daisy_utils_test.go │ │ ├── daisy_worker.go │ │ ├── daisy_worker_test.go │ │ ├── daisy_worker_testing.go │ │ ├── io.go │ │ ├── io_test.go │ │ ├── test_data │ │ │ └── test.wf.json │ │ ├── workflow_hook.go │ │ ├── workflow_hook_enable_nested_virtualization.go │ │ ├── workflow_hook_enable_nested_virtualization_test.go │ │ ├── workflow_hook_fallback_pd.go │ │ ├── workflow_hook_fallback_pd_test.go │ │ ├── workflow_hook_logging.go │ │ ├── workflow_hook_logging_test.go │ │ ├── workflow_hook_no_external_ip.go │ │ ├── workflow_hook_no_external_ip_test.go │ │ ├── workflow_hook_resource_labeler.go │ │ ├── workflow_hook_resource_labeler_test.go │ │ ├── workflow_hook_update_machine_types.go │ │ ├── workflow_hook_update_machine_types_test.go │ │ ├── workflow_hook_workflow_properties.go │ │ ├── workflow_hook_workflow_properties_test.go │ │ ├── workflow_hook_workflow_vars.go │ │ └── workflow_hook_workflow_vars_test.go │ │ ├── files │ │ ├── files.go │ │ └── files_test.go │ │ ├── flags │ │ ├── key_value_flag.go │ │ ├── key_value_flag_test.go │ │ ├── string_array_flag.go │ │ ├── string_utils.go │ │ └── string_utils_test.go │ │ ├── logging │ │ ├── logger.go │ │ ├── logger_test.go │ │ └── service │ │ │ ├── literal_loggable.go │ │ │ ├── literal_loggable_test.go │ │ │ ├── log_entry.go │ │ │ ├── logger.go │ │ │ ├── logger_test.go │ │ │ ├── outputinfo_loggable.go │ │ │ └── outputinfo_loggable_test.go │ │ ├── param │ │ ├── key_value_parser.go │ │ ├── key_value_parser_test.go │ │ ├── machine_series_detector.go │ │ ├── machine_series_detector_test.go │ │ ├── network_resolver.go │ │ ├── network_resolver_test.go │ │ ├── param_utils.go │ │ ├── param_utils_test.go │ │ ├── populator.go │ │ ├── populator_test.go │ │ └── release_param_utils.go │ │ ├── paramhelper │ │ ├── network.go │ │ ├── network_test.go │ │ ├── region.go │ │ ├── resources.go │ │ ├── resources_test.go │ │ ├── subnet.go │ │ └── subnet_test.go │ │ ├── path │ │ └── path_utils.go │ │ ├── shell │ │ └── executor.go │ │ ├── storage │ │ ├── bucket_iterator.go │ │ ├── buffered_writer.go │ │ ├── buffered_writer_test.go │ │ ├── object_iterator.go │ │ ├── resource_location_retriever.go │ │ ├── resource_location_retriever_test.go │ │ ├── scratch_bucket_creator.go │ │ ├── scratch_bucket_creator_test.go │ │ ├── storage_client.go │ │ ├── storage_client_test.go │ │ ├── storage_object.go │ │ ├── tar_gcs_extractor.go │ │ └── tar_gcs_extractor_test.go │ │ ├── string │ │ ├── string_utils.go │ │ └── string_utils_test.go │ │ ├── test │ │ └── test_utils.go │ │ └── validation │ │ ├── validation_utils.go │ │ └── validation_utils_test.go ├── gce_onestep_image_import │ ├── README.md │ ├── main.go │ └── onestep_importer │ │ ├── aws_args.go │ │ ├── aws_args_test.go │ │ ├── aws_importer.go │ │ ├── aws_importer_test.go │ │ ├── importer.go │ │ ├── importer_test.go │ │ ├── test_utils_test.go │ │ ├── utils.go │ │ └── utils_test.go ├── gce_ovf_export │ ├── README.md │ ├── domain │ │ ├── args.go │ │ ├── args_test.go │ │ ├── exported_disks.go │ │ ├── interfaces.go │ │ ├── mocks │ │ │ ├── mock_instance_disks_exporter.go │ │ │ ├── mock_instance_export_cleaner.go │ │ │ ├── mock_instance_export_preparer.go │ │ │ ├── mock_ovf_descriptor_generator.go │ │ │ ├── mock_ovf_export_param_populator.go │ │ │ ├── mock_ovf_export_param_validator.go │ │ │ └── mock_ovf_manifest_generator.go │ │ └── test_data.go │ ├── exporter │ │ ├── exporter.go │ │ ├── exporter_test.go │ │ ├── instance_disks_exporter.go │ │ ├── instance_disks_exporter_test.go │ │ ├── instance_export_cleaner.go │ │ ├── instance_export_cleaner_test.go │ │ ├── instance_export_preparer.go │ │ ├── instance_export_preparer_test.go │ │ ├── manifest_file_generator.go │ │ ├── manifest_file_generator_test.go │ │ ├── ovf │ │ │ ├── cim.go │ │ │ └── envelope.go │ │ ├── ovf_descriptor_generator.go │ │ ├── ovf_descriptor_generator_test.go │ │ ├── param_populator.go │ │ ├── param_populator_test.go │ │ ├── param_validator.go │ │ ├── param_validator_test.go │ │ ├── steps.go │ │ └── test_utils.go │ └── main.go ├── gce_ovf_import │ ├── README.md │ ├── daisy_utils │ │ ├── data_disk_workflow_updater.go │ │ └── data_disk_workflow_updater_test.go │ ├── domain │ │ ├── interfaces.go │ │ ├── mocks │ │ │ └── mock_interfaces.go │ │ ├── ovf_import_params.go │ │ └── ovf_import_params_test.go │ ├── gce_utils │ │ ├── machine_type_provider.go │ │ └── machine_type_provider_test.go │ ├── main.go │ ├── main_test.go │ ├── multi_disk_importer │ │ ├── multi_disk_importer.go │ │ ├── request_builder.go │ │ ├── request_builder_test.go │ │ ├── request_executor.go │ │ └── request_executor_test.go │ ├── ovf_importer │ │ ├── ovf_importer.go │ │ ├── ovf_importer_test.go │ │ ├── ovf_param_validator.go │ │ └── ovf_param_validator_test.go │ └── ovf_utils │ │ ├── ovf_loader.go │ │ ├── ovf_loader_test.go │ │ ├── ovf_programmatic_units.go │ │ ├── ovf_programmatic_units_test.go │ │ ├── ovf_utils.go │ │ ├── ovf_utils_test.go │ │ ├── ovf_validator.go │ │ ├── ovf_validator_test.go │ │ └── testdata │ │ ├── from-virtualbox.ovf │ │ └── missing-disk-units.ovf ├── gce_vm_image_export │ ├── README.md │ ├── exporter │ │ ├── exporter.go │ │ └── exporter_test.go │ └── main.go ├── gce_vm_image_import │ ├── README.md │ ├── cli │ │ ├── args.go │ │ ├── args_test.go │ │ └── cli.go │ └── main.go ├── go.mod ├── go.sum ├── import_precheck │ ├── README.md │ ├── main.go │ └── precheck │ │ ├── check.go │ │ ├── check_disks_linux.go │ │ ├── check_disks_linux_test.go │ │ ├── check_disks_windows.go │ │ ├── check_osversion.go │ │ ├── check_osversion_test.go │ │ ├── check_powershell.go │ │ ├── check_sha2.go │ │ ├── check_ssh.go │ │ ├── common.go │ │ ├── report.go │ │ ├── user_linux.go │ │ └── user_windows.go ├── mocks │ ├── README.md │ ├── mock_bucket_iterator.go │ ├── mock_bucket_iterator_creator.go │ ├── mock_compute_client.go │ ├── mock_compute_service.go │ ├── mock_daisy_logger.go │ ├── mock_daisy_worker.go │ ├── mock_http_client.go │ ├── mock_image_deleter.go │ ├── mock_logger.go │ ├── mock_machine_series_detector.go │ ├── mock_metadata_gce.go │ ├── mock_network_resolver.go │ ├── mock_object_iterator.go │ ├── mock_object_iterator_creator.go │ ├── mock_param_populator.go │ ├── mock_reader_closer.go │ ├── mock_resource_location_retriever.go │ ├── mock_scratch_bucket_creator.go │ ├── mock_shell_exececutor.go │ ├── mock_storage_client.go │ ├── mock_storage_object.go │ ├── mock_storage_object_creator.go │ ├── mock_tar_gcs_extractor.go │ ├── mock_workflow_hook.go │ └── mock_zone_validator.go └── test_data │ ├── ovf_descriptor.ovf │ ├── test_import_ovf_to_instance.wf.json │ ├── test_import_ovf_to_machine_image.wf.json │ ├── test_tar.tar │ └── test_tar_with_dir.tar ├── cli_tools_cloudbuild.yaml ├── cli_tools_tests ├── e2e │ ├── README.md │ ├── assert.go │ ├── gce_image_import_export │ │ ├── main.go │ │ └── test_suites │ │ │ ├── export │ │ │ └── image_export_test_suite.go │ │ │ ├── import │ │ │ ├── cli_tests.go │ │ │ └── import_tests.go │ │ │ ├── onestep_import │ │ │ ├── aws_test_utils.go │ │ │ └── onestep_import_test_suite.go │ │ │ └── scripts │ │ │ └── post_translate_test.wf.json │ ├── gce_ovf_export │ │ ├── main.go │ │ └── test_suites │ │ │ └── instance_ovf_export │ │ │ └── instance_ovf_export_test_suite.go │ ├── gce_ovf_import │ │ ├── main.go │ │ ├── scripts │ │ │ ├── ovf_import_test_3_disks.sh │ │ │ └── ovf_import_test_windows_two_disks.ps1 │ │ └── test_suites │ │ │ ├── ovf_import_e2e_common.go │ │ │ ├── ovf_instance_import │ │ │ └── ovf_instance_import_test_suite.go │ │ │ └── ovf_machine_image_import │ │ │ └── ovf_machine_image_import_test_suite.go │ ├── gce_windows_upgrade │ │ ├── main.go │ │ └── test_suites │ │ │ └── windows_upgrade │ │ │ └── windows_upgrade_test_suite.go │ ├── utils.go │ └── variables.go ├── go.mod ├── go.sum └── module │ ├── README.md │ ├── diskinspect │ └── disk_inspect_test.go │ ├── fileinspect │ └── file_inspect_test.go │ └── import │ ├── logs_test.go │ ├── pkg_test.go │ └── scratch_ownership_test.go ├── common ├── gcp │ ├── image.go │ ├── instance.go │ └── storage.go ├── go.mod ├── go.sum ├── logging │ └── logging.go └── runtime │ └── config.go ├── daisy └── README.md ├── daisy_integration_tests ├── 2003_32_translate.wf.json ├── 2008r2_vmware_translate.wf.json ├── 2012r2_vmware_translate.wf.json ├── 2016_translate.wf.json ├── 2019_translate.wf.json ├── README.md ├── centos_7_qcow2_translate.wf.json ├── centos_7_translate_immutable_etc_resolv.wf.json ├── centos_7_translate_with_no_enabled_repos.json ├── create_random_data_disk.sh ├── create_random_data_image.subwf.json ├── create_random_data_image_1024gb.wf.json ├── create_random_data_image_10gb.wf.json ├── create_random_data_image_2048gb.wf.json ├── create_random_data_image_210gb.wf.json ├── create_random_data_image_4096gb.wf.json ├── create_random_data_image_8192gb.wf.json ├── daisy_e2e.test.gotmpl ├── daisy_e2e_daily.test.gotmpl ├── daisy_e2e_weekly.test.gotmpl ├── data │ └── test.txt ├── debian_10_translate.wf.json ├── debian_10_worker.wf.json ├── debian_11_worker.wf.json ├── debian_worker.subwf.json ├── el_import_dont_use_proxy.wf.json ├── image_export_latest.wf.json ├── image_export_latest_with_pd_standard.wf.json ├── image_export_nondefault_network_latest.wf.json ├── image_export_release.wf.json ├── image_export_subnetwork_latest.wf.json ├── image_export_vmdk.subwf.json ├── image_export_vmdk_given_size.subwf.json ├── image_export_vmdk_given_size_1024gb.wf.json ├── image_export_vmdk_given_size_10gb.wf.json ├── image_export_vmdk_given_size_2048gb.wf.json ├── image_export_vmdk_given_size_210gb.wf.json ├── image_export_vmdk_given_size_4096gb.wf.json ├── image_export_vmdk_given_size_8192gb.wf.json ├── image_export_vmdk_given_size_verify.subwf.json ├── image_export_vmdk_latest.wf.json ├── image_export_vmdk_latest_with_pd_standard.wf.json ├── image_export_vmdk_release.wf.json ├── image_import_allow_spaces_in_disk_filename.wf.json ├── image_import_and_translate_custom_network_latest.wf.json ├── image_import_and_translate_no_extension.wf.json ├── image_import_and_translate_nondefault_network_latest.wf.json ├── image_import_and_translate_ova.wf.json ├── image_import_and_translate_ova_with_spaces_in_vmdk_filename.wf.json ├── rhel_8_translate.wf.json ├── scripts │ ├── can_retrieve_sources.sh │ ├── post_translate_test.ps1 │ ├── post_translate_test.sh │ ├── report_success.sh │ ├── run_daisy_and_check_logs.sh │ ├── test_devices.sh │ └── v2v_adapt.sh ├── ubuntu_1404_img_translate.wf.json ├── ubuntu_1604_import_and_translate.wf.json ├── ubuntu_1604_vmware_translate.wf.json ├── ubuntu_1804_aws.wf.json ├── ubuntu_1804_azure.wf.json ├── ubuntu_1804_vmware.wf.json ├── v2v_adapt_e2e.test.gotmpl ├── v2v_adapt_windows.wf.json ├── v2v_adapt_windows_byol.wf.json ├── windows_10_x64_byol.wf.json ├── windows_10_x86_byol.wf.json ├── windows_7_x64_byol.wf.json ├── windows_7_x86_byol.wf.json ├── windows_8_x64_byol.wf.json └── windows_8_x86_byol.wf.json ├── daisy_workflows ├── README.md ├── export │ ├── README.md │ ├── disk_export.wf.json │ ├── disk_export_ext.wf.json │ ├── disk_resizing_mon.sh │ ├── export_disk.sh │ ├── export_disk_ext.sh │ ├── image_export.wf.json │ └── image_export_ext.wf.json ├── export_metadata │ ├── export-metadata.ps1 │ ├── export-metadata.py │ ├── export_metadata.wf.json │ └── export_metadata_windows.wf.json ├── image_build │ └── debian │ │ ├── README.md │ │ ├── debian_worker.sh │ │ └── debian_worker.wf.json ├── image_import │ ├── README.md │ ├── debian │ │ ├── translate.py │ │ ├── translate_debian.wf.json │ │ ├── translate_debian_10.wf.json │ │ ├── translate_debian_11.wf.json │ │ ├── translate_debian_8.wf.json │ │ └── translate_debian_9.wf.json │ ├── enterprise_linux │ │ ├── translate.py │ │ ├── translate_centos_7.wf.json │ │ ├── translate_centos_stream_8.wf.json │ │ ├── translate_centos_stream_9.wf.json │ │ ├── translate_el.wf.json │ │ ├── translate_rhel_6_byol.wf.json │ │ ├── translate_rhel_6_licensed.wf.json │ │ ├── translate_rhel_7_byol.wf.json │ │ ├── translate_rhel_7_licensed.wf.json │ │ ├── translate_rhel_8_byol.wf.json │ │ ├── translate_rhel_8_licensed.wf.json │ │ ├── translate_rhel_9_byol.wf.json │ │ ├── translate_rhel_9_licensed.wf.json │ │ ├── translate_rocky_8.wf.json │ │ └── translate_rocky_9.wf.json │ ├── freebsd │ │ ├── translate.py │ │ └── translate_freebsd.wf.json │ ├── import_and_translate.wf.json │ ├── import_from_image.wf.json │ ├── import_image.sh │ ├── import_image.wf.json │ ├── inflate_file.wf.json │ ├── inflate_image.wf.json │ ├── inspection │ │ ├── README.md │ │ ├── boot-inspect.wf.json │ │ ├── daisy-shim.sh │ │ ├── pyproject.toml │ │ ├── setup.py │ │ ├── src │ │ │ └── boot_inspect │ │ │ │ ├── __init__.py │ │ │ │ ├── cli.py │ │ │ │ ├── inspection.py │ │ │ │ ├── inspectors │ │ │ │ ├── __init__.py │ │ │ │ └── os │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── architecture.py │ │ │ │ │ ├── linux.py │ │ │ │ │ └── windows.py │ │ │ │ ├── model.py │ │ │ │ └── system │ │ │ │ ├── __init__.py │ │ │ │ └── filesystems.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test-data │ │ │ │ ├── gdisk │ │ │ │ │ ├── gpt.yaml │ │ │ │ │ ├── hybrid_mbr.yaml │ │ │ │ │ ├── mbr.yaml │ │ │ │ │ └── protective_mbr.yaml │ │ │ │ └── images │ │ │ │ │ ├── docker-image-amazonlinux-2.0.20200602.0.yaml │ │ │ │ │ ├── docker-image-amazonlinux-2.yaml │ │ │ │ │ ├── docker-image-amazonlinux-2018.03.yaml │ │ │ │ │ ├── docker-image-amazonlinux-latest.yaml │ │ │ │ │ ├── docker-image-archlinux-latest.yaml │ │ │ │ │ ├── docker-image-centos-7.0.1406.yaml │ │ │ │ │ ├── docker-image-centos-7.1.1503.yaml │ │ │ │ │ ├── docker-image-centos-7.2.1511.yaml │ │ │ │ │ ├── docker-image-centos-7.3.1611.yaml │ │ │ │ │ ├── docker-image-centos-7.4.1708.yaml │ │ │ │ │ ├── docker-image-centos-7.5.1804.yaml │ │ │ │ │ ├── docker-image-centos-7.6.1810.yaml │ │ │ │ │ ├── docker-image-centos-7.7.1908.yaml │ │ │ │ │ ├── docker-image-centos-7.8.2003.yaml │ │ │ │ │ ├── docker-image-centos-stream-8.yaml │ │ │ │ │ ├── docker-image-centos-stream-9.yaml │ │ │ │ │ ├── docker-image-clear-linux-os-latest.yaml │ │ │ │ │ ├── docker-image-debian-10.0.yaml │ │ │ │ │ ├── docker-image-debian-10.1.yaml │ │ │ │ │ ├── docker-image-debian-10.2.yaml │ │ │ │ │ ├── docker-image-debian-10.3.yaml │ │ │ │ │ ├── docker-image-debian-10.4.yaml │ │ │ │ │ ├── docker-image-debian-11.2.yaml │ │ │ │ │ ├── docker-image-debian-8.0.yaml │ │ │ │ │ ├── docker-image-debian-8.1.yaml │ │ │ │ │ ├── docker-image-debian-8.10.yaml │ │ │ │ │ ├── docker-image-debian-8.11.yaml │ │ │ │ │ ├── docker-image-debian-8.2.yaml │ │ │ │ │ ├── docker-image-debian-8.3.yaml │ │ │ │ │ ├── docker-image-debian-8.4.yaml │ │ │ │ │ ├── docker-image-debian-8.5.yaml │ │ │ │ │ ├── docker-image-debian-8.6.yaml │ │ │ │ │ ├── docker-image-debian-8.7.yaml │ │ │ │ │ ├── docker-image-debian-8.8.yaml │ │ │ │ │ ├── docker-image-debian-8.9.yaml │ │ │ │ │ ├── docker-image-debian-9.0.yaml │ │ │ │ │ ├── docker-image-debian-9.1.yaml │ │ │ │ │ ├── docker-image-debian-9.11.yaml │ │ │ │ │ ├── docker-image-debian-9.2.yaml │ │ │ │ │ ├── docker-image-debian-9.3.yaml │ │ │ │ │ ├── docker-image-debian-9.4.yaml │ │ │ │ │ ├── docker-image-debian-9.5.yaml │ │ │ │ │ ├── docker-image-debian-9.6.yaml │ │ │ │ │ ├── docker-image-debian-9.7.yaml │ │ │ │ │ ├── docker-image-debian-9.8.yaml │ │ │ │ │ ├── docker-image-debian-9.9.yaml │ │ │ │ │ ├── docker-image-debian-latest.yaml │ │ │ │ │ ├── docker-image-fedora-31.yaml │ │ │ │ │ ├── docker-image-fedora-32.yaml │ │ │ │ │ ├── docker-image-fedora-33.yaml │ │ │ │ │ ├── docker-image-kalilinux_kali-rolling-latest.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.0.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.1.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.2.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.3.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.4.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.5.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.6.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.7.yaml │ │ │ │ │ ├── docker-image-oraclelinux-7.8.yaml │ │ │ │ │ ├── docker-image-oraclelinux-8.0.yaml │ │ │ │ │ ├── docker-image-oraclelinux-8.1.yaml │ │ │ │ │ ├── docker-image-oraclelinux-8.2.yaml │ │ │ │ │ ├── docker-image-ubuntu-12.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-14.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-16.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-18.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-20.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-22.04.yaml │ │ │ │ │ ├── docker-image-ubuntu-latest.yaml │ │ │ │ │ ├── gcp-archlinux-latest.yaml │ │ │ │ │ ├── gcp-image-centos-6-v20200714.yaml │ │ │ │ │ ├── gcp-image-centos-7-v20200714.yaml │ │ │ │ │ ├── gcp-image-debian-10-buster-v20200714.yaml │ │ │ │ │ ├── gcp-image-debian-11-bullseye-v20211209.yaml │ │ │ │ │ ├── gcp-image-debian-9-stretch-v20200714.yaml │ │ │ │ │ ├── gcp-image-opensuse-leap-15-1-v20190618.yaml │ │ │ │ │ ├── gcp-image-opensuse-leap-15-2-v20200702.yaml │ │ │ │ │ ├── gcp-image-opensuse-leap-15-v20181106.yaml │ │ │ │ │ ├── gcp-image-rhel-6-v20200714.yaml │ │ │ │ │ ├── gcp-image-rhel-7-4-sap-v20200309.yaml │ │ │ │ │ ├── gcp-image-rhel-7-6-sap-v20200618.yaml │ │ │ │ │ ├── gcp-image-rhel-7-7-sap-v20200714.yaml │ │ │ │ │ ├── gcp-image-rhel-7-v20200714.yaml │ │ │ │ │ ├── gcp-image-rhel-8-v20200714.yaml │ │ │ │ │ ├── gcp-image-rhel-9-v20220920.yaml │ │ │ │ │ ├── gcp-image-rocky-8-v20210817.yaml │ │ │ │ │ ├── gcp-image-sles-12-sp2-sap-v20200610.yaml │ │ │ │ │ ├── gcp-image-sles-12-sp3-sap-v20200610.yaml │ │ │ │ │ ├── gcp-image-sles-12-sp4-sap-v20200610.yaml │ │ │ │ │ ├── gcp-image-sles-12-sp5-sap-v20200610.yaml │ │ │ │ │ ├── gcp-image-sles-12-sp5-v20200610.yaml │ │ │ │ │ ├── gcp-image-sles-15-sap-v20200701.yaml │ │ │ │ │ ├── gcp-image-sles-15-sp1-sap-v20200701.yaml │ │ │ │ │ ├── gcp-image-sles-15-sp2-sap-v20200721.yaml │ │ │ │ │ ├── gcp-image-sles-15-sp2-v20200721.yaml │ │ │ │ │ ├── gcp-image-sles-15-sp3-sap-v20211113.yaml │ │ │ │ │ ├── gcp-image-ubuntu-1604-xenial-v20200722.yaml │ │ │ │ │ ├── gcp-image-ubuntu-1804-bionic-v20200716.yaml │ │ │ │ │ ├── gcp-image-ubuntu-1910-eoan-v20200716a.yaml │ │ │ │ │ ├── gcp-image-ubuntu-2004-focal-v20200720.yaml │ │ │ │ │ ├── gcp-image-ubuntu-2204-jammy-v20220622.yaml │ │ │ │ │ ├── gcp-image-ubuntu-minimal-1604-xenial-v20200721.yaml │ │ │ │ │ ├── gcp-image-ubuntu-minimal-1804-bionic-v20200720.yaml │ │ │ │ │ ├── gcp-image-ubuntu-minimal-1910-eoan-v20200715.yaml │ │ │ │ │ ├── gcp-image-ubuntu-minimal-2004-focal-v20200702.yaml │ │ │ │ │ ├── gcp-image-ubuntu-pro-2204-jammy-v20220622.yaml │ │ │ │ │ └── gcp-image-ubuntu1404.yaml │ │ │ ├── test_boot_loader_inspection.py │ │ │ ├── test_linux.py │ │ │ ├── test_model.py │ │ │ └── test_windows.py │ │ └── tools │ │ │ └── dump-host-info.sh │ ├── suse │ │ ├── run-translate.sh │ │ ├── suse_import │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── on_demand │ │ │ │ ├── __init__.py │ │ │ │ ├── migrate.py │ │ │ │ ├── run_in_chroot.sh │ │ │ │ └── validate_chroot.py │ │ │ ├── pyproject.toml │ │ │ ├── setup.py │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── test-data │ │ │ │ │ └── validate_chroot │ │ │ │ │ │ ├── etc │ │ │ │ │ │ ├── hosts │ │ │ │ │ │ └── resolv.conf │ │ │ │ │ │ └── runtime │ │ │ │ │ │ ├── cloud_product.txt │ │ │ │ │ │ ├── post_convert_packages.txt │ │ │ │ │ │ ├── pre_convert_py │ │ │ │ │ │ └── dep.py │ │ │ │ │ │ ├── pre_convert_rpm │ │ │ │ │ │ └── dep.rpm │ │ │ │ │ │ └── run_in_chroot.sh │ │ │ │ └── test_validate_chroot.py │ │ │ └── translate.py │ │ ├── translate_opensuse_15.wf.json │ │ ├── translate_sles_12.wf.json │ │ ├── translate_sles_12_byol.wf.json │ │ ├── translate_sles_15.wf.json │ │ ├── translate_sles_15_byol.wf.json │ │ ├── translate_sles_sap_12.wf.json │ │ ├── translate_sles_sap_12_byol.wf.json │ │ ├── translate_sles_sap_15.wf.json │ │ ├── translate_sles_sap_15_byol.wf.json │ │ └── translate_suse.wf.json │ ├── ubuntu │ │ ├── translate.py │ │ ├── translate_ubuntu.wf.json │ │ ├── translate_ubuntu_1404.wf.json │ │ ├── translate_ubuntu_1604.wf.json │ │ ├── translate_ubuntu_1804.wf.json │ │ ├── translate_ubuntu_2004.wf.json │ │ └── translate_ubuntu_2204.wf.json │ └── windows │ │ ├── bootstrap_2003.ps1 │ │ ├── network.ps1 │ │ ├── run_startup_scripts.cmd │ │ ├── run_startup_scripts_x86.cmd │ │ ├── task_reg_2008r2 │ │ ├── task_reg_2012r2 │ │ ├── task_reg_2016 │ │ ├── task_xml │ │ ├── translate.ps1 │ │ ├── translate_bootstrap.ps1 │ │ ├── translate_windows_10_x64_byol.wf.json │ │ ├── translate_windows_10_x86_byol.wf.json │ │ ├── translate_windows_2003.wf.json │ │ ├── translate_windows_2008_r2.wf.json │ │ ├── translate_windows_2008_r2_byol.wf.json │ │ ├── translate_windows_2012.wf.json │ │ ├── translate_windows_2012_byol.wf.json │ │ ├── translate_windows_2012_r2.wf.json │ │ ├── translate_windows_2012_r2_byol.wf.json │ │ ├── translate_windows_2016.wf.json │ │ ├── translate_windows_2016_byol.wf.json │ │ ├── translate_windows_2019.wf.json │ │ ├── translate_windows_2019_byol.wf.json │ │ ├── translate_windows_2022.wf.json │ │ ├── translate_windows_2022_byol.wf.json │ │ ├── translate_windows_7_x64_byol.wf.json │ │ ├── translate_windows_7_x86_byol.wf.json │ │ ├── translate_windows_8_x64_byol.wf.json │ │ ├── translate_windows_8_x86_byol.wf.json │ │ ├── translate_windows_wf.json │ │ ├── translate_windows_x86_wf.json │ │ └── windows_2003 │ │ ├── agent.reg │ │ ├── boot.ini │ │ ├── drivers.reg │ │ └── shutdown.reg ├── import_userguide.md ├── linux_common │ ├── bootstrap.sh │ ├── pyproject.toml │ ├── setup.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_apt.py │ │ ├── test_configs.py │ │ └── test_guestfsprocess.py │ └── utils │ │ ├── __init__.py │ │ ├── apt.py │ │ ├── common.py │ │ ├── configs.py │ │ ├── diskutils.py │ │ └── guestfsprocess.py └── ovf_import │ ├── create_gmi.wf.json │ ├── create_instance.wf.json │ ├── import_ovf_to_instance.wf.json │ └── import_ovf_to_machine_image.wf.json ├── debian_worker_cloudbuild.yaml ├── docs ├── README.md ├── _config.yml ├── image-import.md └── index.md ├── e2e_test_base.Dockerfile ├── gce_image_import_export_tests.Dockerfile ├── gce_onestep_image_import.Dockerfile ├── gce_ovf_export.Dockerfile ├── gce_ovf_export_tests.Dockerfile ├── gce_ovf_import.Dockerfile ├── gce_ovf_import_tests.Dockerfile ├── gce_vm_image_export.Dockerfile ├── gce_vm_image_import.Dockerfile ├── go └── e2e_test_utils │ ├── go.mod │ ├── go.sum │ ├── junitxml │ └── junitxml.go │ ├── launcher.go │ └── test_config │ └── project_config.go ├── image_builder └── modules │ └── imagebuild │ ├── README.md │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf ├── image_test ├── README.md ├── boot │ ├── README.md │ ├── boot.bat │ ├── boot.sh │ └── boot.wf.json ├── configuration │ ├── README.md │ ├── linux-configuration.wf.json │ ├── linux │ │ ├── centos.py │ │ ├── configuration-test.py │ │ ├── debian.py │ │ ├── freebsd.py │ │ ├── generic_distro.py │ │ ├── redhat.py │ │ ├── suse.py │ │ └── ubuntu.py │ ├── windows-configuration.wf.json │ └── windows │ │ └── test_config.ps1 ├── disk │ ├── README.md │ ├── disk-local-ssd.bat │ ├── disk-local-ssd.sh │ ├── disk-testee.bat │ ├── disk-testee.sh │ └── disk.wf.json ├── linux_images.test.gotmpl ├── metadata-script │ ├── README.md │ ├── junk.ps1 │ ├── metadata-script-inc │ │ ├── create-instance-no-scope.wf.json │ │ ├── create-instance.wf.json │ │ ├── shutdown-check.wf.json │ │ ├── startup-check.wf.json │ │ └── wait-message.wf.json │ ├── metadata-script-test-shutdown-hash.ps1 │ ├── metadata-script-test-shutdown-hash.sh │ ├── metadata-script-test-startup-hash.ps1 │ ├── metadata-script-test-startup-hash.sh │ ├── shutdown-script-integrity.wf.json │ ├── shutdown-script-junk.wf.json │ ├── shutdown-script-linux.wf.json │ ├── shutdown-script-noscript.wf.json │ ├── shutdown-script-windows.wf.json │ ├── shutdown-script.wf.json │ ├── startup-script-for-shutdown-tests.ps1 │ ├── startup-script-for-shutdown-tests.sh │ ├── startup-script-integrity.wf.json │ ├── startup-script-junk.wf.json │ ├── startup-script-linux.wf.json │ ├── startup-script-noscript.wf.json │ ├── startup-script-windows.wf.json │ ├── startup-script.wf.json │ ├── sysprep-script-integrity.wf.json │ ├── sysprep-script-junk.wf.json │ ├── sysprep-script-noscript.wf.json │ ├── sysprep-script-windows.wf.json │ └── sysprep-script.wf.json ├── metadata-ssh │ ├── README.md │ ├── metadata-ssh-tester.py │ └── metadata-ssh.wf.json ├── multi-nic │ ├── README.md │ ├── multi-nic-master.bat │ ├── multi-nic-master.sh │ ├── multi-nic-slave.bat │ ├── multi-nic-slave.sh │ └── multi-nic.wf.json ├── network │ ├── README.md │ ├── network-testee-checker.bat │ ├── network-testee-checker.sh │ ├── network-testee.ps1 │ ├── network-testee.sh │ ├── network-tester.py │ └── network.wf.json ├── oslogin-ssh │ ├── README.md │ ├── oslogin-ssh-master-tester.py │ ├── oslogin-ssh.wf.json │ └── oslogin_slave_tester.sh └── windows_images.test.gotmpl ├── proto ├── README ├── go │ ├── go.mod │ ├── go.sum │ ├── pb │ │ ├── inspect.pb.go │ │ └── output_info.pb.go │ └── pbtesting │ │ ├── assert_matcher.go │ │ └── gomock_matcher.go ├── inspect.proto ├── output_info.proto ├── py │ ├── compute_image_tools_proto │ │ ├── inspect_pb2.py │ │ ├── inspect_pb2.pyi │ │ ├── output_info_pb2.py │ │ └── output_info_pb2.pyi │ └── setup.py └── updatepb.sh ├── prowjobs_cloudbuild.yaml ├── rollout ├── cli_tools_cloudbuild_build.yaml ├── cli_tools_cloudbuild_build_prepare.yaml ├── cli_tools_cloudbuild_deploy.yaml ├── cli_tools_cloudbuild_release_workflow.yaml └── cli_tools_cloudbuild_rollback.yaml ├── run_e2e.sh └── supported-regions /OWNERS: -------------------------------------------------------------------------------- 1 | # This file enables automatic assignment of PR reviewers. 2 | # See the OWNERS docs at https://go.k8s.io/owners 3 | 4 | approvers: 5 | - image-import-team 6 | reviewers: 7 | - image-import-team 8 | -------------------------------------------------------------------------------- /OWNERS_ALIASES: -------------------------------------------------------------------------------- 1 | aliases: 2 | image-import-team: 3 | - ycohen278 4 | - advazair 5 | - barharel-google 6 | - aryeyur 7 | - shtarkmang 8 | -------------------------------------------------------------------------------- /cli_tools/common/assert/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // Package assert provides convenience functions that help a method or constructor check whether 16 | // it was invoked correctly (whether its preconditions have been met). 17 | // 18 | // When the assertion fails, a panic occurs, allowing bugs to be found in a fail-fast manner. 19 | package assert 20 | -------------------------------------------------------------------------------- /cli_tools/common/image/image_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License 14 | 15 | package image 16 | 17 | import ( 18 | "testing" 19 | 20 | "github.com/stretchr/testify/assert" 21 | ) 22 | 23 | func TestNewImage(t *testing.T) { 24 | img := NewImage("project-id", "img-name") 25 | assert.Equal(t, "project-id", img.GetProject()) 26 | assert.Equal(t, "img-name", img.GetImageName()) 27 | assert.Equal(t, "projects/project-id/global/images/img-name", img.GetURI()) 28 | } 29 | -------------------------------------------------------------------------------- /cli_tools/common/utils/collections/collections_utils.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package collections 16 | 17 | // ReverseMap reverses keys and their values. 18 | // The 2nd returned value indicates whether the operation succeeded. A map with 19 | // duplicate values can't be reversed. In that case, a 'false' is returned. 20 | func ReverseMap(m map[string]string) (map[string]string, bool) { 21 | newMap := make(map[string]string, len(m)) 22 | for k, v := range m { 23 | if _, ok := newMap[v]; ok { 24 | return nil, false 25 | } 26 | newMap[v] = k 27 | } 28 | return newMap, true 29 | } 30 | 31 | // GetKeys gets all keys of the map. 32 | func GetKeys(m map[string]string) []string { 33 | keys := make([]string, 0, len(m)) 34 | for k := range m { 35 | keys = append(keys, k) 36 | } 37 | return keys 38 | } 39 | -------------------------------------------------------------------------------- /cli_tools/common/utils/daisyutils/io.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package daisyutils 16 | 17 | import "io" 18 | 19 | // ByteCountingReader forwards calls to a delegate reader, keeping 20 | // track of the number bytes that have been read in `BytesRead`. 21 | // Errors are propagated unchanged. 22 | type ByteCountingReader struct { 23 | r io.Reader 24 | BytesRead int64 25 | } 26 | 27 | // NewByteCountingReader is a contructor for ByteCountingReader. 28 | func NewByteCountingReader(r io.Reader) *ByteCountingReader { 29 | return &ByteCountingReader{r, 0} 30 | } 31 | 32 | func (l *ByteCountingReader) Read(p []byte) (n int, err error) { 33 | n, err = l.r.Read(p) 34 | l.BytesRead += int64(n) 35 | return n, err 36 | } 37 | -------------------------------------------------------------------------------- /cli_tools/common/utils/flags/string_array_flag.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License 14 | 15 | package flags 16 | 17 | import "strings" 18 | 19 | // StringArrayFlag represents a CLI flag with multiple string values 20 | type StringArrayFlag []string 21 | 22 | // Set adds a string value to StringArrayFlag 23 | func (i *StringArrayFlag) Set(value string) error { 24 | *i = append(*i, value) 25 | return nil 26 | } 27 | 28 | // String returns string representation of StringArrayFlag 29 | func (i *StringArrayFlag) String() string { 30 | if i == nil { 31 | return "" 32 | } 33 | return strings.Join(*i, ",") 34 | } 35 | -------------------------------------------------------------------------------- /cli_tools/common/utils/param/release_param_utils.go: -------------------------------------------------------------------------------- 1 | package param 2 | 3 | // Parameters that depend on the release. 4 | var ( 5 | ReleaseProject = "compute-image-import" 6 | ) 7 | -------------------------------------------------------------------------------- /cli_tools/common/utils/paramhelper/region.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package paramhelper 16 | 17 | import ( 18 | "strings" 19 | 20 | daisy "github.com/GoogleCloudPlatform/compute-daisy" 21 | ) 22 | 23 | // GetRegion extracts region from a zone 24 | func GetRegion(zone string) (string, error) { 25 | if zone == "" { 26 | return "", daisy.Errf("zone is empty. Can't determine region") 27 | } 28 | zoneStrs := strings.Split(zone, "-") 29 | if len(zoneStrs) < 2 { 30 | return "", daisy.Errf("%v is not a valid zone", zone) 31 | } 32 | return strings.Join(zoneStrs[:len(zoneStrs)-1], "-"), nil 33 | } 34 | -------------------------------------------------------------------------------- /cli_tools/common/utils/paramhelper/resources.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package paramhelper 16 | 17 | import ( 18 | "strings" 19 | ) 20 | 21 | var ( 22 | // Resource names are allowed to start with URL-style prefixes: 23 | 24 | resourcePrefixes = []string{ 25 | // Modern prefixes: https://cloud.google.com/apis/design/resource_names 26 | "https://compute.googleapis.com/compute/v1/", 27 | "//compute.googleapis.com/compute/", 28 | // Legacy apiary prefix 29 | "https://www.googleapis.com/compute/v1/", 30 | } 31 | ) 32 | 33 | func trimResourcePrefix(s string) string { 34 | for _, prefix := range resourcePrefixes { 35 | if strings.HasPrefix(s, prefix) { 36 | return s[len(prefix):] 37 | } 38 | } 39 | return s 40 | } 41 | -------------------------------------------------------------------------------- /cli_tools/gce_ovf_export/domain/exported_disks.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package ovfexportdomain 16 | 17 | import ( 18 | "cloud.google.com/go/storage" 19 | "google.golang.org/api/compute/v1" 20 | ) 21 | 22 | // ExportedDisk represents GCE disks exported to GCS disk files. 23 | type ExportedDisk struct { 24 | AttachedDisk *compute.AttachedDisk 25 | Disk *compute.Disk 26 | GcsPath string 27 | GcsFileAttrs *storage.ObjectAttrs 28 | } 29 | -------------------------------------------------------------------------------- /cli_tools/gce_ovf_import/daisy_utils/data_disk_workflow_updater.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License 14 | 15 | package daisyovfutils 16 | 17 | import ( 18 | daisy "github.com/GoogleCloudPlatform/compute-daisy" 19 | "google.golang.org/api/compute/v1" 20 | 21 | "github.com/GoogleCloudPlatform/compute-image-import/cli_tools/common/domain" 22 | ) 23 | 24 | // AppendDisksToInstance appends disks to the instance. 25 | func AppendDisksToInstance(instance *daisy.Instance, disks []domain.Disk) { 26 | for _, disk := range disks { 27 | instance.Disks = append(instance.Disks, 28 | &compute.AttachedDisk{ 29 | Source: disk.GetURI(), 30 | AutoDelete: true, 31 | }) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /cli_tools/import_precheck/precheck/check.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package precheck 16 | 17 | // Check represents a single precheck step. 18 | type Check interface { 19 | // GetName returns the name of the precheck step; this is shown to the user. 20 | GetName() string 21 | 22 | // Run executes the precheck step. 23 | Run() (*Report, error) 24 | } 25 | -------------------------------------------------------------------------------- /cli_tools/import_precheck/precheck/common.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package precheck 16 | 17 | const mbrSize = 512 18 | -------------------------------------------------------------------------------- /cli_tools/import_precheck/precheck/user_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package precheck 16 | 17 | import ( 18 | "errors" 19 | "os" 20 | ) 21 | 22 | // CheckRoot returns an error if the process's runtime user isn't root. 23 | func CheckRoot() error { 24 | uid := os.Geteuid() 25 | if uid != 0 { 26 | return errors.New("must be run as root") 27 | } 28 | return nil 29 | } 30 | -------------------------------------------------------------------------------- /cli_tools/import_precheck/precheck/user_windows.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package precheck 16 | 17 | import ( 18 | "errors" 19 | 20 | "golang.org/x/sys/windows" 21 | ) 22 | 23 | // CheckRoot returns an error if the process's runtime user isn't root. 24 | func CheckRoot() error { 25 | var adminGroup *windows.SID 26 | err := windows.AllocateAndInitializeSid( 27 | &windows.SECURITY_NT_AUTHORITY, 28 | 2, 29 | windows.SECURITY_BUILTIN_DOMAIN_RID, 30 | windows.DOMAIN_ALIAS_RID_ADMINS, 31 | 0, 0, 0, 0, 0, 0, 32 | &adminGroup) 33 | if err != nil { 34 | return err 35 | } 36 | 37 | var t windows.Token // A nil Token will use the current thread's primary token. 38 | var b bool 39 | b, err = t.IsMember(adminGroup) 40 | if err != nil { 41 | return err 42 | } else if !b { 43 | return errors.New("must be run as Administrator") 44 | } 45 | return nil 46 | } 47 | -------------------------------------------------------------------------------- /cli_tools_tests/module/README.md: -------------------------------------------------------------------------------- 1 | Module tests: Similar to unit tests, but with live, non-mocked dependencies. 2 | 3 | ## Running 4 | 5 | **Quick start** 6 | 7 | ```shell script 8 | # Required once: 9 | gcloud auth application-default login 10 | gcloud config set compute/zone $ZONE 11 | gcloud config set project $PROJECT 12 | cd cli_tools_module_test/testname 13 | 14 | # Re-run as needed: 15 | go test 16 | ``` 17 | 18 | **Details** 19 | 20 | - The SDK performs **authentication** using the precedence 21 | described in: https://cloud.google.com/docs/authentication/production 22 | - All of the tests cases are marked to run as parallel. See the documentation 23 | on `-parallel` for configuring how many cases run simultaneously: 24 | https://golang.org/pkg/cmd/go/internal/test/ 25 | - **Configuration values** may be specified either as environment variables or 26 | as [gcloud config](https://cloud.google.com/sdk/gcloud/reference/config/set). 27 | Environment variables take precedence. 28 | 29 | 30 | | | Environment Variable | gcloud config | 31 | |---------|------------------------|---------------| 32 | | project | GOOGLE\_CLOUD\_PROJECT | project | 33 | | zone | GOOGLE\_CLOUD\_ZONE | compute/zone | 34 | -------------------------------------------------------------------------------- /cli_tools_tests/module/fileinspect/file_inspect_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package fileinspect 16 | 17 | import ( 18 | "context" 19 | "testing" 20 | "time" 21 | 22 | "github.com/GoogleCloudPlatform/compute-image-import/cli_tools/common/imagefile" 23 | "github.com/stretchr/testify/assert" 24 | ) 25 | 26 | func TestInspectDisk(t *testing.T) { 27 | deadline, cancelFunc := context.WithDeadline(context.Background(), time.Now().Add(time.Second*30)) 28 | defer cancelFunc() 29 | 30 | inspector := imagefile.NewGCSInspector() 31 | metaData, err := inspector.Inspect(deadline, "gs://compute-image-import-test-resources/file-inflation-test/virt-8G.vmdk") 32 | assert.NoError(t, err) 33 | assert.Equal(t, metaData.Checksum, "dffcdd4e62005b1d5558d4c11fb85073-d41d8cd98f00b204e9800998ecf8427e-d41d8cd98f00b204e9800998ecf8427e-dffcdd4e62005b1d5558d4c11fb85073") 34 | } 35 | -------------------------------------------------------------------------------- /cli_tools_tests/module/import/pkg_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package import_test 16 | 17 | import "github.com/GoogleCloudPlatform/compute-image-import/common/runtime" 18 | 19 | var ( 20 | project = runtime.GetConfig("GOOGLE_CLOUD_PROJECT", "project") 21 | zone = runtime.GetConfig("GOOGLE_CLOUD_ZONE", "compute/zone") 22 | ) 23 | 24 | const ( 25 | workflowDir = "../../../daisy_workflows" 26 | ) 27 | -------------------------------------------------------------------------------- /common/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/GoogleCloudPlatform/compute-image-import/common 2 | 3 | go 1.13 4 | 5 | require ( 6 | cloud.google.com/go/storage v1.31.0 7 | github.com/GoogleCloudPlatform/compute-daisy v0.0.0-20231114191308-36d2ee64eace 8 | golang.org/x/crypto v0.35.0 // indirect 9 | google.golang.org/api v0.129.0 10 | google.golang.org/grpc v1.56.3 // indirect 11 | 12 | ) 13 | -------------------------------------------------------------------------------- /daisy/README.md: -------------------------------------------------------------------------------- 1 | The source for Daisy has moved to [GoogleCloudPlatform/compute-daisy](https://github.com/GoogleCloudPlatform/compute-daisy). 2 | 3 | ## Quick Migration 4 | 5 | For most users, run the following in the same directory as your `go.mod` file: 6 | 7 | ```bash 8 | old=github.com/GoogleCloudPlatform/compute-image-tools/daisy 9 | new=github.com/GoogleCloudPlatform/compute-daisy 10 | find . -path ./.git -prune -o -name "*.go" \ 11 | -exec sed -i"" "s|$old|$new|g" "{}" + 12 | go get "$new" 13 | go mod tidy 14 | ``` 15 | 16 | ## Detailed Migration 17 | 18 | 1. Run `go get github.com/GoogleCloudPlatform/compute-daisy` 19 | 2. Replace imports with the following: 20 | 21 | | Old Import | New Import | 22 | |--------------------------------------------------------------------|--------------------------------------------------------| 23 | | `github.com/GoogleCloudPlatform/compute-image-tools/daisy` | `github.com/GoogleCloudPlatform/compute-daisy` | 24 | | `github.com/GoogleCloudPlatform/compute-image-tools/daisy/compute` | `github.com/GoogleCloudPlatform/compute-daisy/compute` | 25 | -------------------------------------------------------------------------------- /daisy_integration_tests/README.md: -------------------------------------------------------------------------------- 1 | # Daisy E2E Tests 2 | 3 | This directory contains end to end tests for Daisy. 4 | To run against your local checkout (requires access to resources in 5 | compute-image-tools-test): 6 | 7 | ```bash 8 | go run daisy/daisy_test_runner/main.go -projects= -zone=us-central1-c daisy_integration_tests/daisy_e2e.test.gotmpl 9 | ``` 10 | 11 | Prow runs these tests periodically against HEAD. 12 | 13 | ## Test Environment Details 14 | 15 | * Periodic Tests run in the `compute-import-test-pool-xxx` projects and have permissions: 16 | * GCE read/write 17 | * GCS read on the `compute-image-import-test-resources` bucket. 18 | * GCS read/write on the `compute-image-tools-test-sandbox` bucket. 19 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_disk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | i# Copyright 2019 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | set -x 16 | 17 | METADATA_URL="http://metadata/computeMetadata/v1/instance" 18 | SIZE=$(curl -f -H Metadata-Flavor:Google ${METADATA_URL}/attributes/disk-size) 19 | RESERVED_SPACE=50 #50MB reserved space so system can still run 20 | 21 | echo "GCECreateDisk: Fullfilling disk of size ${SIZE}GB." 22 | SIZE_MB=$(awk "BEGIN {print int(${SIZE} * 1024)}") 23 | mkfs.ext4 /dev/sdb 24 | mkdir -p /mnt/sdb 25 | mount /dev/sdb /mnt/sdb 26 | dd if=/dev/zero of=/mnt/sdb/reserved.space count=${RESERVED_SPACE} bs=1M 27 | dd if=/dev/urandom of=/mnt/sdb/random.file count=${SIZE_MB} bs=1M 28 | rm /mnt/sdb/reserved.space 29 | 30 | echo "create disk success" 31 | sync 32 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_1024gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-1024gb", 3 | "DefaultTimeout": "24h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 1024GB random data." 8 | }, 9 | "size": "1024" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_10gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-10gb", 3 | "DefaultTimeout": "1h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 10GB random data." 8 | }, 9 | "size": "10" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_2048gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-2048gb", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 2048GB random data." 8 | }, 9 | "size": "2048" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_210gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-210gb", 3 | "DefaultTimeout": "10h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 210GB random data." 8 | }, 9 | "size": "210" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_4096gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-4096gb", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 4096GB random data." 8 | }, 9 | "size": "4096" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/create_random_data_image_8192gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "create-random-data-image-8192gb", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This is the test preparation tool to create a image with 8192GB random data." 8 | }, 9 | "size": "8192" 10 | }, 11 | "Steps": { 12 | "create-random-data-image": { 13 | "SubWorkflow": { 14 | "Path": "create_random_data_image.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/daisy_e2e_daily.test.gotmpl: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "daisy-e2e-tests-daily", 3 | "TestParallelCount": 30, 4 | "Tests": { 5 | "vmdk export with given size 10GB test": { 6 | "Path": "./image_export_vmdk_given_size_10gb.wf.json" 7 | }, 8 | "vmdk export with given size 210GB test": { 9 | "Path": "./image_export_vmdk_given_size_210gb.wf.json" 10 | }, 11 | "vmdk export with given size 1024GB test": { 12 | "Path": "./image_export_vmdk_given_size_1024gb.wf.json" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /daisy_integration_tests/daisy_e2e_weekly.test.gotmpl: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "daisy-e2e-tests-weekly", 3 | "TestParallelCount": 30, 4 | "Tests": { 5 | "vmdk export with given size 2048GB test": { 6 | "Path": "./image_export_vmdk_given_size_2048gb.wf.json" 7 | }, 8 | "vmdk export with given size 4096GB test": { 9 | "Path": "./image_export_vmdk_given_size_4096gb.wf.json" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /daisy_integration_tests/data/test.txt: -------------------------------------------------------------------------------- 1 | This file is used to test retrieval of local files. 2 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size.subwf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-given-size-test", 3 | "Vars": { 4 | "size": { 5 | "Required": true 6 | }, 7 | "gcs_export": { 8 | "Value": "${SCRATCHPATH}/created-by-export-test-given-size.vmdk" 9 | }, 10 | "verification_disk_name": "verify-export-${ID}" 11 | }, 12 | "Steps": { 13 | "export": { 14 | "IncludeWorkflow": { 15 | "Path": "../daisy_workflows/export/image_export_ext.wf.json", 16 | "Vars": { 17 | "destination": "${gcs_export}", 18 | "format": "vmdk", 19 | "source_image": "projects/compute-image-import-test/global/images/image-export-given-size-${size}gb" 20 | } 21 | } 22 | }, 23 | "verify": { 24 | "SubWorkflow": { 25 | "Path": "image_export_vmdk_given_size_verify.subwf.json", 26 | "Vars": { 27 | "gcs_export": "${gcs_export}" 28 | } 29 | } 30 | }, 31 | "cleanup": { 32 | "DeleteResources": { 33 | "GCSPaths": [ 34 | "${SCRATCHPATH}/created-by-export-test-given-size.vmdk", 35 | "${SCRATCHPATH}/outs/" 36 | ] 37 | } 38 | } 39 | }, 40 | "Dependencies": { 41 | "verify": [ 42 | "export" 43 | ], 44 | "cleanup": [ 45 | "verify" 46 | ] 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_1024gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-1024gb-test", 3 | "DefaultTimeout": "20h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "1024" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_10gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-10gb-test", 3 | "DefaultTimeout": "1h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "10" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_2048gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-2048gb-test", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "2048" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_210gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-210gb-test", 3 | "DefaultTimeout": "10h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "210" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_4096gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-4096gb-test", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "4096" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_given_size_8192gb.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-8192gb-test", 3 | "DefaultTimeout": "100h", 4 | "Vars": { 5 | "about-this-test": { 6 | "Value": "", 7 | "Description": "This test checks that the export_image|disk workflows actually work with given disk size when converting format." 8 | }, 9 | "size": "8192" 10 | }, 11 | "Steps": { 12 | "run-test": { 13 | "SubWorkflow": { 14 | "Path": "image_export_vmdk_given_size.subwf.json", 15 | "Vars": { 16 | "size": "${size}" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_latest.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-latest-test", 3 | "Vars": { 4 | "about-this-test": { 5 | "Value": "", 6 | "Description": "This test checks that the export_image|disk workflows actually work using the latest worker image." 7 | }, 8 | "gcs_export": { 9 | "Value": "${SCRATCHPATH}/created-by-export-test-release.vmdk" 10 | } 11 | }, 12 | "Steps": { 13 | "test-export": { 14 | "Timeout": "20m", 15 | "SubWorkflow": { 16 | "Path": "image_export_vmdk.subwf.json", 17 | "Vars": { 18 | "source_disk_file": "${gcs_export}" 19 | } 20 | } 21 | }, 22 | "image-export": { 23 | "IncludeWorkflow": { 24 | "Path": "../daisy_workflows/export/image_export_ext.wf.json", 25 | "Vars": { 26 | "destination": "${gcs_export}", 27 | "export_instance_disk_image": "projects/compute-image-import-test/global/images/family/debian-10-worker", 28 | "format": "vmdk", 29 | "source_image": "projects/debian-cloud/global/images/family/debian-11" 30 | } 31 | } 32 | } 33 | }, 34 | "Dependencies": { 35 | "test-export": [ 36 | "image-export" 37 | ] 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_latest_with_pd_standard.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-latest-with-pd-standard-test", 3 | "Vars": { 4 | "about-this-test": { 5 | "Value": "", 6 | "Description": "This test checks that the export_image|disk workflows actually work using the latest worker image." 7 | }, 8 | "gcs_export": { 9 | "Value": "${SCRATCHPATH}/created-by-export-test-release.vmdk" 10 | } 11 | }, 12 | "Steps": { 13 | "test-export": { 14 | "Timeout": "20m", 15 | "SubWorkflow": { 16 | "Path": "image_export_vmdk.subwf.json", 17 | "Vars": { 18 | "source_disk_file": "${gcs_export}" 19 | } 20 | } 21 | }, 22 | "image-export": { 23 | "IncludeWorkflow": { 24 | "Path": "../daisy_workflows/export/image_export_ext.wf.json", 25 | "Vars": { 26 | "destination": "${gcs_export}", 27 | "export_instance_disk_image": "projects/compute-image-import-test/global/images/family/debian-10-worker", 28 | "format": "vmdk", 29 | "source_image": "projects/debian-cloud/global/images/family/debian-11", 30 | "export_instance_disk_type": "pd-standard" 31 | } 32 | } 33 | } 34 | }, 35 | "Dependencies": { 36 | "test-export": [ 37 | "image-export" 38 | ] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_export_vmdk_release.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-export-vmdk-release-test", 3 | "Vars": { 4 | "about-this-test": { 5 | "Value": "", 6 | "Description": "This test checks that the export_image|disk workflows actually work using the released worker image." 7 | }, 8 | "gcs_export": { 9 | "Value": "${SCRATCHPATH}/created-by-export-test-release.vmdk" 10 | } 11 | }, 12 | "Steps": { 13 | "test-export": { 14 | "Timeout": "20m", 15 | "SubWorkflow": { 16 | "Path": "image_export_vmdk.subwf.json", 17 | "Vars": { 18 | "source_disk_file": "${gcs_export}" 19 | } 20 | } 21 | }, 22 | "image-export": { 23 | "IncludeWorkflow": { 24 | "Path": "../daisy_workflows/export/image_export_ext.wf.json", 25 | "Vars": { 26 | "destination": "${gcs_export}", 27 | "format": "vmdk", 28 | "source_image": "projects/debian-cloud/global/images/family/debian-11" 29 | } 30 | } 31 | } 32 | }, 33 | "Dependencies": { 34 | "test-export": [ 35 | "image-export" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_import_allow_spaces_in_disk_filename.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-import-allows-spaces", 3 | "Vars": { 4 | "image_name": { 5 | "Value": "image-import-allows-spaces-test-${ID}" 6 | }, 7 | "source_disk_file": { 8 | "Value": "gs://compute-image-import-test-resources/ubuntu 1604 name image with spaces.vmdk" 9 | } 10 | }, 11 | "Steps": { 12 | "delete-image": { 13 | "DeleteResources": { 14 | "Images": [ 15 | "${image_name}" 16 | ] 17 | } 18 | }, 19 | "import-and-translate-image": { 20 | "Timeout": "45m", 21 | "IncludeWorkflow": { 22 | "Path": "../daisy_workflows/image_import/import_and_translate.wf.json", 23 | "Vars": { 24 | "image_name": "${image_name}", 25 | "source_disk_file": "${source_disk_file}", 26 | "translate_workflow": "ubuntu/translate_ubuntu_1604.wf.json" 27 | } 28 | } 29 | } 30 | }, 31 | "Dependencies": { 32 | "delete-image": [ 33 | "import-and-translate-image" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_import_and_translate_no_extension.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-import-and-translate-no-ext", 3 | "Vars": { 4 | "image_name": { 5 | "Value": "image-import-and-translate-no-ext-${ID}" 6 | }, 7 | "source_disk_file": { 8 | "Value": "gs://compute-image-import-test-resources/xenial-server-cloudimg-amd64-disk1-no-ext" 9 | } 10 | }, 11 | "Steps": { 12 | "import-and-translate-image": { 13 | "Timeout": "45m", 14 | "IncludeWorkflow": { 15 | "Path": "../daisy_workflows/image_import/import_and_translate.wf.json", 16 | "Vars": { 17 | "image_name": "${image_name}", 18 | "source_disk_file": "${source_disk_file}", 19 | "translate_workflow": "ubuntu/translate_ubuntu_1604.wf.json" 20 | } 21 | } 22 | }, 23 | "delete-image": { 24 | "DeleteResources": { 25 | "Images": [ 26 | "${image_name}" 27 | ] 28 | } 29 | } 30 | }, 31 | "Dependencies": { 32 | "delete-image": [ 33 | "import-and-translate-image" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /daisy_integration_tests/image_import_and_translate_ova.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-import-and-translate-ova", 3 | "Vars": { 4 | "image_name": { 5 | "Value": "image-import-and-translate-ova-${ID}" 6 | }, 7 | "source_disk_file": { 8 | "Value": "gs://compute-image-import-test-resources/ova/ubuntu-16.04-server-cloudimg-amd64.ova" 9 | } 10 | }, 11 | "Steps": { 12 | "import-and-translate-image": { 13 | "Timeout": "45m", 14 | "IncludeWorkflow": { 15 | "Path": "../daisy_workflows/image_import/import_and_translate.wf.json", 16 | "Vars": { 17 | "image_name": "${image_name}", 18 | "source_disk_file": "${source_disk_file}", 19 | "translate_workflow": "ubuntu/translate_ubuntu_1604.wf.json" 20 | } 21 | } 22 | }, 23 | "delete-image": { 24 | "DeleteResources": { 25 | "Images": [ 26 | "${image_name}" 27 | ] 28 | } 29 | } 30 | }, 31 | "Dependencies": { 32 | "delete-image": [ 33 | "import-and-translate-image" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /daisy_integration_tests/scripts/can_retrieve_sources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | FAIL=0 4 | FAILURES="" 5 | 6 | function status { 7 | local message="${1}" 8 | echo "STATUS: ${message}" 9 | } 10 | 11 | function fail { 12 | local message="${1}" 13 | FAIL=$((FAIL+1)) 14 | FAILURES+="TestFailed: $message"$'\n' 15 | } 16 | 17 | # Run tests. 18 | sources_dir=$(curl 'http://metadata.google.internal/computeMetadata/v1/instance/attributes/daisy-sources-path' -H 'Metadata-Flavor: Google') 19 | 20 | wget "${sources_dir}/local_file.txt" 21 | if [[ -e 'local_file.txt' ]]; then 22 | status 'successfully retrieved local file.' 23 | fi 24 | 25 | wget "${sources_dir}/gcs_file.txt" 26 | if [[ -e 'gcs_file.txt' ]]; then 27 | status 'successfully retrieved GCS file.' 28 | fi 29 | 30 | # Return results. 31 | if [[ ${FAIL} -eq 0 ]]; then 32 | echo "PASSED: All tests passed!" 33 | else 34 | echo "${FAIL} tests failed." 35 | echo "${FAILURES}" 36 | echo "FAILED: $0 failed." 37 | fi 38 | -------------------------------------------------------------------------------- /daisy_integration_tests/scripts/report_success.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script simply writes a unique string to the serial port to indicate that 4 | # an instance has been successfully created and is healthy enough to output a 5 | # message. 6 | 7 | # Lots of other stuff comes out the serial port, so we need to test for a string 8 | # more unique than just "SUCCESS". 9 | echo "SUCCESS JO2Pd99h4qRK5HIpc5NP" 10 | 11 | -------------------------------------------------------------------------------- /daisy_integration_tests/scripts/test_devices.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | devices=("/dev/sdb" "/dev/sdc") 3 | 4 | while [ $devices -gt 0 ]; do 5 | sleep 1 6 | for device in $devices; do 7 | if [[ -b $device ]]; then 8 | devices=(${devices[@]/$device}) 9 | fi 10 | done 11 | done 12 | 13 | echo "SUCCESS JO2Pd99h4qRK5HIpc5NP" -------------------------------------------------------------------------------- /daisy_integration_tests/scripts/v2v_adapt.sh: -------------------------------------------------------------------------------- 1 | docker run --privileged -v /dev/disk/by-id:/dev/disk/by-id:ro v2v -vv --log file=/dev/ttyS1,level=debug --log file=/dev/ttyS2,level=trace --report file=/dev/ttyS3 --report file=http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/v2v/report,headers=Metadata-Flavor=Google --drive file=/dev/disk/by-id/google-workload-disk1 --in-place -------------------------------------------------------------------------------- /daisy_integration_tests/ubuntu_1604_import_and_translate.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "image-import-and-translate-test", 3 | "Vars": { 4 | "image_name": { 5 | "Value": "image-import-and-translate-test-${ID}" 6 | }, 7 | "source_disk_file": { 8 | "Value": "gs://compute-image-import-test-resources/xenial-server-cloudimg-amd64-disk1.vmdk" 9 | } 10 | }, 11 | "Steps": { 12 | "delete-image": { 13 | "DeleteResources": { 14 | "Images": [ 15 | "${image_name}" 16 | ] 17 | } 18 | }, 19 | "import-and-translate-image": { 20 | "Timeout": "45m", 21 | "IncludeWorkflow": { 22 | "Path": "../daisy_workflows/image_import/import_and_translate.wf.json", 23 | "Vars": { 24 | "image_name": "${image_name}", 25 | "source_disk_file": "${source_disk_file}", 26 | "translate_workflow": "ubuntu/translate_ubuntu_1604.wf.json" 27 | } 28 | } 29 | } 30 | }, 31 | "Dependencies": { 32 | "delete-image": [ 33 | "import-and-translate-image" 34 | ] 35 | } 36 | } -------------------------------------------------------------------------------- /daisy_workflows/README.md: -------------------------------------------------------------------------------- 1 | # Daisy Workflows for Image Import and Export 2 | These are workflows used by the GCE team to automate common tasks associated 3 | with importing and exporting images. Example workflows are also included. 4 | 5 | # Import Userguide 6 | The [import 7 | userguide](https://googlecloudplatform.github.io/compute-image-import/image-import.html) 8 | provides examples for running import workflows using Google Compute Engine tools 9 | and VMs. 10 | 11 | -------------------------------------------------------------------------------- /daisy_workflows/image_build/debian/README.md: -------------------------------------------------------------------------------- 1 | # Debian Worker Build workflow 2 | 3 | ### debian_worker.wf.json 4 | 5 | Build a new Debian worker image for GCE import/export operations. 6 | This workflow has been tested with Debian 10 and 11. 7 | 8 | Variables: 9 | * `build_tag`: Build tag used to version the image. Default: Current date in format YYYYMMDD. 10 | * `commit_sha`: Git commit hash ($COMMIT_SHA in Cloud Build) to link the worker build to its commit. Default: "" 11 | * `family_tag`: Image family name used as a base image. Default: debian-11 12 | * `image_prefix`: Prefix for the created image. Default: debian-11-worker 13 | * `source_image`: Source image for Debian worker. Default: projects/debian-cloud/global/images/family/debian-11 14 | 15 | Example Daisy invocation: 16 | ```shell 17 | # Example of building Debian 11 worker 18 | daisy -project my-project \ 19 | -gcs_path gs://bucket/daisyscratch \ 20 | debian_worker.wf.json 21 | ``` 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inflate_image.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "import-from-image", 3 | "DefaultTimeout": "90m", 4 | "Vars": { 5 | "source_image": { 6 | "Required": true, 7 | "Description": "The GCE image to translate." 8 | }, 9 | "disk_name": "imported-disk-${ID}", 10 | "import_license": { 11 | "Value": "projects/compute-image-import/global/licenses/virtual-disk-import", 12 | "Description": "Import License used for tracking migration workflow use." 13 | } 14 | }, 15 | "Steps": { 16 | "create-disk": { 17 | "CreateDisks": [{ 18 | "Name": "${disk_name}", 19 | "Type": "pd-ssd", 20 | "ExactName": true, 21 | "NoCleanup": true, 22 | "SourceImage": "${source_image}", 23 | "Licenses": ["${import_license}"] 24 | }] 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/daisy-shim.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # A Google Compute Engine instance startup-script that: 17 | # 1. Downloads the files specified in the `daisy-sources-path` 18 | # metadata variable. 19 | # 2. Installs the disk inspection library. 20 | # 3. Runs disk inspection against /dev/sdb 21 | 22 | echo "Status: inspection started." 23 | 24 | set -eufx -o pipefail 25 | 26 | ROOT="/tmp/build-root-$RANDOM" 27 | SOURCE=$(curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/daisy-sources-path" -H "Metadata-Flavor: Google") 28 | mkdir -p "$ROOT" && cd "$ROOT" 29 | gsutil cp -R "$SOURCE/*" . 30 | pip3 install ./compute_image_tools_proto ./boot_inspect 31 | 32 | if boot-inspect --format=daisy --device=/dev/sdb; then 33 | echo "Success:" 34 | else 35 | echo "Failed:" 36 | fi 37 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/pyproject.toml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [tool.pytest.ini_options] 16 | addopts = "--import-mode=importlib" 17 | 18 | [tool.gcp-guest-pytest] 19 | 20 | envlist = [ 21 | "3.7", 22 | "3.8" 23 | ] 24 | 25 | test-deps = [ 26 | "pyyaml == 5.3.1", 27 | "//proto/py", 28 | ] 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from setuptools import find_namespace_packages, setup 17 | 18 | setup( 19 | name="boot_inspect", 20 | version="0.1", 21 | package_dir={"": "src"}, 22 | install_requires=[ 23 | 'compute_image_tools_proto', 24 | ], 25 | packages=find_namespace_packages(where="src"), 26 | entry_points={ 27 | "console_scripts": [ 28 | "boot-inspect = boot_inspect.cli:main", 29 | ], 30 | } 31 | ) 32 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/src/boot_inspect/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/inspection/src/boot_inspect/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/src/boot_inspect/inspectors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/inspection/src/boot_inspect/inspectors/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/src/boot_inspect/inspectors/os/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/inspection/src/boot_inspect/inspectors/os/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/src/boot_inspect/inspectors/os/architecture.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from compute_image_tools_proto import inspect_pb2 17 | 18 | 19 | class Inspector: 20 | 21 | def __init__(self, g, root: str): 22 | """Identifies the CPU architecture of a mounted GuestFS instance. 23 | 24 | Args: 25 | g (guestfs.GuestFS): A guestfs instance that has been mounted. 26 | root: The root used for mounting. 27 | """ 28 | self._g = g 29 | self._root = root 30 | 31 | def inspect(self) -> inspect_pb2.Architecture: 32 | inspected = self._g.inspect_get_arch(self._root) 33 | if inspected == 'i386': 34 | return inspect_pb2.Architecture.X86 35 | elif inspected == 'x86_64': 36 | return inspect_pb2.Architecture.X64 37 | return inspect_pb2.Architecture.UNKNOWN 38 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/src/boot_inspect/system/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/inspection/src/boot_inspect/system/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/inspection/tests/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/gdisk/gpt.yaml: -------------------------------------------------------------------------------- 1 | expected: false 2 | output: 'GPT fdisk (gdisk) version 1.0.5 3 | 4 | Partition table scan: 5 | MBR: not present 6 | BSD: not present 7 | APM: not present 8 | GPT: present 9 | 10 | Found valid GPT with hybrid MBR; using GPT. 11 | Disk /dev/sda: 20971520 sectors, 10.0 GiB 12 | Model: PersistentDisk 13 | Sector size (logical/physical): 512/4096 bytes 14 | Disk identifier (GUID): D4179FF4-6FF5-4528-9873-35C7C8AB4B11 15 | Partition table holds up to 128 entries 16 | Main partition table begins at sector 2 and ends at sector 33 17 | First usable sector is 34, last usable sector is 20971486 18 | Partitions will be aligned on 2048-sector boundaries 19 | Total free space is 20971453 sectors (10.0 GiB) 20 | 21 | Number Start (sector) End (sector) Size Code Name 22 | ' 23 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/gdisk/hybrid_mbr.yaml: -------------------------------------------------------------------------------- 1 | expected: true 2 | output: 'GPT fdisk (gdisk) version 1.0.5 3 | 4 | Partition table scan: 5 | MBR: hybrid 6 | BSD: not present 7 | APM: not present 8 | GPT: present 9 | 10 | Found valid GPT with hybrid MBR; using GPT. 11 | Disk /dev/sda: 20971520 sectors, 10.0 GiB 12 | Model: PersistentDisk 13 | Sector size (logical/physical): 512/4096 bytes 14 | Disk identifier (GUID): D4179FF4-6FF5-4528-9873-35C7C8AB4B11 15 | Partition table holds up to 128 entries 16 | Main partition table begins at sector 2 and ends at sector 33 17 | First usable sector is 34, last usable sector is 20971486 18 | Partitions will be aligned on 2048-sector boundaries 19 | Total free space is 20971453 sectors (10.0 GiB) 20 | 21 | Number Start (sector) End (sector) Size Code Name 22 | ' 23 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/gdisk/mbr.yaml: -------------------------------------------------------------------------------- 1 | expected: false 2 | output: 'GPT fdisk (gdisk) version 0.8.10 3 | 4 | Partition table scan: 5 | MBR: MBR only 6 | BSD: not present 7 | APM: not present 8 | GPT: not present 9 | 10 | 11 | *************************************************************** 12 | Found invalid GPT and valid MBR; converting MBR to GPT format 13 | in memory. 14 | *************************************************************** 15 | 16 | Disk /dev/sdd: 104857600 sectors, 50.0 GiB 17 | Logical sector size: 512 bytes 18 | Disk identifier (GUID): 855598BF-5ED4-4F12-A7D5-7AAD88B953B8 19 | Partition table holds up to 128 entries 20 | First usable sector is 34, last usable sector is 104857566 21 | Partitions will be aligned on 2048-sector boundaries 22 | Total free space is 4029 sectors (2.0 MiB) 23 | 24 | Number Start (sector) End (sector) Size Code Name 25 | 1 2048 104855551 50.0 GiB 0700 Microsoft basic data 26 | ' -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/gdisk/protective_mbr.yaml: -------------------------------------------------------------------------------- 1 | expected: false 2 | output: 'GPT fdisk (gdisk) version 1.0.3 3 | 4 | Partition table scan: 5 | MBR: protective 6 | BSD: not present 7 | APM: not present 8 | GPT: present 9 | 10 | Found valid GPT with protective MBR; using GPT. 11 | Disk /dev/sda: 20971520 sectors, 10.0 GiB 12 | Model: PersistentDisk 13 | Sector size (logical/physical): 512/4096 bytes 14 | Disk identifier (GUID): 4287F4E1-B0AC-4F20-9F66-3957E03266DF 15 | Partition table holds up to 128 entries 16 | Main partition table begins at sector 2 and ends at sector 33 17 | First usable sector is 34, last usable sector is 20971486 18 | Partitions will be aligned on 2048-sector boundaries 19 | Total free space is 2014 sectors (1007.0 KiB) 20 | 21 | Number Start (sector) End (sector) Size Code Name 22 | 1 227328 20971486 9.9 GiB 8300 23 | 14 2048 10239 4.0 MiB EF02 24 | 15 10240 227327 106.0 MiB EF00 25 | ' 26 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-amazonlinux-2.0.20200602.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image amazonlinux:2.0.20200602.0 2 | expected: 3 | distro: amazon 4 | major: '2' 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="Amazon Linux" 9 | VERSION="2" 10 | ID="amzn" 11 | ID_LIKE="centos rhel fedora" 12 | VERSION_ID="2" 13 | PRETTY_NAME="Amazon Linux 2" 14 | ANSI_COLOR="0;33" 15 | CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" 16 | HOME_URL="https://amazonlinux.com/" 17 | /etc/system-release: | 18 | Amazon Linux release 2 (Karoo) 19 | /etc/system-release-cpe: | 20 | cpe:2.3:o:amazon:amazon_linux:2 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-amazonlinux-2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image amazonlinux:2 2 | expected: 3 | distro: amazon 4 | major: 2 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="Amazon Linux" 9 | VERSION="2" 10 | ID="amzn" 11 | ID_LIKE="centos rhel fedora" 12 | VERSION_ID="2" 13 | PRETTY_NAME="Amazon Linux 2" 14 | ANSI_COLOR="0;33" 15 | CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" 16 | HOME_URL="https://amazonlinux.com/" 17 | /etc/system-release: | 18 | Amazon Linux release 2 (Karoo) 19 | /etc/system-release-cpe: | 20 | cpe:2.3:o:amazon:amazon_linux:2 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-amazonlinux-2018.03.yaml: -------------------------------------------------------------------------------- 1 | source: docker image amazonlinux:2018.03 2 | expected: 3 | distro: amazon 4 | major: '2018' 5 | minor: '03' 6 | files: 7 | /etc/os-release: | 8 | NAME="Amazon Linux AMI" 9 | VERSION="2018.03" 10 | ID="amzn" 11 | ID_LIKE="rhel fedora" 12 | VERSION_ID="2018.03" 13 | PRETTY_NAME="Amazon Linux AMI 2018.03" 14 | ANSI_COLOR="0;33" 15 | CPE_NAME="cpe:/o:amazon:linux:2018.03:ga" 16 | HOME_URL="http://aws.amazon.com/amazon-linux-ami/" 17 | /etc/system-release: | 18 | Amazon Linux AMI release 2018.03 19 | /etc/system-release-cpe: | 20 | cpe:/o:amazon:linux:2018.03:ga 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-amazonlinux-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image amazonlinux:latest 2 | expected: 3 | distro: amazon 4 | major: '2' 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="Amazon Linux" 9 | VERSION="2" 10 | ID="amzn" 11 | ID_LIKE="centos rhel fedora" 12 | VERSION_ID="2" 13 | PRETTY_NAME="Amazon Linux 2" 14 | ANSI_COLOR="0;33" 15 | CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" 16 | HOME_URL="https://amazonlinux.com/" 17 | /etc/system-release: | 18 | Amazon Linux release 2 (Karoo) 19 | /etc/system-release-cpe: | 20 | cpe:2.3:o:amazon:amazon_linux:2 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-archlinux-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image archlinux:latest 2 | expected: 3 | distro: arch 4 | major: 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="Arch Linux" 9 | PRETTY_NAME="Arch Linux" 10 | ID=arch 11 | BUILD_ID=rolling 12 | ANSI_COLOR="38;2;23;147;209" 13 | HOME_URL="https://archlinux.org/" 14 | DOCUMENTATION_URL="https://wiki.archlinux.org/" 15 | SUPPORT_URL="https://bbs.archlinux.org/" 16 | BUG_REPORT_URL="https://bugs.archlinux.org/" 17 | LOGO=archlinux-logo 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.0.1406.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.0.1406 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '0' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.0.1406 (Core) 9 | /etc/os-release: | 10 | NAME="CentOS Linux" 11 | VERSION="7 (Core)" 12 | ID="centos" 13 | ID_LIKE="rhel fedora" 14 | VERSION_ID="7" 15 | PRETTY_NAME="CentOS Linux 7 (Core)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:centos:centos:7" 18 | HOME_URL="https://www.centos.org/" 19 | BUG_REPORT_URL="https://bugs.centos.org/" 20 | 21 | /etc/redhat-release: | 22 | CentOS Linux release 7.0.1406 (Core) 23 | /etc/system-release: | 24 | CentOS Linux release 7.0.1406 (Core) 25 | /etc/system-release-cpe: | 26 | cpe:/o:centos:centos:7 27 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.1.1503.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.1.1503 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '1' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.1.1503 (Core) 9 | /etc/os-release: | 10 | NAME="CentOS Linux" 11 | VERSION="7 (Core)" 12 | ID="centos" 13 | ID_LIKE="rhel fedora" 14 | VERSION_ID="7" 15 | PRETTY_NAME="CentOS Linux 7 (Core)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:centos:centos:7" 18 | HOME_URL="https://www.centos.org/" 19 | BUG_REPORT_URL="https://bugs.centos.org/" 20 | 21 | CENTOS_MANTISBT_PROJECT="CentOS-7" 22 | CENTOS_MANTISBT_PROJECT_VERSION="7" 23 | REDHAT_SUPPORT_PRODUCT="centos" 24 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 25 | 26 | /etc/redhat-release: | 27 | Derived from Red Hat Enterprise Linux 7.1 (Source) 28 | /etc/system-release: | 29 | CentOS Linux release 7.1.1503 (Core) 30 | /etc/system-release-cpe: | 31 | cpe:/o:centos:centos:7 32 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.2.1511.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.2.1511 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '2' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.2.1511 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.2 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.2.1511 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.2.1511 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.3.1611.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.3.1611 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '3' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.3.1611 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.3 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.3.1611 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.3.1611 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.4.1708.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.4.1708 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '4' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.4.1708 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.4 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.4.1708 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.4.1708 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.5.1804.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.5.1804 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '5' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.5.1804 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.5 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.5.1804 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.5.1804 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.6.1810.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.6.1810 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '6' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.6.1810 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.6 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.6.1810 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.6.1810 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.7.1908.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.7.1908 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '7' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.7.1908 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.7 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.7.1908 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.7.1908 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-7.8.2003.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:7.8.2003 2 | expected: 3 | distro: centos 4 | major: '7' 5 | minor: '8' 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.8.2003 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.8 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | 23 | CENTOS_MANTISBT_PROJECT="CentOS-7" 24 | CENTOS_MANTISBT_PROJECT_VERSION="7" 25 | REDHAT_SUPPORT_PRODUCT="centos" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 27 | 28 | /etc/redhat-release: | 29 | CentOS Linux release 7.8.2003 (Core) 30 | /etc/system-release: | 31 | CentOS Linux release 7.8.2003 (Core) 32 | /etc/system-release-cpe: | 33 | cpe:/o:centos:centos:7 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-stream-8.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:stream8 2 | expected: 3 | distro: centos-stream 4 | major: '8' 5 | minor: 6 | files: 7 | /etc/centos-release: | 8 | CentOS Stream release 8 9 | /etc/os-release: | 10 | NAME="CentOS Stream" 11 | VERSION="8" 12 | ID="centos" 13 | ID_LIKE="rhel fedora" 14 | VERSION_ID="8" 15 | PLATFORM_ID="platform:el8" 16 | PRETTY_NAME="CentOS Stream 8" 17 | ANSI_COLOR="0;31" 18 | CPE_NAME="cpe:/o:centos:centos:8" 19 | HOME_URL="https://centos.org/" 20 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 21 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8" 22 | REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream" 23 | /etc/redhat-release: | 24 | CentOS Stream release 8 25 | /etc/system-release: | 26 | CentOS Stream release 8 27 | /etc/system-release-cpe: | 28 | cpe:/o:centos:centos:8 -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-centos-stream-9.yaml: -------------------------------------------------------------------------------- 1 | source: docker image centos:stream9 2 | expected: 3 | distro: centos-stream 4 | major: '9' 5 | minor: 6 | files: 7 | /etc/centos-release: | 8 | CentOS Stream release 9 9 | /etc/os-release: | 10 | NAME="CentOS Stream" 11 | VERSION="9" 12 | ID="centos" 13 | ID_LIKE="rhel fedora" 14 | VERSION_ID="9" 15 | PLATFORM_ID="platform:el9" 16 | PRETTY_NAME="CentOS Stream 9" 17 | ANSI_COLOR="0;31" 18 | LOGO="fedora-logo-icon" 19 | CPE_NAME="cpe:/o:centos:centos:9" 20 | HOME_URL="https://centos.org/" 21 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 22 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9" 23 | REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream" 24 | /etc/redhat-release: | 25 | CentOS Stream release 9 26 | /etc/system-release: | 27 | CentOS Stream release 9 28 | /etc/system-release-cpe: | 29 | cpe:/o:centos:centos:9 -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-clear-linux-os-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image clearlinux:latest 2 | expected: 3 | distro: clear 4 | major: 35440 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="Clear Linux OS" 9 | VERSION=1 10 | ID=clear-linux-os 11 | ID_LIKE=clear-linux-os 12 | VERSION_ID=35440 13 | PRETTY_NAME="Clear Linux OS" 14 | ANSI_COLOR="1;35" 15 | HOME_URL="https://clearlinux.org" 16 | SUPPORT_URL="https://clearlinux.org" 17 | BUG_REPORT_URL="mailto:dev@lists.clearlinux.org" 18 | PRIVACY_POLICY_URL="http://www.intel.com/privacy" 19 | BUILD_ID=35440 -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-10.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:10.0 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '0' 6 | files: 7 | /etc/debian_version: | 8 | 10.0 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-10.1.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:10.1 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '1' 6 | files: 7 | /etc/debian_version: | 8 | 10.1 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-10.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:10.2 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '2' 6 | files: 7 | /etc/debian_version: | 8 | 10.2 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-10.3.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:10.3 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '3' 6 | files: 7 | /etc/debian_version: | 8 | 10.3 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-10.4.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:10.4 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '4' 6 | files: 7 | /etc/debian_version: | 8 | 10.4 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-11.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:11.2 2 | expected: 3 | distro: debian 4 | major: '11' 5 | minor: '2' 6 | files: 7 | /etc/debian_version: | 8 | 11.2 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="11" 13 | VERSION="11 (bullseye)" 14 | VERSION_CODENAME=bullseye 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.0 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '0' 6 | files: 7 | /etc/debian_version: | 8 | 8.0 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support/" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.1.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.1 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '1' 6 | files: 7 | /etc/debian_version: | 8 | 8.1 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support/" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.10.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.10 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '10' 6 | files: 7 | /etc/debian_version: | 8 | 8.10 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.11.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.11 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '11' 6 | files: 7 | /etc/debian_version: | 8 | 8.11 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.2 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '2' 6 | files: 7 | /etc/debian_version: | 8 | 8.2 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support/" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.3.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.3 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '3' 6 | files: 7 | /etc/debian_version: | 8 | 8.3 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.4.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.4 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '4' 6 | files: 7 | /etc/debian_version: | 8 | 8.4 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.5.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.5 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '5' 6 | files: 7 | /etc/debian_version: | 8 | 8.5 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.6.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.6 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '6' 6 | files: 7 | /etc/debian_version: | 8 | 8.6 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.7.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.7 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '7' 6 | files: 7 | /etc/debian_version: | 8 | 8.7 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.8.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.8 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '8' 6 | files: 7 | /etc/debian_version: | 8 | 8.8 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-8.9.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:8.9 2 | expected: 3 | distro: debian 4 | major: '8' 5 | minor: '9' 6 | files: 7 | /etc/debian_version: | 8 | 8.9 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="8" 13 | VERSION="8 (jessie)" 14 | ID=debian 15 | HOME_URL="http://www.debian.org/" 16 | SUPPORT_URL="http://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.0 2 | expected: 3 | distro: debian 4 | major: 9 5 | minor: '0' 6 | files: 7 | /etc/debian_version: | 8 | 9.0 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.1.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.1 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '1' 6 | files: 7 | /etc/debian_version: | 8 | 9.1 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.11.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.11 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '11' 6 | files: 7 | /etc/debian_version: | 8 | 9.11 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | VERSION_CODENAME=stretch 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.2 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '2' 6 | files: 7 | /etc/debian_version: | 8 | 9.2 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.3.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.3 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '3' 6 | files: 7 | /etc/debian_version: | 8 | 9.3 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.4.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.4 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '4' 6 | files: 7 | /etc/debian_version: | 8 | 9.4 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.5.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.5 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '5' 6 | files: 7 | /etc/debian_version: | 8 | 9.5 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.6.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.6 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '6' 6 | files: 7 | /etc/debian_version: | 8 | 9.6 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.7.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.7 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '7' 6 | files: 7 | /etc/debian_version: | 8 | 9.7 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.8.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.8 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '8' 6 | files: 7 | /etc/debian_version: | 8 | 9.8 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-9.9.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:9.9 2 | expected: 3 | distro: debian 4 | major: '9' 5 | minor: '9' 6 | files: 7 | /etc/debian_version: | 8 | 9.9 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | ID=debian 15 | HOME_URL="https://www.debian.org/" 16 | SUPPORT_URL="https://www.debian.org/support" 17 | BUG_REPORT_URL="https://bugs.debian.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-debian-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image debian:latest 2 | expected: 3 | distro: debian 4 | major: '10' 5 | minor: '4' 6 | files: 7 | /etc/debian_version: | 8 | 10.4 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-fedora-31.yaml: -------------------------------------------------------------------------------- 1 | source: docker image fedora:31 2 | expected: 3 | distro: fedora 4 | major: 31 5 | minor: 6 | files: 7 | /etc/fedora-release: | 8 | Fedora release 31 (Thirty One) 9 | /etc/os-release: | 10 | NAME=Fedora 11 | VERSION="31 (Container Image)" 12 | ID=fedora 13 | VERSION_ID=31 14 | VERSION_CODENAME="" 15 | PLATFORM_ID="platform:f31" 16 | PRETTY_NAME="Fedora 31 (Container Image)" 17 | ANSI_COLOR="0;34" 18 | LOGO=fedora-logo-icon 19 | CPE_NAME="cpe:/o:fedoraproject:fedora:31" 20 | HOME_URL="https://fedoraproject.org/" 21 | DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f31/system-administrators-guide/" 22 | SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" 23 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 24 | REDHAT_BUGZILLA_PRODUCT="Fedora" 25 | REDHAT_BUGZILLA_PRODUCT_VERSION=31 26 | REDHAT_SUPPORT_PRODUCT="Fedora" 27 | REDHAT_SUPPORT_PRODUCT_VERSION=31 28 | PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" 29 | VARIANT="Container Image" 30 | VARIANT_ID=container 31 | /etc/redhat-release: | 32 | Fedora release 31 (Thirty One) 33 | /etc/system-release: | 34 | Fedora release 31 (Thirty One) 35 | /etc/system-release-cpe: | 36 | cpe:/o:fedoraproject:fedora:31 37 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-fedora-32.yaml: -------------------------------------------------------------------------------- 1 | source: docker image fedora:32 2 | expected: 3 | distro: fedora 4 | major: 32 5 | minor: 6 | files: 7 | /etc/fedora-release: | 8 | Fedora release 32 (Thirty Two) 9 | /etc/os-release: | 10 | NAME=Fedora 11 | VERSION="32 (Container Image)" 12 | ID=fedora 13 | VERSION_ID=32 14 | VERSION_CODENAME="" 15 | PLATFORM_ID="platform:f32" 16 | PRETTY_NAME="Fedora 32 (Container Image)" 17 | ANSI_COLOR="0;34" 18 | LOGO=fedora-logo-icon 19 | CPE_NAME="cpe:/o:fedoraproject:fedora:32" 20 | HOME_URL="https://fedoraproject.org/" 21 | DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/" 22 | SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" 23 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 24 | REDHAT_BUGZILLA_PRODUCT="Fedora" 25 | REDHAT_BUGZILLA_PRODUCT_VERSION=32 26 | REDHAT_SUPPORT_PRODUCT="Fedora" 27 | REDHAT_SUPPORT_PRODUCT_VERSION=32 28 | PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" 29 | VARIANT="Container Image" 30 | VARIANT_ID=container 31 | /etc/redhat-release: | 32 | Fedora release 32 (Thirty Two) 33 | /etc/system-release: | 34 | Fedora release 32 (Thirty Two) 35 | /etc/system-release-cpe: | 36 | cpe:/o:fedoraproject:fedora:32 37 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-fedora-33.yaml: -------------------------------------------------------------------------------- 1 | source: docker image fedora:33 2 | expected: 3 | distro: fedora 4 | major: 33 5 | minor: 6 | files: 7 | /etc/fedora-release: | 8 | Fedora release 33 (Rawhide) 9 | /etc/os-release: | 10 | NAME=Fedora 11 | VERSION="33 (Container Image Prerelease)" 12 | ID=fedora 13 | VERSION_ID=33 14 | VERSION_CODENAME="" 15 | PLATFORM_ID="platform:f33" 16 | PRETTY_NAME="Fedora 33 (Container Image Prerelease)" 17 | ANSI_COLOR="0;38;2;60;110;180" 18 | LOGO=fedora-logo-icon 19 | CPE_NAME="cpe:/o:fedoraproject:fedora:33" 20 | HOME_URL="https://fedoraproject.org/" 21 | DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/" 22 | SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" 23 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 24 | REDHAT_BUGZILLA_PRODUCT="Fedora" 25 | REDHAT_BUGZILLA_PRODUCT_VERSION=rawhide 26 | REDHAT_SUPPORT_PRODUCT="Fedora" 27 | REDHAT_SUPPORT_PRODUCT_VERSION=rawhide 28 | PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" 29 | VARIANT="Container Image" 30 | VARIANT_ID=container 31 | /etc/redhat-release: | 32 | Fedora release 33 (Rawhide) 33 | /etc/system-release: | 34 | Fedora release 33 (Rawhide) 35 | /etc/system-release-cpe: | 36 | cpe:/o:fedoraproject:fedora:33 37 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-kalilinux_kali-rolling-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image kalilinux/kali-rolling:latest 2 | expected: 3 | distro: kali 4 | major: '2020' 5 | minor: '3' 6 | files: 7 | /etc/debian_version: | 8 | kali-rolling 9 | /etc/os-release: | 10 | PRETTY_NAME="Kali GNU/Linux Rolling" 11 | NAME="Kali GNU/Linux" 12 | ID=kali 13 | VERSION="2020.3" 14 | VERSION_ID="2020.3" 15 | VERSION_CODENAME="kali-rolling" 16 | ID_LIKE=debian 17 | ANSI_COLOR="1;31" 18 | HOME_URL="https://www.kali.org/" 19 | SUPPORT_URL="https://forums.kali.org/" 20 | BUG_REPORT_URL="https://bugs.kali.org/" 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.0 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '0' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.0 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.0" 12 | ID="ol" 13 | VERSION_ID="7.0" 14 | PRETTY_NAME="Oracle Linux Server 7.0" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:oracle_linux:7.0:GA:server" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.0 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | REDHAT_SUPPORT_PRODUCT_VERSION=7.0 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.0 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.0 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:oracle_linux:7.0:ga:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.1.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.1 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '1' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.1 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.1" 12 | ID="ol" 13 | VERSION_ID="7.1" 14 | PRETTY_NAME="Oracle Linux Server 7.1" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:linux:7:1" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.1 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | ORACLE_SUPPORT_PRODUCT_VERSION=7.1 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.1 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.1 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:linux:7:1 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.2 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '2' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.2 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.2" 12 | ID="ol" 13 | VERSION_ID="7.2" 14 | PRETTY_NAME="Oracle Linux Server 7.2" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:linux:7:2:server" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.2 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | ORACLE_SUPPORT_PRODUCT_VERSION=7.2 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.2 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.2 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:linux:7:2:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.3.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.3 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '3' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.3 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.3" 12 | ID="ol" 13 | VERSION_ID="7.3" 14 | PRETTY_NAME="Oracle Linux Server 7.3" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:linux:7:3:server" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.3 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | ORACLE_SUPPORT_PRODUCT_VERSION=7.3 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.3 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.3 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:linux:7:3:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.4.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.4 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '4' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.4 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.4" 12 | ID="ol" 13 | VERSION_ID="7.4" 14 | PRETTY_NAME="Oracle Linux Server 7.4" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:linux:7:4:server" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.4 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | ORACLE_SUPPORT_PRODUCT_VERSION=7.4 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.4 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.4 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:linux:7:4:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.5.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.5 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '5' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.5 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.5" 12 | ID="ol" 13 | VERSION_ID="7.5" 14 | PRETTY_NAME="Oracle Linux Server 7.5" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:oracle:linux:7:5:server" 17 | HOME_URL="https://linux.oracle.com/" 18 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 19 | 20 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 21 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.5 22 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 23 | ORACLE_SUPPORT_PRODUCT_VERSION=7.5 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.5 (Maipo) 26 | /etc/system-release: | 27 | Oracle Linux Server release 7.5 28 | /etc/system-release-cpe: | 29 | cpe:/o:oracle:linux:7:5:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.6.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.6 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '6' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.6 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.6" 12 | ID="ol" 13 | VARIANT="Server" 14 | VARIANT_ID="server" 15 | VERSION_ID="7.6" 16 | PRETTY_NAME="Oracle Linux Server 7.6" 17 | ANSI_COLOR="0;31" 18 | CPE_NAME="cpe:/o:oracle:linux:7:6:server" 19 | HOME_URL="https://linux.oracle.com/" 20 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 21 | 22 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 23 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.6 24 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 25 | ORACLE_SUPPORT_PRODUCT_VERSION=7.6 26 | /etc/redhat-release: | 27 | Red Hat Enterprise Linux Server release 7.6 (Maipo) 28 | /etc/system-release: | 29 | Oracle Linux Server release 7.6 30 | /etc/system-release-cpe: | 31 | cpe:/o:oracle:linux:7:6:server 32 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.7.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.7 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '7' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.7 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.7" 12 | ID="ol" 13 | ID_LIKE="fedora" 14 | VARIANT="Server" 15 | VARIANT_ID="server" 16 | VERSION_ID="7.7" 17 | PRETTY_NAME="Oracle Linux Server 7.7" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:oracle:linux:7:7:server" 20 | HOME_URL="https://linux.oracle.com/" 21 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 22 | 23 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 24 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.7 25 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 26 | ORACLE_SUPPORT_PRODUCT_VERSION=7.7 27 | /etc/redhat-release: | 28 | Red Hat Enterprise Linux Server release 7.7 (Maipo) 29 | /etc/system-release: | 30 | Oracle Linux Server release 7.7 31 | /etc/system-release-cpe: | 32 | cpe:/o:oracle:linux:7:7:server 33 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-7.8.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:7.8 2 | expected: 3 | distro: oracle 4 | major: '7' 5 | minor: '8' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 7.8 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="7.8" 12 | ID="ol" 13 | ID_LIKE="fedora" 14 | VARIANT="Server" 15 | VARIANT_ID="server" 16 | VERSION_ID="7.8" 17 | PRETTY_NAME="Oracle Linux Server 7.8" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:oracle:linux:7:8:server" 20 | HOME_URL="https://linux.oracle.com/" 21 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 22 | 23 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7" 24 | ORACLE_BUGZILLA_PRODUCT_VERSION=7.8 25 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 26 | ORACLE_SUPPORT_PRODUCT_VERSION=7.8 27 | /etc/redhat-release: | 28 | Red Hat Enterprise Linux Server release 7.8 (Maipo) 29 | /etc/system-release: | 30 | Oracle Linux Server release 7.8 31 | /etc/system-release-cpe: | 32 | cpe:/o:oracle:linux:7:8:server 33 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-8.0.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:8.0 2 | expected: 3 | distro: oracle 4 | major: '8' 5 | minor: '0' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 8.0 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="8.0" 12 | ID="ol" 13 | ID_LIKE="fedora" 14 | VARIANT="Server" 15 | VARIANT_ID="server" 16 | VERSION_ID="8.0" 17 | PLATFORM_ID="platform:el8" 18 | PRETTY_NAME="Oracle Linux Server 8.0" 19 | ANSI_COLOR="0;31" 20 | CPE_NAME="cpe:/o:oracle:linux:8:0:server" 21 | HOME_URL="https://linux.oracle.com/" 22 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 23 | 24 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8" 25 | ORACLE_BUGZILLA_PRODUCT_VERSION=8.0 26 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 27 | ORACLE_SUPPORT_PRODUCT_VERSION=8.0 28 | /etc/redhat-release: | 29 | Red Hat Enterprise Linux release 8.0 (Ootpa) 30 | /etc/system-release: | 31 | Oracle Linux Server release 8.0 32 | /etc/system-release-cpe: | 33 | cpe:/o:oracle:linux:8:0:server 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-8.1.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:8.1 2 | expected: 3 | distro: oracle 4 | major: '8' 5 | minor: '1' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 8.1 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="8.1" 12 | ID="ol" 13 | ID_LIKE="fedora" 14 | VARIANT="Server" 15 | VARIANT_ID="server" 16 | VERSION_ID="8.1" 17 | PLATFORM_ID="platform:el8" 18 | PRETTY_NAME="Oracle Linux Server 8.1" 19 | ANSI_COLOR="0;31" 20 | CPE_NAME="cpe:/o:oracle:linux:8:1:server" 21 | HOME_URL="https://linux.oracle.com/" 22 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 23 | 24 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8" 25 | ORACLE_BUGZILLA_PRODUCT_VERSION=8.1 26 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 27 | ORACLE_SUPPORT_PRODUCT_VERSION=8.1 28 | /etc/redhat-release: | 29 | Red Hat Enterprise Linux release 8.1 (Ootpa) 30 | /etc/system-release: | 31 | Oracle Linux Server release 8.1 32 | /etc/system-release-cpe: | 33 | cpe:/o:oracle:linux:8:1:server 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-oraclelinux-8.2.yaml: -------------------------------------------------------------------------------- 1 | source: docker image oraclelinux:8.2 2 | expected: 3 | distro: oracle 4 | major: '8' 5 | minor: '2' 6 | files: 7 | /etc/oracle-release: | 8 | Oracle Linux Server release 8.2 9 | /etc/os-release: | 10 | NAME="Oracle Linux Server" 11 | VERSION="8.2" 12 | ID="ol" 13 | ID_LIKE="fedora" 14 | VARIANT="Server" 15 | VARIANT_ID="server" 16 | VERSION_ID="8.2" 17 | PLATFORM_ID="platform:el8" 18 | PRETTY_NAME="Oracle Linux Server 8.2" 19 | ANSI_COLOR="0;31" 20 | CPE_NAME="cpe:/o:oracle:linux:8:2:server" 21 | HOME_URL="https://linux.oracle.com/" 22 | BUG_REPORT_URL="https://bugzilla.oracle.com/" 23 | 24 | ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8" 25 | ORACLE_BUGZILLA_PRODUCT_VERSION=8.2 26 | ORACLE_SUPPORT_PRODUCT="Oracle Linux" 27 | ORACLE_SUPPORT_PRODUCT_VERSION=8.2 28 | /etc/redhat-release: | 29 | Red Hat Enterprise Linux release 8.2 (Ootpa) 30 | /etc/system-release: | 31 | Oracle Linux Server release 8.2 32 | /etc/system-release-cpe: | 33 | cpe:/o:oracle:linux:8:2:server 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-12.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:12.04 2 | expected: 3 | distro: ubuntu 4 | major: '12' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | wheezy/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=12.04 12 | DISTRIB_CODENAME=precise 13 | DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS" 14 | /etc/os-release: | 15 | NAME="Ubuntu" 16 | VERSION="12.04.5 LTS, Precise Pangolin" 17 | ID=ubuntu 18 | ID_LIKE=debian 19 | PRETTY_NAME="Ubuntu precise (12.04.5 LTS)" 20 | VERSION_ID="12.04" 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-14.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:14.04 2 | expected: 3 | distro: ubuntu 4 | major: '14' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | jessie/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=14.04 12 | DISTRIB_CODENAME=trusty 13 | DISTRIB_DESCRIPTION="Ubuntu 14.04.6 LTS" 14 | /etc/os-release: | 15 | NAME="Ubuntu" 16 | VERSION="14.04.6 LTS, Trusty Tahr" 17 | ID=ubuntu 18 | ID_LIKE=debian 19 | PRETTY_NAME="Ubuntu 14.04.6 LTS" 20 | VERSION_ID="14.04" 21 | HOME_URL="http://www.ubuntu.com/" 22 | SUPPORT_URL="http://help.ubuntu.com/" 23 | BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 24 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-16.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:16.04 2 | expected: 3 | distro: ubuntu 4 | major: '16' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | stretch/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=16.04 12 | DISTRIB_CODENAME=xenial 13 | DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS" 14 | /etc/os-release: | 15 | NAME="Ubuntu" 16 | VERSION="16.04.6 LTS (Xenial Xerus)" 17 | ID=ubuntu 18 | ID_LIKE=debian 19 | PRETTY_NAME="Ubuntu 16.04.6 LTS" 20 | VERSION_ID="16.04" 21 | HOME_URL="http://www.ubuntu.com/" 22 | SUPPORT_URL="http://help.ubuntu.com/" 23 | BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 24 | VERSION_CODENAME=xenial 25 | UBUNTU_CODENAME=xenial 26 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-18.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:18.04 2 | expected: 3 | distro: ubuntu 4 | major: '18' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | buster/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=18.04 12 | DISTRIB_CODENAME=bionic 13 | DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" 14 | /etc/os-release: | 15 | NAME="Ubuntu" 16 | VERSION="18.04.4 LTS (Bionic Beaver)" 17 | ID=ubuntu 18 | ID_LIKE=debian 19 | PRETTY_NAME="Ubuntu 18.04.4 LTS" 20 | VERSION_ID="18.04" 21 | HOME_URL="https://www.ubuntu.com/" 22 | SUPPORT_URL="https://help.ubuntu.com/" 23 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 24 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 25 | VERSION_CODENAME=bionic 26 | UBUNTU_CODENAME=bionic 27 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-20.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:20.04 2 | expected: 3 | distro: ubuntu 4 | major: '20' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | bullseye/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=20.04 12 | DISTRIB_CODENAME=focal 13 | DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS" 14 | /etc/os-release: | 15 | NAME="Ubuntu" 16 | VERSION="20.04 LTS (Focal Fossa)" 17 | ID=ubuntu 18 | ID_LIKE=debian 19 | PRETTY_NAME="Ubuntu 20.04 LTS" 20 | VERSION_ID="20.04" 21 | HOME_URL="https://www.ubuntu.com/" 22 | SUPPORT_URL="https://help.ubuntu.com/" 23 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 24 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 25 | VERSION_CODENAME=focal 26 | UBUNTU_CODENAME=focal 27 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-22.04.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:22.04 2 | expected: 3 | distro: ubuntu 4 | major: '22' 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | bookworm/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=22.04 12 | DISTRIB_CODENAME=jammy 13 | DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS" 14 | /etc/os-release: | 15 | PRETTY_NAME="Ubuntu 22.04 LTS" 16 | NAME="Ubuntu" 17 | VERSION_ID="22.04" 18 | VERSION="22.04 LTS (Jammy Jellyfish)" 19 | VERSION_CODENAME=jammy 20 | ID=ubuntu 21 | ID_LIKE=debian 22 | HOME_URL="https://www.ubuntu.com/" 23 | SUPPORT_URL="https://help.ubuntu.com/" 24 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 25 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 26 | UBUNTU_CODENAME=jammy 27 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/docker-image-ubuntu-latest.yaml: -------------------------------------------------------------------------------- 1 | source: docker image ubuntu:latest 2 | expected: 3 | distro: ubuntu 4 | major: 22 5 | minor: '04' 6 | files: 7 | /etc/debian_version: | 8 | bookworm/sid 9 | /etc/lsb-release: | 10 | DISTRIB_ID=Ubuntu 11 | DISTRIB_RELEASE=22.04 12 | DISTRIB_CODENAME=jammy 13 | DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS" 14 | /etc/os-release: | 15 | PRETTY_NAME="Ubuntu 22.04 LTS" 16 | NAME="Ubuntu" 17 | VERSION_ID="22.04" 18 | VERSION="22.04 LTS (Jammy Jellyfish)" 19 | VERSION_CODENAME=jammy 20 | ID=ubuntu 21 | ID_LIKE=debian 22 | HOME_URL="https://www.ubuntu.com/" 23 | SUPPORT_URL="https://help.ubuntu.com/" 24 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 25 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 26 | UBUNTU_CODENAME=jammy 27 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-archlinux-latest.yaml: -------------------------------------------------------------------------------- 1 | # refrence https://github.com/GoogleCloudPlatform/compute-archlinux-image-builder 2 | 3 | source: gcp image archlinux:latest 4 | expected: 5 | distro: arch 6 | major: 7 | minor: 8 | files: 9 | /etc/os-release: | 10 | NAME="Arch Linux" 11 | PRETTY_NAME="Arch Linux" 12 | ID=arch 13 | BUILD_ID=rolling 14 | ANSI_COLOR="38;2;23;147;209" 15 | HOME_URL="https://www.archlinux.org/" 16 | DOCUMENTATION_URL="https://wiki.archlinux.org/" 17 | SUPPORT_URL="https://bbs.archlinux.org/" 18 | BUG_REPORT_URL="https://bugs.archlinux.org/" 19 | LOGO=archlinux 20 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-centos-6-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'centos-6-v20200714' 2 | expected: 3 | distro: centos 4 | major: 6 5 | minor: 10 6 | files: 7 | /etc/centos-release: | 8 | CentOS release 6.10 (Final) 9 | /etc/redhat-release: | 10 | CentOS release 6.10 (Final) 11 | /etc/system-release: | 12 | CentOS release 6.10 (Final) 13 | /etc/system-release-cpe: | 14 | cpe:/o:centos:linux:6:GA 15 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-centos-7-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'centos-7-v20200714' 2 | expected: 3 | distro: centos 4 | major: 7 5 | minor: 8 6 | files: 7 | /etc/centos-release: | 8 | CentOS Linux release 7.8.2003 (Core) 9 | /etc/centos-release-upstream: | 10 | Derived from Red Hat Enterprise Linux 7.8 (Source) 11 | /etc/os-release: | 12 | NAME="CentOS Linux" 13 | VERSION="7 (Core)" 14 | ID="centos" 15 | ID_LIKE="rhel fedora" 16 | VERSION_ID="7" 17 | PRETTY_NAME="CentOS Linux 7 (Core)" 18 | ANSI_COLOR="0;31" 19 | CPE_NAME="cpe:/o:centos:centos:7" 20 | HOME_URL="https://www.centos.org/" 21 | BUG_REPORT_URL="https://bugs.centos.org/" 22 | CENTOS_MANTISBT_PROJECT="CentOS-7" 23 | CENTOS_MANTISBT_PROJECT_VERSION="7" 24 | REDHAT_SUPPORT_PRODUCT="centos" 25 | REDHAT_SUPPORT_PRODUCT_VERSION="7" 26 | /etc/redhat-release: | 27 | CentOS Linux release 7.8.2003 (Core) 28 | /etc/system-release: | 29 | CentOS Linux release 7.8.2003 (Core) 30 | /etc/system-release-cpe: | 31 | cpe:/o:centos:centos:7 32 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-debian-10-buster-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'debian-10-buster-v20200714' 2 | expected: 3 | distro: debian 4 | major: 10 5 | minor: 4 6 | files: 7 | /etc/debian_version: | 8 | 10.4 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 10 (buster)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="10" 13 | VERSION="10 (buster)" 14 | VERSION_CODENAME=buster 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-debian-11-bullseye-v20211209.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'debian-10-buster-v20200714' 2 | expected: 3 | distro: debian 4 | major: 11 5 | minor: 1 6 | files: 7 | /etc/debian_version: | 8 | 11.1 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="11" 13 | VERSION="11 (bullseye)" 14 | VERSION_CODENAME=bullseye 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-debian-9-stretch-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'debian-9-stretch-v20200714' 2 | expected: 3 | distro: debian 4 | major: 9 5 | minor: 12 6 | files: 7 | /etc/debian_version: | 8 | 9.12 9 | /etc/os-release: | 10 | PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 11 | NAME="Debian GNU/Linux" 12 | VERSION_ID="9" 13 | VERSION="9 (stretch)" 14 | VERSION_CODENAME=stretch 15 | ID=debian 16 | HOME_URL="https://www.debian.org/" 17 | SUPPORT_URL="https://www.debian.org/support" 18 | BUG_REPORT_URL="https://bugs.debian.org/" 19 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-opensuse-leap-15-1-v20190618.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'opensuse-leap-15-1-v20190618' 2 | expected: 3 | distro: opensuse 4 | major: 15 5 | minor: 1 6 | files: 7 | /etc/os-release: | 8 | NAME="openSUSE Leap" 9 | VERSION="15.1 " 10 | ID="opensuse-leap" 11 | ID_LIKE="suse opensuse" 12 | VERSION_ID="15.1" 13 | PRETTY_NAME="openSUSE Leap 15.1" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:opensuse:leap:15.1" 16 | BUG_REPORT_URL="https://bugs.opensuse.org" 17 | HOME_URL="https://www.opensuse.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-opensuse-leap-15-2-v20200702.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'opensuse-leap-15-2-v20200702' 2 | expected: 3 | distro: opensuse 4 | major: 15 5 | minor: 2 6 | files: 7 | /etc/os-release: | 8 | NAME="openSUSE Leap" 9 | VERSION="15.2" 10 | ID="opensuse-leap" 11 | ID_LIKE="suse opensuse" 12 | VERSION_ID="15.2" 13 | PRETTY_NAME="openSUSE Leap 15.2" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:opensuse:leap:15.2" 16 | BUG_REPORT_URL="https://bugs.opensuse.org" 17 | HOME_URL="https://www.opensuse.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-opensuse-leap-15-v20181106.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'opensuse-leap-15-v20181106' 2 | expected: 3 | distro: opensuse 4 | major: 15 5 | minor: '0' 6 | files: 7 | /etc/os-release: | 8 | NAME="openSUSE Leap" 9 | VERSION="15.0" 10 | ID="opensuse-leap" 11 | ID_LIKE="suse opensuse" 12 | VERSION_ID="15.0" 13 | PRETTY_NAME="openSUSE Leap 15.0" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:opensuse:leap:15.0" 16 | BUG_REPORT_URL="https://bugs.opensuse.org" 17 | HOME_URL="https://www.opensuse.org/" 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-6-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-6-v20200714' 2 | expected: 3 | distro: rhel 4 | major: 6 5 | minor: 10 6 | files: 7 | /etc/redhat-release: | 8 | Red Hat Enterprise Linux Server release 6.10 (Santiago) 9 | /etc/system-release: | 10 | Red Hat Enterprise Linux Server release 6.10 (Santiago) 11 | /etc/system-release-cpe: | 12 | cpe:/o:redhat:enterprise_linux:6server:ga:server 13 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-7-4-sap-v20200309.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-7-4-sap-v20200309' 2 | expected: 3 | distro: rhel 4 | major: 7 5 | minor: 4 6 | files: 7 | /etc/os-release: | 8 | NAME="Red Hat Enterprise Linux Server" 9 | VERSION="7.4 (Maipo)" 10 | ID="rhel" 11 | ID_LIKE="fedora" 12 | VARIANT="Server" 13 | VARIANT_ID="server" 14 | VERSION_ID="7.4" 15 | PRETTY_NAME="Red Hat Enterprise Linux Server 7.4 (Maipo)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:redhat:enterprise_linux:7.4:GA:server" 18 | HOME_URL="https://www.redhat.com/" 19 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 20 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 21 | REDHAT_BUGZILLA_PRODUCT_VERSION=7.4 22 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 23 | REDHAT_SUPPORT_PRODUCT_VERSION="7.4" 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.4 (Maipo) 26 | /etc/system-release: | 27 | Red Hat Enterprise Linux Server release 7.4 (Maipo) 28 | /etc/system-release-cpe: | 29 | cpe:/o:redhat:enterprise_linux:7.4:ga:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-7-6-sap-v20200618.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-7-6-sap-v20200618' 2 | expected: 3 | distro: rhel 4 | major: 7 5 | minor: 6 6 | files: 7 | /etc/os-release: | 8 | NAME="Red Hat Enterprise Linux Server" 9 | VERSION="7.6 (Maipo)" 10 | ID="rhel" 11 | ID_LIKE="fedora" 12 | VARIANT="Server" 13 | VARIANT_ID="server" 14 | VERSION_ID="7.6" 15 | PRETTY_NAME="Red Hat Enterprise Linux Server 7.6 (Maipo)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:redhat:enterprise_linux:7.6:GA:server" 18 | HOME_URL="https://www.redhat.com/" 19 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 20 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 21 | REDHAT_BUGZILLA_PRODUCT_VERSION=7.6 22 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 23 | REDHAT_SUPPORT_PRODUCT_VERSION="7.6" 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.6 (Maipo) 26 | /etc/system-release: | 27 | Red Hat Enterprise Linux Server release 7.6 (Maipo) 28 | /etc/system-release-cpe: | 29 | cpe:/o:redhat:enterprise_linux:7.6:ga:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-7-7-sap-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-7-7-sap-v20200714' 2 | expected: 3 | distro: rhel 4 | major: 7 5 | minor: 7 6 | files: 7 | /etc/os-release: | 8 | NAME="Red Hat Enterprise Linux Server" 9 | VERSION="7.7 (Maipo)" 10 | ID="rhel" 11 | ID_LIKE="fedora" 12 | VARIANT="Server" 13 | VARIANT_ID="server" 14 | VERSION_ID="7.7" 15 | PRETTY_NAME="Red Hat Enterprise Linux Server 7.7 (Maipo)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:redhat:enterprise_linux:7.7:GA:server" 18 | HOME_URL="https://www.redhat.com/" 19 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 20 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 21 | REDHAT_BUGZILLA_PRODUCT_VERSION=7.7 22 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 23 | REDHAT_SUPPORT_PRODUCT_VERSION="7.7" 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.7 (Maipo) 26 | /etc/system-release: | 27 | Red Hat Enterprise Linux Server release 7.7 (Maipo) 28 | /etc/system-release-cpe: | 29 | cpe:/o:redhat:enterprise_linux:7.7:ga:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-7-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-7-v20200714' 2 | expected: 3 | distro: rhel 4 | major: 7 5 | minor: 8 6 | files: 7 | /etc/os-release: | 8 | NAME="Red Hat Enterprise Linux Server" 9 | VERSION="7.8 (Maipo)" 10 | ID="rhel" 11 | ID_LIKE="fedora" 12 | VARIANT="Server" 13 | VARIANT_ID="server" 14 | VERSION_ID="7.8" 15 | PRETTY_NAME="Red Hat Enterprise Linux Server 7.8 (Maipo)" 16 | ANSI_COLOR="0;31" 17 | CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server" 18 | HOME_URL="https://www.redhat.com/" 19 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 20 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 21 | REDHAT_BUGZILLA_PRODUCT_VERSION=7.8 22 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 23 | REDHAT_SUPPORT_PRODUCT_VERSION="7.8" 24 | /etc/redhat-release: | 25 | Red Hat Enterprise Linux Server release 7.8 (Maipo) 26 | /etc/system-release: | 27 | Red Hat Enterprise Linux Server release 7.8 (Maipo) 28 | /etc/system-release-cpe: | 29 | cpe:/o:redhat:enterprise_linux:7.8:ga:server 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-8-v20200714.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-8-v20200714' 2 | expected: 3 | distro: rhel 4 | major: 8 5 | minor: 2 6 | files: 7 | /etc/os-release: | 8 | NAME="Red Hat Enterprise Linux" 9 | VERSION="8.2 (Ootpa)" 10 | ID="rhel" 11 | ID_LIKE="fedora" 12 | VERSION_ID="8.2" 13 | PLATFORM_ID="platform:el8" 14 | PRETTY_NAME="Red Hat Enterprise Linux 8.2 (Ootpa)" 15 | ANSI_COLOR="0;31" 16 | CPE_NAME="cpe:/o:redhat:enterprise_linux:8.2:GA" 17 | HOME_URL="https://www.redhat.com/" 18 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 19 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" 20 | REDHAT_BUGZILLA_PRODUCT_VERSION=8.2 21 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 22 | REDHAT_SUPPORT_PRODUCT_VERSION="8.2" 23 | /etc/redhat-release: | 24 | Red Hat Enterprise Linux release 8.2 (Ootpa) 25 | /etc/system-release: | 26 | Red Hat Enterprise Linux release 8.2 (Ootpa) 27 | /etc/system-release-cpe: | 28 | cpe:/o:redhat:enterprise_linux:8.2:ga 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rhel-9-v20220920.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rhel-9-v20220920' 2 | expected: 3 | distro: rhel 4 | major: "9" 5 | minor: "0" 6 | 7 | files: 8 | /etc/os-release: | 9 | NAME="Red Hat Enterprise Linux" 10 | VERSION="9.0 (Plow)" 11 | ID="rhel" 12 | ID_LIKE="fedora" 13 | VERSION_ID="9.0" 14 | PLATFORM_ID="platform:el9" 15 | PRETTY_NAME="Red Hat Enterprise Linux 9.0 (Plow)" 16 | ANSI_COLOR="0;31" 17 | LOGO="fedora-logo-icon" 18 | CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos" 19 | HOME_URL="https://www.redhat.com/" 20 | DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/9/" 21 | BUG_REPORT_URL="https://bugzilla.redhat.com/" 22 | 23 | REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9" 24 | REDHAT_BUGZILLA_PRODUCT_VERSION=9.0 25 | REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 26 | REDHAT_SUPPORT_PRODUCT_VERSION="9.0" 27 | /etc/redhat-release: | 28 | Red Hat Enterprise Linux release 9.0 (Plow) 29 | /etc/system-release: | 30 | Red Hat Enterprise Linux release 9.0 (Plow) 31 | /etc/system-release-cpe: | 32 | cpe:/o:redhat:enterprise_linux:9::baseos 33 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-rocky-8-v20210817.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'rocky-8-v20210817' 2 | expected: 3 | distro: rocky 4 | major: 8 5 | minor: 4 6 | files: 7 | /etc/os-release: | 8 | NAME="Rocky Linux" 9 | VERSION="8.4 (Green Obsidian)" 10 | ID="rocky" 11 | ID_LIKE="rhel fedora" 12 | VERSION_ID="8.4" 13 | PLATFORM_ID="platform:el8" 14 | PRETTY_NAME="Rocky Linux 8.4 (Green Obsidian)" 15 | ANSI_COLOR="0;32" 16 | CPE_NAME="cpe:/o:rocky:rocky:8.4:GA" 17 | HOME_URL="https://rockylinux.org/" 18 | BUG_REPORT_URL="https://bugs.rockylinux.org/" 19 | ROCKY_SUPPORT_PRODUCT="Rocky Linux" 20 | ROCKY_SUPPORT_PRODUCT_VERSION="8" 21 | /etc/redhat-release: | 22 | Rocky Linux release 8.4 (Green Obsidian) 23 | /etc/rocky-release: | 24 | Rocky Linux release 8.4 (Green Obsidian) 25 | /etc/system-release: | 26 | Rocky Linux release 8.4 (Green Obsidian) 27 | /etc/system-release-cpe: | 28 | cpe:/o:rocky:rocky:8.4:GA 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-12-sp2-sap-v20200610.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-12-sp2-sap-v20200610' 2 | expected: 3 | distro: sles-sap 4 | major: 12 5 | minor: 2 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES_SAP" 9 | VERSION="12-SP2" 10 | VERSION_ID="12.2" 11 | PRETTY_NAME="SUSE Linux Enterprise Server for SAP Applications 12 SP2" 12 | ID="sles_sap" 13 | ANSI_COLOR="0;32" 14 | CPE_NAME="cpe:/o:suse:sles_sap:12:sp2" 15 | /etc/SuSE-release: | 16 | SUSE Linux Enterprise Server 12 (x86_64) 17 | VERSION = 12 18 | PATCHLEVEL = 2 19 | # This file is deprecated and will be removed in a future service pack or release. 20 | # Please check /etc/os-release for details about this release. 21 | /etc/products.d/SLES_SAP.prod: 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-12-sp3-sap-v20200610.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-12-sp3-sap-v20200610' 2 | expected: 3 | distro: sles-sap 4 | major: 12 5 | minor: 3 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="12-SP3" 10 | VERSION_ID="12.3" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 12 SP3" 12 | ID="sles" 13 | ANSI_COLOR="0;32" 14 | CPE_NAME="cpe:/o:suse:sles_sap:12:sp3" 15 | /etc/SuSE-release: | 16 | SUSE Linux Enterprise Server 12 (x86_64) 17 | VERSION = 12 18 | PATCHLEVEL = 3 19 | # This file is deprecated and will be removed in a future service pack or release. 20 | # Please check /etc/os-release for details about this release. 21 | /etc/products.d/SLES_SAP.prod: 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-12-sp4-sap-v20200610.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-12-sp4-sap-v20200610' 2 | expected: 3 | distro: sles-sap 4 | major: 12 5 | minor: 4 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="12-SP4" 10 | VERSION_ID="12.4" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 12 SP4" 12 | ID="sles" 13 | ANSI_COLOR="0;32" 14 | CPE_NAME="cpe:/o:suse:sles_sap:12:sp4" 15 | /etc/SuSE-release: | 16 | SUSE Linux Enterprise Server 12 (x86_64) 17 | VERSION = 12 18 | PATCHLEVEL = 4 19 | # This file is deprecated and will be removed in a future service pack or release. 20 | # Please check /etc/os-release for details about this release. 21 | /etc/products.d/SLES_SAP.prod: 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-12-sp5-sap-v20200610.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-12-sp5-sap-v20200610' 2 | expected: 3 | distro: sles-sap 4 | major: 12 5 | minor: 5 6 | files: 7 | /etc/SuSE-release: | 8 | SUSE Linux Enterprise Server 12 (x86_64) 9 | VERSION = 12 10 | PATCHLEVEL = 5 11 | # This file is deprecated and will be removed in a future service pack or release. 12 | # Please check /etc/os-release for details about this release. 13 | /etc/os-release: | 14 | NAME="SLES" 15 | VERSION="12-SP5" 16 | VERSION_ID="12.5" 17 | PRETTY_NAME="SUSE Linux Enterprise Server 12 SP5" 18 | ID="sles" 19 | ANSI_COLOR="0;32" 20 | CPE_NAME="cpe:/o:suse:sles_sap:12:sp5" 21 | /etc/products.d/SLES_SAP.prod: 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-12-sp5-v20200610.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-12-sp5-v20200610' 2 | expected: 3 | distro: sles 4 | major: 12 5 | minor: 5 6 | files: 7 | /etc/SuSE-release: | 8 | SUSE Linux Enterprise Server 12 (x86_64) 9 | VERSION = 12 10 | PATCHLEVEL = 5 11 | # This file is deprecated and will be removed in a future service pack or release. 12 | # Please check /etc/os-release for details about this release. 13 | /etc/os-release: | 14 | NAME="SLES" 15 | VERSION="12-SP5" 16 | VERSION_ID="12.5" 17 | PRETTY_NAME="SUSE Linux Enterprise Server 12 SP5" 18 | ID="sles" 19 | ANSI_COLOR="0;32" 20 | CPE_NAME="cpe:/o:suse:sles:12:sp5" 21 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-15-sap-v20200701.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-15-sap-v20200701' 2 | expected: 3 | distro: sles-sap 4 | major: 15 5 | minor: 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="15" 10 | VERSION_ID="15" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 15" 12 | ID="sles" 13 | ID_LIKE="suse" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:suse:sles:15" 16 | /etc/products.d/SLES_SAP.prod: 17 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-15-sp1-sap-v20200701.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-15-sp1-sap-v20200701' 2 | expected: 3 | distro: sles-sap 4 | major: 15 5 | minor: 1 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="15-SP1" 10 | VERSION_ID="15.1" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 15 SP1" 12 | ID="sles" 13 | ID_LIKE="suse" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:suse:sles:15:sp1" 16 | /etc/products.d/SLES_SAP.prod: 17 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-15-sp2-sap-v20200721.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-15-sp2-sap-v20200721' 2 | expected: 3 | distro: sles-sap 4 | major: 15 5 | minor: 2 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="15-SP2" 10 | VERSION_ID="15.2" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 15 SP2" 12 | ID="sles" 13 | ID_LIKE="suse" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:suse:sles:15:sp2" 16 | /etc/products.d/SLES_SAP.prod: 17 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-15-sp2-v20200721.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-15-sp2-v20200721' 2 | expected: 3 | distro: sles 4 | major: 15 5 | minor: 2 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="15-SP2" 10 | VERSION_ID="15.2" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 15 SP2" 12 | ID="sles" 13 | ID_LIKE="suse" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:suse:sles:15:sp2" 16 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-sles-15-sp3-sap-v20211113.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'sles-15-sp3-sap-v20211113' 2 | expected: 3 | distro: sles-sap 4 | major: 15 5 | minor: 3 6 | files: 7 | /etc/os-release: | 8 | NAME="SLES" 9 | VERSION="15-SP3" 10 | VERSION_ID="15.3" 11 | PRETTY_NAME="SUSE Linux Enterprise Server 15 SP3" 12 | ID="sles" 13 | ID_LIKE="suse" 14 | ANSI_COLOR="0;32" 15 | CPE_NAME="cpe:/o:suse:sles:15:sp3" 16 | VARIANT_ID="sles-sap" 17 | /etc/products.d/SLES_SAP.prod: 18 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-1604-xenial-v20200722.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-1604-xenial-v20200722' 2 | expected: 3 | distro: ubuntu 4 | major: 16 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | stretch/sid 9 | /etc/ec2_version: | 10 | Ubuntu 16.04.6 LTS (Xenial Xerus) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=16.04 14 | DISTRIB_CODENAME=xenial 15 | DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="16.04.6 LTS (Xenial Xerus)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 16.04.6 LTS" 22 | VERSION_ID="16.04" 23 | HOME_URL="http://www.ubuntu.com/" 24 | SUPPORT_URL="http://help.ubuntu.com/" 25 | BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 26 | VERSION_CODENAME=xenial 27 | UBUNTU_CODENAME=xenial 28 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-1804-bionic-v20200716.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-1804-bionic-v20200716' 2 | expected: 3 | distro: ubuntu 4 | major: 18 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | buster/sid 9 | /etc/ec2_version: | 10 | Ubuntu 18.04.4 LTS (Bionic Beaver) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=18.04 14 | DISTRIB_CODENAME=bionic 15 | DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="18.04.4 LTS (Bionic Beaver)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 18.04.4 LTS" 22 | VERSION_ID="18.04" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=bionic 28 | UBUNTU_CODENAME=bionic 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-1910-eoan-v20200716a.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-1910-eoan-v20200716a' 2 | expected: 3 | distro: ubuntu 4 | major: 19 5 | minor: 10 6 | files: 7 | /etc/debian_version: | 8 | buster/sid 9 | /etc/ec2_version: | 10 | Ubuntu 19.10 (Eoan Ermine) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=19.10 14 | DISTRIB_CODENAME=eoan 15 | DISTRIB_DESCRIPTION="Ubuntu 19.10" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="19.10 (Eoan Ermine)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 19.10" 22 | VERSION_ID="19.10" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=eoan 28 | UBUNTU_CODENAME=eoan 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-2004-focal-v20200720.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-2004-focal-v20200720' 2 | expected: 3 | distro: ubuntu 4 | major: 20 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | bullseye/sid 9 | /etc/ec2_version: | 10 | Ubuntu 20.04 LTS (Focal Fossa) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=20.04 14 | DISTRIB_CODENAME=focal 15 | DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="20.04 LTS (Focal Fossa)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 20.04 LTS" 22 | VERSION_ID="20.04" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=focal 28 | UBUNTU_CODENAME=focal 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-2204-jammy-v20220622.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-2204-jammy-v20220622' 2 | expected: 3 | distro: ubuntu 4 | major: 22 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | bookworm/sid 9 | /etc/ec2_version: | 10 | Ubuntu 22.04 LTS (Jammy Jellyfish) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=22.04 14 | DISTRIB_CODENAME=jammy 15 | DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS" 16 | /etc/os-release: | 17 | PRETTY_NAME="Ubuntu 22.04 LTS" 18 | NAME="Ubuntu" 19 | VERSION_ID="22.04" 20 | VERSION="22.04 LTS (Jammy Jellyfish)" 21 | VERSION_CODENAME=jammy 22 | ID=ubuntu 23 | ID_LIKE=debian 24 | HOME_URL="https://www.ubuntu.com/" 25 | SUPPORT_URL="https://help.ubuntu.com/" 26 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 27 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 28 | UBUNTU_CODENAME=jammy 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-minimal-1604-xenial-v20200721.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-minimal-1604-xenial-v20200721' 2 | expected: 3 | distro: ubuntu 4 | major: 16 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | stretch/sid 9 | /etc/ec2_version: | 10 | Ubuntu 16.04.6 LTS (Xenial Xerus) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=16.04 14 | DISTRIB_CODENAME=xenial 15 | DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="16.04.6 LTS (Xenial Xerus)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 16.04.6 LTS" 22 | VERSION_ID="16.04" 23 | HOME_URL="http://www.ubuntu.com/" 24 | SUPPORT_URL="http://help.ubuntu.com/" 25 | BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 26 | VERSION_CODENAME=xenial 27 | UBUNTU_CODENAME=xenial 28 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-minimal-1804-bionic-v20200720.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-minimal-1804-bionic-v20200720' 2 | expected: 3 | distro: ubuntu 4 | major: 18 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | buster/sid 9 | /etc/ec2_version: | 10 | Ubuntu 18.04.4 LTS (Bionic Beaver) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=18.04 14 | DISTRIB_CODENAME=bionic 15 | DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="18.04.4 LTS (Bionic Beaver)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 18.04.4 LTS" 22 | VERSION_ID="18.04" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=bionic 28 | UBUNTU_CODENAME=bionic 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-minimal-1910-eoan-v20200715.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-minimal-1910-eoan-v20200715' 2 | expected: 3 | distro: ubuntu 4 | major: 19 5 | minor: 10 6 | files: 7 | /etc/debian_version: | 8 | buster/sid 9 | /etc/ec2_version: | 10 | Ubuntu 19.10 (Eoan Ermine) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=19.10 14 | DISTRIB_CODENAME=eoan 15 | DISTRIB_DESCRIPTION="Ubuntu 19.10" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="19.10 (Eoan Ermine)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 19.10" 22 | VERSION_ID="19.10" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=eoan 28 | UBUNTU_CODENAME=eoan 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-minimal-2004-focal-v20200702.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-minimal-2004-focal-v20200702' 2 | expected: 3 | distro: ubuntu 4 | major: 20 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | bullseye/sid 9 | /etc/ec2_version: | 10 | Ubuntu 20.04 LTS (Focal Fossa) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=20.04 14 | DISTRIB_CODENAME=focal 15 | DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="20.04 LTS (Focal Fossa)" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 20.04 LTS" 22 | VERSION_ID="20.04" 23 | HOME_URL="https://www.ubuntu.com/" 24 | SUPPORT_URL="https://help.ubuntu.com/" 25 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 26 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 27 | VERSION_CODENAME=focal 28 | UBUNTU_CODENAME=focal 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu-pro-2204-jammy-v20220622.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu-pro-2204-jammy-v20220622' 2 | expected: 3 | distro: ubuntu 4 | major: 22 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | bookworm/sid 9 | /etc/ec2_version: | 10 | Ubuntu 22.04 LTS (Jammy Jellyfish) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=22.04 14 | DISTRIB_CODENAME=jammy 15 | DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS" 16 | /etc/os-release: | 17 | PRETTY_NAME="Ubuntu 22.04 LTS" 18 | NAME="Ubuntu" 19 | VERSION_ID="22.04" 20 | VERSION="22.04 LTS (Jammy Jellyfish)" 21 | VERSION_CODENAME=jammy 22 | ID=ubuntu 23 | ID_LIKE=debian 24 | HOME_URL="https://www.ubuntu.com/" 25 | SUPPORT_URL="https://help.ubuntu.com/" 26 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 27 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 28 | UBUNTU_CODENAME=jammy 29 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test-data/images/gcp-image-ubuntu1404.yaml: -------------------------------------------------------------------------------- 1 | source: GCP image 'ubuntu1404' 2 | expected: 3 | distro: ubuntu 4 | major: 14 5 | minor: "04" 6 | files: 7 | /etc/debian_version: | 8 | jessie/sid 9 | /etc/ec2_version: | 10 | Ubuntu 14.04 LTS (Trusty Tahr) 11 | /etc/lsb-release: | 12 | DISTRIB_ID=Ubuntu 13 | DISTRIB_RELEASE=14.04 14 | DISTRIB_CODENAME=trusty 15 | DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS" 16 | /etc/os-release: | 17 | NAME="Ubuntu" 18 | VERSION="14.04.5 LTS, Trusty Tahr" 19 | ID=ubuntu 20 | ID_LIKE=debian 21 | PRETTY_NAME="Ubuntu 14.04.5 LTS" 22 | VERSION_ID="14.04" 23 | HOME_URL="http://www.ubuntu.com/" 24 | SUPPORT_URL="http://help.ubuntu.com/" 25 | BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 26 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tests/test_boot_loader_inspection.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import os 17 | 18 | from boot_inspect import inspection 19 | import pytest 20 | import yaml 21 | 22 | 23 | @pytest.mark.parametrize("fpath", [ 24 | os.path.join('tests/test-data/gdisk', f) for f in 25 | os.listdir('tests/test-data/gdisk') 26 | ]) 27 | def test_yaml_encoded_cases(fpath): 28 | with open(fpath) as stream: 29 | loaded_yaml = yaml.safe_load(stream) 30 | assert 'output' in loaded_yaml 31 | assert 'expected' in loaded_yaml 32 | output = loaded_yaml['output'] 33 | expected = loaded_yaml['expected'] 34 | 35 | bios_bootable = inspection._inspect_for_hybrid_mbr(output) 36 | assert expected == bios_bootable 37 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/inspection/tools/dump-host-info.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Emits metadata files in the format used in the Linux file 17 | # detection tests. See tests/test-data for examples. 18 | 19 | set -euf -o pipefail 20 | 21 | hostname 22 | for fname in /etc/*; do 23 | if [[ $fname =~ release || $fname =~ version ]]; then 24 | echo " $fname" 25 | while read -r p; do 26 | echo " $p" 27 | done <"$fname" 28 | fi 29 | done 30 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/run-translate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | set -euf -o pipefail 17 | 18 | cd "$(dirname "${BASH_SOURCE[0]}")" 19 | pip3 install py/linux_common py/suse_import 20 | 21 | translate-suse 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/on_demand/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/on_demand/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/pyproject.toml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [tool.gcp-guest-pytest] 16 | envlist = [ 17 | "3.5", 18 | "3.6", 19 | "3.7", 20 | "3.8" 21 | ] 22 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from setuptools import setup 17 | 18 | setup( 19 | name="suse_import", 20 | version="0.1", 21 | packages=["on_demand"], 22 | install_requires=[ 23 | "linux_common", 24 | ], 25 | py_modules=["translate"], 26 | package_data={ 27 | "on_demand": ["*.sh"], 28 | }, 29 | entry_points={ 30 | "console_scripts": [ 31 | "translate-suse = translate:main", 32 | ], 33 | }) 34 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/tests/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/etc/hosts: -------------------------------------------------------------------------------- 1 | 127.0.0.1 localhost 2 | ::1 localhost ip6-localhost ip6-loopback 3 | ff02::1 ip6-allnodes 4 | ff02::2 ip6-allrouters 5 | 6 | 5.6.7.8 inst-translator-import-image-946jb.c.test.internal inst-translator-import-image-946jb # Added by Google 7 | 1.2.3.4 metadata.google.internal # Added by Google 8 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/etc/resolv.conf: -------------------------------------------------------------------------------- 1 | domain c.test.internal 2 | search c.test.internal. google.internal. 3 | nameserver 1.2.3.4 4 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/cloud_product.txt: -------------------------------------------------------------------------------- 1 | sle-module-public-cloud 2 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/post_convert_packages.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/post_convert_packages.txt -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/pre_convert_py/dep.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/pre_convert_py/dep.py -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/pre_convert_rpm/dep.rpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/pre_convert_rpm/dep.rpm -------------------------------------------------------------------------------- /daisy_workflows/image_import/suse/suse_import/tests/test-data/validate_chroot/runtime/run_in_chroot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/windows/windows_2003/boot.ini: -------------------------------------------------------------------------------- 1 | [boot loader] 2 | timeout=30 3 | default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 4 | redirect=COM2 5 | redirectbaudrate=115200 6 | [operating systems] 7 | multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /noexecute=optout /fastdetect /redirect 8 | -------------------------------------------------------------------------------- /daisy_workflows/image_import/windows/windows_2003/shutdown.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\msoftware\Microsoft\Windows\CurrentVersion\policies\system] 4 | "ShutdownWithoutLogon"=dword:00000001 5 | 6 | [HKEY_LOCAL_MACHINE\msoftware\Microsoft\Windows NT\CurrentVersion\Windows] 7 | "ShutdownWarningDialogTimeout"=dword:00000001 -------------------------------------------------------------------------------- /daisy_workflows/import_userguide.md: -------------------------------------------------------------------------------- 1 | # Importing Virtual Disks into Google Compute Engine (GCE) 2 | 3 | This page has moved to 4 | https://googlecloudplatform.github.io/compute-image-tools/image-import.html 5 | -------------------------------------------------------------------------------- /daisy_workflows/linux_common/pyproject.toml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [tool.gcp-guest-pytest] 16 | envlist = [ 17 | "3.5", 18 | "3.6", 19 | "3.7", 20 | "3.8" 21 | ] 22 | -------------------------------------------------------------------------------- /daisy_workflows/linux_common/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2020 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from setuptools import setup 17 | 18 | setup( 19 | name="linux_common", 20 | version="0.1", 21 | packages=["utils"] 22 | ) 23 | -------------------------------------------------------------------------------- /daisy_workflows/linux_common/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/daisy_workflows/linux_common/tests/__init__.py -------------------------------------------------------------------------------- /daisy_workflows/linux_common/utils/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from .common import * # noqa: F401,F403 4 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/docs/README.md -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate 2 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # Docs 2 | 3 | This folder is for documentation. Markdown files stored here are automatically 4 | converted into webpages on our [GitHub Pages 5 | site](https://googlecloudplatform.github.io/compute-image-import/). For an intro 6 | to GitHub Pages, see [What is GitHub 7 | Pages?](https://help.github.com/articles/what-is-github-pages/) and other 8 | documentation on [help.github.com](https://help.github.com). 9 | 10 | All our documentation files are in this folder. 11 | We may consider taking advantage of Jekyll's features 12 | by creating a `_posts` folder, a `_config.yml` file, etc. 13 | -------------------------------------------------------------------------------- /e2e_test_base.Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | FROM google/cloud-sdk:debian_component_based 15 | 16 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y qemu-utils gnupg ca-certificates curl 17 | 18 | # Install gcsfuse, installed using instructions from: 19 | # https://cloud.google.com/storage/docs/gcsfuse-install 20 | ENV GCSFUSE_REPO=gcsfuse-bullseye 21 | RUN echo "deb https://packages.cloud.google.com/apt $GCSFUSE_REPO main" > /etc/apt/sources.list.d/gcsfuse.list 22 | RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 23 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y gcsfuse 24 | 25 | RUN gcloud components update --quiet 26 | -------------------------------------------------------------------------------- /gce_ovf_export.Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM launcher.gcr.io/google/debian11 16 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y qemu-utils gnupg ca-certificates curl 17 | 18 | # Install gcsfuse, installed using instructions from: 19 | # https://cloud.google.com/storage/docs/gcsfuse-install 20 | ENV GCSFUSE_REPO=gcsfuse-bullseye 21 | RUN echo "deb https://packages.cloud.google.com/apt $GCSFUSE_REPO main" > /etc/apt/sources.list.d/gcsfuse.list 22 | RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 23 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y gcsfuse 24 | 25 | COPY linux/gce_ovf_export /gce_ovf_export 26 | COPY daisy_workflows/ /daisy_workflows/ 27 | COPY proto/ /proto/ 28 | 29 | ENTRYPOINT ["/gce_ovf_export"] 30 | -------------------------------------------------------------------------------- /gce_ovf_import.Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM launcher.gcr.io/google/debian11 16 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y qemu-utils gnupg ca-certificates curl 17 | 18 | # Install gcsfuse, installed using instructions from: 19 | # https://cloud.google.com/storage/docs/gcsfuse-install 20 | ENV GCSFUSE_REPO=gcsfuse-bullseye 21 | RUN echo "deb https://packages.cloud.google.com/apt $GCSFUSE_REPO main" > /etc/apt/sources.list.d/gcsfuse.list 22 | RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 23 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y gcsfuse 24 | 25 | COPY linux/gce_ovf_import /gce_ovf_import 26 | COPY daisy_workflows/ /daisy_workflows/ 27 | COPY proto/ /proto/ 28 | 29 | ENTRYPOINT ["/gce_ovf_import"] 30 | -------------------------------------------------------------------------------- /gce_vm_image_export.Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM gcr.io/distroless/base 16 | 17 | COPY linux/gce_vm_image_export /gce_vm_image_export 18 | COPY daisy_workflows/ /daisy_workflows/ 19 | 20 | ENTRYPOINT ["/gce_vm_image_export"] 21 | -------------------------------------------------------------------------------- /gce_vm_image_import.Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM launcher.gcr.io/google/debian11 16 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y qemu-utils gnupg ca-certificates curl 17 | 18 | # Install gcsfuse, installed using instructions from: 19 | # https://cloud.google.com/storage/docs/gcsfuse-install 20 | ENV GCSFUSE_REPO=gcsfuse-bullseye 21 | RUN echo "deb https://packages.cloud.google.com/apt $GCSFUSE_REPO main" > /etc/apt/sources.list.d/gcsfuse.list 22 | RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 23 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y gcsfuse 24 | 25 | COPY linux/gce_vm_image_import /gce_vm_image_import 26 | COPY daisy_workflows/ /daisy_workflows/ 27 | COPY proto/ /proto/ 28 | 29 | ENTRYPOINT ["/gce_vm_image_import"] 30 | -------------------------------------------------------------------------------- /go/e2e_test_utils/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/GoogleCloudPlatform/compute-image-import/go/e2e_test_utils 2 | 3 | go 1.13 4 | 5 | require ( 6 | github.com/GoogleCloudPlatform/compute-image-import/cli_tools v0.0.0-00010101000000-000000000000 7 | github.com/google/uuid v1.3.0 8 | ) 9 | 10 | replace github.com/GoogleCloudPlatform/compute-image-import/cli_tools => ../../cli_tools 11 | 12 | replace github.com/GoogleCloudPlatform/compute-image-import/proto/go => ../../proto/go 13 | 14 | replace github.com/GoogleCloudPlatform/compute-image-import/common => ../../common 15 | -------------------------------------------------------------------------------- /go/e2e_test_utils/test_config/project_config.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package testconfig 16 | 17 | // Project is details of test Project. 18 | type Project struct { 19 | TestProjectID string 20 | ServiceAccountEmail string 21 | TestZone string 22 | ServiceAccountScopes []string 23 | } 24 | 25 | // GetProject creates a Project object for given project ID and zone 26 | func GetProject(projectID, testZone string) *Project { 27 | return &Project{ 28 | TestProjectID: projectID, 29 | TestZone: testZone, 30 | ServiceAccountEmail: "default", 31 | ServiceAccountScopes: []string{ 32 | "https://www.googleapis.com/auth/cloud-platform", 33 | }, 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /image_builder/modules/imagebuild/outputs.tf: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2025 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | output "trigger_id" { 18 | description = "CloudBuild trigger ID." 19 | value = google_cloudbuild_trigger.image_build_trigger.id 20 | } 21 | 22 | output "trigger_name" { 23 | description = "CloudBuild trigger Name." 24 | value = google_cloudbuild_trigger.image_build_trigger.name 25 | } 26 | 27 | output "trigger_region" { 28 | description = "CloudBuild trigger Region." 29 | value = google_cloudbuild_trigger.image_build_trigger.location 30 | } 31 | -------------------------------------------------------------------------------- /image_builder/modules/imagebuild/versions.tf: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2025 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | terraform { 18 | required_version = ">= 1.3" 19 | 20 | required_providers { 21 | google = { 22 | source = "hashicorp/google" 23 | version = ">= 4.74, <7" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /image_test/README.md: -------------------------------------------------------------------------------- 1 | # GCE Image Integration Test 2 | These are workflows used by the GCE team to automate Windows/Linux integration 3 | tests 4 | 5 | # Setup 6 | 7 | Some tests need a special Google Cloud Project configuration: 8 | 9 | - See [oslogin-ssh's README file](oslogin-ssh/README.md#setup) 10 | - See [multi-nic's README file](multi-nic/README.md#setup)) 11 | 12 | # Test Cases 13 | 14 | [Boot](boot/README.md) 15 | 16 | [Metadata SSH](metadata-ssh/README.md) 17 | 18 | [OS Login SSH](oslogin-ssh/README.md) 19 | 20 | [Metadata](metadata-scripts/README.md) 21 | 22 | [Configuration](configuration/README.md) 23 | 24 | [Disks](disks/README.md) 25 | 26 | [Networking](networking/README.md) 27 | 28 | [Multi-NIC](multi-nic/README.md) 29 | -------------------------------------------------------------------------------- /image_test/boot/README.md: -------------------------------------------------------------------------------- 1 | # What is being tested? 2 | 3 | The image is being tested to be be able to on low resource machine types 4 | (f1-micro, g1-small) and high CPU/Mem machine types (n1-standard-96). 5 | 6 | The test consists in writing to a file, rebooting and then testing that the file 7 | is intact. 8 | 9 | # How this test works? 10 | 11 | The instance prints a custom message "BOOTED" after starting up. After that, a 12 | file is stored on disk with the "REBOOT" content, which will be printed after 13 | reboot to guarantee that the file is intact. 14 | 15 | # Setup 16 | 17 | No setup needed 18 | -------------------------------------------------------------------------------- /image_test/boot/boot.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Copyright 2018 Google Inc. All Rights Reserved. 3 | REM 4 | REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | REM you may not use this file except in compliance with the License. 6 | REM You may obtain a copy of the License at 7 | REM 8 | REM http://www.apache.org/licenses/LICENSE-2.0 9 | REM 10 | REM Unless required by applicable law or agreed to in writing, software 11 | REM distributed under the License is distributed on an "AS IS" BASIS, 12 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | REM See the License for the specific language governing permissions and 14 | REM limitations under the License. 15 | 16 | if EXIST reboot.txt goto REBOOT 17 | 18 | :BOOT 19 | echo REBOOT > reboot.txt 20 | echo BOOTED 21 | goto END 22 | 23 | :REBOOT 24 | type reboot.txt 25 | 26 | :END 27 | -------------------------------------------------------------------------------- /image_test/boot/boot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Wait for machine boot to avoid log race conditions 17 | sleep 10 18 | 19 | if ! ls /reboot.txt; then 20 | echo "REBOOT" > /reboot.txt 21 | logger -p daemon.info "BOOTED" 22 | else 23 | cat /reboot.txt | logger -p daemon.info 24 | fi 25 | sync 26 | -------------------------------------------------------------------------------- /image_test/configuration/linux/centos.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import abc 17 | 18 | import redhat 19 | 20 | 21 | class CentOSTests(redhat.RedHatTests): 22 | __metaclass__ = abc.ABCMeta 23 | pass 24 | 25 | 26 | class CentOS6Tests(redhat.RedHat6Tests): 27 | pass 28 | 29 | 30 | class CentOS7Tests(redhat.RedHat7Tests): 31 | pass 32 | -------------------------------------------------------------------------------- /image_test/configuration/linux/suse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import generic_distro 17 | 18 | 19 | class SuseTests(generic_distro.GenericDistroTests): 20 | def TestPackageManagerConfig(self): 21 | """ 22 | No special repository for Suse 23 | """ 24 | pass 25 | -------------------------------------------------------------------------------- /image_test/configuration/linux/ubuntu.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import debian 17 | 18 | 19 | class UbuntuTests(debian.DebianTests): 20 | def GetGoogleAptSource(self): 21 | return 'gce.archive.ubuntu.com' 22 | 23 | def GetSshdConfig(self): 24 | # They know what they are doing. No need to check for PermitRootLogin 25 | return { 26 | 'PasswordAuthentication': 'no', 27 | } 28 | 29 | def GetCmdlineConfigs(self): 30 | # Analysing if {'console': ['ttyS0', '38400n8'],} should be here or not. 31 | # Because it fails! 32 | return { 33 | 'scsi_mod.use_blk_mq': ['Y'], 34 | } 35 | -------------------------------------------------------------------------------- /image_test/configuration/windows-configuration.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "windows-configuration-test", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "Sources": { 7 | "test_config.ps1": "./windows/test_config.ps1" 8 | }, 9 | "Steps": { 10 | "create-disk": { 11 | "CreateDisks": [ 12 | { 13 | "Name": "disk", 14 | "SourceImage": "${source_image}", 15 | "Type": "pd-ssd" 16 | } 17 | ] 18 | }, 19 | "create-instance": { 20 | "CreateInstances": [ 21 | { 22 | "Name": "inst-configuration", 23 | "Disks": [{"Source": "disk"}], 24 | "StartupScript": "test_config.ps1", 25 | "Metadata": { 26 | "zone": "${ZONE}", 27 | "project": "${PROJECT}" 28 | }, 29 | "Scopes": ["https://www.googleapis.com/auth/cloud-platform"] 30 | } 31 | ] 32 | }, 33 | "wait-for-test-completion": { 34 | "Timeout": "5m", 35 | "WaitForInstancesSignal": [ 36 | { 37 | "Name": "inst-configuration", 38 | "SerialOutput": { 39 | "Port": 1, 40 | "SuccessMatch": "TestSuccess", 41 | "FailureMatch": "TestFailed" 42 | } 43 | } 44 | ] 45 | } 46 | }, 47 | "Dependencies": { 48 | "create-instance": ["create-disk"], 49 | "wait-for-test-completion": ["create-instance"] 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /image_test/disk/disk-testee.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Copyright 2018 Google Inc. All Rights Reserved. 3 | REM 4 | REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | REM you may not use this file except in compliance with the License. 6 | REM You may obtain a copy of the License at 7 | REM 8 | REM http://www.apache.org/licenses/LICENSE-2.0 9 | REM 10 | REM Unless required by applicable law or agreed to in writing, software 11 | REM distributed under the License is distributed on an "AS IS" BASIS, 12 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | REM See the License for the specific language governing permissions and 14 | REM limitations under the License. 15 | 16 | IF NOT EXIST reboot.txt ( 17 | echo "BOOTED" 18 | echo > reboot.txt 19 | ) ELSE ( 20 | echo "REBOOT" 21 | ) 22 | 23 | :LOOP 24 | echo | set /p=TotalDisks: 25 | echo list disk | diskpart | find /i "Online" /c 26 | waitfor Dummy /T 1 27 | GOTO :LOOP 28 | -------------------------------------------------------------------------------- /image_test/disk/disk-testee.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | if [ ! -e /reboot.txt ]; then 17 | logger -p daemon.info "BOOTED" 18 | echo > /reboot.txt 19 | else 20 | logger -p daemon.info "REBOOT" 21 | fi 22 | 23 | while [ 1 ]; do 24 | if [ -e /dev/sda ]; then 25 | # Linux style 26 | printf TotalDisks:%d\\n `ls /dev/sd* | grep [a-z]$ | wc -l` | logger -p daemon.info 27 | elif [ -e /dev/da0 ]; then 28 | # BSD style 29 | printf TotalDisks:%d\\n `ls /dev/da* | grep da[0-9]$ | wc -l` | logger -p daemon.info 30 | else 31 | # unknown 32 | logger -p daemon.info "TotalDisksUnrecognized" 33 | fi 34 | 35 | # Avoid flooding the logs, otherwise we might lose the BOOTED/REBOOT message 36 | sleep 10 37 | done 38 | -------------------------------------------------------------------------------- /image_test/metadata-script/junk.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleCloudPlatform/compute-image-import/cf111b445261d1beebe9f8ea514c800161507d6f/image_test/metadata-script/junk.ps1 -------------------------------------------------------------------------------- /image_test/metadata-script/metadata-script-inc/startup-check.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "startup-check", 3 | "Vars": { 4 | "instance": {"Required": true, "Description": "Instance name to be tested"}, 5 | "startup_msg": {"Required": true, "Description": "The message to wait when the instance starts up"}, 6 | "script_type": "startup" 7 | }, 8 | "Steps": { 9 | "test-startup-check-log": { 10 | "IncludeWorkflow": { 11 | "Path": "./wait-message.wf.json", 12 | "Vars": { 13 | "instance": "${instance}", 14 | "script_type": "${script_type}", 15 | "exec_msg": "${startup_msg}", 16 | "interval": "30s" 17 | } 18 | } 19 | }, 20 | "cleanup-instance": { 21 | "DeleteResources": { 22 | "Instances": ["${instance}"] 23 | } 24 | } 25 | }, 26 | "Dependencies": { 27 | "cleanup-instance": ["test-startup-check-log"] 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /image_test/metadata-script/shutdown-script-linux.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "shutdown-script-linux", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "DefaultTimeout": "20m", 7 | "Steps": { 8 | "test-shutdown-script": { 9 | "IncludeWorkflow": { 10 | "Path": "./shutdown-script.wf.json", 11 | "Vars": { 12 | "source_image": "${source_image}", 13 | "shutdown_hash": "e3de3cd247bbe7c8b3a6f496f55a80f1", 14 | "shutdown_msg": "INFO Found shutdown-script-url in metadata.", 15 | "no_shutdown_msg": "INFO No shutdown scripts found in metadata.", 16 | "wait_msg": "Ready to stop instance.", 17 | "shutdown_script_name": "metadata-script-test-shutdown-hash.sh", 18 | "startup_script_name": "startup-script-for-shutdown-tests.sh" 19 | } 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /image_test/metadata-script/shutdown-script-noscript.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "shutdown-noscript", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"}, 5 | "shutdown_msg": {"Required": true, "Description": "Shutdown script message to be verified"}, 6 | "startup_script_name": {"Required": true, "Description": "Startup script of the created instance"}, 7 | "wait_msg": {"Required": true, "Description": "Message to stop instance"}, 8 | "instance": "noscript" 9 | }, 10 | "Sources": { 11 | "startup_script_no_script.ps1": "${startup_script_name}" 12 | }, 13 | "Steps": { 14 | "create-noscript": { 15 | "IncludeWorkflow": { 16 | "Path": "./metadata-script-inc/create-instance.wf.json", 17 | "Vars": { 18 | "source_image": "${source_image}", 19 | "instance": "${instance}", 20 | "startup_script_meta_key": "startup-script-url", 21 | "startup_script_meta": "${SOURCESPATH}/startup_script_no_script.ps1" 22 | } 23 | } 24 | }, 25 | "wait-noscript": { 26 | "Timeout": "15m", 27 | "IncludeWorkflow": { 28 | "Path": "./metadata-script-inc/shutdown-check.wf.json", 29 | "Vars": { 30 | "instance": "${instance}", 31 | "shutdown_msg": "${shutdown_msg}", 32 | "wait_msg": "${wait_msg}" 33 | } 34 | } 35 | } 36 | }, 37 | "Dependencies": { 38 | "wait-noscript": ["create-noscript"] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /image_test/metadata-script/shutdown-script-windows.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "shutdown-script-windows", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "DefaultTimeout": "20m", 7 | "Steps": { 8 | "test-shutdown-script": { 9 | "IncludeWorkflow": { 10 | "Path": "./shutdown-script.wf.json", 11 | "Vars": { 12 | "source_image": "${source_image}", 13 | "shutdown_hash": "BFDE8004A9C0B59CC530DD9DFFFDBF8D", 14 | "shutdown_msg": "GCEMetadataScripts: Starting shutdown scripts", 15 | "no_shutdown_msg": "GCEMetadataScripts: No shutdown scripts to run.", 16 | "shutdown_script_name": "metadata-script-test-shutdown-hash.ps1", 17 | "startup_script_name": "startup-script-for-shutdown-tests.ps1" 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /image_test/metadata-script/startup-script-for-shutdown-tests.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Ready to stop instance." 2 | -------------------------------------------------------------------------------- /image_test/metadata-script/startup-script-for-shutdown-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # FreeBSD's kernel aborts if the shutdown process takes more than 90 seconds, 4 | # and for some tests we need more than that. 5 | if [ "$(uname)" = 'FreeBSD' ]; then 6 | sysctl kern.init_shutdown_timeout=180 7 | sysrc rcshutdown_timeout="180" 8 | fi 9 | 10 | echo "Ready to stop instance." 11 | -------------------------------------------------------------------------------- /image_test/metadata-script/startup-script-linux.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "startup-script-linux", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "DefaultTimeout": "20m", 7 | "Steps": { 8 | "test-startup-script": { 9 | "IncludeWorkflow": { 10 | "Path": "./startup-script.wf.json", 11 | "Vars": { 12 | "source_image": "${source_image}", 13 | "startup_hash": "7d954ca9f2786bef7f3c69c6d6661a75", 14 | "startup_msg": "INFO Found startup-script-url in metadata.", 15 | "no_startup_msg": "INFO No startup scripts found in metadata.", 16 | "startup_script_name": "metadata-script-test-startup-hash.sh" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /image_test/metadata-script/startup-script-noscript.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "startup-noscript", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"}, 5 | "startup_msg": {"Required": true, "Description": "Startup script message to be verified"}, 6 | "instance": "noscript" 7 | }, 8 | "Steps": { 9 | "create-noscript": { 10 | "IncludeWorkflow": { 11 | "Path": "./metadata-script-inc/create-instance.wf.json", 12 | "Vars": { 13 | "source_image": "${source_image}", 14 | "instance": "${instance}" 15 | } 16 | } 17 | }, 18 | "wait-noscript": { 19 | "Timeout": "15m", 20 | "IncludeWorkflow": { 21 | "Path": "./metadata-script-inc/startup-check.wf.json", 22 | "Vars": { 23 | "instance": "${instance}", 24 | "startup_msg": "${startup_msg}" 25 | } 26 | } 27 | } 28 | }, 29 | "Dependencies": { 30 | "wait-noscript": ["create-noscript"] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /image_test/metadata-script/startup-script-windows.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "startup-script-windows", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "DefaultTimeout": "20m", 7 | "Steps": { 8 | "test-startup-script": { 9 | "IncludeWorkflow": { 10 | "Path": "./startup-script.wf.json", 11 | "Vars": { 12 | "source_image": "${source_image}", 13 | "startup_hash": "A4383937208BDF2E3B0FF1F5FC857B3F", 14 | "startup_msg": "GCEMetadataScripts: Starting startup scripts", 15 | "no_startup_msg": "GCEMetadataScripts: No startup scripts to run.", 16 | "startup_script_name": "metadata-script-test-startup-hash.ps1" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /image_test/metadata-script/sysprep-script-noscript.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "sysprep-noscript", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"}, 5 | "sysprep_msg": {"Required": true, "Description": "Sysprep script message to be verified"}, 6 | "instance": "noscript" 7 | }, 8 | "Steps": { 9 | "create-noscript": { 10 | "IncludeWorkflow": { 11 | "Path": "./metadata-script-inc/create-instance.wf.json", 12 | "Vars": { 13 | "source_image": "${source_image}", 14 | "instance": "${instance}" 15 | } 16 | } 17 | }, 18 | "wait-noscript": { 19 | "Timeout": "15m", 20 | "IncludeWorkflow": { 21 | "Path": "./metadata-script-inc/startup-check.wf.json", 22 | "Vars": { 23 | "instance": "${instance}", 24 | "startup_msg": "${sysprep_msg}", 25 | "script_type": "sysprep" 26 | } 27 | } 28 | } 29 | }, 30 | "Dependencies": { 31 | "wait-noscript": ["create-noscript"] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /image_test/metadata-script/sysprep-script-windows.wf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "sysprep-script-windows", 3 | "Vars": { 4 | "source_image": {"Required": true, "Description": "Image to be tested"} 5 | }, 6 | "DefaultTimeout": "20m", 7 | "Steps": { 8 | "test-sysprep-script": { 9 | "IncludeWorkflow": { 10 | "Path": "./sysprep-script.wf.json", 11 | "Vars": { 12 | "source_image": "${source_image}", 13 | "sysprep_hash": "A4383937208BDF2E3B0FF1F5FC857B3F", 14 | "sysprep_msg": "GCEMetadataScripts: Starting startup scripts", 15 | "no_sysprep_msg": "GCEMetadataScripts: No startup scripts to run.", 16 | "sysprep_script_name": "metadata-script-test-startup-hash.ps1" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /image_test/metadata-ssh/README.md: -------------------------------------------------------------------------------- 1 | # What is being tested? 2 | 3 | Tests if metadata parameters related to ssh connections are working properly: 4 | 5 | - Ensure that SSH keys specified in project and instance level metadata work to 6 | grant access, and that the guest supports a consistent key semantics 7 | - Sets keys in project and instance level metadata and verifies login works 8 | when appropriate. 9 | - Sets combinations of the following keys in instance level metadata: 10 | - ssh-keys: in addition to any other keys specified. 11 | - sshKeys: ignores all project level SSH keys. 12 | - block-project-ssh-keys: ignores all project level SSH keys. 13 | 14 | - Sets combinations of the following keys in project level metadata (neither 15 | are exclusive): 16 | - ssh-keys 17 | - sshKeys 18 | 19 | # How this test works? 20 | 21 | - testee: target image boots and wait for interaction with tester. 22 | - tester: creates keys and tries to execute commands on testee with the 23 | different methods described above. 24 | 25 | # Setup 26 | 27 | No setup needed 28 | -------------------------------------------------------------------------------- /image_test/multi-nic/README.md: -------------------------------------------------------------------------------- 1 | # What is being tested? 2 | 3 | Network configuration. When having more than one Network Interface Card (NIC), 4 | the agent should correctly configure the routes for **all** of the network 5 | cards. 6 | 7 | # How this test works? 8 | 9 | Two VMS with 2 NICs will share only one NIC with a common network. Communication 10 | between the two should be able to take place (the master instance can ping the 11 | slave instance). 12 | 13 | # Setup 14 | 15 | No setup is needed. 16 | -------------------------------------------------------------------------------- /image_test/multi-nic/multi-nic-master.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Copyright 2018 Google Inc. All Rights Reserved. 3 | REM 4 | REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | REM you may not use this file except in compliance with the License. 6 | REM You may obtain a copy of the License at 7 | REM 8 | REM http://www.apache.org/licenses/LICENSE-2.0 9 | REM 10 | REM Unless required by applicable law or agreed to in writing, software 11 | REM distributed under the License is distributed on an "AS IS" BASIS, 12 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | REM See the License for the specific language governing permissions and 14 | REM limitations under the License. 15 | 16 | ping -n 5 %HOST% 17 | if %errorlevel% EQU 0 ( 18 | echo MultiNICSuccess 19 | ) else ( 20 | echo MultiNICFailed 21 | ) 22 | -------------------------------------------------------------------------------- /image_test/multi-nic/multi-nic-master.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Wait for network initialization 17 | sleep 10 18 | 19 | # Ubuntu minimal images do not have ping installed by default. 20 | if [ -n "$(uname -a | grep Ubuntu)" ]; then 21 | if ! type ping > /dev/null; then 22 | apt-get update && apt-get install -y iputils-ping 23 | fi 24 | fi 25 | 26 | ping -c 5 ${HOST} && logger -p daemon.info 'MultiNICSuccess' || logger -p daemon.info 'MultiNICFailed' 27 | -------------------------------------------------------------------------------- /image_test/multi-nic/multi-nic-slave.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Copyright 2018 Google Inc. All Rights Reserved. 3 | REM 4 | REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | REM you may not use this file except in compliance with the License. 6 | REM You may obtain a copy of the License at 7 | REM 8 | REM http://www.apache.org/licenses/LICENSE-2.0 9 | REM 10 | REM Unless required by applicable law or agreed to in writing, software 11 | REM distributed under the License is distributed on an "AS IS" BASIS, 12 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | REM See the License for the specific language governing permissions and 14 | REM limitations under the License. 15 | 16 | echo BOOTED 17 | -------------------------------------------------------------------------------- /image_test/multi-nic/multi-nic-slave.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | logger -p daemon.info BOOTED 17 | -------------------------------------------------------------------------------- /image_test/network/README.md: -------------------------------------------------------------------------------- 1 | # What is being tested? 2 | 3 | Network configuration. The instance should be able to reach other instances 4 | running on the same network as well as having access to the internet. The 5 | instance should also configure internal routing to accept packages if a 6 | forwarding rule send traffic to it. 7 | 8 | # How this test works? 9 | 10 | - testee: target that will serve 2 simple files on its http port: hostname 11 | (that returns the hostname) and os (returns linux or windows) 12 | - testee-checker: target that verifies if VM to VM and VM to external DNS 13 | connections work. 14 | - tester: will verify if the IP alias and Forwarding Rule is working on testee 15 | by comparing the hostname given by the IP aliased machine and by the IP that 16 | the Forwarding Rule should be forwarding traffic to. It also tests if IP 17 | alias works when the configuration is modified while the instance is running. 18 | - *Note: On Windows systems the IP alias is not tested as those kind of packages are dropped.* 19 | 20 | # Setup 21 | 22 | Some IP alias and mask should be defined. By Default the 10.128.3.128/31 is used 23 | but keep in mind this IP should be available on the instance subnet. These 24 | parameters can be changed through the variables "alias_ip" and "alias_ip_mask". 25 | -------------------------------------------------------------------------------- /image_test/network/network-testee-checker.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Copyright 2018 Google Inc. All Rights Reserved. 3 | REM 4 | REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | REM you may not use this file except in compliance with the License. 6 | REM You may obtain a copy of the License at 7 | REM 8 | REM http://www.apache.org/licenses/LICENSE-2.0 9 | REM 10 | REM Unless required by applicable law or agreed to in writing, software 11 | REM distributed under the License is distributed on an "AS IS" BASIS, 12 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | REM See the License for the specific language governing permissions and 14 | REM limitations under the License. 15 | 16 | REM Verify VM to VM DNS connection 17 | ping -n 1 %INSTANCE% 18 | if %errorlevel% NEQ 0 ( 19 | echo DNS_Failed 20 | ) 21 | 22 | REM Verify VM to external DNS connection 23 | ping -n 1 www.google.com 24 | 25 | REM Signalize wait-for-instance that instance is ready or error occurred 26 | if %errorlevel% NEQ 0 ( 27 | echo DNS_Failed 28 | ) else ( 29 | echo DNS_Success 30 | ) 31 | -------------------------------------------------------------------------------- /image_test/network/network-testee-checker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Verify DNS connections 17 | 18 | # Verify VM to VM DNS connection 19 | getent hosts $INSTANCE 20 | 21 | # Raise error if it occurred 22 | [ $? -ne 0 ] && logger -p daemon.info "DNS_Failed" 23 | 24 | # Verify VM to external DNS connection 25 | getent hosts www.google.com 26 | 27 | # Signalize wait-for-instance that instance is ready or error occurred 28 | [ $? -ne 0 ] && logger -p daemon.info "DNS_Failed" || logger -p daemon.info "DNS_Success" 29 | -------------------------------------------------------------------------------- /image_test/network/network-testee.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2018 Google Inc. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Signalize wait-for-instance that instance is ready 17 | logger -p daemon.info "BOOTED" 18 | 19 | # Serve a file server that prints the hostname when requesting "/hostname" 20 | # and "linux" when requesting "/os" 21 | mkdir /server 22 | cd /server 23 | hostname > hostname 24 | echo linux > os 25 | # host it on python2 and fallback to python3 26 | python -m SimpleHTTPServer 80 27 | python3 -m http.server 80 28 | -------------------------------------------------------------------------------- /proto/README: -------------------------------------------------------------------------------- 1 | This directory contains proto files and the associated generated code. Run `updatepb.sh` 2 | when you modify an existing proto file, or add a new proto file. To support Go, ensure 3 | proto files use proto3: https://developers.google.com/protocol-buffers/docs/proto3 4 | 5 | Layout: 6 | go/ Generated Go code. Don't edit by hand. 7 | py/ Generated Python code. Don't edit by hand. 8 | *.proto Proto files. Edit these. 9 | updatepb.sh Script to update generated code. 10 | 11 | Packaging: 12 | 13 | Go code is vended as the module `github.com/GoogleCloudPlatform/compute-image-tools/proto/go` 14 | See `cli_tools/go.mod` for an example of consuming this. 15 | 16 | Python code is vended as a Python package called `compute_image_tools_proto`. See these 17 | files for example usage: 18 | * daisy_workflows/image_import/inspection/ 19 | setup.py 20 | pyproject.toml 21 | daisy-shim.sh 22 | -------------------------------------------------------------------------------- /proto/go/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/GoogleCloudPlatform/compute-image-import/proto/go 2 | 3 | go 1.13 4 | 5 | require ( 6 | github.com/golang/mock v1.1.1 7 | github.com/golang/protobuf v1.4.3 8 | github.com/google/go-cmp v0.5.0 9 | google.golang.org/protobuf v1.25.0 10 | ) 11 | -------------------------------------------------------------------------------- /proto/go/pbtesting/assert_matcher.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google Inc. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package pbtesting 16 | 17 | import ( 18 | "testing" 19 | 20 | "github.com/golang/protobuf/proto" 21 | "github.com/google/go-cmp/cmp" 22 | "google.golang.org/protobuf/testing/protocmp" 23 | ) 24 | 25 | // AssertEqual asserts that two protobufs are equal. 26 | func AssertEqual(t *testing.T, expected, actual proto.Message) { 27 | if diff := cmp.Diff(expected, actual, protocmp.Transform()); diff != "" { 28 | t.Errorf("Protos not equal (-want +got):\n%s", diff) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /proto/py/setup.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google Inc. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from setuptools import setup 16 | 17 | setup( 18 | name="compute_image_tools_proto", 19 | packages=["compute_image_tools_proto"], 20 | install_requires=["protobuf ~= 3.1"], 21 | version="0.1", 22 | ) 23 | -------------------------------------------------------------------------------- /rollout/cli_tools_cloudbuild_release_workflow.yaml: -------------------------------------------------------------------------------- 1 | # Simply trigger the workflow to start the rollout schedule. 2 | 3 | timeout: 60s 4 | 5 | steps: 6 | - name: 'google/cloud-sdk:alpine' 7 | args: 8 | - 'bash' 9 | - '-c' 10 | - 'gcloud workflows execute workflow-gradually-rollout$_TEST_SUFFIX 11 | --project=$PROJECT_ID 12 | --data="{ 13 | \"rolloutPhase\":{$_ROLLOUT_PHASES}, 14 | \"tools\":\"gce_vm_image_import;gce_vm_image_export;gce_onestep_image_import;gce_ovf_import;gce_ovf_export\", 15 | \"tagName\":\"$TAG_NAME\", 16 | \"waitPeriod\":\"$_WAIT_PERIOD\", 17 | \"skipValidation\":\"$_SKIP_VALIDATION\" 18 | }"' 19 | env: ['CGO_ENABLED=0'] 20 | -------------------------------------------------------------------------------- /supported-regions: -------------------------------------------------------------------------------- 1 | us 2 | asia-southeast2 3 | europe-central2 4 | europe-west2 5 | europe-west3 6 | us-central1 7 | us-west2 8 | us-west4 9 | europe-west6 10 | asia-northeast2 11 | europe 12 | asia-east2 13 | asia-northeast1 14 | asia-south1 15 | asia-southeast1 16 | europe-north1 17 | europe-west4 18 | northamerica-northeast1 19 | southamerica-east1 20 | us-west1 21 | us-east4 22 | asia 23 | asia-east1 24 | asia-northeast3 25 | australia-southeast1 26 | europe-west1 27 | us-east1 28 | --------------------------------------------------------------------------------