summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSun Austin <austin.sun@intel.com>2019-01-02 11:43:54 +0800
committerAustin Sun <austin.sun@intel.com>2019-01-15 00:33:54 +0000
commit6022c0420d6cf6b29817d1059a34f12b61b4fc7b (patch)
tree54c0a82feae4a85966915abc238300c147fdc00d
parent5e9dc4838422af9daa688f2b44a7db5eb091c4c5 (diff)
FIX other issues for Python 2/3 compatible code
change func.func_name to func.__name__ change itertools.izip_longest to six.moves.zip_longest change self.assertRaisesRegexp(xxx) to six.assertRaisesRegex(self,xx) use absolute import path Story: 2004585 Task: 28447 Change-Id: I2b4814fb6f96feb90ad0a081ffcab5c72160b0f7 Signed-off-by: Sun Austin <austin.sun@intel.com>
Notes
Notes (review): Code-Review+2: Bart Wensley <barton.wensley@windriver.com> Code-Review+2: John Kung <john.kung@windriver.com> Workflow+1: Bart Wensley <barton.wensley@windriver.com> Verified+2: Zuul Submitted-by: Zuul Submitted-at: Fri, 18 Jan 2019 15:00:23 +0000 Reviewed-on: https://review.openstack.org/629406 Project: openstack/stx-distcloud Branch: refs/heads/master
-rw-r--r--dcmanager/common/utils.py3
-rw-r--r--dcmanager/tests/unit/api/v1/controllers/test_subclouds.py85
-rw-r--r--dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py37
-rw-r--r--dcorch/common/utils.py3
-rw-r--r--dcorch/engine/sync_thread.py2
5 files changed, 67 insertions, 63 deletions
diff --git a/dcmanager/common/utils.py b/dcmanager/common/utils.py
index 64a9f10..a59c5bf 100644
--- a/dcmanager/common/utils.py
+++ b/dcmanager/common/utils.py
@@ -21,6 +21,7 @@
21# 21#
22 22
23import itertools 23import itertools
24import six.moves
24 25
25from dcmanager.common import consts 26from dcmanager.common import consts
26from dcmanager.common import exceptions 27from dcmanager.common import exceptions
@@ -35,7 +36,7 @@ def get_import_path(cls):
35# Returns a iterator of tuples containing batch_size number of objects in each 36# Returns a iterator of tuples containing batch_size number of objects in each
36def get_batch_projects(batch_size, project_list, fillvalue=None): 37def get_batch_projects(batch_size, project_list, fillvalue=None):
37 args = [iter(project_list)] * batch_size 38 args = [iter(project_list)] * batch_size
38 return itertools.izip_longest(fillvalue=fillvalue, *args) 39 return six.moves.zip_longest(fillvalue=fillvalue, *args)
39 40
40 41
41# to do validate the quota limits 42# to do validate the quota limits
diff --git a/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py b/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py
index 61543d2..321c1ec 100644
--- a/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py
+++ b/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py
@@ -22,6 +22,7 @@
22 22
23import copy 23import copy
24import mock 24import mock
25import six
25import webtest 26import webtest
26 27
27from dcmanager.api.controllers.v1 import subclouds 28from dcmanager.api.controllers.v1 import subclouds
@@ -96,9 +97,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
96 '192.168.204.2', 97 '192.168.204.2',
97 '192.168.204.100') 98 '192.168.204.100')
98 mock_get_management_address_pool.return_value = management_address_pool 99 mock_get_management_address_pool.return_value = management_address_pool
99 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 100 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
100 self.app.post_json, FAKE_URL, 101 self.app.post_json, FAKE_URL,
101 headers=FAKE_HEADERS, params=data) 102 headers=FAKE_HEADERS, params=data)
102 103
103 @mock.patch.object(subclouds.SubcloudsController, 104 @mock.patch.object(subclouds.SubcloudsController,
104 '_get_management_address_pool') 105 '_get_management_address_pool')
@@ -111,18 +112,18 @@ class TestSubclouds(testroot.DCManagerApiTest):
111 '192.168.204.2', 112 '192.168.204.2',
112 '192.168.204.254') 113 '192.168.204.254')
113 mock_get_management_address_pool.return_value = management_address_pool 114 mock_get_management_address_pool.return_value = management_address_pool
114 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 115 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
115 self.app.post_json, FAKE_URL, 116 self.app.post_json, FAKE_URL,
116 headers=FAKE_HEADERS, params=data) 117 headers=FAKE_HEADERS, params=data)
117 118
118 @mock.patch.object(rpc_client, 'ManagerClient') 119 @mock.patch.object(rpc_client, 'ManagerClient')
119 @mock.patch.object(subclouds, 'db_api') 120 @mock.patch.object(subclouds, 'db_api')
120 def test_post_subcloud_bad_subnet(self, mock_db_api, mock_rpc_client): 121 def test_post_subcloud_bad_subnet(self, mock_db_api, mock_rpc_client):
121 data = copy.copy(FAKE_SUBCLOUD_DATA) 122 data = copy.copy(FAKE_SUBCLOUD_DATA)
122 data["management-subnet"] = "192.168.101.0/32" 123 data["management-subnet"] = "192.168.101.0/32"
123 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 124 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
124 self.app.post_json, FAKE_URL, 125 self.app.post_json, FAKE_URL,
125 headers=FAKE_HEADERS, params=data) 126 headers=FAKE_HEADERS, params=data)
126 127
127 @mock.patch.object(rpc_client, 'ManagerClient') 128 @mock.patch.object(rpc_client, 'ManagerClient')
128 @mock.patch.object(subclouds, 'db_api') 129 @mock.patch.object(subclouds, 'db_api')
@@ -131,9 +132,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
131 data["management-subnet"] = "192.168.101.0/24" 132 data["management-subnet"] = "192.168.101.0/24"
132 data["management-start-ip"] = "192.168.100.2" 133 data["management-start-ip"] = "192.168.100.2"
133 data["management-end-ip"] = "192.168.100.50" 134 data["management-end-ip"] = "192.168.100.50"
134 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 135 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
135 self.app.post_json, FAKE_URL, 136 self.app.post_json, FAKE_URL,
136 headers=FAKE_HEADERS, params=data) 137 headers=FAKE_HEADERS, params=data)
137 138
138 @mock.patch.object(rpc_client, 'ManagerClient') 139 @mock.patch.object(rpc_client, 'ManagerClient')
139 @mock.patch.object(subclouds, 'db_api') 140 @mock.patch.object(subclouds, 'db_api')
@@ -141,9 +142,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
141 data = copy.copy(FAKE_SUBCLOUD_DATA) 142 data = copy.copy(FAKE_SUBCLOUD_DATA)
142 data["management-start-ip"] = "192.168.101.2" 143 data["management-start-ip"] = "192.168.101.2"
143 data["management-end-ip"] = "192.168.100.100" 144 data["management-end-ip"] = "192.168.100.100"
144 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 145 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
145 self.app.post_json, FAKE_URL, 146 self.app.post_json, FAKE_URL,
146 headers=FAKE_HEADERS, params=data) 147 headers=FAKE_HEADERS, params=data)
147 148
148 @mock.patch.object(rpc_client, 'ManagerClient') 149 @mock.patch.object(rpc_client, 'ManagerClient')
149 @mock.patch.object(subclouds, 'db_api') 150 @mock.patch.object(subclouds, 'db_api')
@@ -151,9 +152,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
151 data = copy.copy(FAKE_SUBCLOUD_DATA) 152 data = copy.copy(FAKE_SUBCLOUD_DATA)
152 data["management-start-ip"] = "192.168.101.2" 153 data["management-start-ip"] = "192.168.101.2"
153 data["management-end-ip"] = "192.168.101.4" 154 data["management-end-ip"] = "192.168.101.4"
154 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 155 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
155 self.app.post_json, FAKE_URL, 156 self.app.post_json, FAKE_URL,
156 headers=FAKE_HEADERS, params=data) 157 headers=FAKE_HEADERS, params=data)
157 158
158 @mock.patch.object(rpc_client, 'ManagerClient') 159 @mock.patch.object(rpc_client, 'ManagerClient')
159 @mock.patch.object(subclouds, 'db_api') 160 @mock.patch.object(subclouds, 'db_api')
@@ -161,31 +162,31 @@ class TestSubclouds(testroot.DCManagerApiTest):
161 data = copy.copy(FAKE_SUBCLOUD_DATA) 162 data = copy.copy(FAKE_SUBCLOUD_DATA)
162 data["management-start-ip"] = "192.168.101.20" 163 data["management-start-ip"] = "192.168.101.20"
163 data["management-end-ip"] = "192.168.101.4" 164 data["management-end-ip"] = "192.168.101.4"
164 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 165 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
165 self.app.post_json, FAKE_URL, 166 self.app.post_json, FAKE_URL,
166 headers=FAKE_HEADERS, params=data) 167 headers=FAKE_HEADERS, params=data)
167 168
168 @mock.patch.object(rpc_client, 'ManagerClient') 169 @mock.patch.object(rpc_client, 'ManagerClient')
169 def test_post_subcloud_wrong_url(self, mock_rpc_client): 170 def test_post_subcloud_wrong_url(self, mock_rpc_client):
170 data = FAKE_SUBCLOUD_DATA 171 data = FAKE_SUBCLOUD_DATA
171 self.assertRaisesRegexp(webtest.app.AppError, "404 *", 172 six.assertRaisesRegex(self, webtest.app.AppError, "404 *",
172 self.app.post_json, WRONG_URL, 173 self.app.post_json, WRONG_URL,
173 headers=FAKE_HEADERS, params=data) 174 headers=FAKE_HEADERS, params=data)
174 175
175 @mock.patch.object(rpc_client, 'ManagerClient') 176 @mock.patch.object(rpc_client, 'ManagerClient')
176 def test_post_no_body(self, mock_rpc_client): 177 def test_post_no_body(self, mock_rpc_client):
177 data = {} 178 data = {}
178 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 179 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
179 self.app.post_json, FAKE_URL, 180 self.app.post_json, FAKE_URL,
180 headers=FAKE_HEADERS, params=data) 181 headers=FAKE_HEADERS, params=data)
181 182
182 @mock.patch.object(rpc_client, 'ManagerClient') 183 @mock.patch.object(rpc_client, 'ManagerClient')
183 def test_post_no_name(self, mock_rpc_client): 184 def test_post_no_name(self, mock_rpc_client):
184 data = dict(FAKE_SUBCLOUD_DATA) 185 data = dict(FAKE_SUBCLOUD_DATA)
185 del data['name'] 186 del data['name']
186 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 187 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
187 self.app.post_json, FAKE_URL, 188 self.app.post_json, FAKE_URL,
188 headers=FAKE_HEADERS, params=data) 189 headers=FAKE_HEADERS, params=data)
189 190
190 @mock.patch.object(subclouds.SubcloudsController, 191 @mock.patch.object(subclouds.SubcloudsController,
191 '_create_subcloud_config_file') 192 '_create_subcloud_config_file')
@@ -212,9 +213,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
212 @mock.patch.object(rpc_client, 'ManagerClient') 213 @mock.patch.object(rpc_client, 'ManagerClient')
213 def test_delete_wrong_request(self, mock_rpc_client): 214 def test_delete_wrong_request(self, mock_rpc_client):
214 delete_url = WRONG_URL + '/' + FAKE_ID 215 delete_url = WRONG_URL + '/' + FAKE_ID
215 self.assertRaisesRegex(webtest.app.AppError, "404 *", 216 six.assertRaisesRegex(self, webtest.app.AppError, "404 *",
216 self.app.delete_json, delete_url, 217 self.app.delete_json, delete_url,
217 headers=FAKE_HEADERS) 218 headers=FAKE_HEADERS)
218 219
219 @mock.patch.object(rpc_client, 'ManagerClient') 220 @mock.patch.object(rpc_client, 'ManagerClient')
220 @mock.patch.object(subclouds, 'db_api') 221 @mock.patch.object(subclouds, 'db_api')
@@ -227,9 +228,9 @@ class TestSubclouds(testroot.DCManagerApiTest):
227 @mock.patch.object(subclouds, 'db_api') 228 @mock.patch.object(subclouds, 'db_api')
228 def test_get_wrong_request(self, mock_db_api, mock_rpc_client): 229 def test_get_wrong_request(self, mock_db_api, mock_rpc_client):
229 get_url = WRONG_URL + '/' + FAKE_ID 230 get_url = WRONG_URL + '/' + FAKE_ID
230 self.assertRaisesRegex(webtest.app.AppError, "404 *", 231 six.assertRaisesRegex(self, webtest.app.AppError, "404 *",
231 self.app.get, get_url, 232 self.app.get, get_url,
232 headers=FAKE_HEADERS) 233 headers=FAKE_HEADERS)
233 234
234 @mock.patch.object(rpc_client, 'ManagerClient') 235 @mock.patch.object(rpc_client, 'ManagerClient')
235 @mock.patch.object(subclouds, 'db_api') 236 @mock.patch.object(subclouds, 'db_api')
@@ -258,14 +259,14 @@ class TestSubclouds(testroot.DCManagerApiTest):
258 @mock.patch.object(rpc_client, 'ManagerClient') 259 @mock.patch.object(rpc_client, 'ManagerClient')
259 def test_patch_subcloud_no_body(self, mock_rpc_client): 260 def test_patch_subcloud_no_body(self, mock_rpc_client):
260 data = {} 261 data = {}
261 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 262 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
262 self.app.patch_json, FAKE_URL + '/' + FAKE_ID, 263 self.app.patch_json, FAKE_URL + '/' + FAKE_ID,
263 headers=FAKE_HEADERS, params=data) 264 headers=FAKE_HEADERS, params=data)
264 265
265 @mock.patch.object(rpc_client, 'ManagerClient') 266 @mock.patch.object(rpc_client, 'ManagerClient')
266 @mock.patch.object(subclouds, 'db_api') 267 @mock.patch.object(subclouds, 'db_api')
267 def test_patch_subcloud_bad_status(self, mock_db_api, mock_rpc_client): 268 def test_patch_subcloud_bad_status(self, mock_db_api, mock_rpc_client):
268 data = {'management-state': 'bad-status'} 269 data = {'management-state': 'bad-status'}
269 self.assertRaisesRegex(webtest.app.AppError, "400 *", 270 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
270 self.app.patch_json, FAKE_URL + '/' + FAKE_ID, 271 self.app.patch_json, FAKE_URL + '/' + FAKE_ID,
271 headers=FAKE_HEADERS, params=data) 272 headers=FAKE_HEADERS, params=data)
diff --git a/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py b/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py
index c2b831c..a6061df 100644
--- a/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py
+++ b/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py
@@ -22,6 +22,7 @@
22 22
23import copy 23import copy
24import mock 24import mock
25import six
25import webtest 26import webtest
26 27
27from dcmanager.api.controllers.v1 import sw_update_strategy 28from dcmanager.api.controllers.v1 import sw_update_strategy
@@ -75,18 +76,18 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest):
75 def test_post_sw_update_bad_type(self, mock_db_api, mock_rpc_client): 76 def test_post_sw_update_bad_type(self, mock_db_api, mock_rpc_client):
76 data = copy.copy(FAKE_SW_UPDATE_DATA) 77 data = copy.copy(FAKE_SW_UPDATE_DATA)
77 data["type"] = "bad type" 78 data["type"] = "bad type"
78 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 79 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
79 self.app.post_json, FAKE_URL, 80 self.app.post_json, FAKE_URL,
80 headers=FAKE_HEADERS, params=data) 81 headers=FAKE_HEADERS, params=data)
81 82
82 @mock.patch.object(rpc_client, 'ManagerClient') 83 @mock.patch.object(rpc_client, 'ManagerClient')
83 @mock.patch.object(sw_update_strategy, 'db_api') 84 @mock.patch.object(sw_update_strategy, 'db_api')
84 def test_post_sw_update_bad_apply_type(self, mock_db_api, mock_rpc_client): 85 def test_post_sw_update_bad_apply_type(self, mock_db_api, mock_rpc_client):
85 data = copy.copy(FAKE_SW_UPDATE_DATA) 86 data = copy.copy(FAKE_SW_UPDATE_DATA)
86 data["subcloud-apply-type"] = "bad type" 87 data["subcloud-apply-type"] = "bad type"
87 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 88 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
88 self.app.post_json, FAKE_URL, 89 self.app.post_json, FAKE_URL,
89 headers=FAKE_HEADERS, params=data) 90 headers=FAKE_HEADERS, params=data)
90 91
91 @mock.patch.object(rpc_client, 'ManagerClient') 92 @mock.patch.object(rpc_client, 'ManagerClient')
92 @mock.patch.object(sw_update_strategy, 'db_api') 93 @mock.patch.object(sw_update_strategy, 'db_api')
@@ -94,24 +95,24 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest):
94 self, mock_db_api, mock_rpc_client): 95 self, mock_db_api, mock_rpc_client):
95 data = copy.copy(FAKE_SW_UPDATE_DATA) 96 data = copy.copy(FAKE_SW_UPDATE_DATA)
96 data["max-parallel-subclouds"] = "not an integer" 97 data["max-parallel-subclouds"] = "not an integer"
97 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 98 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
98 self.app.post_json, FAKE_URL, 99 self.app.post_json, FAKE_URL,
99 headers=FAKE_HEADERS, params=data) 100 headers=FAKE_HEADERS, params=data)
100 101
101 @mock.patch.object(rpc_client, 'ManagerClient') 102 @mock.patch.object(rpc_client, 'ManagerClient')
102 def test_post_no_body(self, mock_rpc_client): 103 def test_post_no_body(self, mock_rpc_client):
103 data = {} 104 data = {}
104 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 105 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
105 self.app.post_json, FAKE_URL, 106 self.app.post_json, FAKE_URL,
106 headers=FAKE_HEADERS, params=data) 107 headers=FAKE_HEADERS, params=data)
107 108
108 @mock.patch.object(rpc_client, 'ManagerClient') 109 @mock.patch.object(rpc_client, 'ManagerClient')
109 def test_post_no_type(self, mock_rpc_client): 110 def test_post_no_type(self, mock_rpc_client):
110 data = copy.copy(FAKE_SW_UPDATE_DATA) 111 data = copy.copy(FAKE_SW_UPDATE_DATA)
111 del data['type'] 112 del data['type']
112 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 113 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
113 self.app.post_json, FAKE_URL, 114 self.app.post_json, FAKE_URL,
114 headers=FAKE_HEADERS, params=data) 115 headers=FAKE_HEADERS, params=data)
115 116
116 @mock.patch.object(rpc_client, 'ManagerClient') 117 @mock.patch.object(rpc_client, 'ManagerClient')
117 @mock.patch.object(sw_update_strategy, 'db_api') 118 @mock.patch.object(sw_update_strategy, 'db_api')
@@ -140,9 +141,9 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest):
140 def test_post_sw_update_bad_action(self, mock_db_api, mock_rpc_client): 141 def test_post_sw_update_bad_action(self, mock_db_api, mock_rpc_client):
141 data = copy.copy(FAKE_SW_UPDATE_APPLY_DATA) 142 data = copy.copy(FAKE_SW_UPDATE_APPLY_DATA)
142 data["action"] = "bad action" 143 data["action"] = "bad action"
143 self.assertRaisesRegexp(webtest.app.AppError, "400 *", 144 six.assertRaisesRegex(self, webtest.app.AppError, "400 *",
144 self.app.post_json, FAKE_URL, 145 self.app.post_json, FAKE_URL,
145 headers=FAKE_HEADERS, params=data) 146 headers=FAKE_HEADERS, params=data)
146 147
147 @mock.patch.object(rpc_client, 'ManagerClient') 148 @mock.patch.object(rpc_client, 'ManagerClient')
148 @mock.patch.object(sw_update_strategy, 'db_api') 149 @mock.patch.object(sw_update_strategy, 'db_api')
diff --git a/dcorch/common/utils.py b/dcorch/common/utils.py
index 40c47d7..997bd3c 100644
--- a/dcorch/common/utils.py
+++ b/dcorch/common/utils.py
@@ -14,6 +14,7 @@
14# limitations under the License. 14# limitations under the License.
15 15
16import itertools 16import itertools
17import six.moves
17 18
18from dcorch.common import consts 19from dcorch.common import consts
19from dcorch.common import exceptions 20from dcorch.common import exceptions
@@ -34,7 +35,7 @@ def get_import_path(cls):
34# Returns a iterator of tuples containing batch_size number of objects in each 35# Returns a iterator of tuples containing batch_size number of objects in each
35def get_batch_projects(batch_size, project_list, fillvalue=None): 36def get_batch_projects(batch_size, project_list, fillvalue=None):
36 args = [iter(project_list)] * batch_size 37 args = [iter(project_list)] * batch_size
37 return itertools.izip_longest(fillvalue=fillvalue, *args) 38 return six.moves.zip_longest(fillvalue=fillvalue, *args)
38 39
39 40
40# to do validate the quota limits 41# to do validate the quota limits
diff --git a/dcorch/engine/sync_thread.py b/dcorch/engine/sync_thread.py
index 3b55852..c54ae4e 100644
--- a/dcorch/engine/sync_thread.py
+++ b/dcorch/engine/sync_thread.py
@@ -220,7 +220,7 @@ class SyncThread(object):
220 sync_request.orch_job.resource_id) 220 sync_request.orch_job.resource_id)
221 handler = self.sync_handler_map[rsrc.resource_type] 221 handler = self.sync_handler_map[rsrc.resource_type]
222 LOG.info("Invoking {} for {} [{}]".format( 222 LOG.info("Invoking {} for {} [{}]".format(
223 handler.func_name, rsrc.resource_type, 223 handler.__name__, rsrc.resource_type,
224 sync_request.orch_job.operation_type), extra=self.log_extra) 224 sync_request.orch_job.operation_type), extra=self.log_extra)
225 handler(sync_request, rsrc) 225 handler(sync_request, rsrc)
226 226