def _libcloud_runner(self, package_source, dataset_backend,
                         provider, provider_config):
        if provider_config is None:
            self._provider_config_missing(provider)

        provider_factory = CLOUD_PROVIDERS[provider]

        try:
            provisioner = provider_factory(**provider_config)
        except TypeError:
            try:
                validate_signature_against_kwargs(provider_factory,
                                                  set(provider_config.keys()))
            except InvalidSignature as e:
                raise SystemExit(
                    "Missing or incorrect configuration for provider '{}'.\n"
                    "Missing Keys: {}\n"
                    "Unexpected Keys: {}\n"
                    "Optional Missing Keys: {}".format(
                        provider,
                        ", ".join(e.missing_arguments) or "<None>",
                        ", ".join(e.unexpected_arguments) or "<None>",
                        ", ".join(e.missing_optional_arguments) or "<None>",
                    )
                )
            raise
        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'],
        )
Add to the accumulator.
dataset/ETHPy150Open ClusterHQ/flocker/admin/acceptance.py/CommonOptions._libcloud_runner--crossover with--dataset/ETHPy150Open LabPy/lantz/lantz/stats.py/RunningState.add