Noam Slomianko has uploaded a new change for review. Change subject: engine: Dao test for cluster policy ......................................................................
engine: Dao test for cluster policy Added / Updated dao test for VdsGroupDAO, ClusterPolicyDao PolicyUnitDao Change-Id: I59dd6b97ce5ce75eb307d58e6dac99e35f43381f Signed-off-by: Noam Slomianko <[email protected]> --- A backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java A backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java M backend/manager/modules/dal/src/test/resources/fixtures.xml 5 files changed, 306 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/16452/1 diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java new file mode 100644 index 0000000..cd4314e --- /dev/null +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java @@ -0,0 +1,92 @@ +package org.ovirt.engine.core.dao; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.junit.Test; + +import org.ovirt.engine.core.common.scheduling.ClusterPolicy; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.scheduling.ClusterPolicyDao; + +public class ClusterPolicyDoaTest extends BaseDAOTestCase { + + private static final int NUMBER_OF_CLUSTER_POLICIES = 2; + + private ClusterPolicyDao dao; + private ClusterPolicy existingPolicy; + private ClusterPolicy dummyPolicy; + + @Override + public void setUp() throws Exception { + super.setUp(); + dao = dbFacade.getClusterPolicyDao(); + existingPolicy = dao.get(FixturesTool.CLUSTER_POLICY_EVEN_DISTRIBUTION); + createDummyPolicy(); + }; + + @Test + public void testGet() { + ClusterPolicy result = dao.get(existingPolicy.getId()); + + assertTrue(result.equals(existingPolicy)); + } + + @Test + public void testGetNegative() { + ClusterPolicy result = dao.get(Guid.newGuid()); + + assertNull(result); + } + + @Test + public void testGetAll() { + List<ClusterPolicy> result = dao.getAll(); + + assertNotNull(result); + assertEquals(result.size(), NUMBER_OF_CLUSTER_POLICIES); + } + + @Test + public void testSave() { + dao.save(dummyPolicy); + ClusterPolicy result = dao.get(dummyPolicy.getId()); + assertTrue(result.equals(dummyPolicy)); + dao.remove(dummyPolicy.getId()); + } + + @Test + public void testUpdate() { + dao.save(dummyPolicy); + dummyPolicy.setName("Altered dummy policy"); + dao.update(dummyPolicy); + ClusterPolicy result = dao.get(dummyPolicy.getId()); + assertTrue(result.equals(dummyPolicy)); + } + + @Test + public void testRemove() { + dao.save(dummyPolicy); + dao.remove(dummyPolicy.getId()); + ClusterPolicy result = dao.get(dummyPolicy.getId()); + assertNull(result); + + } + + private void createDummyPolicy() { + dummyPolicy = new ClusterPolicy(); + dummyPolicy.setId(Guid.newGuid()); + dummyPolicy.setName("Dummy policy"); + dummyPolicy.setDescription("Dummy policy description"); + dummyPolicy.setLocked(false); + ArrayList<Guid> filters = new ArrayList<Guid>(); + filters.add(FixturesTool.POLICY_UNIT_MIGRATION); + dummyPolicy.setFilters(filters); + HashMap<Guid, Integer> filterPositionMap = new HashMap<Guid, Integer>(); + filterPositionMap.put(FixturesTool.POLICY_UNIT_MIGRATION, 1); + dummyPolicy.setFilterPositionMap(filterPositionMap); + } +} diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java index f507e73..0195c09 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java @@ -393,4 +393,9 @@ public static final Guid PROVIDER_ID = new Guid("1115c1c6-cb15-4832-b2a4-023770607111"); public static final ProviderType PROVIDER_TYPE = ProviderType.OPENSTACK_NETWORK; + /** + * Cluster Policy + */ + public static final Guid CLUSTER_POLICY_EVEN_DISTRIBUTION = new Guid("20d25257-b4bd-4589-92a6-c4c5c5d3fd1a"); + public static final Guid POLICY_UNIT_MIGRATION = new Guid("84e6ddee-ab0d-42dd-82f0-c297779db5e5"); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java new file mode 100644 index 0000000..67d8e3f --- /dev/null +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java @@ -0,0 +1,84 @@ +package org.ovirt.engine.core.dao; + +import static org.junit.Assert.*; + +import java.util.List; + +import org.junit.Test; +import org.ovirt.engine.core.common.scheduling.PolicyUnit; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.scheduling.PolicyUnitDao; + +public class PolicyUnitDaoTest extends BaseDAOTestCase { + + private static final int NUMBER_OF_POLICY_UNITS = 2; + PolicyUnitDao dao; + PolicyUnit existingPolicyUnit; + PolicyUnit dummyPolicyUnit; + + @Override + public void setUp() throws Exception { + super.setUp(); + + dao = dbFacade.getPolicyUnitDao(); + existingPolicyUnit = dao.get(FixturesTool.POLICY_UNIT_MIGRATION); + createDummyPolicyUnit(); + }; + + @Test + public void testGet() { + // TODO Auto-generated method stub + PolicyUnit result = dao.get(FixturesTool.POLICY_UNIT_MIGRATION); + assertTrue(result.equals(existingPolicyUnit)); + } + + @Test + public void testGetNegative() { + PolicyUnit result = dao.get(Guid.newGuid()); + assertNull(result); + } + + @Test + public void testGetAll() { + List<PolicyUnit> result = dao.getAll(); + + assertNotNull(result); + assertEquals(result.size(), NUMBER_OF_POLICY_UNITS); + } + + @Test + public void testSave() { + dao.save(dummyPolicyUnit); + PolicyUnit result = dao.get(dummyPolicyUnit.getId()); + assertTrue(result.equals(dummyPolicyUnit)); + dao.remove(dummyPolicyUnit.getId()); + } + + @Test + public void testUpdate() { + dao.save(dummyPolicyUnit); + dummyPolicyUnit.setName("Altered dummpy policy unit"); + dao.update(dummyPolicyUnit); + PolicyUnit result = dao.get(dummyPolicyUnit.getId()); + assertTrue(result.equals(dummyPolicyUnit)); + dao.remove(dummyPolicyUnit.getId()); + + } + + @Test + public void testRemove() { + dao.save(dummyPolicyUnit); + dao.remove(dummyPolicyUnit.getId()); + PolicyUnit result = dao.get(dummyPolicyUnit.getId()); + assertNull(result); + + } + + private void createDummyPolicyUnit() { + dummyPolicyUnit = new PolicyUnit(); + dummyPolicyUnit.setId(Guid.newGuid()); + dummyPolicyUnit.setName("Dummy policy unit"); + dummyPolicyUnit.setBalanceImplemeted(true); + } + +} diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java index b15f267..01a3717 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java @@ -27,6 +27,7 @@ private VDSGroup newGroup; private VDSGroup groupWithNoRunningVms; private StoragePool storagePool; + private Guid clusterPolicyId; @Override public void setUp() throws Exception { @@ -44,6 +45,7 @@ existingVdsGroup = dao.get(existingVds.getVdsGroupId()); groupWithNoRunningVms = dbFacade.getVdsGroupDao().get(FixturesTool.VDS_GROUP_NO_RUNNING_VMS); + clusterPolicyId = existingVdsGroup.getClusterPolicyId(); newGroup = new VDSGroup(); newGroup.setName("New VDS Group"); @@ -367,6 +369,28 @@ } /** + * Test that the correct vds_group is fetched when querying by cluster policy id + */ + @Test + public void testGetClusterByClusterPolicyId() { + List<VDSGroup> result = dao.getClustersByClusterPolicyId(FixturesTool.CLUSTER_POLICY_EVEN_DISTRIBUTION); + + assertTrue(result.contains(FixturesTool.VDS_GROUP_RHEL6_ISCSI)); + assertTrue(result.contains(FixturesTool.VDS_GROUP_NO_RUNNING_VMS)); + assertTrue(result.contains(FixturesTool.VDS_GROUP_RHEL6_NFS)); + } + + /** + * Test that no vds_group is fetched when querying by wrong cluster policy id + */ + @Test + public void testGetClusterByClusterPolicyIdNegative() { + List<VDSGroup> result = dao.getClustersByClusterPolicyId(Guid.newGuid()); + + assertTrue(result == null || result.size() == 0); + } + + /** * Asserts the result from {@link VdsGroupDAO#getAll()} is correct without filtering * * @param result diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 475a2c5..fa72b67 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -521,6 +521,8 @@ <column>tunnel_migration</column> <column>emulated_machine</column> <column>trusted_service</column> + <column>cluster_policy_id</column> + <column>cluster_policy_custom_properties</column> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value> <value>rhel6.iscsi</value> @@ -542,6 +544,8 @@ <value>false</value> <null/> <value>false</value> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80"}</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d2</value> @@ -564,6 +568,8 @@ <value>false</value> <value>pc-1.0</value> <value>false</value> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80"}</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d3</value> @@ -586,6 +592,8 @@ <value>false</value> <value>pc-1.0</value> <value>false</value> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80"}</value> </row> <row> <value>0e57070e-2469-4b38-84a2-f111aaabd49d</value> @@ -608,6 +616,8 @@ <value>false</value> <value>pc-1.0</value> <value>true</value> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80"}</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7c</value> @@ -630,6 +640,8 @@ <value>false</value> <value>pc-1.0</value> <value>true</value> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7d</value> @@ -652,6 +664,8 @@ <value>false</value> <value>pc-1.0</value> <value>false</value> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7e</value> @@ -674,6 +688,8 @@ <value>false</value> <value>pc-1.0</value> <value>true</value> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7f</value> @@ -696,6 +712,8 @@ <value>false</value> <value>pc-1.0</value> <value>true</value> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> </row> <row> <value>ae956031-6be2-43d6-bb8f-5191c9253314</value> @@ -718,8 +736,91 @@ <value>false</value> <value>pc-1.0</value> <value>false</value> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> </row> </table> + + <table name="cluster_policies"> + <column>id</column> + <column>name</column> + <column>description</column> + <column>is_locked</column> + <column>is_default</column> + <column>custom_properties</column> + <row> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>even distribution</value> + <value>desc</value> + <value>false</value> + <value>true</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80"}</value> + </row> + <row> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>power saving</value> + <value>desc</value> + <value>false</value> + <value>true</value> + <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : "80", "LowUtilization" : "20"}</value> + </row> + </table> + + <table name="policy units"> + <column>id</column> + <column>name</column> + <column>is_internal</column> + <column>has_filter</column> + <column>has_function</column> + <column>has_balance</column> + <column>>custom_properties_regex</column> + <row> + <value>84e6ddee-ab0d-42dd-82f0-c297779db5e5</value> + <value>Migration</value> + <value>true</value> + <value>true</value> + <value>false</value> + <value>false</value> + <null/> + </row> + <row> + <value>a267eddb-768d-45fd-9dbb-6ebcee343508</value> + <value>MigrationDomain</value> + <value>true</value> + <value>true</value> + <value>false</value> + <value>false</value> + <null/> + </row> + </table> + + <table name="cluster_policy_units"> + <column>cluster_policy_id</column> + <column>policy_unit_id</column> + <column>filter_selected</column> + <column>filter_sequence</column> + <column>function_selected</column> + <column>factor</column> + <column>balance_selected</column> + <row> + <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value> + <value>84e6ddee-ab0d-42dd-82f0-c297779db5e5</value> + <value>true</value> + <value>1</value> + <value>false</value> + <value>0</value> + <value>false</value> + </row> + <row> + <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value> + <value>a267eddb-768d-45fd-9dbb-6ebcee343508</value> + <value>true</value> + <value>1</value> + <value>false</value> + <value>0</value> + <value>false</value> + </row> + </table> <table name="providers"> <column>id</column> -- To view, visit http://gerrit.ovirt.org/16452 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I59dd6b97ce5ce75eb307d58e6dac99e35f43381f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Noam Slomianko <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
