'1: Get runner_param_specs from job_conf.xml
2: Initialise job runner parent object
3: Login to godocker and store the token
4: Start the worker and monitor threads'

def __init__(self, app, nworkers, **kwargs):

    runner_param_specs = dict(godocker_master=dict(map=str), user=dict(map=str), key=dict(map=str), godocker_project=dict(map=str))
    if ('runner_param_specs' not in kwargs):
        kwargs['runner_param_specs'] = dict()
    kwargs['runner_param_specs'].update(runner_param_specs)
    super(GodockerJobRunner, self).__init__(app, nworkers, **kwargs)
    self.auth = self.login(self.runner_params['key'], self.runner_params['user'], self.runner_params['godocker_master'])
    if (not self.auth):
        log.error('Authentication    failure,    GoDocker    runner    cannot    be    started')
    else:
        '    Following    methods    starts    threads.\n                                                                These    methods    invoke    threading.Thread(name,target)\n                                                                                        which    in    turn    invokes    methods    monitor()    and    run_next().\n                                                '
        self._init_monitor_thread()
        self._init_worker_threads()
