'Create a volume with the given name.
We hash the name to give a consistent dataset. This ensures that
if due to race condition we attempt to create two volumes with
same name only one will be created.
We also check for existence of matching dataset based on
``"name"`` field in metadata, in case we\'re talking to cluster
that has datasets that weren\'t created with this hashing
mechanism.
If there is a duplicate we don\'t return an error, but rather
success: we will likely get unneeded creates from Docker since it
doesn\'t necessarily know about existing persistent volumes.
:param unicode Name: The name of the volume.
:param dict Opts: Options passed from Docker for the volume
at creation. ``None`` if not supplied in the request body.
Currently ignored. ``Opts`` is a parameter introduced in the
v2 plugins API introduced in Docker 1.9, it is not supplied
in earlier Docker versions.
:return: Result indicating success.'

@app.route('/VolumeDriver.Create', methods=['POST'])
@_endpoint(u'Create')
def volumedriver_create(self, Name, Opts=None):

    metadata = {NAME_FIELD: Name}
    opts = (Opts or {})
    profile = opts.get(u'profile')
    if profile:
        metadata[PROFILE_METADATA_KEY] = profile
    size_from_opts = opts.get(u'size')
    if size_from_opts:
        size = parse_num(size_from_opts)
        metadata[u'maximum_size'] = unicode(int(size.to_Byte()))
    else:
        size = DEFAULT_SIZE
    def ensure_unique_name(configured):
        for dataset in configured:
            if (dataset.metadata.get(NAME_FIELD) == Name):
                raise DatasetAlreadyExists
    creating = conditional_create(self._flocker_client, self._reactor, ensure_unique_name, self._node_id, int(size.to_Byte()), metadata=metadata)
    creating.addErrback((lambda reason: reason.trap(DatasetAlreadyExists)))
    creating.addCallback((lambda _: {u'Err': u''}))
    return creating
