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/GridftpEndpointResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointResource.java new file mode 100644 index 0000000..8f3e806 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointResource.java @@ -0,0 +1,317 @@ +/** + * 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.sql.Timestamp; +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.common.utils.AiravataUtils; +import org.apache.airavata.registry.core.app.catalog.model.GridftpDataMovement; +import org.apache.airavata.registry.core.app.catalog.model.GridftpEndpoint; +import org.apache.airavata.registry.core.app.catalog.model.GridftpEndpoint_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 GridftpEndpointResource extends AppCatAbstractResource { + private final static Logger logger = LoggerFactory.getLogger(GridftpEndpointResource.class); + private String endpoint; + private String dataMovementInterfaceId; + private GridftpDataMovementResource gridftpDataMovementResource; + 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; + } + + @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(GRIDFTP_ENDPOINT); + generator.setParameter(GridftpEndpointConstants.ENDPOINT, ids.get(GridftpEndpointConstants.ENDPOINT)); + generator.setParameter(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID, ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_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<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(GRIDFTP_ENDPOINT); + generator.setParameter(GridftpEndpointConstants.ENDPOINT, ids.get(GridftpEndpointConstants.ENDPOINT)); + generator.setParameter(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID, ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID)); + Query q = generator.selectQuery(em); + GridftpEndpoint gridftpEndpoint = (GridftpEndpoint) q.getSingleResult(); + GridftpEndpointResource gridftpEndpointResource = (GridftpEndpointResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, gridftpEndpoint); + em.getTransaction().commit(); + em.close(); + return gridftpEndpointResource; + } 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> gridftpEndpointResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GRIDFTP_ENDPOINT); + Query q; + if ((fieldName.equals(GridftpEndpointConstants.ENDPOINT)) || (fieldName.equals(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID))) { + generator.setParameter(fieldName, value); + q = generator.selectQuery(em); + List<?> results = q.getResultList(); + for (Object result : results) { + GridftpEndpoint gridftpEndpoint = (GridftpEndpoint) result; + GridftpEndpointResource gridftpEndpointResource = (GridftpEndpointResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, gridftpEndpoint); + gridftpEndpointResources.add(gridftpEndpointResource); + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Gridftp Endpoint Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Gridftp Endpoint 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 gridftpEndpointResources; + } + + @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> gridftpEndpointResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GRIDFTP_ENDPOINT); + Query q; + if ((fieldName.equals(GridftpEndpointConstants.ENDPOINT)) || (fieldName.equals(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID))) { + generator.setParameter(fieldName, value); + q = generator.selectQuery(em); + List<?> results = q.getResultList(); + for (Object result : results) { + GridftpEndpoint gridftpEndpoint = (GridftpEndpoint) result; + GridftpEndpointResource gridftpEndpointResource = (GridftpEndpointResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, gridftpEndpoint); + gridftpEndpointResourceIDs.add(gridftpEndpointResource.getDataMovementInterfaceId()); + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Gridftp Endpoint Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Gridftp Endpoint 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 gridftpEndpointResourceIDs; + } + + @Override + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + GridftpEndpoint existingGridftpEndpoint = em.find(GridftpEndpoint.class, new GridftpEndpoint_PK(endpoint, dataMovementInterfaceId)); + em.close(); + GridftpEndpoint gridftpEndpoint; + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + if (existingGridftpEndpoint == null) { + gridftpEndpoint = new GridftpEndpoint(); + gridftpEndpoint.setCreationTime(AiravataUtils.getCurrentTimestamp()); + } else { + gridftpEndpoint = existingGridftpEndpoint; + gridftpEndpoint.setUpdateTime(AiravataUtils.getCurrentTimestamp()); + } + gridftpEndpoint.setEndpoint(getEndpoint()); + gridftpEndpoint.setDataMovementInterfaceId(getDataMovementInterfaceId()); + GridftpDataMovement gridftpDataMovement = em.find(GridftpDataMovement.class, getDataMovementInterfaceId()); + gridftpEndpoint.setGridftpDataMovement(gridftpDataMovement); + if (existingGridftpEndpoint == null) { + em.persist(gridftpEndpoint); + } else { + em.merge(gridftpEndpoint); + } + 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(); + GridftpEndpoint gridftpEndpoint = em.find(GridftpEndpoint.class, new GridftpEndpoint_PK(ids.get(GridftpEndpointConstants.ENDPOINT), ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID))); + em.close(); + return gridftpEndpoint != 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 getEndpoint() { + return endpoint; + } + + public String getDataMovementInterfaceId() { + return dataMovementInterfaceId; + } + + public GridftpDataMovementResource getGridftpDataMovementResource() { + return gridftpDataMovementResource; + } + + public void setEndpoint(String endpoint) { + this.endpoint=endpoint; + } + + public void setDataMovementInterfaceId(String dataMovementInterfaceId) { + this.dataMovementInterfaceId=dataMovementInterfaceId; + } + + public void setGridftpDataMovementResource(GridftpDataMovementResource gridftpDataMovementResource) { + this.gridftpDataMovementResource=gridftpDataMovementResource; + } +} \ 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/HostAliasAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppCatalogResourceAppCat.java deleted file mode 100644 index 936b6c6..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppCatalogResourceAppCat.java +++ /dev/null @@ -1,317 +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.HostAlias; -import org.apache.airavata.registry.core.app.catalog.model.HostAliasPK; -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.*; - -public class HostAliasAppCatalogResourceAppCat extends AppCatAbstractResource { - - private final static Logger logger = LoggerFactory.getLogger(HostAliasAppCatalogResourceAppCat.class); - - private String resourceID; - private String alias; - private ComputeResourceAppCatalogResourceAppCat computeHostResource; - - public void remove(Object identifier) throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator= new AppCatalogQueryGenerator(HOST_ALIAS); - generator.setParameter(HostAliasConstants.RESOURCE_ID, (String)identifier); -// generator.setParameter(HostAliasConstants.ALIAS, ids.get(HostAliasConstants.ALIAS)); - 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(HOST_ALIAS); - generator.setParameter(HostAliasConstants.RESOURCE_ID, ids.get(HostAliasConstants.RESOURCE_ID)); - generator.setParameter(HostAliasConstants.ALIAS, ids.get(HostAliasConstants.ALIAS)); - Query q = generator.selectQuery(em); - HostAlias hostAlias = (HostAlias) q.getSingleResult(); - HostAliasAppCatalogResourceAppCat hostAliasResource = - (HostAliasAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); - em.getTransaction().commit(); - em.close(); - return hostAliasResource; - } 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> hostAliasResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - Query q; - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS); - List results; - if (fieldName.equals(HostAliasConstants.ALIAS)) { - generator.setParameter(HostAliasConstants.ALIAS, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostAlias hostAlias = (HostAlias) result; - HostAliasAppCatalogResourceAppCat hostAliasResource = - (HostAliasAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); - hostAliasResources.add(hostAliasResource); - } - } - } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) { - generator.setParameter(HostAliasConstants.RESOURCE_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostAlias hostAlias = (HostAlias) result; - HostAliasAppCatalogResourceAppCat hostAliasResource = - (HostAliasAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); - hostAliasResources.add(hostAliasResource); - } - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Host Alias Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Host Alias Resource."); - } - em.getTransaction().commit(); - em.close(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - throw new AppCatalogException(e); - } finally { - if (em != null && em.isOpen()) { - if (em.getTransaction().isActive()) { - em.getTransaction().rollback(); - } - em.close(); - } - } - return hostAliasResources; - } - - @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> hostAliasResourceIDs = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - Query q; - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS); - List results; - if (fieldName.equals(HostAliasConstants.ALIAS)) { - generator.setParameter(HostAliasConstants.ALIAS, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostAlias hostAlias = (HostAlias) result; - hostAliasResourceIDs.add(hostAlias.getResourceID()); - } - } - } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) { - generator.setParameter(HostAliasConstants.RESOURCE_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostAlias hostAlias = (HostAlias) result; - hostAliasResourceIDs.add(hostAlias.getResourceID()); - } - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Host Alias resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Host Alias Resource."); - } - em.getTransaction().commit(); - em.close(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - throw new AppCatalogException(e); - } finally { - if (em != null && em.isOpen()) { - if (em.getTransaction().isActive()) { - em.getTransaction().rollback(); - } - em.close(); - } - } - return hostAliasResourceIDs; - } - - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - HostAlias existingHostAlias = em.find(HostAlias.class, new HostAliasPK(resourceID, alias)); - em.close(); - - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - ComputeResource computeResource = em.find(ComputeResource.class, resourceID); - if (existingHostAlias != null){ - existingHostAlias.setAlias(alias); - existingHostAlias.setComputeResource(computeResource); - existingHostAlias.setResourceID(resourceID); - em.merge(existingHostAlias); - }else { - HostAlias hostAlias = new HostAlias(); - hostAlias.setAlias(alias); - hostAlias.setResourceID(resourceID); - hostAlias.setComputeResource(computeResource); - - em.persist(hostAlias); - } - 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(); - HostAlias hostAlias = em.find(HostAlias.class, new HostAliasPK(ids.get(HostAliasConstants.RESOURCE_ID), - ids.get(HostAliasConstants.ALIAS))); - - em.close(); - return hostAlias != 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 getResourceID() { - return resourceID; - } - - public void setResourceID(String resourceID) { - this.resourceID = resourceID; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - public ComputeResourceAppCatalogResourceAppCat getComputeHostResource() { - return computeHostResource; - } - - public void setComputeHostResource(ComputeResourceAppCatalogResourceAppCat computeHostResource) { - this.computeHostResource = computeHostResource; - } -} 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/HostAliasAppResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppResource.java new file mode 100644 index 0000000..8f9a752 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostAliasAppResource.java @@ -0,0 +1,317 @@ +/** + * 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.HostAlias; +import org.apache.airavata.registry.core.app.catalog.model.HostAliasPK; +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.*; + +public class HostAliasAppResource extends AppCatAbstractResource { + + private final static Logger logger = LoggerFactory.getLogger(HostAliasAppResource.class); + + private String resourceID; + private String alias; + private ComputeResourceResource computeHostResource; + + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator= new AppCatalogQueryGenerator(HOST_ALIAS); + generator.setParameter(HostAliasConstants.RESOURCE_ID, (String)identifier); +// generator.setParameter(HostAliasConstants.ALIAS, ids.get(HostAliasConstants.ALIAS)); + 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(HOST_ALIAS); + generator.setParameter(HostAliasConstants.RESOURCE_ID, ids.get(HostAliasConstants.RESOURCE_ID)); + generator.setParameter(HostAliasConstants.ALIAS, ids.get(HostAliasConstants.ALIAS)); + Query q = generator.selectQuery(em); + HostAlias hostAlias = (HostAlias) q.getSingleResult(); + HostAliasAppResource hostAliasResource = + (HostAliasAppResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); + em.getTransaction().commit(); + em.close(); + return hostAliasResource; + } 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> hostAliasResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS); + List results; + if (fieldName.equals(HostAliasConstants.ALIAS)) { + generator.setParameter(HostAliasConstants.ALIAS, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostAlias hostAlias = (HostAlias) result; + HostAliasAppResource hostAliasResource = + (HostAliasAppResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); + hostAliasResources.add(hostAliasResource); + } + } + } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) { + generator.setParameter(HostAliasConstants.RESOURCE_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostAlias hostAlias = (HostAlias) result; + HostAliasAppResource hostAliasResource = + (HostAliasAppResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_ALIAS, hostAlias); + hostAliasResources.add(hostAliasResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Host Alias Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Host Alias Resource."); + } + em.getTransaction().commit(); + em.close(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new AppCatalogException(e); + } finally { + if (em != null && em.isOpen()) { + if (em.getTransaction().isActive()) { + em.getTransaction().rollback(); + } + em.close(); + } + } + return hostAliasResources; + } + + @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> hostAliasResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_ALIAS); + List results; + if (fieldName.equals(HostAliasConstants.ALIAS)) { + generator.setParameter(HostAliasConstants.ALIAS, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostAlias hostAlias = (HostAlias) result; + hostAliasResourceIDs.add(hostAlias.getResourceID()); + } + } + } else if (fieldName.equals(HostAliasConstants.RESOURCE_ID)) { + generator.setParameter(HostAliasConstants.RESOURCE_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostAlias hostAlias = (HostAlias) result; + hostAliasResourceIDs.add(hostAlias.getResourceID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Host Alias resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Host Alias Resource."); + } + em.getTransaction().commit(); + em.close(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new AppCatalogException(e); + } finally { + if (em != null && em.isOpen()) { + if (em.getTransaction().isActive()) { + em.getTransaction().rollback(); + } + em.close(); + } + } + return hostAliasResourceIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + HostAlias existingHostAlias = em.find(HostAlias.class, new HostAliasPK(resourceID, alias)); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + ComputeResource computeResource = em.find(ComputeResource.class, resourceID); + if (existingHostAlias != null){ + existingHostAlias.setAlias(alias); + existingHostAlias.setComputeResource(computeResource); + existingHostAlias.setResourceID(resourceID); + em.merge(existingHostAlias); + }else { + HostAlias hostAlias = new HostAlias(); + hostAlias.setAlias(alias); + hostAlias.setResourceID(resourceID); + hostAlias.setComputeResource(computeResource); + + em.persist(hostAlias); + } + 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(); + HostAlias hostAlias = em.find(HostAlias.class, new HostAliasPK(ids.get(HostAliasConstants.RESOURCE_ID), + ids.get(HostAliasConstants.ALIAS))); + + em.close(); + return hostAlias != 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 getResourceID() { + return resourceID; + } + + public void setResourceID(String resourceID) { + this.resourceID = resourceID; + } + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public ComputeResourceResource getComputeHostResource() { + return computeHostResource; + } + + public void setComputeHostResource(ComputeResourceResource computeHostResource) { + this.computeHostResource = computeHostResource; + } +} 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/HostIPAddressAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressAppCatalogResourceAppCat.java deleted file mode 100644 index e32fc36..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressAppCatalogResourceAppCat.java +++ /dev/null @@ -1,318 +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.HostIPAddress; -import org.apache.airavata.registry.core.app.catalog.model.HostIPAddressPK; -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 HostIPAddressAppCatalogResourceAppCat extends AppCatAbstractResource { - - private final static Logger logger = LoggerFactory.getLogger(HostIPAddressAppCatalogResourceAppCat.class); - - private String resourceID; - private String ipaddress; - private ComputeResourceAppCatalogResourceAppCat computeHostResource; - - public void remove(Object identifier) throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator= new AppCatalogQueryGenerator(HOST_IPADDRESS); - generator.setParameter(HostIPAddressConstants.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(); - } - } - - } - - 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(HOST_IPADDRESS); - generator.setParameter(HostIPAddressConstants.RESOURCE_ID, ids.get(HostIPAddressConstants.RESOURCE_ID)); - generator.setParameter(HostIPAddressConstants.IP_ADDRESS, ids.get(HostIPAddressConstants.IP_ADDRESS)); - Query q = generator.selectQuery(em); - HostIPAddress hostIPAddress = (HostIPAddress) q.getSingleResult(); - HostIPAddressAppCatalogResourceAppCat hostIPAddressResource = - (HostIPAddressAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); - em.getTransaction().commit(); - em.close(); - return hostIPAddressResource; - } 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> hostIPAddressResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - Query q; - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_IPADDRESS); - List results; - if (fieldName.equals(HostIPAddressConstants.IP_ADDRESS)) { - generator.setParameter(HostIPAddressConstants.IP_ADDRESS, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostIPAddress hostIPAddress = (HostIPAddress) result; - HostIPAddressAppCatalogResourceAppCat hostIPAddressResource = - (HostIPAddressAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); - hostIPAddressResources.add(hostIPAddressResource); - } - } - } else if (fieldName.equals(HostIPAddressConstants.RESOURCE_ID)) { - generator.setParameter(HostIPAddressConstants.RESOURCE_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostIPAddress hostIPAddress = (HostIPAddress) result; - HostIPAddressAppCatalogResourceAppCat hostIPAddressResource = - (HostIPAddressAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); - hostIPAddressResources.add(hostIPAddressResource); - } - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Host IPAddress Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Host IPAddress 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 hostIPAddressResources; - } - - @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> hostIPAddressResourceIDs = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - Query q; - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_IPADDRESS); - List results; - if (fieldName.equals(HostIPAddressConstants.IP_ADDRESS)) { - generator.setParameter(HostIPAddressConstants.IP_ADDRESS, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostIPAddress hostIPAddress = (HostIPAddress) result; - hostIPAddressResourceIDs.add(hostIPAddress.getResourceID()); - } - } - } else if (fieldName.equals(HostIPAddressConstants.RESOURCE_ID)) { - generator.setParameter(HostIPAddressConstants.RESOURCE_ID, value); - q = generator.selectQuery(em); - results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - HostIPAddress hostIPAddress = (HostIPAddress) result; - hostIPAddressResourceIDs.add(hostIPAddress.getResourceID()); - } - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Host IP Address resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Host IPAddress 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 hostIPAddressResourceIDs; - } - - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - HostIPAddress existingHostIP = em.find(HostIPAddress.class, new HostIPAddressPK(resourceID,ipaddress)); - em.close(); - - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - ComputeResource computeResource = em.find(ComputeResource.class, resourceID); - if (existingHostIP != null){ - existingHostIP.setIpaddress(ipaddress); - existingHostIP.setResourceID(resourceID); - existingHostIP.setComputeResource(computeResource); - em.merge(existingHostIP); - }else { - HostIPAddress hostIPAddress = new HostIPAddress(); - hostIPAddress.setIpaddress(ipaddress); - hostIPAddress.setResourceID(resourceID); - hostIPAddress.setComputeResource(computeResource); - em.persist(hostIPAddress); - } - 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(); - HostIPAddress hostIPAddress = em.find(HostIPAddress.class, new HostIPAddressPK(ids.get(HostIPAddressConstants.RESOURCE_ID), - ids.get(HostIPAddressConstants.IP_ADDRESS))); - - em.close(); - return hostIPAddress != 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 getResourceID() { - return resourceID; - } - - public void setResourceID(String resourceID) { - this.resourceID = resourceID; - } - - public String getIpaddress() { - return ipaddress; - } - - public void setIpaddress(String ipaddress) { - this.ipaddress = ipaddress; - } - - public ComputeResourceAppCatalogResourceAppCat getComputeHostResource() { - return computeHostResource; - } - - public void setComputeHostResource(ComputeResourceAppCatalogResourceAppCat computeHostResource) { - this.computeHostResource = computeHostResource; - } -} 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/HostIPAddressResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressResource.java new file mode 100644 index 0000000..3bd4c11 --- /dev/null +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/HostIPAddressResource.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.registry.core.app.catalog.model.ComputeResource; +import org.apache.airavata.registry.core.app.catalog.model.HostIPAddress; +import org.apache.airavata.registry.core.app.catalog.model.HostIPAddressPK; +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 HostIPAddressResource extends AppCatAbstractResource { + + private final static Logger logger = LoggerFactory.getLogger(HostIPAddressResource.class); + + private String resourceID; + private String ipaddress; + private ComputeResourceResource computeHostResource; + + public void remove(Object identifier) throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + AppCatalogQueryGenerator generator= new AppCatalogQueryGenerator(HOST_IPADDRESS); + generator.setParameter(HostIPAddressConstants.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(); + } + } + + } + + 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(HOST_IPADDRESS); + generator.setParameter(HostIPAddressConstants.RESOURCE_ID, ids.get(HostIPAddressConstants.RESOURCE_ID)); + generator.setParameter(HostIPAddressConstants.IP_ADDRESS, ids.get(HostIPAddressConstants.IP_ADDRESS)); + Query q = generator.selectQuery(em); + HostIPAddress hostIPAddress = (HostIPAddress) q.getSingleResult(); + HostIPAddressResource hostIPAddressResource = + (HostIPAddressResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); + em.getTransaction().commit(); + em.close(); + return hostIPAddressResource; + } 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> hostIPAddressResources = new ArrayList<AppCatalogResource>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_IPADDRESS); + List results; + if (fieldName.equals(HostIPAddressConstants.IP_ADDRESS)) { + generator.setParameter(HostIPAddressConstants.IP_ADDRESS, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostIPAddress hostIPAddress = (HostIPAddress) result; + HostIPAddressResource hostIPAddressResource = + (HostIPAddressResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); + hostIPAddressResources.add(hostIPAddressResource); + } + } + } else if (fieldName.equals(HostIPAddressConstants.RESOURCE_ID)) { + generator.setParameter(HostIPAddressConstants.RESOURCE_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostIPAddress hostIPAddress = (HostIPAddress) result; + HostIPAddressResource hostIPAddressResource = + (HostIPAddressResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.HOST_IPADDRESS, hostIPAddress); + hostIPAddressResources.add(hostIPAddressResource); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Host IPAddress Resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Host IPAddress 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 hostIPAddressResources; + } + + @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> hostIPAddressResourceIDs = new ArrayList<String>(); + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + Query q; + AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(HOST_IPADDRESS); + List results; + if (fieldName.equals(HostIPAddressConstants.IP_ADDRESS)) { + generator.setParameter(HostIPAddressConstants.IP_ADDRESS, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostIPAddress hostIPAddress = (HostIPAddress) result; + hostIPAddressResourceIDs.add(hostIPAddress.getResourceID()); + } + } + } else if (fieldName.equals(HostIPAddressConstants.RESOURCE_ID)) { + generator.setParameter(HostIPAddressConstants.RESOURCE_ID, value); + q = generator.selectQuery(em); + results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + HostIPAddress hostIPAddress = (HostIPAddress) result; + hostIPAddressResourceIDs.add(hostIPAddress.getResourceID()); + } + } + } else { + em.getTransaction().commit(); + em.close(); + logger.error("Unsupported field name for Host IP Address resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported field name for Host IPAddress 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 hostIPAddressResourceIDs; + } + + public void save() throws AppCatalogException { + EntityManager em = null; + try { + em = AppCatalogJPAUtils.getEntityManager(); + HostIPAddress existingHostIP = em.find(HostIPAddress.class, new HostIPAddressPK(resourceID,ipaddress)); + em.close(); + + em = AppCatalogJPAUtils.getEntityManager(); + em.getTransaction().begin(); + ComputeResource computeResource = em.find(ComputeResource.class, resourceID); + if (existingHostIP != null){ + existingHostIP.setIpaddress(ipaddress); + existingHostIP.setResourceID(resourceID); + existingHostIP.setComputeResource(computeResource); + em.merge(existingHostIP); + }else { + HostIPAddress hostIPAddress = new HostIPAddress(); + hostIPAddress.setIpaddress(ipaddress); + hostIPAddress.setResourceID(resourceID); + hostIPAddress.setComputeResource(computeResource); + em.persist(hostIPAddress); + } + 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(); + HostIPAddress hostIPAddress = em.find(HostIPAddress.class, new HostIPAddressPK(ids.get(HostIPAddressConstants.RESOURCE_ID), + ids.get(HostIPAddressConstants.IP_ADDRESS))); + + em.close(); + return hostIPAddress != 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 getResourceID() { + return resourceID; + } + + public void setResourceID(String resourceID) { + this.resourceID = resourceID; + } + + public String getIpaddress() { + return ipaddress; + } + + public void setIpaddress(String ipaddress) { + this.ipaddress = ipaddress; + } + + public ComputeResourceResource getComputeHostResource() { + return computeHostResource; + } + + public void setComputeHostResource(ComputeResourceResource computeHostResource) { + this.computeHostResource = computeHostResource; + } +} 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/JobManagerCommandAppCatalogResourceAppCat.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/JobManagerCommandAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/JobManagerCommandAppCatalogResourceAppCat.java deleted file mode 100644 index a3c5e8f..0000000 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/JobManagerCommandAppCatalogResourceAppCat.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.JobManagerCommand; -import org.apache.airavata.registry.core.app.catalog.model.JobManagerCommand_PK; -import org.apache.airavata.registry.core.app.catalog.model.ResourceJobManager; -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 JobManagerCommandAppCatalogResourceAppCat extends AppCatAbstractResource { - private final static Logger logger = LoggerFactory.getLogger(JobManagerCommandAppCatalogResourceAppCat.class); - private String resourceJobManagerId; - private ResourceJobManagerAppCatalogResourceAppCat resourceJobManagerResource; - private String commandType; - private String command; - - @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(JOB_MANAGER_COMMAND); - generator.setParameter(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID, ids.get(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID)); - generator.setParameter(JobManagerCommandConstants.COMMAND_TYPE, ids.get(JobManagerCommandConstants.COMMAND_TYPE)); - 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(JOB_MANAGER_COMMAND); - generator.setParameter(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID, ids.get(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID)); - generator.setParameter(JobManagerCommandConstants.COMMAND_TYPE, ids.get(JobManagerCommandConstants.COMMAND_TYPE)); - Query q = generator.selectQuery(em); - JobManagerCommand jobManagerCommand = (JobManagerCommand) q.getSingleResult(); - JobManagerCommandAppCatalogResourceAppCat jobManagerCommandResource = (JobManagerCommandAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.JOB_MANAGER_COMMAND, jobManagerCommand); - em.getTransaction().commit(); - em.close(); - return jobManagerCommandResource; - } 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> jobManagerCommandResources = new ArrayList<AppCatalogResource>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(JOB_MANAGER_COMMAND); - Query q; - if ((fieldName.equals(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID)) || (fieldName.equals(JobManagerCommandConstants.COMMAND_TYPE)) || (fieldName.equals(JobManagerCommandConstants.COMMAND))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - JobManagerCommand jobManagerCommand = (JobManagerCommand) result; - JobManagerCommandAppCatalogResourceAppCat jobManagerCommandResource = (JobManagerCommandAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.JOB_MANAGER_COMMAND, jobManagerCommand); - jobManagerCommandResources.add(jobManagerCommandResource); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Job Manager Command Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Job Manager Command 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 jobManagerCommandResources; - } - - @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> jobManagerCommandResourceIDs = new ArrayList<String>(); - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(JOB_MANAGER_COMMAND); - Query q; - if ((fieldName.equals(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID)) || (fieldName.equals(JobManagerCommandConstants.COMMAND_TYPE)) || (fieldName.equals(JobManagerCommandConstants.COMMAND))) { - generator.setParameter(fieldName, value); - q = generator.selectQuery(em); - List<?> results = q.getResultList(); - for (Object result : results) { - JobManagerCommand jobManagerCommand = (JobManagerCommand) result; - JobManagerCommandAppCatalogResourceAppCat jobManagerCommandResource = (JobManagerCommandAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.JOB_MANAGER_COMMAND, jobManagerCommand); - jobManagerCommandResourceIDs.add(jobManagerCommandResource.getResourceJobManagerId()); - } - } else { - em.getTransaction().commit(); - em.close(); - logger.error("Unsupported field name for Job Manager Command Resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported field name for Job Manager Command 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 jobManagerCommandResourceIDs; - } - - @Override - public void save() throws AppCatalogException { - EntityManager em = null; - try { - em = AppCatalogJPAUtils.getEntityManager(); - JobManagerCommand existingJobManagerCommand = em.find(JobManagerCommand.class, new JobManagerCommand_PK(resourceJobManagerId, commandType)); - em.close(); - JobManagerCommand jobManagerCommand; - em = AppCatalogJPAUtils.getEntityManager(); - em.getTransaction().begin(); - if (existingJobManagerCommand == null) { - jobManagerCommand = new JobManagerCommand(); - } else { - jobManagerCommand = existingJobManagerCommand; - } - jobManagerCommand.setResourceJobManagerId(getResourceJobManagerId()); - ResourceJobManager resourceJobManager = em.find(ResourceJobManager.class, getResourceJobManagerId()); - jobManagerCommand.setResourceJobManager(resourceJobManager); - jobManagerCommand.setCommandType(getCommandType()); - jobManagerCommand.setCommand(getCommand()); - if (existingJobManagerCommand == null) { - em.persist(jobManagerCommand); - } else { - em.merge(jobManagerCommand); - } - 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(); - JobManagerCommand jobManagerCommand = em.find(JobManagerCommand.class, new JobManagerCommand_PK(ids.get(JobManagerCommandConstants.RESOURCE_JOB_MANAGER_ID), ids.get(JobManagerCommandConstants.COMMAND_TYPE))); - em.close(); - return jobManagerCommand != 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 getResourceJobManagerId() { - return resourceJobManagerId; - } - - public ResourceJobManagerAppCatalogResourceAppCat getResourceJobManagerResource() { - return resourceJobManagerResource; - } - - public String getCommandType() { - return commandType; - } - - public String getCommand() { - return command; - } - - public void setResourceJobManagerId(String resourceJobManagerId) { - this.resourceJobManagerId=resourceJobManagerId; - } - - public void setResourceJobManagerResource(ResourceJobManagerAppCatalogResourceAppCat resourceJobManagerResource) { - this.resourceJobManagerResource=resourceJobManagerResource; - } - - public void setCommandType(String commandType) { - this.commandType=commandType; - } - - public void setCommand(String command) { - this.command=command; - } -}
