diff --git a/api/src/com/cloud/dao/EntityManager.java b/api/src/com/cloud/dao/EntityManager.java index 552e69dabd4..4ddfcec685f 100644 --- a/api/src/com/cloud/dao/EntityManager.java +++ b/api/src/com/cloud/dao/EntityManager.java @@ -45,7 +45,7 @@ public interface EntityManager { * @param xid external id * @return T if found, null if not. */ - public T findByXid(Class entityType, String xid); + public T findByXId(Class entityType, String xid); /** * Lists all entities. Use this method at your own risk. diff --git a/server/src/com/cloud/dao/EntityManagerImpl.java b/server/src/com/cloud/dao/EntityManagerImpl.java index 1430c0834b2..4d7f7fb2dd7 100644 --- a/server/src/com/cloud/dao/EntityManagerImpl.java +++ b/server/src/com/cloud/dao/EntityManagerImpl.java @@ -45,8 +45,9 @@ public class EntityManagerImpl implements EntityManager, Manager { } @Override - public T findByXid(Class entityType, String xid) { - return null; + public T findByXId(Class entityType, String xid) { + GenericDao dao = (GenericDao)GenericDaoBase.getDao(entityType); + return dao.findByXId(xid); } @Override diff --git a/utils/src/com/cloud/utils/db/GenericDao.java b/utils/src/com/cloud/utils/db/GenericDao.java index f36c4d80164..082748a532a 100755 --- a/utils/src/com/cloud/utils/db/GenericDao.java +++ b/utils/src/com/cloud/utils/db/GenericDao.java @@ -54,6 +54,9 @@ public interface GenericDao { T findByIdIncludingRemoved(ID id); T findById(ID id, boolean fresh); + + // Finds a VO object using uuid + T findByXId(ID uuid); /** * @return VO object ready to be used for update. It won't have any fields filled in. diff --git a/utils/src/com/cloud/utils/db/GenericDaoBase.java b/utils/src/com/cloud/utils/db/GenericDaoBase.java index be0fe89f3a7..6bc49bf963e 100755 --- a/utils/src/com/cloud/utils/db/GenericDaoBase.java +++ b/utils/src/com/cloud/utils/db/GenericDaoBase.java @@ -913,6 +913,14 @@ public abstract class GenericDaoBase implements Gene } } + @Override @DB(txn=false) + @SuppressWarnings("unchecked") + public T findByXId(final ID uuid) { + SearchCriteria sc = createSearchCriteria(); + sc.addAnd("uuid", SearchCriteria.Op.EQ, uuid); + return findOneBy(sc); + } + @Override @DB(txn=false) public T findByIdIncludingRemoved(ID id) { return findById(id, true, null);