| syntax = "proto3"; |
| package chromite.api; |
| |
| import "build_api.proto"; |
| import "common.proto"; |
| |
| // Image argument - encapsulate data about an image. |
| message Image { |
| // The types of images that can be built. |
| enum Type { |
| IMAGE_TYPE_UNDEFINED = 0; |
| BASE = 1; |
| DEV = 2; |
| TEST = 3; |
| } |
| |
| // Path to the image file. |
| string path = 1; |
| // The image type. |
| Type type = 2; |
| } |
| |
| // The image test arguments. |
| message CreateImageRequest { |
| // The build target whose image is being built. |
| BuildTarget build_target = 1; |
| // The types of images to build, defaults to building base image. |
| repeated Image.Type image_types = 2; |
| // Whether rootfs verification should be disabled (enabled by default). |
| bool disable_rootfs_verification = 3; |
| // The image version. |
| string version = 4; |
| // Disk layout option. See README.disk_layout and legacy_disk_layout.json in |
| // src/scripts/build_library. |
| string disk_layout = 5; |
| // Used to set the LSB builder path key in /etc/lsb-release. See |
| // chromite/scripts/cros_set_lsb_release.py. |
| string builder_path = 6; |
| } |
| |
| message CreateImageResult { |
| // Whether it completed successfully. |
| bool success = 1; |
| // Images that were built. Will contain no more than one per image type. |
| repeated Image images = 2; |
| } |
| |
| // The image test arguments. |
| message TestImageRequest { |
| // The image to be tested. |
| Image image = 1; |
| // The build target whose image is being tested. |
| BuildTarget build_target = 2; |
| |
| // Test results options specifications. |
| message Result { |
| // Location where the test results should be written. |
| string directory = 1; |
| } |
| Result result = 3; |
| } |
| |
| message TestImageResult { |
| // Whether all tests passed. |
| bool success = 1; |
| } |
| |
| // The image service. |
| service ImageService { |
| option (service_options) = { |
| module: "image", |
| }; |
| |
| // Build an image. |
| // Example json: |
| // { |
| // "build_target": {"name": "reef"}, |
| // } |
| rpc Create(CreateImageRequest) returns (CreateImageResult) { |
| option (method_options) = { |
| method_chroot_assert: INSIDE, |
| }; |
| } |
| |
| // Test an image. |
| // Example json: |
| // { |
| // "build_target": {"name": "reef"}, |
| // "image": {"path": "/mnt/host/source/src/build/images/reef/latest"}, |
| // "result": {"directory": "/tmp/image_test_results"} |
| // } |
| rpc Test(TestImageRequest) returns (TestImageResult) { |
| option (method_options) = { |
| method_chroot_assert: INSIDE, |
| }; |
| } |
| } |