'Load configuration options and connect to the hypervisor.'

def __init__(self, compute_driver=None, *args, **kwargs):

    self.virtapi = ComputeVirtAPI(self)
    self.network_api = network.API()
    self.volume_api = cinder.API()
    self.image_api = image.API()
    self._last_host_check = 0
    self._last_bw_usage_poll = 0
    self._bw_usage_supported = True
    self._last_bw_usage_cell_update = 0
    self.compute_api = compute.API()
    self.compute_rpcapi = compute_rpcapi.ComputeAPI()
    self.conductor_api = conductor.API()
    self.compute_task_api = conductor.ComputeTaskAPI()
    self.is_neutron_security_groups = openstack_driver.is_neutron_security_groups()
    self.cells_rpcapi = cells_rpcapi.CellsAPI()
    self.scheduler_client = scheduler_client.SchedulerClient()
    self._resource_tracker = None
    self.instance_events = InstanceEvents()
    self._sync_power_pool = eventlet.GreenPool(size=CONF.sync_power_state_pool_size)
    self._syncs_in_progress = {}
    self.send_instance_updates = CONF.filter_scheduler.track_instance_changes
    if (CONF.max_concurrent_builds != 0):
        self._build_semaphore = eventlet.semaphore.Semaphore(CONF.max_concurrent_builds)
    else:
        self._build_semaphore = compute_utils.UnlimitedSemaphore()
    if (max(CONF.max_concurrent_live_migrations, 0) != 0):
        self._live_migration_semaphore = eventlet.semaphore.Semaphore(CONF.max_concurrent_live_migrations)
    else:
        self._live_migration_semaphore = compute_utils.UnlimitedSemaphore()
    self._failed_builds = 0
    super(ComputeManager, self).__init__(service_name='compute', *args, **kwargs)
    self.driver = driver.load_compute_driver(self.virtapi, compute_driver)
    self.use_legacy_block_device_info = self.driver.need_legacy_block_device_info
