Skip to content

Commit 7b75f6a

Browse files
rasmunkjonasbardino
authored andcommitted
Merge the changes introduced in PR #247
git-svn-id: svn+ssh://svn.code.sf.net/p/migrid/code/trunk@6242 b75ad72c-e7d7-11dd-a971-7dbc132099af
1 parent c841d14 commit 7b75f6a

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

mig/shared/functionality/reqjupyterservice.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,14 @@
5252
import time
5353
import shutil
5454
import random
55-
import requests
55+
try:
56+
import requests
57+
except ImportError as err:
58+
requests = None
5659

5760
from mig.shared import returnvalues
5861
from mig.shared.base import client_id_dir, extract_field
62+
from mig.shared.conf import get_configuration_object
5963
from mig.shared.defaults import session_id_bytes
6064
from mig.shared.fileio import make_symlink, pickle, unpickle, write_file, \
6165
delete_symlink, delete_file
@@ -68,6 +72,18 @@
6872
get_workflow_session_id
6973

7074

75+
def __bail_out_requests(*args, **kwargs):
76+
"""Helper for dynamic bail out on actual use"""
77+
raise Exception("jupyter functions require requests")
78+
79+
80+
def __require_requests(func):
81+
"""Internal helper to verify requests module availability on use"""
82+
if requests is None:
83+
return __bail_out_requests
84+
return func
85+
86+
7187
def is_active(pickle_state, timeout=7200):
7288
"""
7389
:param pickle_state: expects a pickle object dictionary that
@@ -212,7 +228,7 @@ def get_newest_mount(jupyter_mounts):
212228
old_mounts.append(mount)
213229
return latest, old_mounts
214230

215-
231+
@__require_requests
216232
def get_host_from_service(configuration, service, base_url=None):
217233
"""
218234
Returns a URL from one of the services available hosts,
@@ -318,7 +334,7 @@ def signature():
318334
}
319335
return ['', defaults]
320336

321-
337+
@__require_requests
322338
def main(client_id, user_arguments_dict):
323339
"""Main function used by front end"""
324340
(configuration, logger, output_objects, op_name) = \
@@ -350,12 +366,7 @@ def main(client_id, user_arguments_dict):
350366
{'object_type': 'error_text', 'text':
351367
'The required sftp service is not enabled on the system'})
352368
return (output_objects, returnvalues.SYSTEM_ERROR)
353-
354-
if configuration.site_enable_sftp:
355-
sftp_port = configuration.user_sftp_port
356-
357-
if configuration.site_enable_sftp_subsys:
358-
sftp_port = configuration.user_sftp_subsys_port
369+
sftp_port = configuration.user_sftp_show_port
359370

360371
requested_service = accepted['service'][-1]
361372
service = {k: v for options in configuration.jupyter_services
@@ -653,7 +664,6 @@ def main(client_id, user_arguments_dict):
653664

654665

655666
if __name__ == "__main__":
656-
from mig.shared.conf import get_configuration_object
657667
if not os.environ.get('MIG_CONF', ''):
658668
conf_path = os.path.join(os.path.dirname(sys.argv[0]),
659669
'..', '..', 'server', 'MiGserver.conf')

0 commit comments

Comments
 (0)