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.

Reply via email to