http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportAppCatalogResourceAppCat.java new file mode 100644 index 0000000..a127311 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportAppCatalogResourceAppCat.java @@ -0,0 +1,324 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.airavata.registry.core.app.catalog.resources; + +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.registry.core.app.catalog.model.GSISSHExport; +import org.apache.airavata.registry.core.app.catalog.model.GSISSHExportPK; +import org.apache.airavata.registry.core.app.catalog.model.GSISSHSubmission; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType; +import org.apache.airavata.registry.cpi.AppCatalogException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GSISSHExportAppCatalogResourceAppCat extends AppCatAbstractResource { + private final static Logger logger = LoggerFactory.getLogger(GSISSHExportAppCatalogResourceAppCat.class); + + private String submissionID; + private String export; + + private GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource; + + + public void remove(Object identifier) throws AppCatalogException { + HashMap<String, String> ids; + if (identifier instanceof Map) { + ids = (HashMap) identifier; + } else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + generator.setParameter(GSISSHExportConstants.EXPORT, ids.get(GSISSHExportConstants.EXPORT)); + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, ids.get(GSISSHExportConstants.SUBMISSION_ID)); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + em.getTransaction().commit(); + em.close(); + } catch (ApplicationSettingsException 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 AppCatalogResource get(Object identifier) throws AppCatalogException { + HashMap<String, String> ids; + if (identifier instanceof Map) { + ids = (HashMap) identifier; + } else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, ids.get(GSISSHExportConstants.SUBMISSION_ID)); + generator.setParameter(GSISSHExportConstants.EXPORT, ids.get(GSISSHExportConstants.EXPORT)); + Query q = generator.selectQuery(em); + GSISSHExport gsisshExport = (GSISSHExport) q.getSingleResult(); + GSISSHExportAppCatalogResourceAppCat gsisshExportResource = + (GSISSHExportAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT + , gsisshExport); + em.getTransaction().commit(); + em.close(); + return gsisshExportResource; + } catch (ApplicationSettingsException 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 List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { + List<AppCatalogResource> gsiSSHExportResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + List results; + if (fieldName.equals(GSISSHExportConstants.EXPORT)) { + generator.setParameter(GSISSHExportConstants.EXPORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + GSISSHExportAppCatalogResourceAppCat gsisshExportResource = + (GSISSHExportAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT, gsisshExport); + gsiSSHExportResources.add(gsisshExportResource); + } + } + } else if (fieldName.equals(GSISSHExportConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + GSISSHExportAppCatalogResourceAppCat gsisshExportResource = + (GSISSHExportAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT, gsisshExport); + gsiSSHExportResources.add(gsisshExportResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Export Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Export 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 gsiSSHExportResources; + } + + @Override + public List<AppCatalogResource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> gsiSSHExportIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + List results; + if (fieldName.equals(GSISSHExportConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + gsiSSHExportIDs.add(gsisshExport.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHExportConstants.EXPORT)) { + generator.setParameter(GSISSHExportConstants.EXPORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + gsiSSHExportIDs.add(gsisshExport.getSubmissionID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Export resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Export 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 gsiSSHExportIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHExport existingGSIExport = em.find(GSISSHExport.class, new GSISSHExportPK(submissionID, export)); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + GSISSHSubmission gsisshSubmission = em.find(GSISSHSubmission.class, submissionID); + if (existingGSIExport != null) { + existingGSIExport.setSubmissionID(submissionID); + existingGSIExport.setExport(export); + existingGSIExport.setGsisshJobSubmission(gsisshSubmission); + em.merge(existingGSIExport); + } else { + GSISSHExport gsisshExport = new GSISSHExport(); + gsisshExport.setSubmissionID(submissionID); + gsisshExport.setExport(export); + gsisshExport.setGsisshJobSubmission(gsisshSubmission); + em.persist(gsisshExport); + } + 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 { + HashMap<String, String> ids; + if (identifier instanceof Map){ + ids = (HashMap)identifier; + }else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHExport gsisshExport = em.find(GSISSHExport.class, new GSISSHExportPK(ids.get(GSISSHExportConstants.SUBMISSION_ID), + ids.get(GSISSHExportConstants.EXPORT))); + + em.close(); + return gsisshExport != null; + } catch (ApplicationSettingsException 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 String getSubmissionID() { + return submissionID; + } + + public void setSubmissionID(String submissionID) { + this.submissionID = submissionID; + } + + public String getExport() { + return export; + } + + public void setExport(String export) { + this.export = export; + } + + public GSISSHSubmissionAppCatalogResourceAppCat getGsisshSubmissionResource() { + return gsisshSubmissionResource; + } + + public void setGsisshSubmissionResource(GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource) { + this.gsisshSubmissionResource = gsisshSubmissionResource; + } +}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportResource.java new file mode 100644 index 0000000..92e2e43 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHExportResource.java @@ -0,0 +1,324 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.aiaravata.application.catalog.data.resources; + +import org.airavata.appcatalog.cpi.AppCatalogException; +import org.apache.aiaravata.application.catalog.data.model.GSISSHExport; +import org.apache.aiaravata.application.catalog.data.model.GSISSHExportPK; +import org.apache.aiaravata.application.catalog.data.model.GSISSHSubmission; +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.HashMap; +import java.util.List; +import java.util.Map; + +public class GSISSHExportResource extends AbstractResource { + private final static Logger logger = LoggerFactory.getLogger(GSISSHExportResource.class); + + private String submissionID; + private String export; + + private GSISSHSubmissionResource gsisshSubmissionResource; + + + public void remove(Object identifier) throws AppCatalogException { + HashMap<String, String> ids; + if (identifier instanceof Map) { + ids = (HashMap) identifier; + } else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + generator.setParameter(GSISSHExportConstants.EXPORT, ids.get(GSISSHExportConstants.EXPORT)); + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, ids.get(GSISSHExportConstants.SUBMISSION_ID)); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + em.getTransaction().commit(); + em.close(); + } catch (ApplicationSettingsException 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 Resource get(Object identifier) throws AppCatalogException { + HashMap<String, String> ids; + if (identifier instanceof Map) { + ids = (HashMap) identifier; + } else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, ids.get(GSISSHExportConstants.SUBMISSION_ID)); + generator.setParameter(GSISSHExportConstants.EXPORT, ids.get(GSISSHExportConstants.EXPORT)); + Query q = generator.selectQuery(em); + GSISSHExport gsisshExport = (GSISSHExport) q.getSingleResult(); + GSISSHExportResource gsisshExportResource = + (GSISSHExportResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT + , gsisshExport); + em.getTransaction().commit(); + em.close(); + return gsisshExportResource; + } catch (ApplicationSettingsException 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 List<Resource> get(String fieldName, Object value) throws AppCatalogException { + List<Resource> gsiSSHExportResources = new ArrayList<Resource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + List results; + if (fieldName.equals(GSISSHExportConstants.EXPORT)) { + generator.setParameter(GSISSHExportConstants.EXPORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + GSISSHExportResource gsisshExportResource = + (GSISSHExportResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT, gsisshExport); + gsiSSHExportResources.add(gsisshExportResource); + } + } + } else if (fieldName.equals(GSISSHExportConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + GSISSHExportResource gsisshExportResource = + (GSISSHExportResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_EXPORT, gsisshExport); + gsiSSHExportResources.add(gsisshExportResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Export Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Export 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 gsiSSHExportResources; + } + + @Override + public List<Resource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> gsiSSHExportIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_EXPORT); + List results; + if (fieldName.equals(GSISSHExportConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHExportConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + gsiSSHExportIDs.add(gsisshExport.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHExportConstants.EXPORT)) { + generator.setParameter(GSISSHExportConstants.EXPORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHExport gsisshExport = (GSISSHExport) result; + gsiSSHExportIDs.add(gsisshExport.getSubmissionID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Export resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Export 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 gsiSSHExportIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHExport existingGSIExport = em.find(GSISSHExport.class, new GSISSHExportPK(submissionID, export)); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + GSISSHSubmission gsisshSubmission = em.find(GSISSHSubmission.class, submissionID); + if (existingGSIExport != null) { + existingGSIExport.setSubmissionID(submissionID); + existingGSIExport.setExport(export); + existingGSIExport.setGsisshJobSubmission(gsisshSubmission); + em.merge(existingGSIExport); + } else { + GSISSHExport gsisshExport = new GSISSHExport(); + gsisshExport.setSubmissionID(submissionID); + gsisshExport.setExport(export); + gsisshExport.setGsisshJobSubmission(gsisshSubmission); + em.persist(gsisshExport); + } + 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 { + HashMap<String, String> ids; + if (identifier instanceof Map){ + ids = (HashMap)identifier; + }else { + logger.error("Identifier should be a map with the field name and it's value"); + throw new AppCatalogException("Identifier should be a map with the field name and it's value"); + } + + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHExport gsisshExport = em.find(GSISSHExport.class, new GSISSHExportPK(ids.get(GSISSHExportConstants.SUBMISSION_ID), + ids.get(GSISSHExportConstants.EXPORT))); + + em.close(); + return gsisshExport != null; + } catch (ApplicationSettingsException 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 String getSubmissionID() { + return submissionID; + } + + public void setSubmissionID(String submissionID) { + this.submissionID = submissionID; + } + + public String getExport() { + return export; + } + + public void setExport(String export) { + this.export = export; + } + + public GSISSHSubmissionResource getGsisshSubmissionResource() { + return gsisshSubmissionResource; + } + + public void setGsisshSubmissionResource(GSISSHSubmissionResource gsisshSubmissionResource) { + this.gsisshSubmissionResource = gsisshSubmissionResource; + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionAppCatalogResourceAppCat.java new file mode 100644 index 0000000..f2c5d5b --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionAppCatalogResourceAppCat.java @@ -0,0 +1,373 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.airavata.registry.core.app.catalog.resources; + +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.registry.core.app.catalog.model.GSISSHSubmission; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType; +import org.apache.airavata.registry.cpi.AppCatalogException; +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 GSISSHSubmissionAppCatalogResourceAppCat extends AppCatAbstractResource { + + private final static Logger logger = LoggerFactory.getLogger(GSISSHSubmissionAppCatalogResourceAppCat.class); + + private String submissionID; + private String resourceJobManager; + private int sshPort; + private String installedPath; + private String monitorMode; + + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, identifier); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + em.getTransaction().commit(); + em.close(); + } catch (ApplicationSettingsException 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 AppCatalogResource get(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, identifier); + Query q = generator.selectQuery(em); + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) q.getSingleResult(); + GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource = + (GSISSHSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_SUBMISSION + , gsisshSubmission); + em.getTransaction().commit(); + em.close(); + return gsisshSubmissionResource; + } catch (ApplicationSettingsException 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 List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { + List<AppCatalogResource> gsiSSHSubmissionResourceList = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + List results; + if (fieldName.equals(GSISSHSubmissionConstants.MONITOR_MODE)) { + generator.setParameter(GSISSHSubmissionConstants.MONITOR_MODE, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource = + (GSISSHSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.INSTALLED_PATH)) { + generator.setParameter(GSISSHSubmissionConstants.INSTALLED_PATH, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource = + (GSISSHSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.SSH_PORT)) { + generator.setParameter(GSISSHSubmissionConstants.SSH_PORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource = + (GSISSHSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER)) { + generator.setParameter(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionAppCatalogResourceAppCat gsisshSubmissionResource = + (GSISSHSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH submission resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Submission 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 gsiSSHSubmissionResourceList; + } + + @Override + public List<AppCatalogResource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> gsiSSHSubmissionResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + List results; + if (fieldName.equals(GSISSHSubmissionConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.SSH_PORT)) { + generator.setParameter(GSISSHSubmissionConstants.SSH_PORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.MONITOR_MODE)) { + generator.setParameter(GSISSHSubmissionConstants.MONITOR_MODE, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER)) { + generator.setParameter(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.INSTALLED_PATH)) { + generator.setParameter(GSISSHSubmissionConstants.INSTALLED_PATH, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Submission resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Submission 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 gsiSSHSubmissionResourceIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHSubmission existingGSISSHSubmission = em.find(GSISSHSubmission.class, submissionID); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + if (existingGSISSHSubmission != null) { + existingGSISSHSubmission.setSubmissionID(submissionID); + existingGSISSHSubmission.setSshPort(sshPort); + existingGSISSHSubmission.setResourceJobManager(resourceJobManager); + existingGSISSHSubmission.setInstalledPath(installedPath); + existingGSISSHSubmission.setMonitorMode(monitorMode); + em.merge(existingGSISSHSubmission); + } else { + GSISSHSubmission gsisshSubmission = new GSISSHSubmission(); + gsisshSubmission.setSubmissionID(submissionID); + gsisshSubmission.setSshPort(sshPort); + gsisshSubmission.setResourceJobManager(resourceJobManager); + gsisshSubmission.setInstalledPath(installedPath); + gsisshSubmission.setMonitorMode(monitorMode); + em.persist(gsisshSubmission); + } + 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 { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHSubmission gsisshSubmission = em.find(GSISSHSubmission.class, identifier); + em.close(); + return gsisshSubmission != null; + } catch (ApplicationSettingsException 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 String getSubmissionID() { + return submissionID; + } + + public void setSubmissionID(String submissionID) { + this.submissionID = submissionID; + } + + public String getResourceJobManager() { + return resourceJobManager; + } + + public void setResourceJobManager(String resourceJobManager) { + this.resourceJobManager = resourceJobManager; + } + + public int getSshPort() { + return sshPort; + } + + public void setSshPort(int sshPort) { + this.sshPort = sshPort; + } + + public String getInstalledPath() { + return installedPath; + } + + public void setInstalledPath(String installedPath) { + this.installedPath = installedPath; + } + + public String getMonitorMode() { + return monitorMode; + } + + public void setMonitorMode(String monitorMode) { + this.monitorMode = monitorMode; + } + +} http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionResource.java new file mode 100644 index 0000000..938aa3f --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GSISSHSubmissionResource.java @@ -0,0 +1,373 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.aiaravata.application.catalog.data.resources; + +import org.airavata.appcatalog.cpi.AppCatalogException; +import org.apache.aiaravata.application.catalog.data.model.GSISSHSubmission; +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 GSISSHSubmissionResource extends AbstractResource { + + private final static Logger logger = LoggerFactory.getLogger(GSISSHSubmissionResource.class); + + private String submissionID; + private String resourceJobManager; + private int sshPort; + private String installedPath; + private String monitorMode; + + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, identifier); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + em.getTransaction().commit(); + em.close(); + } catch (ApplicationSettingsException 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 Resource get(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, identifier); + Query q = generator.selectQuery(em); + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) q.getSingleResult(); + GSISSHSubmissionResource gsisshSubmissionResource = + (GSISSHSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GSISSH_SUBMISSION + , gsisshSubmission); + em.getTransaction().commit(); + em.close(); + return gsisshSubmissionResource; + } catch (ApplicationSettingsException 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 List<Resource> get(String fieldName, Object value) throws AppCatalogException { + List<Resource> gsiSSHSubmissionResourceList = new ArrayList<Resource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + List results; + if (fieldName.equals(GSISSHSubmissionConstants.MONITOR_MODE)) { + generator.setParameter(GSISSHSubmissionConstants.MONITOR_MODE, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionResource gsisshSubmissionResource = + (GSISSHSubmissionResource) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.INSTALLED_PATH)) { + generator.setParameter(GSISSHSubmissionConstants.INSTALLED_PATH, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionResource gsisshSubmissionResource = + (GSISSHSubmissionResource) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.SSH_PORT)) { + generator.setParameter(GSISSHSubmissionConstants.SSH_PORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionResource gsisshSubmissionResource = + (GSISSHSubmissionResource) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER)) { + generator.setParameter(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + GSISSHSubmissionResource gsisshSubmissionResource = + (GSISSHSubmissionResource) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GSISSH_SUBMISSION, gsisshSubmission); + gsiSSHSubmissionResourceList.add(gsisshSubmissionResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH submission resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Submission 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 gsiSSHSubmissionResourceList; + } + + @Override + public List<Resource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> gsiSSHSubmissionResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GSISSH_SUBMISSION); + List results; + if (fieldName.equals(GSISSHSubmissionConstants.SUBMISSION_ID)) { + generator.setParameter(GSISSHSubmissionConstants.SUBMISSION_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.SSH_PORT)) { + generator.setParameter(GSISSHSubmissionConstants.SSH_PORT, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.MONITOR_MODE)) { + generator.setParameter(GSISSHSubmissionConstants.MONITOR_MODE, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER)) { + generator.setParameter(GSISSHSubmissionConstants.RESOURCE_JOB_MANAGER, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else if (fieldName.equals(GSISSHSubmissionConstants.INSTALLED_PATH)) { + generator.setParameter(GSISSHSubmissionConstants.INSTALLED_PATH, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GSISSHSubmission gsisshSubmission = (GSISSHSubmission) result; + gsiSSHSubmissionResourceIDs.add(gsisshSubmission.getSubmissionID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for GSISSH Submission resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for GSISSH Submission 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 gsiSSHSubmissionResourceIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHSubmission existingGSISSHSubmission = em.find(GSISSHSubmission.class, submissionID); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + if (existingGSISSHSubmission != null) { + existingGSISSHSubmission.setSubmissionID(submissionID); + existingGSISSHSubmission.setSshPort(sshPort); + existingGSISSHSubmission.setResourceJobManager(resourceJobManager); + existingGSISSHSubmission.setInstalledPath(installedPath); + existingGSISSHSubmission.setMonitorMode(monitorMode); + em.merge(existingGSISSHSubmission); + } else { + GSISSHSubmission gsisshSubmission = new GSISSHSubmission(); + gsisshSubmission.setSubmissionID(submissionID); + gsisshSubmission.setSshPort(sshPort); + gsisshSubmission.setResourceJobManager(resourceJobManager); + gsisshSubmission.setInstalledPath(installedPath); + gsisshSubmission.setMonitorMode(monitorMode); + em.persist(gsisshSubmission); + } + 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 { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GSISSHSubmission gsisshSubmission = em.find(GSISSHSubmission.class, identifier); + em.close(); + return gsisshSubmission != null; + } catch (ApplicationSettingsException 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 String getSubmissionID() { + return submissionID; + } + + public void setSubmissionID(String submissionID) { + this.submissionID = submissionID; + } + + public String getResourceJobManager() { + return resourceJobManager; + } + + public void setResourceJobManager(String resourceJobManager) { + this.resourceJobManager = resourceJobManager; + } + + public int getSshPort() { + return sshPort; + } + + public void setSshPort(int sshPort) { + this.sshPort = sshPort; + } + + public String getInstalledPath() { + return installedPath; + } + + public void setInstalledPath(String installedPath) { + this.installedPath = installedPath; + } + + public String getMonitorMode() { + return monitorMode; + } + + public void setMonitorMode(String monitorMode) { + this.monitorMode = monitorMode; + } + +} http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GatewayProfileAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GatewayProfileAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GatewayProfileAppCatalogResourceAppCat.java new file mode 100644 index 0000000..d5eaec8 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GatewayProfileAppCatalogResourceAppCat.java @@ -0,0 +1,318 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.airavata.registry.core.app.catalog.resources; + +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.common.utils.AiravataUtils; +import org.apache.airavata.registry.core.app.catalog.model.GatewayProfile; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator; +import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType; +import org.apache.airavata.registry.cpi.AppCatalogException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +public class GatewayProfileAppCatalogResourceAppCat extends AppCatAbstractResource { + private final static Logger logger = LoggerFactory.getLogger(GatewayProfileAppCatalogResourceAppCat.class); + + private String gatewayID; + private Timestamp createdTime; + private Timestamp updatedTime; + + public Timestamp getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(Timestamp createdTime) { + this.createdTime = createdTime; + } + + public Timestamp getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(Timestamp updatedTime) { + this.updatedTime = updatedTime; + } + + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GATEWAY_PROFILE); + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, identifier); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + em.getTransaction().commit(); + em.close(); + } catch (ApplicationSettingsException 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 AppCatalogResource get(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GATEWAY_PROFILE); + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, identifier); + Query q = generator.selectQuery(em); + GatewayProfile gatewayProfile = (GatewayProfile) q.getSingleResult(); + GatewayProfileAppCatalogResourceAppCat gatewayProfileResource = + (GatewayProfileAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource( + AppCatalogResourceType.GATEWAY_PROFILE, gatewayProfile); + em.getTransaction().commit(); + em.close(); + return gatewayProfileResource; + } catch (ApplicationSettingsException 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 List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { + List<AppCatalogResource> gatewayProfileResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GATEWAY_PROFILE); + List results; + if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) { + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GatewayProfile gatewayProfile = (GatewayProfile) result; + GatewayProfileAppCatalogResourceAppCat gatewayProfileResource = + (GatewayProfileAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GATEWAY_PROFILE, gatewayProfile); + gatewayProfileResources.add(gatewayProfileResource); + } + } + } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) { + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GatewayProfile gatewayProfile = (GatewayProfile) result; + GatewayProfileAppCatalogResourceAppCat gatewayProfileResource = + (GatewayProfileAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GATEWAY_PROFILE, gatewayProfile); + gatewayProfileResources.add(gatewayProfileResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Gateway Profile resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Gateway Profile 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 gatewayProfileResources; + } + + @Override + public List<AppCatalogResource> getAll() throws AppCatalogException { + List<AppCatalogResource> resourceList = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GATEWAY_PROFILE); + Query q = generator.selectQuery(em); + List results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GatewayProfile gatewayProfile = (GatewayProfile) result; + GatewayProfileAppCatalogResourceAppCat gatewayProfileResource = + (GatewayProfileAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GATEWAY_PROFILE, gatewayProfile); + resourceList.add(gatewayProfileResource); + } + } + 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 resourceList; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> gatewayProfileResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GATEWAY_PROFILE); + List results; + if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) { + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GatewayProfile gatewayProfile = (GatewayProfile) result; + gatewayProfileResourceIDs.add(gatewayProfile.getGatewayID()); + } + } + } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) { + generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + GatewayProfile gatewayProfile = (GatewayProfile) result; + gatewayProfileResourceIDs.add(gatewayProfile.getGatewayID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Gateway Profile resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Gateway Profile 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 gatewayProfileResourceIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GatewayProfile existingGatewayProfile = em.find(GatewayProfile.class, gatewayID); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + if (existingGatewayProfile != null) { + existingGatewayProfile.setUpdateTime(AiravataUtils.getCurrentTimestamp()); + em.merge(existingGatewayProfile); + } else { + GatewayProfile gatewayProfile = new GatewayProfile(); + gatewayProfile.setGatewayID(gatewayID); + gatewayProfile.setCreationTime(AiravataUtils.getCurrentTimestamp()); + em.persist(gatewayProfile); + } + 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 { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GatewayProfile gatewayProfile = em.find(GatewayProfile.class, identifier); + em.close(); + return gatewayProfile != null; + } catch (ApplicationSettingsException 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 String getGatewayID() { + return gatewayID; + } + + public void setGatewayID(String gatewayID) { + this.gatewayID = gatewayID; + } +}
