# Buggy code
def issueBatchJob(self, command, memory, cores, disk):
    """
    Adds the command and resources to a queue to be run.
    """
    # Round cores to minCores and apply scale
    cores = math.ceil(cores * self.scale / self.minCores) * self.minCores
    assert cores <= self.maxCores, (
        "job is requesting {} cores, which is greater than {} available on the machine. Scale currently set "
        "to {} consider adjusting job or scale.".format(
            cores, self.maxCores, self.scale
        )
    )
    assert cores >= self.minCores
    assert memory <= self.maxMemory, (
        "job requests {} mem, only {} total available.".format(memory, self.maxMemory)
    )

    self.checkResourceRequest(memory, cores, disk)
    log.debug(
        "Issuing the command: %s with memory: %i, cores: %i, disk: %i"
        % (command, memory, cores, disk)
    )
    with self.jobIndexLock:
        jobID = self.jobIndex
        self.jobIndex += 1
    self.jobs[jobID] = command
    self.inputQueue.put((command, jobID, cores, memory, disk))
    return jobID


# Traceback (ConfigParser.NoSectionError)
DEBUG:toil.batchSystems.mesos.executor:Starting executor
I0924 22:47:08.587648 43191 exec.cpp:132] Version: 0.22.0
I0924 22:47:08.592193 43192 exec.cpp:206] Executor registered on slave 20150924-214557-83886090-5050-44087-S8
INFO:toil.batchSystems.mesos.executor:Registered with framework
DEBUG:toil.batchSystems.mesos.executor:Running task 0
DEBUG:toil.batchSystems.mesos.executor:Sending status update ...
DEBUG:toil.batchSystems.mesos.executor:Sent status update
DEBUG:toil.batchSystems.mesos.executor:Invoking command: '/usr/bin/python2.7 -E /usr/local/lib/python2.7/dist-packages/toil/worker.py azure:hgvm:tree2 683b1010_55c3_4978_a7e7_853f17ed1803'
DEBUG:toil.batchSystems.mesos.executor:Sent stats message
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/toil/worker.py", line 408, in <module>
main()
File "/usr/local/lib/python2.7/dist-packages/toil/worker.py", line 89, in main
jobStore = loadJobStore(jobStoreString)
File "/usr/local/lib/python2.7/dist-packages/toil/common.py", line 366, in loadJobStore
return AzureJobStore( account, namePrefix, config=config )
File "/usr/local/lib/python2.7/dist-packages/toil/jobStores/azureJobStore.py", line 78, in __init__
account_key = _fetchAzureAccountKey(accountName)
File "/usr/local/lib/python2.7/dist-packages/toil/jobStores/azureJobStore.py", line 63, in _fetchAzureAccountKey
return configParser.get('AzureStorageCredentials', accountName)
File "/usr/lib/python2.7/ConfigParser.py", line 330, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'AzureStorageCredentials'
DEBUG:toil.batchSystems.mesos.executor:Sending status update ...
DEBUG:toil.batchSystems.mesos.executor:Sent status update
I0924 22:47:09.738494 43200 exec.cpp:379] Executor asked to shutdown
CRITICAL:toil.batchSystems.mesos.executor:Shutting down executor...
CRITICAL:toil.batchSystems.mesos.executor:Executor shut down

# Fixed code
def issueBatchJob(self, command, memory, cores, disk):
    """
    Adds the command and resources to a queue to be run.
    """
    # Round cores to minCores and apply scale
    cores = math.ceil(cores * self.scale / self.minCores) * self.minCores
    assert cores <= self.maxCores, (
        "job is requesting {} cores, which is greater than {} available on the machine. Scale currently set "
        "to {} consider adjusting job or scale.".format(
            cores, self.maxCores, self.scale
        )
    )
    assert cores >= self.minCores
    assert memory <= self.maxMemory, (
        "job requests {} mem, only {} total available.".format(memory, self.maxMemory)
    )

    self.checkResourceRequest(memory, cores, disk)
    log.debug(
        "Issuing the command: %s with memory: %i, cores: %i, disk: %i"
        % (command, memory, cores, disk)
    )
    with self.jobIndexLock:
        jobID = self.jobIndex
        self.jobIndex += 1
    self.jobs[jobID] = command
    self.inputQueue.put((command, jobID, cores, memory, disk, self.environment.copy()))
    return jobID