http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionResource.java new file mode 100644 index 0000000..d899a66 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionResource.java @@ -0,0 +1,298 @@ +/* + * + * 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.CloudJobSubmission; +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 CloudSubmissionResource extends AppCatAbstractResource { + private final static Logger logger = LoggerFactory.getLogger(LocalSubmissionResource.class); + private String jobSubmissionInterfaceId; + private String securityProtocol; + private String nodeId; + private String executableType; + private String providerName; + private String userAccountName; + + @Override + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION); + generator.setParameter(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_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(); + } + } + } + + @Override + public AppCatalogResource get(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION); + generator.setParameter(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID, identifier); + Query q = generator.selectQuery(em); + CloudJobSubmission cloudJobSubmission = (CloudJobSubmission) q.getSingleResult(); + CloudSubmissionResource localSubmissionResource = (CloudSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, cloudJobSubmission); + em.getTransaction().commit(); + em.close(); + return localSubmissionResource; + } 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(); + } + } + } + + @Override + public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { + List<AppCatalogResource> localSubmissionResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION); + Query q; + if ((fieldName.equals(LocalSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || (fieldName.equals(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID))) { + generator.setParameter(fieldName, value); + q = generator.selectQuery(em); + List<?> results = q.getResultList(); + for (Object result : results) { + CloudJobSubmission localSubmission = (CloudJobSubmission) result; + CloudSubmissionResource localSubmissionResource = (CloudSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, localSubmission); + localSubmissionResources.add(localSubmissionResource); + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Local Submission Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Local Submission Resource."); + } + 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(); + } + } + return localSubmissionResources; + } + + @Override + public List<AppCatalogResource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + @Override + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + List<String> localSubmissionResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION); + Query q; + if ((fieldName.equals(LocalSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || (fieldName.equals(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID))) { + generator.setParameter(fieldName, value); + q = generator.selectQuery(em); + List<?> results = q.getResultList(); + for (Object result : results) { + CloudJobSubmission localSubmission = (CloudJobSubmission) result; + LocalSubmissionResource localSubmissionResource = (LocalSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, localSubmission); + localSubmissionResourceIDs.add(localSubmissionResource.getJobSubmissionInterfaceId()); + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Local Submission Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Local Submission Resource."); + } + 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(); + } + } + return localSubmissionResourceIDs; + } + + @Override + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + CloudJobSubmission existingLocalSubmission = em.find(CloudJobSubmission.class, jobSubmissionInterfaceId); + em.close(); + CloudJobSubmission cloudJobSubmission; + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + if (existingLocalSubmission == null) { + cloudJobSubmission = new CloudJobSubmission(); + } else { + cloudJobSubmission = existingLocalSubmission; + } + cloudJobSubmission.setExecutableType(getExecutableType()); + cloudJobSubmission.setNodeId(getNodeId()); + cloudJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId()); + cloudJobSubmission.setSecurityProtocol(getSecurityProtocol()); + cloudJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId()); + cloudJobSubmission.setUserAccountName(getUserAccountName()); + cloudJobSubmission.setProviderName(getProviderName()); + if (existingLocalSubmission == null) { + em.persist(cloudJobSubmission); + } else { + em.merge(cloudJobSubmission); + } + 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(); + } + } + } + + @Override + public boolean isExists(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + CloudJobSubmission localSubmission = em.find(CloudJobSubmission.class, identifier); + em.close(); + return localSubmission != 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 getJobSubmissionInterfaceId() { + return jobSubmissionInterfaceId; + } + + public String getSecurityProtocol() { + return securityProtocol; + } + + public void setSecurityProtocol(String securityProtocol) { + this.securityProtocol = securityProtocol; + } + + public String getNodeId() { + return nodeId; + } + + public void setNodeId(String nodeId) { + this.nodeId = nodeId; + } + + public String getExecutableType() { + return executableType; + } + + public void setExecutableType(String executableType) { + this.executableType = executableType; + } + + public String getProviderName() { + return providerName; + } + + public void setProviderName(String providerName) { + this.providerName = providerName; + } + + public String getUserAccountName() { + return userAccountName; + } + + public void setUserAccountName(String userAccountName) { + this.userAccountName = userAccountName; + } + + public void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) { + this.jobSubmissionInterfaceId=jobSubmissionInterfaceId; + } +}
http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceAppCatalogResourceAppCat.java deleted file mode 100644 index 80f03f7..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceAppCatalogResourceAppCat.java +++ /dev/null @@ -1,413 +0,0 @@ -/* - * - * 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.ComputeResource; -import org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreference; -import org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreferencePK; -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.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class ComputeHostPreferenceAppCatalogResourceAppCat extends AppCatAbstractResource { - private final static Logger logger = LoggerFactory.getLogger(ComputeHostPreferenceAppCatalogResourceAppCat.class); - private String gatewayId; - private String resourceId; - private boolean overrideByAiravata; - private String preferredJobProtocol; - private String preferedDMProtocol; - private String batchQueue; - private String scratchLocation; - private String projectNumber; - private String loginUserName; - - private GatewayProfileAppCatalogResourceAppCat gatewayProfile; - private ComputeResourceAppCatalogResourceAppCat computeHostResource; - - public String getLoginUserName() { - return loginUserName; - } - - public void setLoginUserName(String loginUserName) { - this.loginUserName = loginUserName; - } - - public String getGatewayId() { - return gatewayId; - } - - public void setGatewayId(String gatewayId) { - this.gatewayId = gatewayId; - } - - public String getResourceId() { - return resourceId; - } - - public void setResourceId(String resourceId) { - this.resourceId = resourceId; - } - - public boolean getOverrideByAiravata() { - return overrideByAiravata; - } - - public void setOverrideByAiravata(boolean overrideByAiravata) { - this.overrideByAiravata = overrideByAiravata; - } - - public String getPreferredJobProtocol() { - return preferredJobProtocol; - } - - public void setPreferredJobProtocol(String preferredJobProtocol) { - this.preferredJobProtocol = preferredJobProtocol; - } - - public String getPreferedDMProtocol() { - return preferedDMProtocol; - } - - public void setPreferedDMProtocol(String preferedDMProtocol) { - this.preferedDMProtocol = preferedDMProtocol; - } - - public String getBatchQueue() { - return batchQueue; - } - - public void setBatchQueue(String batchQueue) { - this.batchQueue = batchQueue; - } - - public String getScratchLocation() { - return scratchLocation; - } - - public void setScratchLocation(String scratchLocation) { - this.scratchLocation = scratchLocation; - } - - public String getProjectNumber() { - return projectNumber; - } - - public void setProjectNumber(String projectNumber) { - this.projectNumber = projectNumber; - } - - public GatewayProfileAppCatalogResourceAppCat getGatewayProfile() { - return gatewayProfile; - } - - public void setGatewayProfile(GatewayProfileAppCatalogResourceAppCat gatewayProfile) { - this.gatewayProfile = gatewayProfile; - } - - public ComputeResourceAppCatalogResourceAppCat getComputeHostResource() { - return computeHostResource; - } - - public void setComputeHostResource(ComputeResourceAppCatalogResourceAppCat computeHostResource) { - this.computeHostResource = computeHostResource; - } - - @Override - 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(COMPUTE_RESOURCE_PREFERENCE); - generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID)); - generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, ids.get(ComputeResourcePreferenceConstants.GATEWAY_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(); - } - } - } - - @Override - 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(COMPUTE_RESOURCE_PREFERENCE); - generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, ids.get(ComputeResourcePreferenceConstants.GATEWAY_ID)); - generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID)); - Query q = generator.selectQuery(em); - ComputeResourcePreference preference = (ComputeResourcePreference) q.getSingleResult(); - ComputeHostPreferenceAppCatalogResourceAppCat preferenceResource = - (ComputeHostPreferenceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, preference); - em.getTransaction().commit(); - em.close(); - return preferenceResource; - } 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(); - } - } - } - - @Override - public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { - List<AppCatalogResource> preferenceResourceList = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - Query q; - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE_PREFERENCE); - List results; - if (fieldName.equals(ComputeResourcePreferenceConstants.RESOURCE_ID)) { - generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - ComputeResourcePreference preference = (ComputeResourcePreference) result; - if (preference.getComputeHostResource()!=null) { - ComputeHostPreferenceAppCatalogResourceAppCat preferenceResource = (ComputeHostPreferenceAppCatalogResourceAppCat) AppCatalogJPAUtils - .getResource( - AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, - preference); - preferenceResourceList.add(preferenceResource); - } - } - } - } else if (fieldName.equals(ComputeResourcePreferenceConstants.GATEWAY_ID)) { - generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - ComputeResourcePreference preference = (ComputeResourcePreference) result; - if (preference.getComputeHostResource()!=null) { - ComputeHostPreferenceAppCatalogResourceAppCat preferenceResource = - (ComputeHostPreferenceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, preference); - preferenceResourceList.add(preferenceResource); - } - } - } - } else if (fieldName.equals(ComputeResourcePreferenceConstants.PREFERED_JOB_SUB_PROTOCOL)) { - generator.setParameter(ComputeResourcePreferenceConstants.PREFERED_JOB_SUB_PROTOCOL, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - ComputeResourcePreference preference = (ComputeResourcePreference) result; - if (preference.getComputeHostResource()!=null) { - ComputeHostPreferenceAppCatalogResourceAppCat preferenceResource = (ComputeHostPreferenceAppCatalogResourceAppCat) AppCatalogJPAUtils - .getResource( - AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, - preference); - preferenceResourceList.add(preferenceResource); - } - } - } - } else if (fieldName.equals(ComputeResourcePreferenceConstants.PREFERED_DATA_MOVE_PROTOCOL)) { - generator.setParameter(ComputeResourcePreferenceConstants.PREFERED_DATA_MOVE_PROTOCOL, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - ComputeResourcePreference preference = (ComputeResourcePreference) result; - if (preference.getResourceId()!=null) { - ComputeHostPreferenceAppCatalogResourceAppCat preferenceResource = (ComputeHostPreferenceAppCatalogResourceAppCat) AppCatalogJPAUtils - .getResource( - AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, - preference); - preferenceResourceList.add(preferenceResource); - } - } - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Compute host preference Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Compute host preference 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 preferenceResourceList; - } - - @Override - public List<AppCatalogResource> getAll() throws AppCatalogException { - return null; - } - - @Override - public List<String> getAllIds() throws AppCatalogException { - return null; - } - - @Override - public List<String> getIds(String fieldName, Object value) throws AppCatalogException { - logger.error("Unsupported for objects with a composite identifier"); - throw new AppCatalogException("Unsupported for objects with a composite identifier"); - } - - @Override - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - ComputeResourcePreference existingPreference = em.find(ComputeResourcePreference.class, new ComputeResourcePreferencePK(gatewayId, resourceId)); - em.close(); - - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - ComputeResource computeResource = em.find(ComputeResource.class, resourceId); - GatewayProfile gatewayProf = em.find(GatewayProfile.class, gatewayId); - if (existingPreference != null) { - existingPreference.setResourceId(resourceId); - existingPreference.setGatewayId(gatewayId); - existingPreference.setComputeHostResource(computeResource); - existingPreference.setGatewayProfile(gatewayProf); - existingPreference.setOverrideByAiravata(overrideByAiravata); - existingPreference.setPreferedJobSubmissionProtocol(preferredJobProtocol); - existingPreference.setPreferedDataMoveProtocol(preferedDMProtocol); - existingPreference.setScratchLocation(scratchLocation); - existingPreference.setProjectNumber(projectNumber); - existingPreference.setBatchQueue(batchQueue); - existingPreference.setLoginUserName(loginUserName); - em.merge(existingPreference); - } else { - ComputeResourcePreference resourcePreference = new ComputeResourcePreference(); - resourcePreference.setResourceId(resourceId); - resourcePreference.setGatewayId(gatewayId); - resourcePreference.setComputeHostResource(computeResource); - resourcePreference.setGatewayProfile(gatewayProf); - resourcePreference.setOverrideByAiravata(overrideByAiravata); - resourcePreference.setPreferedJobSubmissionProtocol(preferredJobProtocol); - resourcePreference.setPreferedDataMoveProtocol(preferedDMProtocol); - resourcePreference.setScratchLocation(scratchLocation); - resourcePreference.setProjectNumber(projectNumber); - resourcePreference.setBatchQueue(batchQueue); - resourcePreference.setLoginUserName(loginUserName); - em.persist(resourcePreference); - } - 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(); - } - } - } - - @Override - 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(); - ComputeResourcePreference existingPreference = em.find(ComputeResourcePreference.class, - new ComputeResourcePreferencePK(ids.get(ComputeResourcePreferenceConstants.GATEWAY_ID), - ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID))); - em.close(); - return existingPreference != null; - }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(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java new file mode 100644 index 0000000..46685c2 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java @@ -0,0 +1,413 @@ +/* + * + * 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.ComputeResource; +import org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreference; +import org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreferencePK; +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.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ComputeHostPreferenceResource extends AppCatAbstractResource { + private final static Logger logger = LoggerFactory.getLogger(ComputeHostPreferenceResource.class); + private String gatewayId; + private String resourceId; + private boolean overrideByAiravata; + private String preferredJobProtocol; + private String preferedDMProtocol; + private String batchQueue; + private String scratchLocation; + private String projectNumber; + private String loginUserName; + + private GatewayProfileResource gatewayProfile; + private ComputeResourceResource computeHostResource; + + public String getLoginUserName() { + return loginUserName; + } + + public void setLoginUserName(String loginUserName) { + this.loginUserName = loginUserName; + } + + public String getGatewayId() { + return gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public String getResourceId() { + return resourceId; + } + + public void setResourceId(String resourceId) { + this.resourceId = resourceId; + } + + public boolean getOverrideByAiravata() { + return overrideByAiravata; + } + + public void setOverrideByAiravata(boolean overrideByAiravata) { + this.overrideByAiravata = overrideByAiravata; + } + + public String getPreferredJobProtocol() { + return preferredJobProtocol; + } + + public void setPreferredJobProtocol(String preferredJobProtocol) { + this.preferredJobProtocol = preferredJobProtocol; + } + + public String getPreferedDMProtocol() { + return preferedDMProtocol; + } + + public void setPreferedDMProtocol(String preferedDMProtocol) { + this.preferedDMProtocol = preferedDMProtocol; + } + + public String getBatchQueue() { + return batchQueue; + } + + public void setBatchQueue(String batchQueue) { + this.batchQueue = batchQueue; + } + + public String getScratchLocation() { + return scratchLocation; + } + + public void setScratchLocation(String scratchLocation) { + this.scratchLocation = scratchLocation; + } + + public String getProjectNumber() { + return projectNumber; + } + + public void setProjectNumber(String projectNumber) { + this.projectNumber = projectNumber; + } + + public GatewayProfileResource getGatewayProfile() { + return gatewayProfile; + } + + public void setGatewayProfile(GatewayProfileResource gatewayProfile) { + this.gatewayProfile = gatewayProfile; + } + + public ComputeResourceResource getComputeHostResource() { + return computeHostResource; + } + + public void setComputeHostResource(ComputeResourceResource computeHostResource) { + this.computeHostResource = computeHostResource; + } + + @Override + 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(COMPUTE_RESOURCE_PREFERENCE); + generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID)); + generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, ids.get(ComputeResourcePreferenceConstants.GATEWAY_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(); + } + } + } + + @Override + 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(COMPUTE_RESOURCE_PREFERENCE); + generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, ids.get(ComputeResourcePreferenceConstants.GATEWAY_ID)); + generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID)); + Query q = generator.selectQuery(em); + ComputeResourcePreference preference = (ComputeResourcePreference) q.getSingleResult(); + ComputeHostPreferenceResource preferenceResource = + (ComputeHostPreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, preference); + em.getTransaction().commit(); + em.close(); + return preferenceResource; + } 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(); + } + } + } + + @Override + public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { + List<AppCatalogResource> preferenceResourceList = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE_PREFERENCE); + List results; + if (fieldName.equals(ComputeResourcePreferenceConstants.RESOURCE_ID)) { + generator.setParameter(ComputeResourcePreferenceConstants.RESOURCE_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + ComputeResourcePreference preference = (ComputeResourcePreference) result; + if (preference.getComputeHostResource()!=null) { + ComputeHostPreferenceResource preferenceResource = (ComputeHostPreferenceResource) AppCatalogJPAUtils + .getResource( + AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, + preference); + preferenceResourceList.add(preferenceResource); + } + } + } + } else if (fieldName.equals(ComputeResourcePreferenceConstants.GATEWAY_ID)) { + generator.setParameter(ComputeResourcePreferenceConstants.GATEWAY_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + ComputeResourcePreference preference = (ComputeResourcePreference) result; + if (preference.getComputeHostResource()!=null) { + ComputeHostPreferenceResource preferenceResource = + (ComputeHostPreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, preference); + preferenceResourceList.add(preferenceResource); + } + } + } + } else if (fieldName.equals(ComputeResourcePreferenceConstants.PREFERED_JOB_SUB_PROTOCOL)) { + generator.setParameter(ComputeResourcePreferenceConstants.PREFERED_JOB_SUB_PROTOCOL, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + ComputeResourcePreference preference = (ComputeResourcePreference) result; + if (preference.getComputeHostResource()!=null) { + ComputeHostPreferenceResource preferenceResource = (ComputeHostPreferenceResource) AppCatalogJPAUtils + .getResource( + AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, + preference); + preferenceResourceList.add(preferenceResource); + } + } + } + } else if (fieldName.equals(ComputeResourcePreferenceConstants.PREFERED_DATA_MOVE_PROTOCOL)) { + generator.setParameter(ComputeResourcePreferenceConstants.PREFERED_DATA_MOVE_PROTOCOL, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + ComputeResourcePreference preference = (ComputeResourcePreference) result; + if (preference.getResourceId()!=null) { + ComputeHostPreferenceResource preferenceResource = (ComputeHostPreferenceResource) AppCatalogJPAUtils + .getResource( + AppCatalogResourceType.COMPUTE_RESOURCE_PREFERENCE, + preference); + preferenceResourceList.add(preferenceResource); + } + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Compute host preference Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Compute host preference 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 preferenceResourceList; + } + + @Override + public List<AppCatalogResource> getAll() throws AppCatalogException { + return null; + } + + @Override + public List<String> getAllIds() throws AppCatalogException { + return null; + } + + @Override + public List<String> getIds(String fieldName, Object value) throws AppCatalogException { + logger.error("Unsupported for objects with a composite identifier"); + throw new AppCatalogException("Unsupported for objects with a composite identifier"); + } + + @Override + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + ComputeResourcePreference existingPreference = em.find(ComputeResourcePreference.class, new ComputeResourcePreferencePK(gatewayId, resourceId)); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + ComputeResource computeResource = em.find(ComputeResource.class, resourceId); + GatewayProfile gatewayProf = em.find(GatewayProfile.class, gatewayId); + if (existingPreference != null) { + existingPreference.setResourceId(resourceId); + existingPreference.setGatewayId(gatewayId); + existingPreference.setComputeHostResource(computeResource); + existingPreference.setGatewayProfile(gatewayProf); + existingPreference.setOverrideByAiravata(overrideByAiravata); + existingPreference.setPreferedJobSubmissionProtocol(preferredJobProtocol); + existingPreference.setPreferedDataMoveProtocol(preferedDMProtocol); + existingPreference.setScratchLocation(scratchLocation); + existingPreference.setProjectNumber(projectNumber); + existingPreference.setBatchQueue(batchQueue); + existingPreference.setLoginUserName(loginUserName); + em.merge(existingPreference); + } else { + ComputeResourcePreference resourcePreference = new ComputeResourcePreference(); + resourcePreference.setResourceId(resourceId); + resourcePreference.setGatewayId(gatewayId); + resourcePreference.setComputeHostResource(computeResource); + resourcePreference.setGatewayProfile(gatewayProf); + resourcePreference.setOverrideByAiravata(overrideByAiravata); + resourcePreference.setPreferedJobSubmissionProtocol(preferredJobProtocol); + resourcePreference.setPreferedDataMoveProtocol(preferedDMProtocol); + resourcePreference.setScratchLocation(scratchLocation); + resourcePreference.setProjectNumber(projectNumber); + resourcePreference.setBatchQueue(batchQueue); + resourcePreference.setLoginUserName(loginUserName); + em.persist(resourcePreference); + } + 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(); + } + } + } + + @Override + 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(); + ComputeResourcePreference existingPreference = em.find(ComputeResourcePreference.class, + new ComputeResourcePreferencePK(ids.get(ComputeResourcePreferenceConstants.GATEWAY_ID), + ids.get(ComputeResourcePreferenceConstants.RESOURCE_ID))); + em.close(); + return existingPreference != null; + }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(); + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceAppCatalogResourceAppCat.java deleted file mode 100644 index 38e6988..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceAppCatalogResourceAppCat.java +++ /dev/null @@ -1,351 +0,0 @@ -/* - * - * 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.ComputeResource; -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 ComputeResourceAppCatalogResourceAppCat extends AppCatAbstractResource { - private final static Logger logger = LoggerFactory.getLogger(ComputeResourceAppCatalogResourceAppCat.class); - private String resourceDescription; - private String resourceId; - private String hostName; - private Timestamp createdTime; - private Timestamp updatedTime; - private int maxMemoryPerNode; - - public int getMaxMemoryPerNode() { - return maxMemoryPerNode; - } - - public void setMaxMemoryPerNode(int maxMemoryPerNode) { - this.maxMemoryPerNode = maxMemoryPerNode; - } - - 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; - } - - @Override - public void remove(Object identifier) throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - generator.setParameter(ComputeResourceConstants.RESOURCE_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(); - } - } - } - - @Override - public AppCatalogResource get(Object identifier) throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - generator.setParameter(ComputeResourceConstants.RESOURCE_ID, identifier); - Query q = generator.selectQuery(em); - ComputeResource computeResource = (ComputeResource) q.getSingleResult(); - ComputeResourceAppCatalogResourceAppCat computeResourceResource = (ComputeResourceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE, computeResource); - em.getTransaction().commit(); - em.close(); - return computeResourceResource; - } 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(); - } - } - } - - @Override - public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { - List<AppCatalogResource> computeResourceResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - Query q; - if ((fieldName.equals(ComputeResourceConstants.RESOURCE_DESCRIPTION)) || (fieldName.equals(ComputeResourceConstants.RESOURCE_ID)) || (fieldName.equals(ComputeResourceConstants.HOST_NAME))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResource computeResource = (ComputeResource) result; - ComputeResourceAppCatalogResourceAppCat computeResourceResource = (ComputeResourceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE, computeResource); - computeResourceResources.add(computeResourceResource); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Compute Resource Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Compute Resource Resource."); - } - 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(); - } - } - return computeResourceResources; - } - - @Override - public List<AppCatalogResource> getAll() throws AppCatalogException { - List<AppCatalogResource> computeResourceResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - Query q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResource computeResource = (ComputeResource) result; - ComputeResourceAppCatalogResourceAppCat computeResourceResource = (ComputeResourceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE, computeResource); - computeResourceResources.add(computeResourceResource); - } - 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(); - } - } - return computeResourceResources; - } - - @Override - public List<String> getAllIds() throws AppCatalogException { - List<String> computeResourceResources = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - Query q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResource computeResource = (ComputeResource) result; - computeResourceResources.add(computeResource.getResourceId()); - } - 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(); - } - } - return computeResourceResources; - } - - @Override - public List<String> getIds(String fieldName, Object value) throws AppCatalogException { - List<String> computeResourceResourceIDs = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE); - Query q; - if ((fieldName.equals(ComputeResourceConstants.RESOURCE_DESCRIPTION)) || (fieldName.equals(ComputeResourceConstants.RESOURCE_ID)) || (fieldName.equals(ComputeResourceConstants.HOST_NAME))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResource computeResource = (ComputeResource) result; - ComputeResourceAppCatalogResourceAppCat computeResourceResource = (ComputeResourceAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE, computeResource); - computeResourceResourceIDs.add(computeResourceResource.getResourceId()); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Compute Resource Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Compute Resource Resource."); - } - 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(); - } - } - return computeResourceResourceIDs; - } - - @Override - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - ComputeResource existingComputeResource = em.find(ComputeResource.class, resourceId); - em.close(); - ComputeResource computeResource; - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - if (existingComputeResource == null) { - computeResource = new ComputeResource(); - computeResource.setCreationTime(AiravataUtils.getCurrentTimestamp()); - } else { - computeResource = existingComputeResource; - computeResource.setUpdateTime(AiravataUtils.getCurrentTimestamp()); - } - computeResource.setResourceDescription(getResourceDescription()); - computeResource.setResourceId(getResourceId()); - computeResource.setHostName(getHostName()); - computeResource.setMaxMemoryPerNode(getMaxMemoryPerNode()); - if (existingComputeResource == null) { - em.persist(computeResource); - } else { - em.merge(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(); - } - } - } - - @Override - public boolean isExists(Object identifier) throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - ComputeResource computeResource = em.find(ComputeResource.class, identifier); - em.close(); - return computeResource != 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 getResourceDescription() { - return resourceDescription; - } - - public String getResourceId() { - return resourceId; - } - - public String getHostName() { - return hostName; - } - - public void setResourceDescription(String resourceDescription) { - this.resourceDescription=resourceDescription; - } - - public void setResourceId(String resourceId) { - this.resourceId=resourceId; - } - - public void setHostName(String hostName) { - this.hostName=hostName; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceFileSystemAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceFileSystemAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceFileSystemAppCatalogResourceAppCat.java deleted file mode 100644 index 5bf98e4..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeResourceFileSystemAppCatalogResourceAppCat.java +++ /dev/null @@ -1,307 +0,0 @@ -/* - * - * 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 java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.persistence.EntityManager; -import javax.persistence.Query; - -import org.apache.airavata.common.exception.ApplicationSettingsException; -import org.apache.airavata.registry.core.app.catalog.model.ComputeResource; -import org.apache.airavata.registry.core.app.catalog.model.ComputeResourceFileSystem; -import org.apache.airavata.registry.core.app.catalog.model.ComputeResourceFileSystem_PK; -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; - -public class ComputeResourceFileSystemAppCatalogResourceAppCat extends AppCatAbstractResource { - private final static Logger logger = LoggerFactory.getLogger(ComputeResourceFileSystemAppCatalogResourceAppCat.class); - private String computeResourceId; - private ComputeResourceAppCatalogResourceAppCat computeHostResource; - private String path; - private String fileSystem; - - @Override - public void remove(Object identifier) throws AppCatalogException { - HashMap<String, String> ids; - if (identifier instanceof Map) { - ids = (HashMap<String, String>) 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(COMPUTE_RESOURCE_FILE_SYSTEM); - generator.setParameter(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID, ids.get(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID)); - generator.setParameter(ComputeResourceFileSystemConstants.FILE_SYSTEM, ids.get(ComputeResourceFileSystemConstants.FILE_SYSTEM)); - 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(); - } - } - } - - @Override - public AppCatalogResource get(Object identifier) throws AppCatalogException { - HashMap<String, String> ids; - if (identifier instanceof Map) { - ids = (HashMap<String, String>) 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(COMPUTE_RESOURCE_FILE_SYSTEM); - generator.setParameter(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID, ids.get(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID)); - generator.setParameter(ComputeResourceFileSystemConstants.FILE_SYSTEM, ids.get(ComputeResourceFileSystemConstants.FILE_SYSTEM)); - Query q = generator.selectQuery(em); - ComputeResourceFileSystem computeResourceFileSystem = (ComputeResourceFileSystem) q.getSingleResult(); - ComputeResourceFileSystemAppCatalogResourceAppCat computeResourceFileSystemResource = (ComputeResourceFileSystemAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_FILE_SYSTEM, computeResourceFileSystem); - em.getTransaction().commit(); - em.close(); - return computeResourceFileSystemResource; - } 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(); - } - } - } - - @Override - public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException { - List<AppCatalogResource> computeResourceFileSystemResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE_FILE_SYSTEM); - Query q; - if ((fieldName.equals(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID)) || (fieldName.equals(ComputeResourceFileSystemConstants.PATH)) || (fieldName.equals(ComputeResourceFileSystemConstants.FILE_SYSTEM))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResourceFileSystem computeResourceFileSystem = (ComputeResourceFileSystem) result; - ComputeResourceFileSystemAppCatalogResourceAppCat computeResourceFileSystemResource = (ComputeResourceFileSystemAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_FILE_SYSTEM, computeResourceFileSystem); - computeResourceFileSystemResources.add(computeResourceFileSystemResource); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Compute Resource File System Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Compute Resource File System Resource."); - } - 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(); - } - } - return computeResourceFileSystemResources; - } - - @Override - public List<AppCatalogResource> getAll() throws AppCatalogException { - return null; - } - - @Override - public List<String> getAllIds() throws AppCatalogException { - return null; - } - - @Override - public List<String> getIds(String fieldName, Object value) throws AppCatalogException { - List<String> computeResourceFileSystemResourceIDs = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(COMPUTE_RESOURCE_FILE_SYSTEM); - Query q; - if ((fieldName.equals(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID)) || (fieldName.equals(ComputeResourceFileSystemConstants.PATH)) || (fieldName.equals(ComputeResourceFileSystemConstants.FILE_SYSTEM))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - ComputeResourceFileSystem computeResourceFileSystem = (ComputeResourceFileSystem) result; - ComputeResourceFileSystemAppCatalogResourceAppCat computeResourceFileSystemResource = (ComputeResourceFileSystemAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.COMPUTE_RESOURCE_FILE_SYSTEM, computeResourceFileSystem); - computeResourceFileSystemResourceIDs.add(computeResourceFileSystemResource.getComputeResourceId()); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Compute Resource File System Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Compute Resource File System Resource."); - } - 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(); - } - } - return computeResourceFileSystemResourceIDs; - } - - @Override - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - ComputeResourceFileSystem existingComputeResourceFileSystem = em.find(ComputeResourceFileSystem.class, new ComputeResourceFileSystem_PK(computeResourceId, fileSystem)); - em.close(); - ComputeResourceFileSystem computeResourceFileSystem; - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - if (existingComputeResourceFileSystem == null) { - computeResourceFileSystem = new ComputeResourceFileSystem(); - } else { - computeResourceFileSystem = existingComputeResourceFileSystem; - } - computeResourceFileSystem.setComputeResourceId(getComputeResourceId()); - ComputeResource computeResource = em.find(ComputeResource.class, getComputeResourceId()); - computeResourceFileSystem.setComputeResource(computeResource); - computeResourceFileSystem.setPath(getPath()); - computeResourceFileSystem.setFileSystem(getFileSystem()); - if (existingComputeResourceFileSystem == null) { - em.persist(computeResourceFileSystem); - } else { - em.merge(computeResourceFileSystem); - } - 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(); - } - } - } - - @Override - public boolean isExists(Object identifier) throws AppCatalogException { - HashMap<String, String> ids; - if (identifier instanceof Map) { - ids = (HashMap<String, String>) 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(); - ComputeResourceFileSystem computeResourceFileSystem = em.find(ComputeResourceFileSystem.class, new ComputeResourceFileSystem_PK(ids.get(ComputeResourceFileSystemConstants.COMPUTE_RESOURCE_ID), ids.get(ComputeResourceFileSystemConstants.FILE_SYSTEM))); - em.close(); - return computeResourceFileSystem != 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 getComputeResourceId() { - return computeResourceId; - } - - public ComputeResourceAppCatalogResourceAppCat getComputeHostResource() { - return computeHostResource; - } - - public String getPath() { - return path; - } - - public String getFileSystem() { - return fileSystem; - } - - public void setComputeResourceId(String computeResourceId) { - this.computeResourceId=computeResourceId; - } - - public void setComputeHostResource(ComputeResourceAppCatalogResourceAppCat computeHostResource) { - this.computeHostResource=computeHostResource; - } - - public void setPath(String path) { - this.path=path; - } - - public void setFileSystem(String fileSystem) { - this.fileSystem=fileSystem; - } -}
