@@ -611,27 +611,27 @@ func TestHandlers_ComposeBlueprint(t *testing.T) {
611611 {
612612 Baseurl : common .ToPtr ("http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/" ),
613613 CheckGpg : common .ToPtr (true ),
614- Gpgkey : common .ToPtr ("-----BEGIN PGP PUBLIC KEY BLOCK-----\n Version: GnuPG v2.0.22 (GNU/Linux)\n \n mQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\n rIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n 8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n 5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\n aevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\n f+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\n JINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\n vufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\n nHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\n Gat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\n m4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\n tDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\n QGNlbnRvcy5vcmc+iQI3BBMBCAAhAhsDBgsJCAcDAgYVCAIJCgsDFgIBAh4BAheA\n BQJczFsaAAoJEAW1VbOEg8ZdvOgQAMFTGIQokADy5+CynFKjfO7R0VVpJxmYGVr1\n TjnKaHmjxnJaYqoha9ukGgmLu0r+lJ42Kk6nREk1vlxfRAfiWd00Zkm+K3IMq1/D\n E0heC2vX8qqjsLJs3jzq0hgNvo9X0uHDaA4J1BHsD8sE5in/f4SivjbngvFovRGU\n 1XLNCgoqpFNcROP18LqKUw8WtqgWdnYBa5i6D5qx+WMRX0NHNwcCMy1lz+sTFxIU\n 9mW6cLsMaacPGD8pUXIVli8P9Vlv3jBk1wFIqRgQPW01ph/3bM7pf9hyM9FAfU4X\n AFcyb1oYI4/82EkICUe6jeuZrz67dPeLVAlYrGW4hp/825g0fqJHxPDp25GS4rAa\n 4RqyibLzNjSGdXYeLj2NcB/8OqaP+T1hv3JDaqe70QoYa/GIC4rh15NyXVbUP+LG\n V4vUiL7mb9ynzvF5zYHJbcg4R7dOsiZHrMFwy7FZesQaVrXeJlxRcEj65rpm1ZtZ\n mwAE1k2LsRkvLyr9hpZkXnMeOKYIPwpdmBjXNVNVbq7097OxZOYPPos+iZKMWfl4\n UQnMsCVxonZtamdI4qEc3jMkSZPJKgOplGOms5jdY+EdSvsFWEQ0Snd3dChfU7DV\n o4Rbcy5klwHrvuZIOLaovhyxuRPhP6gV9+gzpTK/7vrvDlFbbZE6s212mDZ13RWB\n mTfAxz4h\n =agO/\n -----END PGP PUBLIC KEY BLOCK-----\n " ),
614+ Gpgkey : common .ToPtr (mocks .CentosGPG ),
615615 Rhsm : common .ToPtr (false ),
616616 },
617617 {
618618 Baseurl : common .ToPtr ("http://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/" ),
619619 CheckGpg : common .ToPtr (true ),
620- Gpgkey : common .ToPtr ("-----BEGIN PGP PUBLIC KEY BLOCK-----\n Version: GnuPG v2.0.22 (GNU/Linux)\n \n mQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\n rIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n 8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n 5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\n aevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\n f+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\n JINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\n vufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\n nHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\n Gat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\n m4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\n tDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\n QGNlbnRvcy5vcmc+iQI3BBMBCAAhAhsDBgsJCAcDAgYVCAIJCgsDFgIBAh4BAheA\n BQJczFsaAAoJEAW1VbOEg8ZdvOgQAMFTGIQokADy5+CynFKjfO7R0VVpJxmYGVr1\n TjnKaHmjxnJaYqoha9ukGgmLu0r+lJ42Kk6nREk1vlxfRAfiWd00Zkm+K3IMq1/D\n E0heC2vX8qqjsLJs3jzq0hgNvo9X0uHDaA4J1BHsD8sE5in/f4SivjbngvFovRGU\n 1XLNCgoqpFNcROP18LqKUw8WtqgWdnYBa5i6D5qx+WMRX0NHNwcCMy1lz+sTFxIU\n 9mW6cLsMaacPGD8pUXIVli8P9Vlv3jBk1wFIqRgQPW01ph/3bM7pf9hyM9FAfU4X\n AFcyb1oYI4/82EkICUe6jeuZrz67dPeLVAlYrGW4hp/825g0fqJHxPDp25GS4rAa\n 4RqyibLzNjSGdXYeLj2NcB/8OqaP+T1hv3JDaqe70QoYa/GIC4rh15NyXVbUP+LG\n V4vUiL7mb9ynzvF5zYHJbcg4R7dOsiZHrMFwy7FZesQaVrXeJlxRcEj65rpm1ZtZ\n mwAE1k2LsRkvLyr9hpZkXnMeOKYIPwpdmBjXNVNVbq7097OxZOYPPos+iZKMWfl4\n UQnMsCVxonZtamdI4qEc3jMkSZPJKgOplGOms5jdY+EdSvsFWEQ0Snd3dChfU7DV\n o4Rbcy5klwHrvuZIOLaovhyxuRPhP6gV9+gzpTK/7vrvDlFbbZE6s212mDZ13RWB\n mTfAxz4h\n =agO/\n -----END PGP PUBLIC KEY BLOCK-----\n " ),
620+ Gpgkey : common .ToPtr (mocks .CentosGPG ),
621621 Rhsm : common .ToPtr (false ),
622622 },
623623 }
624624 reposAarch := []composer.Repository {
625625 {
626626 Baseurl : common .ToPtr ("http://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/" ),
627627 CheckGpg : common .ToPtr (true ),
628- Gpgkey : common .ToPtr ("-----BEGIN PGP PUBLIC KEY BLOCK-----\n Version: GnuPG v2.0.22 (GNU/Linux)\n \n mQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\n rIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n 8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n 5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\n aevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\n f+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\n JINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\n vufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\n nHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\n Gat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\n m4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\n tDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\n QGNlbnRvcy5vcmc+iQI3BBMBCAAhAhsDBgsJCAcDAgYVCAIJCgsDFgIBAh4BAheA\n BQJczFsaAAoJEAW1VbOEg8ZdvOgQAMFTGIQokADy5+CynFKjfO7R0VVpJxmYGVr1\n TjnKaHmjxnJaYqoha9ukGgmLu0r+lJ42Kk6nREk1vlxfRAfiWd00Zkm+K3IMq1/D\n E0heC2vX8qqjsLJs3jzq0hgNvo9X0uHDaA4J1BHsD8sE5in/f4SivjbngvFovRGU\n 1XLNCgoqpFNcROP18LqKUw8WtqgWdnYBa5i6D5qx+WMRX0NHNwcCMy1lz+sTFxIU\n 9mW6cLsMaacPGD8pUXIVli8P9Vlv3jBk1wFIqRgQPW01ph/3bM7pf9hyM9FAfU4X\n AFcyb1oYI4/82EkICUe6jeuZrz67dPeLVAlYrGW4hp/825g0fqJHxPDp25GS4rAa\n 4RqyibLzNjSGdXYeLj2NcB/8OqaP+T1hv3JDaqe70QoYa/GIC4rh15NyXVbUP+LG\n V4vUiL7mb9ynzvF5zYHJbcg4R7dOsiZHrMFwy7FZesQaVrXeJlxRcEj65rpm1ZtZ\n mwAE1k2LsRkvLyr9hpZkXnMeOKYIPwpdmBjXNVNVbq7097OxZOYPPos+iZKMWfl4\n UQnMsCVxonZtamdI4qEc3jMkSZPJKgOplGOms5jdY+EdSvsFWEQ0Snd3dChfU7DV\n o4Rbcy5klwHrvuZIOLaovhyxuRPhP6gV9+gzpTK/7vrvDlFbbZE6s212mDZ13RWB\n mTfAxz4h\n =agO/\n -----END PGP PUBLIC KEY BLOCK-----\n " ),
628+ Gpgkey : common .ToPtr (mocks .CentosGPG ),
629629 Rhsm : common .ToPtr (false ),
630630 },
631631 {
632632 Baseurl : common .ToPtr ("http://mirror.stream.centos.org/9-stream/AppStream/aarch64/os/" ),
633633 CheckGpg : common .ToPtr (true ),
634- Gpgkey : common .ToPtr ("-----BEGIN PGP PUBLIC KEY BLOCK-----\n Version: GnuPG v2.0.22 (GNU/Linux)\n \n mQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\n rIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n 8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n 5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\n aevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\n f+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\n JINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\n vufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\n nHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\n Gat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\n m4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\n tDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\n QGNlbnRvcy5vcmc+iQI3BBMBCAAhAhsDBgsJCAcDAgYVCAIJCgsDFgIBAh4BAheA\n BQJczFsaAAoJEAW1VbOEg8ZdvOgQAMFTGIQokADy5+CynFKjfO7R0VVpJxmYGVr1\n TjnKaHmjxnJaYqoha9ukGgmLu0r+lJ42Kk6nREk1vlxfRAfiWd00Zkm+K3IMq1/D\n E0heC2vX8qqjsLJs3jzq0hgNvo9X0uHDaA4J1BHsD8sE5in/f4SivjbngvFovRGU\n 1XLNCgoqpFNcROP18LqKUw8WtqgWdnYBa5i6D5qx+WMRX0NHNwcCMy1lz+sTFxIU\n 9mW6cLsMaacPGD8pUXIVli8P9Vlv3jBk1wFIqRgQPW01ph/3bM7pf9hyM9FAfU4X\n AFcyb1oYI4/82EkICUe6jeuZrz67dPeLVAlYrGW4hp/825g0fqJHxPDp25GS4rAa\n 4RqyibLzNjSGdXYeLj2NcB/8OqaP+T1hv3JDaqe70QoYa/GIC4rh15NyXVbUP+LG\n V4vUiL7mb9ynzvF5zYHJbcg4R7dOsiZHrMFwy7FZesQaVrXeJlxRcEj65rpm1ZtZ\n mwAE1k2LsRkvLyr9hpZkXnMeOKYIPwpdmBjXNVNVbq7097OxZOYPPos+iZKMWfl4\n UQnMsCVxonZtamdI4qEc3jMkSZPJKgOplGOms5jdY+EdSvsFWEQ0Snd3dChfU7DV\n o4Rbcy5klwHrvuZIOLaovhyxuRPhP6gV9+gzpTK/7vrvDlFbbZE6s212mDZ13RWB\n mTfAxz4h\n =agO/\n -----END PGP PUBLIC KEY BLOCK-----\n " ),
634+ Gpgkey : common .ToPtr (mocks .CentosGPG ),
635635 Rhsm : common .ToPtr (false ),
636636 },
637637 }
@@ -710,34 +710,81 @@ func TestHandlers_ComposeBlueprint(t *testing.T) {
710710 },
711711 }
712712
713+ bootcId := uuid .New ()
714+ bootcBlueprint := v1.BlueprintBody {
715+ Distribution : common .ToPtr (v1 .Distributions ("rhel-10.1" )),
716+ Bootc : & v1.BootcBody {
717+ Reference : "quay.io/redhat-services-prod/insights-management-tenant/image-builder-bootc-foundry/rhel-10-ec2:latest" ,
718+ },
719+ ImageRequests : []v1.ImageRequest {
720+ {
721+ Architecture : v1 .ImageRequestArchitectureX8664 ,
722+ ImageType : v1 .ImageTypesAws ,
723+ UploadRequest : v1.UploadRequest {
724+ Type : v1 .UploadTypesAws ,
725+ Options : uploadOptions ,
726+ },
727+ },
728+ },
729+ }
730+ message , err = json .Marshal (bootcBlueprint )
731+ require .NoError (t , err )
732+ err = srv .DB .InsertBlueprint (ctx , bootcId , uuid .New (), "000000" , "000000" , "bootc bp" , "descr" , message , nil , nil )
733+ require .NoError (t , err )
734+ creq4 := composer.ComposeRequest {
735+ BlueprintId : & bootcId ,
736+ Bootc : & composer.Bootc {
737+ Reference : "quay.io/redhat-services-prod/insights-management-tenant/image-builder-bootc-foundry/rhel-10-ec2:latest" ,
738+ },
739+ ImageRequest : & composer.ImageRequest {
740+ Architecture : "x86_64" ,
741+ ImageType : composer .ImageTypesAws ,
742+ Repositories : []composer.Repository {},
743+ UploadOptions : makeUploadOptions (t , composer.AWSEC2UploadOptions {
744+ ShareWithAccounts : []string {"test-account" },
745+ }),
746+ },
747+ Customizations : & composer.Customizations {},
748+ }
749+
713750 tests := map [string ]struct {
751+ blueprintId uuid.UUID
714752 payload any
715753 composeRequests []composer.ComposeRequest
716754 expectedImages int
717755 }{
718756 "empty targets" : {
757+ blueprintId : id ,
719758 payload : strings .NewReader ("" ),
720759 composeRequests : []composer.ComposeRequest {creq1 , creq2 , creq3 },
721760 expectedImages : 3 ,
722761 },
723762 "multiple targets" : {
763+ blueprintId : id ,
724764 payload : v1.ComposeBlueprintJSONBody {ImageTypes : & []v1.ImageTypes {"aws" , "guest-image" , "gcp" }},
725765 composeRequests : []composer.ComposeRequest {creq1 , creq2 , creq3 },
726766 expectedImages : 3 ,
727767 },
728768 "one target" : {
769+ blueprintId : id ,
729770 payload : v1.ComposeBlueprintJSONBody {ImageTypes : & []v1.ImageTypes {"guest-image" }},
730771 composeRequests : []composer.ComposeRequest {creq3 },
731772 expectedImages : 1 ,
732773 },
774+ "bootc" : {
775+ blueprintId : bootcId ,
776+ payload : strings .NewReader ("" ),
777+ composeRequests : []composer.ComposeRequest {creq4 },
778+ expectedImages : 1 ,
779+ },
733780 }
734781
735782 for name , tc := range tests {
736783 t .Run (name , func (t * testing.T ) {
737784 composeRequests = []composer.ComposeRequest {}
738785
739- respStatusCode , body := tutils .PostResponseBody (t , srv .URL + fmt .Sprintf ("/api/image-builder/v1/blueprints/%s/compose" , id .String ()), tc .payload )
740- require .Equal (t , http .StatusCreated , respStatusCode )
786+ respStatusCode , body := tutils .PostResponseBody (t , srv .URL + fmt .Sprintf ("/api/image-builder/v1/blueprints/%s/compose" , tc . blueprintId .String ()), tc .payload )
787+ require .Equal (t , http .StatusCreated , respStatusCode , body )
741788
742789 var result []v1.ComposeResponse
743790 err = json .Unmarshal ([]byte (body ), & result )
0 commit comments