Should I do a pull request? On Friday, March 16, 2018 at 3:00:09 PM UTC-4, Michael Milligan wrote: > > Yes, in general that's the correct idiom. You probably need to explicitly > import your base class though (i.e. add "import batchspawner.LsfSpawner" > before you declare your subclass). > > That said, both of those req_* options look like good candidates for > adding to the base class, especially since req_partition already exists in > at least one other batchspawner subclass. > > On Fri, Mar 16, 2018 at 11:15 AM, Brian Fulton-Howard <[email protected] > <javascript:>> wrote: > >> Thanks! >> >> I have a potential addition to my config file. I had to subclass the >> LsfSpawner class because it appears incomplete and doesn't have all of the >> options required for our cluster. Does this look right? >> >> c.JupyterHub.spawner_class = 'wrapspawner.ProfilesSpawner' >> c.Spawner.http_timeout = 120 >> >> #------------------------------------------------------------------------------ >> # BatchSpawnerBase configuration >> # Providing default values that we may omit in the profiles >> >> #------------------------------------------------------------------------------ >> c.BatchSpawnerBase.req_runtime = '12:00' >> >> #------------------------------------------------------------------------------ >> # ProfilesSpawner configuration >> >> #------------------------------------------------------------------------------ >> # List of profiles to offer for selection. Signature is: >> # List(Tuple( Unicode, Unicode, Type(Spawner), Dict )) >> # corresponding to profile display name, unique key, Spawner class, >> # dictionary of spawner config options. >> # >> # The first three values will be exposed in the input_template as >> {display}, >> # {key}, and {type} >> # >> >> ## Override LsfSpawner to be compatible with Minerva >> >> class MinervaSpawner(batchspawner.LsfSpawner): >> batch_script = Unicode('''#!/bin/sh >> #BSUB -R "span[hosts=1]" # Only spawn job on one server >> #BSUB -P {account} >> #BSUB -q {queue} >> #BSUB -m {partition} >> #BSUB -R rusage[mem={memory}] >> #BSUB -n {nprocs} >> #BSUB -J spawner-jupyterhub >> #BSUB -o {homedir}/.jupyterhub.lsf.out >> #BSUB -e {homedir}/.jupyterhub.lsf.err''') >> >> req_partition = Unicode('', \ >> help="Partition name to submit job to resource manager" >> ).tag(config=True) >> >> req_account = Unicode('', \ >> help="Account name to submit job to resource manager" >> ).tag(config=True) >> >> c.ProfilesSpawner.profiles = [ >> ( "Local server", 'local', 'jupyterhub.spawner.SudoSpawner', {'ip': >> '0.0.0.0'} ), >> ('Bode - 2 cores, 4 GB, 8 hours', 'bode2c4g12h', 'MinervaSpawner', >> dict(req_nprocs='2', req_queue='premium', req_runtime='8:00', >> req_memory='4000', >> req_partition='bode', req_account='acc_LOAD')), >> ('Manda - 8 cores, 128 GB, 4 hours', 'manda128gb', 'MinervaSpawner', >> dict(req_nprocs='8', req_queue='premium', req_runtime='4:00', >> req_memory='16000', >> req_partition='bode', req_account='acc_LOAD')), >> ('Bode - 2 cores, 4 GB, 24 hours', 'mesabi2c4gb24h', >> 'batchspawner.TorqueSpawner', >> dict(req_nprocs='2', req_queue='premium', req_runtime='24:00', >> req_memory='4gb', >> req_partition='bode', req_account='acc_LOAD')), >> ] >> >> >> >> On Thursday, March 15, 2018 at 6:47:28 PM UTC-4, Michael Milligan wrote: >>> >>> Hi Brian - >>> >>> It is possible, and it sounds like you already mostly have the solution! >>> The example config at the end of the batchspawner README should be roughly >>> what you want, except that you will use the SudoSpawner instead of >>> LocalProcessSpawner. Specifically, you need to install all of the spawners >>> you are using alongside Jupyterhub (e.g. pip install wrapspawner, >>> batchspawner, and sudospawner into the same virtualenv as jupyterhub) -- >>> the ProfilesSpawner configuration will tell Jupyterhub which spawner to use >>> in response to the user's menu selection. >>> >>> Sorry about the confusing state of the documentation about how to do >>> this. Batchspawner and wrapspawner were originally distributed in the same >>> repository, and when we split them apart it sounds like we may not have >>> included enough context on one side or the other. We're happy to get >>> suggestions about how to improve the docs if you'd like to give us some >>> feedback when you get a chance. >>> >>> Regards, >>> Michael >>> >>> On Thu, Mar 15, 2018 at 4:58 PM, Brian Fulton-Howard <[email protected]> >>> wrote: >>> >>>> As I understand it, I need to use some combination of wrapspawner, >>>> localspawner, sudospawner and batchspawner. I want to run jupyterhub as an >>>> unprivileged user, but the admins are happy to edit the sudoers file to >>>> make it work. What I'd like to do is give users in my lab a choice to >>>> start >>>> on the LSF cluster (batchspawner) or locally (localspawner). Wrapspawner >>>> would provide the interface to make a selection. >>>> >>>> Is this possible, and how would I go about doing it? I looked in the >>>> documentation for the various spawners and didn't find any detailed >>>> information. >>>> >>>> The cluster supports PAM, so I don't need any special authenticator. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Project Jupyter" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/jupyter/a3f21888-0495-4fe0-b598-ca7e226bd61f%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/jupyter/a3f21888-0495-4fe0-b598-ca7e226bd61f%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "Project Jupyter" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jupyter/1f26020c-41cf-4dc4-84d7-41a879c68bea%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jupyter/1f26020c-41cf-4dc4-84d7-41a879c68bea%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > >
-- You received this message because you are subscribed to the Google Groups "Project Jupyter" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/49e1e9c4-32a6-4843-8738-3cc3c468305e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
