You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/06/27 18:35:39 UTC
git commit: Adding host alias resource initial resource class
Repository: airavata
Updated Branches:
refs/heads/master a886c0c5b -> 91e2c0a61
Adding host alias resource initial resource class
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/91e2c0a6
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/91e2c0a6
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/91e2c0a6
Branch: refs/heads/master
Commit: 91e2c0a61a8387f51e7ebfe244a3399fe50e32c5
Parents: a886c0c
Author: Sachith Withana <sa...@apache.org>
Authored: Fri Jun 27 22:07:45 2014 +0530
Committer: Sachith Withana <sa...@apache.org>
Committed: Fri Jun 27 22:07:45 2014 +0530
----------------------------------------------------------------------
.../data/resources/HostAliasResource.java | 212 +++++++++++++++++++
1 file changed, 212 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/91e2c0a6/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/HostAliasResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/HostAliasResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/HostAliasResource.java
new file mode 100644
index 0000000..37ddcc6
--- /dev/null
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/HostAliasResource.java
@@ -0,0 +1,212 @@
+package org.apache.aiaravata.application.catalog.data.resources;
+
+import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.apache.aiaravata.application.catalog.data.model.ComputeResource;
+import org.apache.aiaravata.application.catalog.data.model.HostAlias;
+import org.apache.aiaravata.application.catalog.data.model.HostAliasPK;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogJPAUtils;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogQueryGenerator;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogResourceType;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.List;
+
+public class HostAliasResource extends AbstractResource {
+
+ private final static Logger logger = LoggerFactory.getLogger(HostAliasResource.class);
+
+ private String resourceID;
+ private String alias;
+ private ComputeHostResource computeHostResource;
+
+
+
+ public void remove(Object identifier) throws AppCatalogException {
+
+ }
+
+ public Resource get(Object identifier) throws AppCatalogException {
+ return null;
+ }
+
+ public List<Resource> get(String fieldName, Object value) throws AppCatalogException {
+
+ List<Resource> hostAliasResources = new ArrayList<Resource>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ Query q;
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS);
+ List results;
+ if (fieldName.equals(HostAliasConstants.ALIAS)) {
+ generator.setParameter(HostAliasConstants.ALIAS, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ HostAlias hostAlias = (HostAlias) result;
+ HostAliasResource hostAliasResource =
+ (HostAliasResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias);
+ hostAliasResources.add(hostAliasResource);
+ }
+ }
+ } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) {
+ generator.setParameter(HostAliasConstants.RESOURCE_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ HostAlias hostAlias = (HostAlias) result;
+ HostAliasResource hostAliasResource =
+ (HostAliasResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias);
+ hostAliasResources.add(hostAliasResource);
+ }
+ }
+ } else {
+ em.getTransaction().commit();
+ em.close();
+ logger.error("Unsupported field name for Host Alias Resource.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for Host Alias Resource.");
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return hostAliasResources;
+ }
+
+ public List<String> getIds(String fieldName, Object value) throws AppCatalogException {
+
+ List<String> hostAliasResourceIDs = new ArrayList<String>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ Query q;
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS);
+ List results;
+ if (fieldName.equals(HostAliasConstants.ALIAS)) {
+ generator.setParameter(HostAliasConstants.ALIAS, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ HostAlias hostAlias = (HostAlias) result;
+ hostAliasResourceIDs.add(hostAlias.getResourceID());
+ }
+ }
+ } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) {
+ generator.setParameter(HostAliasConstants.RESOURCE_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ HostAlias hostAlias = (HostAlias) result;
+ hostAliasResourceIDs.add(hostAlias.getResourceID());
+ }
+ }
+ } else {
+ em.getTransaction().commit();
+ em.close();
+ logger.error("Unsupported field name for Host Alias resource.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for Host Alias Resource.");
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return hostAliasResourceIDs;
+ }
+
+ public void save() throws AppCatalogException {
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ HostAlias existingHostAlias = em.find(HostAlias.class, new HostAliasPK(resourceID, alias));
+ em.close();
+
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ if (existingHostAlias != null){
+ existingHostAlias.setAlias(alias);
+ ComputeResource computeResource = em.find(ComputeResource.class, computeHostResource.getResoureId());
+ existingHostAlias.setComputeResource(computeResource);
+ existingHostAlias.setResourceID(resourceID);
+
+ em.merge(existingHostAlias);
+ }else {
+ HostAlias hostAlias = new HostAlias();
+ hostAlias.setAlias(alias);
+ hostAlias.setResourceID(resourceID);
+ ComputeResource computeResource = em.find(ComputeResource.class, computeHostResource.getResoureId());
+ hostAlias.setComputeResource(computeResource);
+
+ em.persist(computeResource);
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()){
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ }
+
+ public boolean isExists(Object identifier) throws AppCatalogException {
+ return false;
+ }
+
+ public String getResourceID() {
+ return resourceID;
+ }
+
+ public void setResourceID(String resourceID) {
+ this.resourceID = resourceID;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public ComputeHostResource getComputeHostResource() {
+ return computeHostResource;
+ }
+
+ public void setComputeHostResource(ComputeHostResource computeHostResource) {
+ this.computeHostResource = computeHostResource;
+ }
+}