@@ -513,23 +513,39 @@ def test_get_build_logs_s3_configured(
513513 'The "overwrite_from_index_token" parameter must be a string' ,
514514 ),
515515 (
516- {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'cnr_token' : True },
517- '"cnr_token" must be a string' ,
518- ),
519- (
520- {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'organization' : True },
516+ {
517+ 'from_index' : 'pull:spec' ,
518+ 'bundles' : ['some:thing' ],
519+ 'binary_image' : 'binary:image' ,
520+ 'organization' : True ,
521+ },
521522 '"organization" must be a string' ,
522523 ),
523524 (
524- {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'force_backport' : 'spam' },
525+ {
526+ 'from_index' : 'pull:spec' ,
527+ 'bundles' : ['some:thing' ],
528+ 'binary_image' : 'binary:image' ,
529+ 'force_backport' : 'spam' ,
530+ },
525531 '"force_backport" must be a boolean' ,
526532 ),
527533 (
528- {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'graph_update_mode' : 123 },
534+ {
535+ 'from_index' : 'pull:spec' ,
536+ 'bundles' : ['some:thing' ],
537+ 'binary_image' : 'binary:image' ,
538+ 'graph_update_mode' : 123 ,
539+ },
529540 '"graph_update_mode" must be a string' ,
530541 ),
531542 (
532- {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'graph_update_mode' : 'Hi' },
543+ {
544+ 'from_index' : 'pull:spec' ,
545+ 'bundles' : ['some:thing' ],
546+ 'binary_image' : 'binary:image' ,
547+ 'graph_update_mode' : 'Hi' ,
548+ },
533549 (
534550 '"graph_update_mode" must be set to one of these: [\' replaces\' , \' semver\' '
535551 ', \' semver-skippatch\' ]'
@@ -560,7 +576,7 @@ def test_add_bundles_overwrite_not_allowed(mock_smfsc, client, db):
560576 mock_smfsc .assert_not_called ()
561577
562578
563- @pytest .mark .parametrize ('from_index' , (None , 'some-random-index:v4.14' , 'some-common-index:v4.15' ))
579+ @pytest .mark .parametrize ('from_index' , ('some-random-index:v4.14' , 'some-common-index:v4.15' ))
564580@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
565581def test_add_bundles_graph_update_mode_not_allowed (
566582 mock_smfsc , app , client , auth_env , db , from_index
@@ -587,7 +603,7 @@ def test_add_bundles_graph_update_mode_not_allowed(
587603
588604@pytest .mark .parametrize ('from_index' , ('some-common-index:v4.15' , 'another-common-index:v4.15' ))
589605@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
590- @mock .patch ('iib.web.api_v1.handle_add_request ' )
606+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request ' )
591607def test_add_bundles_graph_update_mode_allowed (
592608 mock_har , mock_smfsc , app , client , auth_env , db , from_index
593609):
@@ -611,7 +627,7 @@ def test_add_bundles_graph_update_mode_allowed(
611627@mock .patch ('iib.web.api_v1.db.session' )
612628@mock .patch ('iib.web.api_v1.flask.jsonify' )
613629@mock .patch ('iib.web.api_v1.RequestAdd' )
614- @mock .patch ('iib.web.api_v1.handle_add_request .apply_async' )
630+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request .apply_async' )
615631@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
616632def test_add_bundles_unique_bundles (mock_smfsc , mock_har , mock_radd , mock_fj , mock_dbs , client ):
617633 data = {
@@ -690,15 +706,16 @@ def test_rm_operators_overwrite_not_allowed(mock_smfsc, client, db):
690706 ),
691707 (
692708 {'add_arches' : ['s390x' ], 'binary_image' : 'binary:image' },
693- '"from_index" must be specified if no bundles are specified ' ,
709+ 'The input "from_index" is required. ' ,
694710 ),
695- ({'add_arches' : ['s390x' ]}, '"from_index" must be specified if no bundles are specified ' ),
711+ ({'add_arches' : ['s390x' ]}, 'The input "from_index" is required. ' ),
696712 (
697713 {
698714 'bundles' : ['some:thing' ],
699715 'binary_image' : 'binary:image' ,
700716 'add_arches' : ['s390x' ],
701717 'overwrite_from_index_token' : 'username:password' ,
718+ 'from_index' : 'pull:spec' ,
702719 },
703720 (
704721 'The "overwrite_from_index" parameter is required when the '
@@ -758,6 +775,7 @@ def test_add_bundle_invalid_param(mock_smfsc, db, auth_env, client):
758775 'best_batsman' : 'Virat Kohli' ,
759776 'binary_image' : 'binary:image' ,
760777 'bundles' : ['some:thing' ],
778+ 'from_index' : 'pull:spec' ,
761779 }
762780
763781 rv = client .post ('/api/v1/builds/add' , json = data , environ_base = auth_env )
@@ -802,16 +820,6 @@ def test_rm_bundle_from_invalid_distribution_scope(mock_smfsc, db, auth_env, cli
802820 mock_smfsc .assert_not_called ()
803821
804822
805- @mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
806- def test_add_bundle_from_index_and_add_arches_missing (mock_smfsc , db , auth_env , client ):
807- data = {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' }
808-
809- rv = client .post ('/api/v1/builds/add' , json = data , environ_base = auth_env )
810- assert rv .status_code == 400
811- assert rv .json ['error' ] == 'One of "from_index" or "add_arches" must be specified'
812- mock_smfsc .assert_not_called ()
813-
814-
815823@pytest .mark .parametrize (
816824 (
817825 'binary_image' ,
@@ -823,14 +831,14 @@ def test_add_bundle_from_index_and_add_arches_missing(mock_smfsc, db, auth_env,
823831 'graph_update_mode' ,
824832 ),
825833 (
826- ('binary:image' , False , None , ['some:thing' ], None , None , None ),
834+ ('binary:image' , False , None , ['some:thing' ], 'some:thing' , None , None ),
827835 ('binary:image' , False , None , ['some:thing' ], 'some:thing' , None , 'semver' ),
828836 ('binary:image' , False , None , [], 'some:thing' , 'Prod' , 'semver-skippatch' ),
829837 ('scratch' , True , 'username:password' , ['some:thing' ], 'some:thing' , 'StagE' , 'replaces' ),
830838 ('scratch' , True , 'username:password' , [], 'some:thing' , 'DeV' , 'semver' ),
831839 ),
832840)
833- @mock .patch ('iib.web.api_v1.handle_add_request ' )
841+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request ' )
834842@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
835843def test_add_bundle_success (
836844 mock_smfsc ,
@@ -851,8 +859,6 @@ def test_add_bundle_success(
851859 data = {
852860 'binary_image' : binary_image ,
853861 'add_arches' : ['s390x' ],
854- 'organization' : 'org' ,
855- 'cnr_token' : 'token' ,
856862 'overwrite_from_index' : overwrite_from_index ,
857863 'overwrite_from_index_token' : overwrite_from_index_token ,
858864 'from_index' : from_index ,
@@ -898,7 +904,7 @@ def test_add_bundle_success(
898904 'expiration' : '2020-02-15T17:03:00Z' ,
899905 },
900906 'omps_operator_version' : {},
901- 'organization' : 'org' ,
907+ 'organization' : None ,
902908 'state_history' : [
903909 {
904910 'state' : 'in_progress' ,
@@ -918,31 +924,12 @@ def test_add_bundle_success(
918924 rv_json ['logs' ]['expiration' ] = '2020-02-15T17:03:00Z'
919925 assert rv .status_code == 201
920926 assert response_json == rv_json
921- assert 'cnr_token' not in rv_json
922927 assert 'token' not in mock_har .apply_async .call_args [1 ]['argsrepr' ]
923- assert '*****' in mock_har .apply_async .call_args [1 ]['argsrepr' ]
924928 mock_har .apply_async .assert_called_once ()
925929 mock_smfsc .assert_called_once_with (mock .ANY , new_batch_msg = True )
926930
927931
928- @pytest .mark .parametrize ('force_backport' , (False , True ))
929- @mock .patch ('iib.web.api_v1.handle_add_request' )
930- def test_add_bundle_force_backport (mock_har , force_backport , db , auth_env , client ):
931- data = {
932- 'bundles' : ['some:thing' ],
933- 'binary_image' : 'binary:image' ,
934- 'from_index' : 'index:image' ,
935- 'force_backport' : force_backport ,
936- }
937-
938- rv = client .post ('/api/v1/builds/add' , json = data , environ_base = auth_env )
939- assert rv .status_code == 201
940- mock_har .apply_async .assert_called_once ()
941- # Eigth element in args is the force_backport parameter
942- assert mock_har .apply_async .call_args [1 ]['args' ][7 ] == force_backport
943-
944-
945- @mock .patch ('iib.web.api_v1.handle_add_request' )
932+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request' )
946933@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
947934def test_add_bundle_overwrite_token_redacted (mock_smfsc , mock_har , app , auth_env , client , db ):
948935 token = 'username:password'
@@ -952,20 +939,20 @@ def test_add_bundle_overwrite_token_redacted(mock_smfsc, mock_har, app, auth_env
952939 'add_arches' : ['amd64' ],
953940 'overwrite_from_index' : True ,
954941 'overwrite_from_index_token' : token ,
942+ 'from_index' : 'pull:spec' ,
955943 }
956944
957945 rv = client .post ('/api/v1/builds/add' , json = data , environ_base = auth_env )
958946 rv_json = rv .json
959947 assert rv .status_code == 201
960948 mock_har .apply_async .assert_called_once ()
961949 # Tenth to last element in args is the overwrite_from_index parameter
962- assert mock_har .apply_async .call_args [1 ]['args' ][- 11 ] is True
950+ assert mock_har .apply_async .call_args [1 ]['args' ][- 10 ] is True
963951 # Ninth to last element in args is the overwrite_from_index_token parameter
964- assert mock_har .apply_async .call_args [1 ]['args' ][- 10 ] == token
952+ assert mock_har .apply_async .call_args [1 ]['args' ][- 9 ] == token
965953 assert 'overwrite_from_index_token' not in rv_json
966954 assert token not in json .dumps (rv_json )
967955 assert token not in mock_har .apply_async .call_args [1 ]['argsrepr' ]
968- assert '*****' in mock_har .apply_async .call_args [1 ]['argsrepr' ]
969956
970957
971958@pytest .mark .parametrize (
@@ -1002,13 +989,18 @@ def test_add_bundle_overwrite_token_redacted(mock_smfsc, mock_har, app, auth_env
1002989 ({'[email protected] ' : 'Patriots' }, True , None ), 1003990 ),
1004991)
1005- @mock .patch ('iib.web.api_v1.handle_add_request ' )
992+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request ' )
1006993@mock .patch ('iib.web.api_v1.messaging.send_message_for_state_change' )
1007994def test_add_bundle_custom_user_queue (
1008995 mock_smfsc , mock_har , app , auth_env , client , user_to_queue , overwrite_from_index , expected_queue
1009996):
1010997 app .config ['IIB_USER_TO_QUEUE' ] = user_to_queue
1011- data = {'bundles' : ['some:thing' ], 'binary_image' : 'binary:image' , 'add_arches' : ['s390x' ]}
998+ data = {
999+ 'bundles' : ['some:thing' ],
1000+ 'binary_image' : 'binary:image' ,
1001+ 'add_arches' : ['s390x' ],
1002+ 'from_index' : 'pull:spec' ,
1003+ }
10121004 if overwrite_from_index :
10131005 data ['from_index' ] = 'index:image'
10141006 data ['overwrite_from_index' ] = True
@@ -1820,7 +1812,7 @@ def test_regenerate_bundle_batch_invalid_input(payload, error_msg, app, auth_env
18201812 assert rv .json == {'error' : error_msg }
18211813
18221814
1823- @mock .patch ('iib.web.api_v1.handle_add_request ' )
1815+ @mock .patch ('iib.web.api_v1.handle_containerized_add_request ' )
18241816@mock .patch ('iib.web.api_v1.handle_containerized_rm_request' )
18251817@mock .patch ('iib.web.api_v1.messaging.send_messages_for_new_batch_of_requests' )
18261818@mock .patch .dict ('iib.web.api_v1.flask.current_app.config' , {'IIB_INDEX_TO_GITLAB_PUSH_MAP' : {}})
@@ -1834,8 +1826,6 @@ def test_add_rm_batch_success(mock_smfnbor, mock_hrr, mock_har, app, auth_env, c
18341826 'binary_image' : 'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5' ,
18351827 'from_index' : 'registry-proxy/rh-osbs-stage/iib:v4.5' ,
18361828 'add_arches' : ['amd64' ],
1837- 'cnr_token' : 'no_tom_brady_anymore' ,
1838- 'organization' : 'hello-operator' ,
18391829 'overwrite_from_index' : True ,
18401830 'overwrite_from_index_token' : 'some_token' ,
18411831 },
@@ -1860,13 +1850,9 @@ def test_add_rm_batch_success(mock_smfnbor, mock_hrr, mock_har, app, auth_env, c
18601850 'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5' ,
18611851 'registry-proxy/rh-osbs-stage/iib:v4.5' ,
18621852 ['amd64' ],
1863- 'no_tom_brady_anymore' ,
1864- 'hello-operator' ,
1865- None ,
18661853 True ,
18671854 'some_token' ,
18681855 None ,
1869- None ,
18701856 {},
18711857 [],
18721858 [],
@@ -1875,11 +1861,10 @@ def test_add_rm_batch_success(mock_smfnbor, mock_hrr, mock_har, app, auth_env, c
18751861 {}, # index_to_gitlab_push_map from config (empty in test)
18761862 ],
18771863 argsrepr = (
1878- "[['registry-proxy/rh-osbs/lgallett-bundle:v1.0-9'], "
1879- "1, 'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5', "
1880- "'registry-proxy/rh-osbs-stage/iib:v4.5', ['amd64'], '*****', "
1881- "'hello-operator', None, True, '*****', None, None, {}, [], [], None, "
1882- "False, {}]"
1864+ "[['registry-proxy/rh-osbs/lgallett-bundle:v1.0-9'], 1, "
1865+ "'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5', "
1866+ "'registry-proxy/rh-osbs-stage/iib:v4.5', ['amd64'], True, '*****', "
1867+ "None, {}, [], [], None, False, {}]"
18831868 ),
18841869 link_error = mock .ANY ,
18851870 queue = None ,
@@ -1904,8 +1889,8 @@ def test_add_rm_batch_success(mock_smfnbor, mock_hrr, mock_har, app, auth_env, c
19041889 ],
19051890 argsrepr = (
19061891 "[['kiali-ossm'], 2, 'registry:8443/iib-build:11', "
1907- "'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5'"
1908- ", None, False, None, None, {}, [], {}]"
1892+ "'registry-proxy/rh-osbs/openshift-ose-operator-registry:v4.5', "
1893+ "None, False, None, None, {}, [], {}]"
19091894 ),
19101895 link_error = mock .ANY ,
19111896 queue = None ,
0 commit comments