Exemplo n.º 1
0
    def sync(self):
        """
        :return:
        """
        LOG.info('Syncing storage pool for storage id:{0}'.format(
            self.storage_id))
        try:
            # collect the storage pools list from driver and database
            storage_pools = self.driver_api.list_storage_pools(
                self.context, self.storage_id)
            db_pools = db.storage_pool_get_all(
                self.context, filters={"storage_id": self.storage_id})

            add_list, update_list, delete_id_list = self._classify_resources(
                storage_pools, db_pools, 'native_storage_pool_id')

            if delete_id_list:
                db.storage_pools_delete(self.context, delete_id_list)

            if update_list:
                db.storage_pools_update(self.context, update_list)

            if add_list:
                db.storage_pools_create(self.context, add_list)
        except Exception as e:
            msg = _('Failed to sync pools entry in DB: {0}'.format(e))
            LOG.error(msg)
            raise
        else:
            LOG.info("Syncing storage pools successful!!!")
Exemplo n.º 2
0
 def db_resources_delete(self, delete_id_list):
     return db.storage_pools_delete(self.context, delete_id_list)