def __init__(self, **azure_config):
     """
     :param ServiceManagement azure_client: an instance of the azure
     serivce managment api client.
     :param String service_name: The name of the cloud service
     :param
         names of Azure volumes to identify cluster
     :returns: A ``BlockDeviceVolume``.
     """
     self._instance_id = self.compute_instance_id()
     creds = ServicePrincipalCredentials(
         client_id=azure_config['client_id'],
         secret=azure_config['client_secret'],
         tenant=azure_config['tenant_id'])
     self._resource_client = ResourceManagementClient(
         creds,
         azure_config['subscription_id'])
     self._compute_client = ComputeManagementClient(
         creds,
         azure_config['subscription_id'])
     self._azure_storage_client = PageBlobService(
         account_name=azure_config['storage_account_name'],
         account_key=azure_config['storage_account_key'])
     self._manager = DiskManager(self._resource_client,
                                 self._compute_client,
                                 self._azure_storage_client,
                                 azure_config['storage_account_container'],
                                 azure_config['group_name'],
                                 azure_config['location'])
     self._storage_account_name = azure_config['storage_account_name']
     self._disk_container_name = azure_config['storage_account_container']
     self._resource_group = azure_config['group_name']