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!!!")
def db_resources_delete(self, delete_id_list): return db.storage_pools_delete(self.context, delete_id_list)