modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBeanTest.java | 55 +++++++--- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java | 7 - 2 files changed, 46 insertions(+), 16 deletions(-)
New commits: commit dc028de9772aa70f64b7e817c38fd2f9a64d5135 Author: John Sanda jsanda@redhat.com Date: Thu Jul 4 07:29:32 2013 -0400
fix failing test
Now that StorageNodeManagerBean creates the storage node resource group, the group has to be deleted during test runs.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBeanTest.java index d45ae90..d44d637 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBeanTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBeanTest.java @@ -25,6 +25,10 @@
package org.rhq.enterprise.server.cloud;
+import static org.rhq.enterprise.server.cloud.StorageNodeManagerBean.STORAGE_NODE_GROUP_NAME; +import static org.rhq.enterprise.server.cloud.StorageNodeManagerBean.STORAGE_NODE_PLUGIN_NAME; +import static org.rhq.enterprise.server.cloud.StorageNodeManagerBean.STORAGE_NODE_RESOURCE_TYPE_NAME; + import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -32,27 +36,30 @@ import java.util.List; import java.util.Set; import java.util.UUID;
+import javax.ejb.EJB; import javax.persistence.Query; import javax.transaction.Transaction;
import org.testng.Assert; import org.testng.annotations.Test;
-import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.cloud.StorageNode; import org.rhq.core.domain.configuration.definition.ConfigurationDefinition; import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple; import org.rhq.core.domain.configuration.definition.PropertySimpleType; +import org.rhq.core.domain.criteria.ResourceGroupCriteria; import org.rhq.core.domain.criteria.StorageNodeCriteria; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.ResourceCategory; import org.rhq.core.domain.resource.ResourceType; +import org.rhq.core.domain.resource.group.ResourceGroup; import org.rhq.core.domain.util.PageList; import org.rhq.core.domain.util.PageOrdering; +import org.rhq.enterprise.server.auth.SubjectManagerLocal; import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal; +import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal; import org.rhq.enterprise.server.test.AbstractEJB3Test; import org.rhq.enterprise.server.test.TransactionCallback; -import org.rhq.enterprise.server.util.LookupUtil;
/** * @author Jirka Kremser @@ -60,17 +67,19 @@ import org.rhq.enterprise.server.util.LookupUtil; @Test public class StorageNodeManagerBeanTest extends AbstractEJB3Test {
+ @EJB private StorageNodeManagerLocal nodeManager; + + @EJB private ResourceTypeManagerLocal typeManager; - private Subject overlord; - private static final String TEST_PREFIX = "test-";
- @Override - protected void beforeMethod() throws Exception { - nodeManager = LookupUtil.getStorageNodeManager(); - typeManager = LookupUtil.getResourceTypeManager(); - overlord = LookupUtil.getSubjectManager().getOverlord(); - } + @EJB + private ResourceGroupManagerLocal resourceGroupManager; + + @EJB + private SubjectManagerLocal subjectManager; + + private static final String TEST_PREFIX = "test-";
@Test public void testInit() throws Exception { @@ -79,6 +88,7 @@ public class StorageNodeManagerBeanTest extends AbstractEJB3Test {
try { prepareScheduler(); + cleanDatabase(); executeInTransaction(new TransactionCallback() {
@Override @@ -89,8 +99,6 @@ public class StorageNodeManagerBeanTest extends AbstractEJB3Test { System.setProperty(cassandraSeedsProperty, addresses.get(0) + "|123|123," + addresses.get(1) + "|987|987," + addresses.get(2) + "|123|123");
- cleanDatabase(); - // create the resource type if it doesn't exist ResourceType testResourceType = typeManager.getResourceTypeByNameAndPlugin("RHQ Storage Node", "RHQStorage"); @@ -175,7 +183,8 @@ public class StorageNodeManagerBeanTest extends AbstractEJB3Test { criteria.addFilterAddress(prefix); // use DESC just to make sure sorting on name is different than insert order criteria.addSortAddress(PageOrdering.DESC); - PageList<StorageNode> list = nodeManager.findStorageNodesByCriteria(overlord, criteria); + PageList<StorageNode> list = nodeManager.findStorageNodesByCriteria(subjectManager.getOverlord(), + criteria);
assertTrue("The number of found storage nodes should be " + storageNodeCount + ". Was: " + list.size(), storageNodeCount == list.size()); @@ -205,6 +214,26 @@ public class StorageNodeManagerBeanTest extends AbstractEJB3Test { // this method is still needed, because tests calls SLSB methods that are executed in their own transaction // and the rollback performed once the TransactionCallback is finished just wont clean everything
+ // We can only filter on the group name because the resource type info might not exist in the test + // database. + ResourceGroupCriteria criteria = new ResourceGroupCriteria(); + criteria.addFilterName(STORAGE_NODE_GROUP_NAME); + + List<ResourceGroup> groups = resourceGroupManager.findResourceGroupsByCriteria(subjectManager.getOverlord(), + criteria); + + if (!groups.isEmpty()) { + resourceGroupManager.deleteResourceGroup(subjectManager.getOverlord(), groups.get(0).getId()); + } + +// for (ResourceGroup group : groups) { +// if (group.getName().equals(STORAGE_NODE_GROUP_NAME)) { +// resourceGroupManager.deleteResourceGroup(subjectManager.getOverlord(), group.getId()); +// break; +// } +// } + + // pause the currently running TX Transaction runningTransaction = getTransactionManager().suspend(); getTransactionManager().begin(); diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java index 874be1e..b21946a 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java @@ -97,11 +97,12 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
private static final String SEEDS_PROP = "rhq.cassandra.seeds";
- private static final String STORAGE_NODE_GROUP_NAME = "RHQ Storage Nodes"; + // The following have package visibility to make accessible to StorageNodeManagerBeanTest + static final String STORAGE_NODE_GROUP_NAME = "RHQ Storage Nodes";
- private static final String STORAGE_NODE_RESOURCE_TYPE_NAME = "RHQ Storage Node"; + static final String STORAGE_NODE_RESOURCE_TYPE_NAME = "RHQ Storage Node";
- private static final String STORAGE_NODE_PLUGIN_NAME = "RHQStorage"; + static final String STORAGE_NODE_PLUGIN_NAME = "RHQStorage";
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME) private EntityManager entityManager;
rhq-commits@lists.fedorahosted.org