aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKajur, Harish (vk250x) <vk250x@att.com>2019-04-07 20:38:42 -0400
committerKajur, Harish (vk250x) <vk250x@att.com>2019-04-07 20:38:42 -0400
commit10cf022c9394ba4409d601012eaf6619c0302d55 (patch)
tree198da91d236508dff419f50e1e5b44ad650a6c15
parent08c1bd4d78a0504e7531876869a7ae0cd9c448df (diff)
Fix logic in Schema Generator to properly
check if indexes are needed on dbaliased properties Added test to verify indexes are created. Issue-ID: AAI-2333 Change-Id: Ib80de5cce3dfc99277d7cbd6e1a51530ff588478 Signed-off-by: Kajur, Harish (vk250x) <vk250x@att.com>
-rw-r--r--aai-core/src/main/java/org/onap/aai/dbgen/SchemaGenerator.java4
-rw-r--r--aai-core/src/test/java/org/onap/aai/dbmap/AAIGraphTest.java58
2 files changed, 55 insertions, 7 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/dbgen/SchemaGenerator.java b/aai-core/src/main/java/org/onap/aai/dbgen/SchemaGenerator.java
index e6eb1bca..c0a9e201 100644
--- a/aai-core/src/main/java/org/onap/aai/dbgen/SchemaGenerator.java
+++ b/aai-core/src/main/java/org/onap/aai/dbgen/SchemaGenerator.java
@@ -163,8 +163,8 @@ public class SchemaGenerator {
String dmsg = " Index [" + dbPropName + "] already existed in the DB. ";
LOGGER.debug(dmsg);
} else {
- if (obj.getIndexedProperties().contains(dbPropName)) {
- if (obj.getUniqueProperties().contains(dbPropName)) {
+ if (obj.getIndexedProperties().contains(propName)) {
+ if (obj.getUniqueProperties().contains(propName)) {
imsg = "Add Unique index for PropertyKey: [" + dbPropName + "]";
LOGGER.info(imsg);
graphMgmt.buildIndex(dbPropName, Vertex.class).addKey(propK).unique()
diff --git a/aai-core/src/test/java/org/onap/aai/dbmap/AAIGraphTest.java b/aai-core/src/test/java/org/onap/aai/dbmap/AAIGraphTest.java
index 5915ce68..41a5f20b 100644
--- a/aai-core/src/test/java/org/onap/aai/dbmap/AAIGraphTest.java
+++ b/aai-core/src/test/java/org/onap/aai/dbmap/AAIGraphTest.java
@@ -19,20 +19,34 @@
*/
package org.onap.aai.dbmap;
-import org.janusgraph.core.JanusGraphFactory;
import org.janusgraph.core.JanusGraph;
+import org.janusgraph.core.JanusGraphFactory;
+import org.janusgraph.core.schema.JanusGraphIndex;
import org.janusgraph.core.schema.JanusGraphManagement;
-import org.junit.*;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
import org.onap.aai.AAISetup;
+import org.onap.aai.config.SpringContextAware;
+import org.onap.aai.introspection.Introspector;
+import org.onap.aai.introspection.Loader;
+import org.onap.aai.introspection.LoaderFactory;
+import org.onap.aai.introspection.ModelType;
+import org.onap.aai.schema.enums.PropertyMetadata;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.util.AAIConstants;
+import java.io.FileNotFoundException;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.matchesPattern;
import static org.junit.Assert.*;
-import java.io.FileNotFoundException;
-
public class AAIGraphTest extends AAISetup{
@Before
public void setup() {
@@ -70,7 +84,7 @@ public class AAIGraphTest extends AAISetup{
graphMgt.rollback();
graph.close();
}
-
+
@Test (expected=FileNotFoundException.class)
public void JanusGraphOpenNameWithInvalidFilePathTest() throws Exception{
JanusGraph graph = JanusGraphFactory.open(new AAIGraphConfig.Builder("invalid").forService(SERVICE_NAME).withGraphType("graphType").buildConfiguration());
@@ -81,4 +95,38 @@ public class AAIGraphTest extends AAISetup{
graph.close();
}
+ @Ignore("Need to create schema specific to the test")
+ @Test
+ public void checkIndexOfAliasedIndexedProps() throws Exception {
+ Set<String> aliasedIndexedProps = getAliasedIndexedProps();
+ JanusGraphManagement graphMgt = AAIGraph.getInstance().getGraph().openManagement();
+ for (String aliasedIndexedProp : aliasedIndexedProps) {
+ JanusGraphIndex index = graphMgt.getGraphIndex(aliasedIndexedProp);
+ assertNotNull(aliasedIndexedProp + " index exists", index);
+ assertEquals(aliasedIndexedProp + " index has 1 property keys", index.getFieldKeys().length, 1);
+ assertThat(aliasedIndexedProp + " index indexes " + aliasedIndexedProp + " property key", index.getFieldKeys()[0].name(), is(aliasedIndexedProp));
+ }
+ graphMgt.rollback();
+ }
+
+ private Set<String> getAliasedIndexedProps() {
+ Set<String> aliasedIndexedProps = new HashSet<>();
+ LoaderFactory loaderFactory = SpringContextAware.getBean(LoaderFactory.class);
+ SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class);
+ Loader loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, schemaVersions.getDefaultVersion());
+ Map<String, Introspector> objs = loader.getAllObjects();
+ for (Introspector obj : objs.values()) {
+ for (String propName : obj.getProperties()) {
+ Optional<String> alias = obj.getPropertyMetadata(propName, PropertyMetadata.DB_ALIAS);
+ if (alias.isPresent()) {
+ String dbPropName = alias.get();
+ if (obj.getIndexedProperties().contains(propName)) {
+ aliasedIndexedProps.add(dbPropName);
+ }
+ }
+ }
+ }
+ return aliasedIndexedProps;
+ }
+
}