Skip to content

Commit f415e28

Browse files
committed
Merge remote-tracking branch 'upstream/pr/139' into dev
2 parents 14ed789 + 648cf4c commit f415e28

File tree

2 files changed

+15
-17
lines changed

2 files changed

+15
-17
lines changed

batchspawner/api.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
class BatchSpawnerAPIHandler(APIHandler):
66
@web.authenticated
77
def post(self):
8-
"""POST set user's spawner port number"""
8+
"""POST set user spawner data"""
99
user = self.get_current_user()
1010
data = self.get_json_body()
11-
port = int(data.get('port', 0))
12-
user.spawner.current_port = port
13-
self.finish(json.dumps({"message": "BatchSpawner port configured"}))
11+
for key, value in data.items():
12+
if hasattr(user.spawner, key):
13+
setattr(user.spawner, key, value)
14+
self.finish(json.dumps({"message": "BatchSpawner data configured"}))
1415
self.set_status(201)
1516

1617
default_handlers.append((r"/api/batchspawner", BatchSpawnerAPIHandler))

batchspawner/batchspawner.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,6 @@ def _req_keepvars_default(self):
165165
# Will get the raw output of the job status command unless overridden
166166
job_status = Unicode()
167167

168-
# Will get the address of the server as reported by job manager
169-
current_ip = Unicode()
170-
171-
# Will get the port of the server as reported by singleserver
172-
current_port = Integer()
173-
174168
# Prepare substitution variables for templates using req_xyz traits
175169
def get_req_subvars(self):
176170
reqlist = [ t for t in self.trait_names() if t.startswith('req_') ]
@@ -349,6 +343,9 @@ def poll(self):
349343
@gen.coroutine
350344
def start(self):
351345
"""Start the process"""
346+
self.ip = self.traits()['ip'].default_value
347+
self.port = self.traits()['port'].default_value
348+
352349
if jupyterhub.version_info >= (0,8) and self.server:
353350
self.server.port = self.port
354351

@@ -375,20 +372,20 @@ def start(self):
375372
' after starting.')
376373
yield gen.sleep(self.startup_poll_interval)
377374

378-
self.current_ip = self.state_gethost()
379-
while self.current_port == 0:
375+
self.ip = self.state_gethost()
376+
while self.port == 0:
380377
yield gen.sleep(self.startup_poll_interval)
381378

382379
if jupyterhub.version_info < (0,7):
383380
# store on user for pre-jupyterhub-0.7:
384-
self.user.server.port = self.current_port
385-
self.user.server.ip = self.current_ip
381+
self.user.server.port = self.port
382+
self.user.server.ip = self.ip
386383
self.db.commit()
387384
self.log.info("Notebook server job {0} started at {1}:{2}".format(
388-
self.job_id, self.current_ip, self.current_port)
385+
self.job_id, self.ip, self.port)
389386
)
390387

391-
return self.current_ip, self.current_port
388+
return self.ip, self.port
392389

393390
@gen.coroutine
394391
def stop(self, now=False):
@@ -408,7 +405,7 @@ def stop(self, now=False):
408405
yield gen.sleep(1.0)
409406
if self.job_id:
410407
self.log.warn("Notebook server job {0} at {1}:{2} possibly failed to terminate".format(
411-
self.job_id, self.current_ip, self.port)
408+
self.job_id, self.ip, self.port)
412409
)
413410

414411

0 commit comments

Comments
 (0)