# Buggy code
def importFile(self, srcUrl, sharedFileName=None):
    """
    Imports the file at the given URL into job store. The jobStoreFileId of the new
    file is returned. If a shared file name is given, the file will be imported as a shared
    file and None is returned.

    Note that the helper method _importFile is used to read from the source and write to
    destination (which is the current job store in this case). To implement any optimizations that
    circumvent this, the _importFile method should be overridden by subclasses of AbstractJobStore.

    Currently supported schemes are:
        - 's3' for objects in Amazon S3
            e.g. s3://bucket/key

        - 'wasb' for blobs in Azure Blob Storage
            e.g. wasb://container/blob

        - 'file' for local files
            e.g. file:///local/file/path

        - 'http'
            e.g. http://someurl.com/path

    :param str srcUrl: URL that points to a file or object in the storage mechanism of a
            supported URL scheme e.g. a blob in an Azure Blob Storage container.

    :param str sharedFileName: Optional name to assign to the imported file within the job store

    :return The jobStoreFileId of the imported file or None if sharedFileName was given
    :rtype: str|None
    """
    url = urlparse.urlparse(srcUrl)
    otherCls = findJobStoreForUrl(url)
    return self._importFile(otherCls, url, sharedFileName=sharedFileName)


# Traceback (boto.exception.S3CreateError)
ubuntu@ip-172-31-24-34:~/common-workflow-language$ toil clean aws:us-west-2:peter-cwltoil-test
2016-04-13 15:36:32,632 INFO:toil.lib.bioio: Logging set at level: INFO
2016-04-13 15:36:32,632 INFO:toil.utils.toilClean: Parsed arguments
2016-04-13 15:36:32,633 INFO:toil.utils.toilClean: Checking if we have files for toil
Traceback (most recent call last):
File "/usr/local/bin/toil", line 9, in <module>
load_entry_point('toil==3.2.0a2.dev134', 'console_scripts', 'toil')()
File "/usr/local/lib/python2.7/dist-packages/toil/utils/toilMain.py", line 30, in main
module.main()
File "/usr/local/lib/python2.7/dist-packages/toil/utils/toilClean.py", line 53, in main
jobStore = Toil.loadOrCreateJobStore(options.jobStore)
File "/usr/local/lib/python2.7/dist-packages/toil/common.py", line 501, in loadOrCreateJobStore
return AWSJobStore.loadOrCreateJobStore(jobStoreArgs, config=config)
File "/usr/local/lib/python2.7/dist-packages/toil/jobStores/aws/jobStore.py", line 117, in loadOrCreateJobStore
return cls(region, namePrefix, config=config, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/toil/jobStores/aws/jobStore.py", line 174, in __init__
self.filesBucket = self._getOrCreateBucket(qualify('files'), versioning=True)
File "/usr/local/lib/python2.7/dist-packages/toil/jobStores/aws/jobStore.py", line 469, in _getOrCreateBucket
bucket = self.s3.create_bucket(bucket_name, location=self.region)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 616, in create_bucket
response.status, response.reason, body)
boto.exception.S3CreateError: S3CreateError: 409 Conflict
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>BucketAlreadyExists</Code><Message>The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.</Message><BucketName>peter-cwltoil-test--files</BucketName><RequestId>DAF5D5E6B138F1AB</RequestId><HostId>t9Fz0/fKNcxA5q7gLBuk7FMu9AxCD4AdyXMIWhWOtJVyNS8ARDxnWDQOBZdeTmpkcVtXa9brMss=</HostId></Error>

# Fixed code
def importFile(self, srcUrl, sharedFileName=None):
    """
    Imports the file at the given URL into job store. The ID of the newly imported file is
    returned. If the name of a shared file name is provided, the file will be imported as
    such and None is returned.

    Currently supported schemes are:

        - 's3' for objects in Amazon S3
            e.g. s3://bucket/key

        - 'wasb' for blobs in Azure Blob Storage
            e.g. wasb://container/blob

        - 'file' for local files
            e.g. file:///local/file/path

        - 'http'
            e.g. http://someurl.com/path

    :param str srcUrl: URL that points to a file or object in the storage mechanism of a
            supported URL scheme e.g. a blob in an Azure Blob Storage container.

    :param str sharedFileName: Optional name to assign to the imported file within the job store

    :return The jobStoreFileId of the imported file or None if sharedFileName was given
    :rtype: str|None
    """
    # Note that the helper method _importFile is used to read from the source and write to
    # destination (which is the current job store in this case). To implement any
    # optimizations that circumvent this, the _importFile method should be overridden by
    # subclasses of AbstractJobStore.
    srcUrl = urlparse.urlparse(srcUrl)
    otherCls = self._findJobStoreForUrl(srcUrl)
    return self._importFile(otherCls, srcUrl, sharedFileName=sharedFileName)