'Run some nodes using ``libcloud``.
By default, two nodes are run.  This can be overridden by using
the ``--number-of-nodes`` command line option.
:param PackageSource package_source: The source of omnibus packages.
:param BackendDescription dataset_backend: The description of the
dataset backend the nodes are configured with.
:param provider: The name of the cloud provider of nodes for the tests.
:param provider_config: The ``managed`` section of the acceptance
:returns: ``LibcloudRunner``.'

def _libcloud_runner(self, package_source, dataset_backend, provider, provider_config):

    if (provider_config is None):
        self._provider_config_missing(provider)
    provisioner = CLOUD_PROVIDERS[provider](**provider_config)
    return LibcloudRunner(config=self['config'], top_level=self.top_level, distribution=self['distribution'], package_source=package_source, provisioner=provisioner, dataset_backend=dataset_backend, dataset_backend_configuration=self.dataset_backend_configuration(), variants=self['variants'], num_nodes=self['number-of-nodes'], identity=self._make_cluster_identity(dataset_backend), cert_path=self['cert-directory'])
