Skip to content

Commit fb45aff

Browse files
authored
Merge pull request #227 from lorenzorubi-db/master
chores: added timeout, verbose, repos parent directory
2 parents 7e98793 + 1ec7d95 commit fb45aff

File tree

4 files changed

+31
-13
lines changed

4 files changed

+31
-13
lines changed

dbclient/WorkspaceClient.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ def create_repo(self, repo_str, error_logger, checkpoint_repo_set):
922922
parent_directory = re.sub(r"^RESOURCE_DOES_NOT_EXIST: Parent directory ", '', resp.get('message'))
923923
parent_directory = re.sub(r" does not exist.$", '', parent_directory)
924924
if re.fullmatch(
925-
r'/Repos/.+\@.+', parent_directory
925+
r'/Repos/.+[^/]', parent_directory
926926
):
927927
logging.info(f"Creating parent directory {parent_directory}")
928928
resp2 = self.post('/workspace/mkdirs', {"path": parent_directory})

dbclient/dbclient.py

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -190,17 +190,21 @@ def req_session(self):
190190
self._local.session = session
191191
return self._local.session
192192

193-
def get(self, endpoint, json_params=None, version='2.0', print_json=False, do_not_throw=False):
193+
def get(self, endpoint, json_params=None, version='2.0', print_json=False, do_not_throw=False, timeout=10):
194194
if version:
195195
ver = version
196196
while True:
197197
full_endpoint = self._url + '/api/{0}'.format(ver) + endpoint
198198
if self.is_verbose():
199199
print("Get: {0}".format(full_endpoint))
200200
if json_params:
201-
raw_results = self.req_session().get(full_endpoint, headers=self._token, params=json_params, verify=self._verify_ssl)
201+
raw_results = self.req_session().get(
202+
full_endpoint, headers=self._token, params=json_params, verify=self._verify_ssl, timeout=timeout
203+
)
202204
else:
203-
raw_results = self.req_session().get(full_endpoint, headers=self._token, verify=self._verify_ssl)
205+
raw_results = self.req_session().get(
206+
full_endpoint, headers=self._token, verify=self._verify_ssl, timeout=timeout
207+
)
204208

205209
if self._should_retry_with_new_token(raw_results):
206210
continue
@@ -218,7 +222,7 @@ def get(self, endpoint, json_params=None, version='2.0', print_json=False, do_no
218222
results['http_status_code'] = http_status_code
219223
return results
220224

221-
def http_req(self, http_type, endpoint, json_params, version='2.0', print_json=False, files_json=None):
225+
def http_req(self, http_type, endpoint, json_params, version='2.0', print_json=False, files_json=None, timeout=10):
222226
if version:
223227
ver = version
224228
while True:
@@ -228,17 +232,25 @@ def http_req(self, http_type, endpoint, json_params, version='2.0', print_json=F
228232
if json_params:
229233
if http_type == 'post':
230234
if files_json:
231-
raw_results = self.req_session().post(full_endpoint, headers=self._token,
232-
data=json_params, files=files_json, verify=self._verify_ssl)
235+
raw_results = self.req_session().post(
236+
full_endpoint, headers=self._token, data=json_params, files=files_json,
237+
verify=self._verify_ssl, timeout=timeout
238+
)
233239
else:
234-
raw_results = self.req_session().post(full_endpoint, headers=self._token,
235-
json=json_params, verify=self._verify_ssl)
240+
raw_results = self.req_session().post(
241+
full_endpoint, headers=self._token, json=json_params, verify=self._verify_ssl,
242+
timeout=timeout
243+
)
236244
if http_type == 'put':
237-
raw_results = self.req_session().put(full_endpoint, headers=self._token,
238-
json=json_params, verify=self._verify_ssl)
245+
raw_results = self.req_session().put(
246+
full_endpoint, headers=self._token, json=json_params, verify=self._verify_ssl,
247+
timeout=timeout
248+
)
239249
if http_type == 'patch':
240-
raw_results = self.req_session().patch(full_endpoint, headers=self._token,
241-
json=json_params, verify=self._verify_ssl)
250+
raw_results = self.req_session().patch(
251+
full_endpoint, headers=self._token, json=json_params, verify=self._verify_ssl,
252+
timeout=timeout
253+
)
242254
else:
243255
print("Must have a payload in json_args param.")
244256
return {}

dbclient/parser.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,9 @@ def get_pipeline_parser() -> argparse.ArgumentParser:
461461
parser.add_argument('--silent', action='store_true', default=False,
462462
help='Silent all logging of export operations.')
463463

464+
parser.add_argument('--verbose', action='store_true', default=False,
465+
help='Verbose logging')
466+
464467
parser.add_argument('--no-ssl-verification', action='store_true',
465468
help='Set Verify=False when making http requests.')
466469

@@ -550,4 +553,5 @@ def get_pipeline_parser() -> argparse.ArgumentParser:
550553

551554
parser.add_argument('--groups-to-keep', nargs='+', type=str, default=[],
552555
help='List of groups (and therefore users/notebooks) to keep if specified')
556+
553557
return parser

migration_pipeline.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ def build_pipeline(args) -> Pipeline:
5555
client_config['base_dir'] = client_config['export_dir']
5656
client_config['export_dir'] = os.path.join(client_config['base_dir'], session) + '/'
5757

58+
client_config['verbose'] = args.verbose
59+
5860
if not args.dry_run:
5961
os.makedirs(client_config['export_dir'], exist_ok=True)
6062

0 commit comments

Comments
 (0)