From 2623c8402a57e2035db69a9d92d2851050916801 Mon Sep 17 00:00:00 2001 From: shrikantawachar Date: Mon, 20 May 2019 12:11:54 +0530 Subject: Upgrade SDC from Titan to Janus Graph Upgrade SDC from Titan to Janus Graph Change-Id: I67fb8b8e60cc6751697bc5ff2f06754c92803786 Issue-ID: SDC-2296 Signed-off-by: shrikantawachar --- asdctool/pom.xml | 38 +--- .../cassandra-actions/recipes/03-schemaCreation.rb | 16 +- .../templates/default/configuration.yaml.erb | 16 +- .../templates/default/janusgraph.properties.erb | 29 +++ .../templates/default/titan.properties.erb | 29 --- .../java/org/openecomp/sdc/asdctool/Utils.java | 10 +- .../configuration/GetConsumersConfiguration.java | 10 +- .../configuration/VrfObjectFixConfiguration.java | 30 +-- .../sdc/asdctool/impl/ArtifactUuidFix.java | 63 +++---- .../sdc/asdctool/impl/GraphJsonValidator.java | 4 +- .../sdc/asdctool/impl/GraphMLConverter.java | 80 ++++---- .../sdc/asdctool/impl/JanusGraphInitializer.java | 204 +++++++++++++++++++++ .../openecomp/sdc/asdctool/impl/ProductLogic.java | 22 +-- .../sdc/asdctool/impl/TitanGraphInitializer.java | 204 --------------------- .../impl/TitanToJanusGraphMigration.groovy | 66 +++++++ .../sdc/asdctool/impl/UpdatePropertyOnVertex.java | 22 +-- .../sdc/asdctool/impl/VrfObjectFixHandler.java | 33 ++-- .../asdctool/impl/internal/tool/CsarGenerator.java | 44 ++--- .../impl/internal/tool/DeleteComponentHandler.java | 83 +++++---- .../config/ValidationToolConfiguration.java | 29 +-- .../executers/ArtifactValidatorExecuter.java | 13 +- .../TopologyTemplateValidatorExecuter.java | 9 +- .../tasks/artifacts/ArtifactValidationUtils.java | 6 +- .../validator/tasks/moduleJson/ModuleJsonTask.java | 6 +- .../sdc/asdctool/main/DataSchemaMenu.java | 16 +- .../sdc/asdctool/main/ExportImportMenu.java | 8 +- .../openecomp/sdc/asdctool/main/RemoveUtils.java | 2 +- .../sdc/asdctool/main/UpdateIsVnfMenu.java | 2 +- .../tasks/mig1710/UpgradeMigration1710.java | 79 ++++---- .../tasks/mig1802/SdcCatalogMigration.java | 59 +++--- .../tasks/mig1806/ForwardPathMigration.java | 66 +++---- .../tasks/mig1806/ResourceLifecycleMigration.java | 23 +-- .../tasks/mig1806/SDCInstancesMigration.java | 34 ++-- .../tasks/mig1806/SdcArchiveMigration.java | 34 ++-- .../tasks/mig1902/InterfaceOperationMigration.java | 42 +++-- .../servlets/ExportImportJanusGraphServlet.java | 165 +++++++++++++++++ .../servlets/ExportImportTitanServlet.java | 165 ----------------- .../src/main/resources/config/configuration.yaml | 16 +- .../config/janusgraph-migration.properties | 4 + .../main/resources/config/janusgraph.properties | 28 +++ .../resources/config/titan-migration.properties | 4 - .../src/main/resources/config/titan.properties | 28 --- .../main/resources/scripts/deleteAllProducts.sh | 6 +- asdctool/src/main/resources/scripts/exportUsers.sh | 6 +- .../resources/scripts/janusGraphSchemaCreation.sh | 33 ++++ .../main/resources/scripts/titanSchemaCreation.sh | 33 ---- asdctool/src/main/resources/scripts/updateIsVnf.sh | 2 +- .../java/org/openecomp/sdc/asdctool/UtilsTest.java | 4 +- .../GetConsumersConfigurationTest.java | 6 +- .../sdc/asdctool/impl/ArtifactUuidFixTest.java | 26 +-- .../sdc/asdctool/impl/GraphJsonValidatorTest.java | 12 +- .../sdc/asdctool/impl/GraphMLConverterTest.java | 18 +- .../sdc/asdctool/impl/GraphMLDataAnalyzerTest.java | 2 +- .../asdctool/impl/JanusGraphInitializerTest.java | 16 ++ .../sdc/asdctool/impl/ProductLogicTest.java | 4 +- .../asdctool/impl/TitanGraphInitializerTest.java | 16 -- .../asdctool/impl/UpdatePropertyOnVertexTest.java | 10 +- .../sdc/asdctool/impl/VrfObjectFixHandlerTest.java | 24 ++- .../impl/internal/tool/CsarGeneratorTest.java | 11 +- .../internal/tool/DeleteComponentHandlerTest.java | 14 +- .../config/ValidationToolConfigurationTest.java | 18 +- .../tasks/moduleJson/ModuleJsonTaskTest.java | 4 +- .../tasks/mig1710/UpgradeMigration1710Test.java | 50 ++--- .../tasks/mig1802/SdcCatalogMigrationTest.java | 8 +- .../tasks/mig1806/ForwardPathMigrationTest.java | 8 +- .../mig1806/ResourceLifecycleMigrationTest.java | 6 +- .../tasks/mig1806/SDCInstancesMigrationTest.java | 19 +- .../tasks/mig1806/SdcArchiveMigrationTest.java | 6 +- .../ExportImportJanusGraphServletTest.java | 38 ++++ .../servlets/ExportImportTitanServletTest.java | 38 ---- 70 files changed, 1180 insertions(+), 1099 deletions(-) create mode 100644 asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/janusgraph.properties.erb delete mode 100644 asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/titan.properties.erb create mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializer.java delete mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializer.java create mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanToJanusGraphMigration.groovy create mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServlet.java delete mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServlet.java create mode 100644 asdctool/src/main/resources/config/janusgraph-migration.properties create mode 100644 asdctool/src/main/resources/config/janusgraph.properties delete mode 100644 asdctool/src/main/resources/config/titan-migration.properties delete mode 100644 asdctool/src/main/resources/config/titan.properties create mode 100644 asdctool/src/main/resources/scripts/janusGraphSchemaCreation.sh delete mode 100644 asdctool/src/main/resources/scripts/titanSchemaCreation.sh create mode 100644 asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializerTest.java delete mode 100644 asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializerTest.java create mode 100644 asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServletTest.java delete mode 100644 asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServletTest.java (limited to 'asdctool') diff --git a/asdctool/pom.xml b/asdctool/pom.xml index 2bb4059975..d7ac069d45 100644 --- a/asdctool/pom.xml +++ b/asdctool/pom.xml @@ -222,11 +222,10 @@ - - com.thinkaurelius.titan - titan-core - ${titan.version} + org.janusgraph + janusgraph-core + ${janusgraph.version} compile @@ -241,6 +240,10 @@ commons-collections commons-collections + + groovy + org.codehaus.groovy + @@ -252,9 +255,9 @@ - org.onap.sdc.sdc-titan-cassandra - sdc-titan-cassandra - ${sdc.titan.version} + org.janusgraph + janusgraph-cassandra + ${janusgraph.version} compile @@ -264,27 +267,6 @@ - - org.apache.tinkerpop - tinkergraph-gremlin - 3.0.1-incubating - compile - - - - org.apache.tinkerpop - gremlin-groovy - 3.0.1-incubating - compile - - - groovy - org.codehaus.groovy - - - - - commons-logging commons-logging diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/03-schemaCreation.rb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/03-schemaCreation.rb index fbfcb2ecea..4de50f6492 100644 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/03-schemaCreation.rb +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/03-schemaCreation.rb @@ -12,17 +12,17 @@ bash "install tar" do end -template "titan.properties" do +template "janusgraph.properties" do sensitive true - path "/tmp/sdctool/config/titan.properties" - source "titan.properties.erb" + path "/tmp/sdctool/config/janusgraph.properties" + source "janusgraph.properties.erb" mode "0755" variables({ :DC_NAME => node['cassandra']['datacenter_name'], :cassandra_ip => node['Nodes']['CS'].first, :cassandra_pwd => node['cassandra'][:cassandra_password], :cassandra_usr => node['cassandra'][:cassandra_user], - :titan_connection_timeout => node['cassandra']['titan_connection_timeout'], + :janusgraph_connection_timeout => node['cassandra']['janusgraph_connection_timeout'], :replication_factor => node['cassandra']['replication_factor'] }) end @@ -40,7 +40,7 @@ template "/tmp/sdctool/config/configuration.yaml" do :cassandra_port => node['cassandra']['cassandra_port'], :rep_factor => node['cassandra']['replication_factor'], :DC_NAME => node['cassandra']['datacenter_name'], - :titan_Path => "/tmp/sdctool/config/", + :janusgraph_Path => "/tmp/sdctool/config/", :socket_connect_timeout => node['cassandra']['socket_connect_timeout'], :socket_read_timeout => node['cassandra']['socket_read_timeout'], :cassandra_pwd => node['cassandra'][:cassandra_password], @@ -66,9 +66,9 @@ bash "excuting-schema-creation" do EOH end -bash "excuting-titanSchemaCreation.sh" do +bash "excuting-janusGraphSchemaCreation.sh" do code <<-EOH - chmod +x /tmp/sdctool/scripts/titanSchemaCreation.sh - /tmp/sdctool/scripts/titanSchemaCreation.sh /tmp/sdctool/config + chmod +x /tmp/sdctool/scripts/janusGraphSchemaCreation.sh + /tmp/sdctool/scripts/janusGraphSchemaCreation.sh /tmp/sdctool/config EOH end diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb index 0a658bb8d9..ab27886a47 100644 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb @@ -29,14 +29,14 @@ released: 2012-11-30 toscaConformanceLevel: 9.0 minToscaConformanceLevel: 3.0 -titanCfgFile: <%= @titan_Path %>/titan.properties -titanInMemoryGraph: false -titanLockTimeout: 1800 -# The interval to try and reconnect to titan DB when it is down during ASDC startup: -titanReconnectIntervalInSeconds: 3 - -# The read timeout towards Titan DB when health check is invoked: -titanHealthCheckReadTimeout: 1 +janusGraphCfgFile: <%= @janusgraph_Path %>/janusgraph.properties +janusGraphInMemoryGraph: false +janusGraphLockTimeout: 1800 +# The interval to try and reconnect to JanusGraph DB when it is down during ASDC startup: +janusGraphReconnectIntervalInSeconds: 3 + +# The read timeout towards JanusGraph DB when health check is invoked: +janusGraphHealthCheckReadTimeout: 1 # The interval to try and reconnect to Elasticsearch when it is down during ASDC startup: diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/janusgraph.properties.erb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/janusgraph.properties.erb new file mode 100644 index 0000000000..60c24d7613 --- /dev/null +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/janusgraph.properties.erb @@ -0,0 +1,29 @@ +storage.backend=cassandra +storage.hostname=<%= @cassandra_ip %> +storage.port=9160 +storage.username=<%= @cassandra_usr %> +storage.password=<%= @cassandra_pwd %> +storage.connection-timeout=<%= @janusgraph_connection_timeout %> +storage.cassandra.keyspace=sdctitan + + +storage.cassandra.ssl.enabled=false +storage.cassandra.ssl.truststore.location=/var/lib/jetty/config/.truststore +storage.cassandra.ssl.truststore.password=Aa123456 + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.NetworkTopologyStrategy +storage.cassandra.replication-strategy-options=<%= @DC_NAME %>,<%= @replication_factor %> +storage.cassandra.astyanax.local-datacenter=<%= @DC_NAME %> + +cache.db-cache = false +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.5 + +cache.tx-cache-size = 1000000 + +storage.lock.retries=5 +storage.lock.wait-time=500 + diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/titan.properties.erb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/titan.properties.erb deleted file mode 100644 index 20a97be9de..0000000000 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/titan.properties.erb +++ /dev/null @@ -1,29 +0,0 @@ -storage.backend=cassandra -storage.hostname=<%= @cassandra_ip %> -storage.port=9160 -storage.username=<%= @cassandra_usr %> -storage.password=<%= @cassandra_pwd %> -storage.connection-timeout=<%= @titan_connection_timeout %> -storage.cassandra.keyspace=sdctitan - - -storage.cassandra.ssl.enabled=false -storage.cassandra.ssl.truststore.location=/var/lib/jetty/config/.truststore -storage.cassandra.ssl.truststore.password=Aa123456 - -storage.cassandra.read-consistency-level=LOCAL_QUORUM -storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.NetworkTopologyStrategy -storage.cassandra.replication-strategy-options=<%= @DC_NAME %>,<%= @replication_factor %> -storage.cassandra.astyanax.local-datacenter=<%= @DC_NAME %> - -cache.db-cache = false -cache.db-cache-clean-wait = 20 -cache.db-cache-time = 180000 -cache.db-cache-size = 0.5 - -cache.tx-cache-size = 1000000 - -storage.lock.retries=5 -storage.lock.wait-time=500 - diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java index 5c7d78e3f2..44bfc536b6 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java @@ -20,8 +20,8 @@ package org.openecomp.sdc.asdctool; -import com.thinkaurelius.titan.core.TitanFactory; -import com.thinkaurelius.titan.core.TitanGraph; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.JanusGraph; import org.apache.commons.configuration.Configuration; import org.apache.tinkerpop.gremlin.structure.Element; import org.apache.tinkerpop.gremlin.structure.Property; @@ -60,12 +60,12 @@ public class Utils { return responseBuilder.build(); } - public static TitanGraph openGraph(Configuration conf) { + public static JanusGraph openGraph(Configuration conf) { - TitanGraph graph = null; + JanusGraph graph = null; try { - graph = TitanFactory.open(conf); + graph = JanusGraphFactory.open(conf); } catch (Exception e) { log.error("Failed to start open graph", e); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfiguration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfiguration.java index e411b53c08..53d299e163 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfiguration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfiguration.java @@ -1,20 +1,20 @@ package org.openecomp.sdc.asdctool.configuration; -import org.openecomp.sdc.be.dao.config.TitanSpringConfig; -import org.openecomp.sdc.be.dao.titan.TitanGenericDao; +import org.openecomp.sdc.be.dao.config.JanusGraphSpringConfig; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.model.operations.impl.ConsumerOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration -@Import({TitanSpringConfig.class}) +@Import({JanusGraphSpringConfig.class}) public class GetConsumersConfiguration { @Bean("consumer-operation") - public ConsumerOperation consumerOperation(TitanGenericDao titanGenericDao) { - return new ConsumerOperation(titanGenericDao); + public ConsumerOperation consumerOperation(JanusGraphGenericDao janusGraphGenericDao) { + return new ConsumerOperation(janusGraphGenericDao); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/VrfObjectFixConfiguration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/VrfObjectFixConfiguration.java index 0dd078d863..5a82c697c7 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/VrfObjectFixConfiguration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/configuration/VrfObjectFixConfiguration.java @@ -1,10 +1,10 @@ package org.openecomp.sdc.asdctool.configuration; import org.openecomp.sdc.asdctool.impl.VrfObjectFixHandler; -import org.openecomp.sdc.be.dao.DAOTitanStrategy; -import org.openecomp.sdc.be.dao.TitanClientStrategy; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.dao.titan.TitanGraphClient; +import org.openecomp.sdc.be.dao.DAOJanusGraphStrategy; +import org.openecomp.sdc.be.dao.JanusGraphClientStrategy; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -13,24 +13,26 @@ import org.springframework.context.annotation.Primary; @Configuration public class VrfObjectFixConfiguration { - @Bean(name = "titan-dao") - public TitanDao titanDao(@Qualifier("titan-client") TitanGraphClient titanClient){ - return new TitanDao(titanClient); + @Bean(name = "janusgraph-dao") + public JanusGraphDao janusGraphDao(@Qualifier("janusgraph-client") JanusGraphClient janusGraphClient){ + return new JanusGraphDao(janusGraphClient); } - @Bean(name = "titan-client") + @Bean(name = "janusgraph-client") @Primary - public TitanGraphClient titanClient(@Qualifier("dao-client-strategy") TitanClientStrategy titanClientStrategy) { - return new TitanGraphClient(titanClientStrategy); + public JanusGraphClient janusGraphClient(@Qualifier("dao-client-strategy") + JanusGraphClientStrategy janusGraphClientStrategy) { + return new JanusGraphClient(janusGraphClientStrategy); } @Bean(name ="dao-client-strategy") - public TitanClientStrategy titanClientStrategy() { - return new DAOTitanStrategy(); + public JanusGraphClientStrategy janusGraphClientStrategy() { + return new DAOJanusGraphStrategy(); } @Bean - public VrfObjectFixHandler vrfObjectFixHandler(@Qualifier("titan-dao") TitanDao titanDao){ - return new VrfObjectFixHandler(titanDao); + public VrfObjectFixHandler vrfObjectFixHandler(@Qualifier("janusgraph-dao") + JanusGraphDao janusGraphDao){ + return new VrfObjectFixHandler(janusGraphDao); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFix.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFix.java index 03f3e41bd9..cd19c1cbf0 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFix.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFix.java @@ -8,12 +8,12 @@ import org.openecomp.sdc.asdctool.impl.validator.utils.VfModuleArtifactPayloadEx import org.openecomp.sdc.be.components.distribution.engine.VfModuleArtifactPayload; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition; @@ -25,10 +25,10 @@ import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate; -import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.TopologyTemplate; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElement; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.utils.ModelConverter; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; @@ -71,7 +71,7 @@ public class ArtifactUuidFix { private static final String UTF8 = "utf-8"; @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private ToscaOperationFacade toscaOperationFacade; @@ -140,7 +140,7 @@ public class ArtifactUuidFix { hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); log.info("Try to fetch resources with properties {} and not {}", hasProps, hasNotProps); - Either, TitanOperationStatus> servicesByCriteria = titanDao + Either, JanusGraphOperationStatus> servicesByCriteria = janusGraphDao .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll); if (servicesByCriteria.isRight()) { log.info("Failed to fetch resources {}", servicesByCriteria.right().value()); @@ -182,14 +182,14 @@ public class ArtifactUuidFix { writeModuleResultToFile(writer, resource, null); writer.flush(); } - titanDao.commit(); + janusGraphDao.commit(); } } catch (Exception e) { log.info(FAILED_TO_FETCH_VF_RESOURCES, e); return false; } finally { - titanDao.commit(); + janusGraphDao.commit(); } return true; } @@ -228,7 +228,7 @@ public class ArtifactUuidFix { writer.flush(); } - titanDao.commit(); + janusGraphDao.commit(); } } } @@ -237,7 +237,7 @@ public class ArtifactUuidFix { log.info("Failed to fetch services ", e); return false; } finally { - titanDao.commit(); + janusGraphDao.commit(); } return true; } @@ -259,7 +259,7 @@ public class ArtifactUuidFix { hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); log.info("Try to fetch services with properties {} and not {}", hasProps, hasNotProps); - Either, TitanOperationStatus> servicesByCriteria = titanDao + Either, JanusGraphOperationStatus> servicesByCriteria = janusGraphDao .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll); if (servicesByCriteria.isRight()) { log.info("Failed to fetch services {}", servicesByCriteria.right().value()); @@ -290,14 +290,14 @@ public class ArtifactUuidFix { } - titanDao.commit(); + janusGraphDao.commit(); } log.info("output file with list of services : {}", fileName); } catch (Exception e) { log.info("Failed to fetch services ", e); return false; } finally { - titanDao.commit(); + janusGraphDao.commit(); } return true; } @@ -608,7 +608,7 @@ public class ArtifactUuidFix { res = fixDataOnGraph(component.getUniqueId(), VertexTypeEnum.TOSCA_ARTIFACTS, EdgeLabelEnum.TOSCA_ARTIFACTS, arifacts); } - titanDao.commit(); + janusGraphDao.commit(); } else { failedList.add(component); } @@ -639,7 +639,7 @@ public class ArtifactUuidFix { res = fixDataOnGraph(component.getUniqueId(), VertexTypeEnum.TOSCA_ARTIFACTS, EdgeLabelEnum.TOSCA_ARTIFACTS, arifacts); } - titanDao.commit(); + janusGraphDao.commit(); } else { failedList.add(component); } @@ -660,7 +660,7 @@ public class ArtifactUuidFix { } catch (IOException e) { log.error(e.getMessage()); } finally { - titanDao.commit(); + janusGraphDao.commit(); } log.info(" Fix finished with res {} ***** ", res); return res; @@ -688,7 +688,7 @@ public class ArtifactUuidFix { Map arifacts = topologyTemplate.getToscaArtifacts(); res = fixDataOnGraph(c.getUniqueId(), VertexTypeEnum.TOSCA_ARTIFACTS, EdgeLabelEnum.TOSCA_ARTIFACTS, arifacts); - titanDao.commit(); + janusGraphDao.commit(); } else { failedList.add(c); } @@ -737,9 +737,9 @@ public class ArtifactUuidFix { } } finally { if (res) - titanDao.commit(); + janusGraphDao.commit(); else - titanDao.rollback(); + janusGraphDao.rollback(); } log.debug("Migration1707ArtifactUuidFix generateToscaPerComponent finished component name {} id {} res {}", c.getName(), c.getUniqueId(), res); @@ -751,7 +751,7 @@ public class ArtifactUuidFix { log.debug("amount groups to update: VertexTypeEnum {} EdgeLabelEnum {} data size {}", vertexTypeEnum.getName(), edgeLabelEnum, groups.size()); boolean res = true; - Either getResponse = titanDao.getVertexById(componentId, + Either getResponse = janusGraphDao.getVertexById(componentId, JsonParseFlagEnum.NoParse); if (getResponse.isRight()) { log.debug("Couldn't fetch component unique id {}, error: {}", componentId, getResponse.right().value()); @@ -762,9 +762,9 @@ public class ArtifactUuidFix { GraphVertex componentVertex = getResponse.left().value(); GraphVertex toscaDataVertex = null; - Either groupVertexEither = titanDao.getChildVertex(componentVertex, + Either groupVertexEither = janusGraphDao.getChildVertex(componentVertex, edgeLabelEnum, JsonParseFlagEnum.ParseJson); - if (groupVertexEither.isRight() && groupVertexEither.right().value() == TitanOperationStatus.NOT_FOUND) { + if (groupVertexEither.isRight() && groupVertexEither.right().value() == JanusGraphOperationStatus.NOT_FOUND) { log.debug("no child {} vertex for component unique id {}, error: {}", edgeLabelEnum, componentId, groupVertexEither.right().value()); return true; @@ -777,11 +777,11 @@ public class ArtifactUuidFix { if (res) { toscaDataVertex = groupVertexEither.left().value(); toscaDataVertex.setJson(groups); - Either updatevertexEither = titanDao.updateVertex(toscaDataVertex); + Either updatevertexEither = janusGraphDao.updateVertex(toscaDataVertex); if (updatevertexEither.isRight()) { log.debug("failed to update vertex for component unique id {}, error: {}", componentId, updatevertexEither.right().value()); - titanDao.rollback(); + janusGraphDao.rollback(); return false; } } @@ -1081,7 +1081,8 @@ public class ArtifactUuidFix { Map> result = new HashMap<>(); try { - Either, TitanOperationStatus> resultsEither = titanDao.getByCriteria(type, hasProps); + Either, JanusGraphOperationStatus> resultsEither = janusGraphDao + .getByCriteria(type, hasProps); if (resultsEither.isRight()) { log.error("getVerticesToValidate failed {} ",resultsEither.right().value()); return result; @@ -1107,7 +1108,7 @@ public class ArtifactUuidFix { } else { compList.add(toscaElement.left().value()); } - titanDao.commit(); + janusGraphDao.commit(); }); @@ -1115,7 +1116,7 @@ public class ArtifactUuidFix { log.info(FAILED_TO_FETCH_VF_RESOURCES, e); } finally { - titanDao.commit(); + janusGraphDao.commit(); } return result; @@ -1161,7 +1162,7 @@ public class ArtifactUuidFix { } else { compListfull.add(toscaElement.left().value()); } - this.titanDao.commit(); + this.janusGraphDao.commit(); } compToFix.put(entry.getKey(), compListfull); @@ -1174,7 +1175,7 @@ public class ArtifactUuidFix { log.info(FAILED_TO_FETCH_VF_RESOURCES, e); return false; } finally { - titanDao.commit(); + janusGraphDao.commit(); } return result; } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidator.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidator.java index b404404bc6..57a7c251aa 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidator.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidator.java @@ -33,13 +33,13 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; /** - * simple util class to verify that the titan export json graph is not corrupted + * simple util class to verify that the janusgraph export json graph is not corrupted */ public class GraphJsonValidator { private static Logger log = Logger.getLogger(GraphJsonValidator.class.getName()); - public boolean verifyTitanJson(String filePath) throws IOException { + public boolean verifyJanusGraphJson(String filePath) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); List invalidRows = new ArrayList<>(); AtomicInteger atomicInteger = new AtomicInteger(1); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java index d43b3b8fcd..ee33c82da4 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java @@ -21,11 +21,11 @@ package org.openecomp.sdc.asdctool.impl; import com.google.gson.Gson; -import com.thinkaurelius.titan.core.TitanEdge; -import com.thinkaurelius.titan.core.TitanFactory; -import com.thinkaurelius.titan.core.TitanGraph; -import com.thinkaurelius.titan.core.TitanGraphQuery; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphEdge; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphQuery; +import org.janusgraph.core.JanusGraphVertex; import org.apache.commons.configuration.BaseConfiguration; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.tinkerpop.gremlin.structure.*; @@ -79,11 +79,11 @@ public class GraphMLConverter { public boolean importGraph(String[] args) { - TitanGraph graph = null; + JanusGraph graph = null; try { - String titanFileLocation = args[1]; + String janusGraphFileLocation = args[1]; String inputFile = args[2]; - graph = openGraph(titanFileLocation); + graph = openGraph(janusGraphFileLocation); List> propertiesCriteriaToDelete = new ArrayList<>(); ImmutablePair immutablePair1 = new ImmutablePair<>("healthcheckis", "GOOD"); @@ -113,11 +113,11 @@ public class GraphMLConverter { public boolean exportGraph(String[] args) { - TitanGraph graph = null; + JanusGraph graph = null; try { - String titanFileLocation = args[1]; + String janusGraphFileLocation = args[1]; String outputDirectory = args[2]; - graph = openGraph(titanFileLocation); + graph = openGraph(janusGraphFileLocation); String result = exportJsonGraph(graph, outputDirectory); @@ -140,12 +140,12 @@ public class GraphMLConverter { public String exportGraphMl(String[] args) { - TitanGraph graph = null; + JanusGraph graph = null; String result = null; try { - String titanFileLocation = args[1]; + String janusGraphFileLocation = args[1]; String outputDirectory = args[2]; - graph = openGraph(titanFileLocation); + graph = openGraph(janusGraphFileLocation); result = exportGraphMl(graph, outputDirectory); @@ -164,11 +164,11 @@ public class GraphMLConverter { public boolean findErrorInJsonGraph(String[] args) { - TitanGraph graph = null; + JanusGraph graph = null; try { - String titanFileLocation = args[1]; + String janusGraphFileLocation = args[1]; String outputDirectory = args[2]; - graph = openGraph(titanFileLocation); + graph = openGraph(janusGraphFileLocation); String result = findErrorInJsonGraph(graph, outputDirectory); @@ -189,13 +189,13 @@ public class GraphMLConverter { return true; } - public TitanGraph openGraph(String titanFileLocation) { + public JanusGraph openGraph(String janusGraphFileLocation) { - return TitanFactory.open(titanFileLocation); + return JanusGraphFactory.open(janusGraphFileLocation); } - public String exportJsonGraph(TitanGraph graph, String outputDirectory) { + public String exportJsonGraph(JanusGraph graph, String outputDirectory) { String result = null; @@ -231,7 +231,7 @@ public class GraphMLConverter { } - public String exportGraphMl(TitanGraph graph, String outputDirectory) { + public String exportGraphMl(JanusGraph graph, String outputDirectory) { String result = null; String outputFile = outputDirectory + File.separator + EXPORT_GRAPH + System.currentTimeMillis() + ".graphml"; try { @@ -253,7 +253,7 @@ public class GraphMLConverter { return builder.create(); } - public boolean importJsonGraph(TitanGraph graph, String graphJsonFile, + public boolean importJsonGraph(JanusGraph graph, String graphJsonFile, List> propertiesCriteriaToDelete) { boolean result = false; @@ -312,7 +312,7 @@ public class GraphMLConverter { } - public String findErrorInJsonGraph(TitanGraph graph, String outputDirectory) { + public String findErrorInJsonGraph(JanusGraph graph, String outputDirectory) { boolean runVertexScan = false; boolean runEdgeScan = false; @@ -331,8 +331,8 @@ public class GraphMLConverter { Vertex vertexTo = null; Edge edge = null; - Iterable edges = graph.query().edges(); - Iterator iterator = edges.iterator(); + Iterable edges = graph.query().edges(); + Iterator iterator = edges.iterator(); while (iterator.hasNext()) { try { @@ -344,12 +344,12 @@ public class GraphMLConverter { BaseConfiguration conf = new BaseConfiguration(); conf.setProperty(STORAGE_BACKEND, INMEMORY); - TitanGraph openGraph = Utils.openGraph(conf); + JanusGraph openGraph = Utils.openGraph(conf); - TitanVertex addVertexFrom = openGraph.addVertex(); + JanusGraphVertex addVertexFrom = openGraph.addVertex(); Utils.setProperties(addVertexFrom, Utils.getProperties(vertexFrom)); - TitanVertex addVertexTo = openGraph.addVertex(); + JanusGraphVertex addVertexTo = openGraph.addVertex(); Utils.setProperties(addVertexTo, Utils.getProperties(vertexTo)); Edge addEdge = addVertexFrom.addEdge(edge.label(), addVertexTo); @@ -394,9 +394,9 @@ public class GraphMLConverter { BaseConfiguration conf = new BaseConfiguration(); conf.setProperty(STORAGE_BACKEND, INMEMORY); - TitanGraph openGraph = Utils.openGraph(conf); + JanusGraph openGraph = Utils.openGraph(conf); - TitanVertex addVertexFrom = openGraph.addVertex(); + JanusGraphVertex addVertexFrom = openGraph.addVertex(); Utils.setProperties(addVertexFrom, Utils.getProperties(vertex)); log.info(FROM_VERTEX, Utils.getProperties(addVertexFrom)); @@ -426,7 +426,7 @@ public class GraphMLConverter { } - Iterable vertices2 = graph.query() + Iterable vertices2 = graph.query() .has(GraphPropertiesDictionary.HEALTH_CHECK.getProperty(), "GOOD").vertices(); ; @@ -458,17 +458,17 @@ public class GraphMLConverter { } - private void removeNodesByLabel(TitanGraph graph, String label) { - Iterable vertices = graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), label) + private void removeNodesByLabel(JanusGraph graph, String label) { + Iterable vertices = graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), label) .vertices(); - Iterator iterator = vertices.iterator(); + Iterator iterator = vertices.iterator(); while (iterator.hasNext()) { Vertex next2 = iterator.next(); next2.remove(); } } - public String exportUsers(TitanGraph graph, String outputDirectory) { + public String exportUsers(JanusGraph graph, String outputDirectory) { List> users = new ArrayList<>(); String result = null; @@ -478,11 +478,11 @@ public class GraphMLConverter { FileWriter fileWriter = null; try { - TitanGraphQuery graphQuery = graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), + JanusGraphQuery graphQuery = graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.User.getName()); @SuppressWarnings("unchecked") - Iterable vertices = graphQuery.vertices(); + Iterable vertices = graphQuery.vertices(); if (vertices != null) { for (Vertex v : vertices) { @@ -538,11 +538,11 @@ public class GraphMLConverter { public boolean exportUsers(String[] args) { - TitanGraph graph = null; + JanusGraph graph = null; try { - String titanFileLocation = args[1]; + String janusGraphFileLocation = args[1]; String outputDirectory = args[2]; - graph = openGraph(titanFileLocation); + graph = openGraph(janusGraphFileLocation); String result = exportUsers(graph, outputDirectory); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializer.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializer.java new file mode 100644 index 0000000000..fbebe2cd27 --- /dev/null +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializer.java @@ -0,0 +1,204 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.asdctool.impl; + +import org.janusgraph.core.*; +import org.janusgraph.core.schema.ConsistencyModifier; +import org.janusgraph.core.schema.JanusGraphIndex; +import org.janusgraph.core.schema.JanusGraphManagement; +import org.apache.tinkerpop.gremlin.structure.Edge; +import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.openecomp.sdc.be.dao.graph.datatype.ActionEnum; +import org.openecomp.sdc.be.dao.graph.datatype.GraphElementTypeEnum; +import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; +import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils; +import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary; +import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; +import org.openecomp.sdc.be.dao.utils.UserStatusEnum; +import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.resources.data.UserData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class JanusGraphInitializer { + + private static Logger logger = LoggerFactory.getLogger(JanusGraphInitializer.class.getName()); + private static JanusGraph graph; + + public static boolean createGraph(String janusGraphCfgFile) { + logger.info("** createGraph with {}", janusGraphCfgFile); + try { + logger.info("createGraph : try to load file {}", janusGraphCfgFile); + graph = JanusGraphFactory.open(janusGraphCfgFile); + if (graph.isClosed()) { + return false; + } + + } catch (JanusGraphException e) { + logger.info("createGraph : failed to open JanusGraph graph with configuration file: {}", janusGraphCfgFile, e); + return false; + } + + createIndexesAndDefaults(); + + logger.info("** JanusGraph graph created "); + + return true; + } + + private static boolean isVertexExist(Map properties) { + JanusGraphQuery query = graph.query(); + + if (properties != null && !properties.isEmpty()) { + for (Map.Entry entry : properties.entrySet()) { + query = query.has(entry.getKey(), entry.getValue()); + } + } + Iterable vertecies = query.vertices(); + java.util.Iterator iterator = vertecies.iterator(); + if (iterator.hasNext()) { + return true; + } + return false; + } + + private static boolean isVertexNotExist(Map properties) { + return !isVertexExist(properties); + } + + private static void createDefaultAdminUser() { + createUser(getDefaultUserAdmin()); + graph.tx().commit(); + + } + + private static void createUser(UserData user) { + Map checkedProperties = new HashMap<>(); + checkedProperties.put(GraphPropertiesDictionary.USERID.getProperty(), user.getUserId()); + checkedProperties.put(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.User.getName()); + Map properties = null; + if (!isVertexExist(checkedProperties)) { + Vertex vertex = graph.addVertex(); + vertex.property(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.User.getName()); + properties = user.toGraphMap(); + for (Map.Entry entry : properties.entrySet()) { + vertex.property(entry.getKey(), entry.getValue()); + } + } + } + + private static UserData getDefaultUserAdmin() { + UserData userData = new UserData(); + userData.setAction(ActionEnum.Create); + userData.setElementType(GraphElementTypeEnum.Node); + userData.setUserId("jh0003"); + userData.setEmail("admin@sdc.com"); + userData.setFirstName("Jimmy"); + userData.setLastName("Hendrix"); + userData.setRole("ADMIN"); + userData.setStatus(UserStatusEnum.ACTIVE.name()); + userData.setLastLoginTime(0L); + return userData; + } + + private static void createVertexIndixes() { + logger.info("** createVertexIndixes started"); + + JanusGraphManagement graphMgt = graph.openManagement(); + JanusGraphIndex index = null; + for (GraphPropertiesDictionary prop : GraphPropertiesDictionary.values()) { + PropertyKey propKey = null; + if (!graphMgt.containsPropertyKey(prop.getProperty())) { + Class clazz = prop.getClazz(); + if (!clazz.isAssignableFrom(ArrayList.class) && !clazz.isAssignableFrom(HashMap.class)) { + propKey = graphMgt.makePropertyKey(prop.getProperty()).dataType(prop.getClazz()).make(); + } + } else { + propKey = graphMgt.getPropertyKey(prop.getProperty()); + } + if (prop.isIndexed()) { + if (!graphMgt.containsGraphIndex(prop.getProperty())) { + if (prop.isUnique()) { + index = graphMgt.buildIndex(prop.getProperty(), Vertex.class).addKey(propKey).unique().buildCompositeIndex(); + + graphMgt.setConsistency(propKey, ConsistencyModifier.LOCK); // Ensures + // only + // one + // name + // per + // vertex + graphMgt.setConsistency(index, ConsistencyModifier.LOCK); // Ensures + // name + // uniqueness + // in + // the + // graph + + } else { + graphMgt.buildIndex(prop.getProperty(), Vertex.class).addKey(propKey).buildCompositeIndex(); + } + } + } + } + graphMgt.commit(); + logger.info("** createVertexIndixes ended"); + + } + + private static void createEdgeIndixes() { + logger.info("** createEdgeIndixes started"); + JanusGraphManagement graphMgt = graph.openManagement(); + for (GraphEdgePropertiesDictionary prop : GraphEdgePropertiesDictionary.values()) { + if (!graphMgt.containsGraphIndex(prop.getProperty())) { + PropertyKey propKey = graphMgt.makePropertyKey(prop.getProperty()).dataType(prop.getClazz()).make(); + graphMgt.buildIndex(prop.getProperty(), Edge.class).addKey(propKey).buildCompositeIndex(); + + } + } + graphMgt.commit(); + logger.info("** createEdgeIndixes ended"); + } + + private static void createIndexesAndDefaults() { + createVertexIndixes(); + createEdgeIndixes(); + createDefaultAdminUser(); + createRootVertex(VertexTypeEnum.CATALOG_ROOT); + createRootVertex(VertexTypeEnum.ARCHIVE_ROOT); + } + + private static void createRootVertex(VertexTypeEnum vertexTypeEnum) { + Map checkedProperties = new HashMap<>(); + checkedProperties.put(GraphPropertiesDictionary.LABEL.getProperty(), vertexTypeEnum.getName()); + if (isVertexNotExist(checkedProperties)) { + Vertex vertex = graph.addVertex(); + vertex.property(GraphPropertyEnum.UNIQUE_ID.getProperty(), IdBuilderUtils.generateUniqueId()); + vertex.property(GraphPropertyEnum.LABEL.getProperty(), vertexTypeEnum.getName()); + graph.tx().commit(); + } + } + +} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ProductLogic.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ProductLogic.java index d8b8936dca..883f5e50f4 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ProductLogic.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/ProductLogic.java @@ -20,9 +20,9 @@ package org.openecomp.sdc.asdctool.impl; -import com.thinkaurelius.titan.core.TitanFactory; -import com.thinkaurelius.titan.core.TitanGraph; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphVertex; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -39,10 +39,10 @@ public class ProductLogic { private static Logger log = Logger.getLogger(ProductLogic.class.getName()); - public boolean deleteAllProducts(String titanFile, String beHost, String bePort, String adminUser) { + public boolean deleteAllProducts(String janusGraphFile, String beHost, String bePort, String adminUser) { log.debug("retrieving all products from graph"); RestUtils restUtils = null; - List productList = getAllProducts(titanFile); + List productList = getAllProducts(janusGraphFile); restUtils = new RestUtils(); if (productList != null) { for (String productUid : productList) { @@ -56,15 +56,15 @@ public class ProductLogic { } } - private List getAllProducts(String titanFile) { - TitanGraph graph = null; + private List getAllProducts(String janusGraphFile) { + JanusGraph graph = null; try { - graph = openGraph(titanFile); + graph = openGraph(janusGraphFile); List productsToDelete = new ArrayList(); Iterable vertices = graph.query() .has(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.Product.getName()).vertices(); if (vertices != null) { - Iterator iter = vertices.iterator(); + Iterator iter = vertices.iterator(); while (iter.hasNext()) { Vertex vertex = iter.next(); String id = vertex.value(GraphPropertiesDictionary.UNIQUE_ID.getProperty()); @@ -88,9 +88,9 @@ public class ProductLogic { } } - private TitanGraph openGraph(String titanFileLocation) { + private JanusGraph openGraph(String janusGraphFileLocation) { - return TitanFactory.open(titanFileLocation); + return JanusGraphFactory.open(janusGraphFileLocation); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializer.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializer.java deleted file mode 100644 index 8b89cc2706..0000000000 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializer.java +++ /dev/null @@ -1,204 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.impl; - -import com.thinkaurelius.titan.core.*; -import com.thinkaurelius.titan.core.schema.ConsistencyModifier; -import com.thinkaurelius.titan.core.schema.TitanGraphIndex; -import com.thinkaurelius.titan.core.schema.TitanManagement; -import org.apache.tinkerpop.gremlin.structure.Edge; -import org.apache.tinkerpop.gremlin.structure.Vertex; -import org.openecomp.sdc.be.dao.graph.datatype.ActionEnum; -import org.openecomp.sdc.be.dao.graph.datatype.GraphElementTypeEnum; -import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils; -import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary; -import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.utils.UserStatusEnum; -import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.resources.data.UserData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -public class TitanGraphInitializer { - - private static Logger logger = LoggerFactory.getLogger(TitanGraphInitializer.class.getName()); - private static TitanGraph graph; - - public static boolean createGraph(String titanCfgFile) { - logger.info("** createGraph with {}", titanCfgFile); - try { - logger.info("createGraph : try to load file {}", titanCfgFile); - graph = TitanFactory.open(titanCfgFile); - if (graph.isClosed()) { - return false; - } - - } catch (TitanException e) { - logger.info("createGraph : failed to open Titan graph with configuration file: {}", titanCfgFile, e); - return false; - } - - createIndexesAndDefaults(); - - logger.info("** Titan graph created "); - - return true; - } - - private static boolean isVertexExist(Map properties) { - TitanGraphQuery query = graph.query(); - - if (properties != null && !properties.isEmpty()) { - for (Map.Entry entry : properties.entrySet()) { - query = query.has(entry.getKey(), entry.getValue()); - } - } - Iterable vertecies = query.vertices(); - java.util.Iterator iterator = vertecies.iterator(); - if (iterator.hasNext()) { - return true; - } - return false; - } - - private static boolean isVertexNotExist(Map properties) { - return !isVertexExist(properties); - } - - private static void createDefaultAdminUser() { - createUser(getDefaultUserAdmin()); - graph.tx().commit(); - - } - - private static void createUser(UserData user) { - Map checkedProperties = new HashMap<>(); - checkedProperties.put(GraphPropertiesDictionary.USERID.getProperty(), user.getUserId()); - checkedProperties.put(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.User.getName()); - Map properties = null; - if (!isVertexExist(checkedProperties)) { - Vertex vertex = graph.addVertex(); - vertex.property(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.User.getName()); - properties = user.toGraphMap(); - for (Map.Entry entry : properties.entrySet()) { - vertex.property(entry.getKey(), entry.getValue()); - } - } - } - - private static UserData getDefaultUserAdmin() { - UserData userData = new UserData(); - userData.setAction(ActionEnum.Create); - userData.setElementType(GraphElementTypeEnum.Node); - userData.setUserId("jh0003"); - userData.setEmail("admin@sdc.com"); - userData.setFirstName("Jimmy"); - userData.setLastName("Hendrix"); - userData.setRole("ADMIN"); - userData.setStatus(UserStatusEnum.ACTIVE.name()); - userData.setLastLoginTime(0L); - return userData; - } - - private static void createVertexIndixes() { - logger.info("** createVertexIndixes started"); - - TitanManagement graphMgt = graph.openManagement(); - TitanGraphIndex index = null; - for (GraphPropertiesDictionary prop : GraphPropertiesDictionary.values()) { - PropertyKey propKey = null; - if (!graphMgt.containsPropertyKey(prop.getProperty())) { - Class clazz = prop.getClazz(); - if (!clazz.isAssignableFrom(ArrayList.class) && !clazz.isAssignableFrom(HashMap.class)) { - propKey = graphMgt.makePropertyKey(prop.getProperty()).dataType(prop.getClazz()).make(); - } - } else { - propKey = graphMgt.getPropertyKey(prop.getProperty()); - } - if (prop.isIndexed()) { - if (!graphMgt.containsGraphIndex(prop.getProperty())) { - if (prop.isUnique()) { - index = graphMgt.buildIndex(prop.getProperty(), Vertex.class).addKey(propKey).unique().buildCompositeIndex(); - - graphMgt.setConsistency(propKey, ConsistencyModifier.LOCK); // Ensures - // only - // one - // name - // per - // vertex - graphMgt.setConsistency(index, ConsistencyModifier.LOCK); // Ensures - // name - // uniqueness - // in - // the - // graph - - } else { - graphMgt.buildIndex(prop.getProperty(), Vertex.class).addKey(propKey).buildCompositeIndex(); - } - } - } - } - graphMgt.commit(); - logger.info("** createVertexIndixes ended"); - - } - - private static void createEdgeIndixes() { - logger.info("** createEdgeIndixes started"); - TitanManagement graphMgt = graph.openManagement(); - for (GraphEdgePropertiesDictionary prop : GraphEdgePropertiesDictionary.values()) { - if (!graphMgt.containsGraphIndex(prop.getProperty())) { - PropertyKey propKey = graphMgt.makePropertyKey(prop.getProperty()).dataType(prop.getClazz()).make(); - graphMgt.buildIndex(prop.getProperty(), Edge.class).addKey(propKey).buildCompositeIndex(); - - } - } - graphMgt.commit(); - logger.info("** createEdgeIndixes ended"); - } - - private static void createIndexesAndDefaults() { - createVertexIndixes(); - createEdgeIndixes(); - createDefaultAdminUser(); - createRootVertex(VertexTypeEnum.CATALOG_ROOT); - createRootVertex(VertexTypeEnum.ARCHIVE_ROOT); - } - - private static void createRootVertex(VertexTypeEnum vertexTypeEnum) { - Map checkedProperties = new HashMap<>(); - checkedProperties.put(GraphPropertiesDictionary.LABEL.getProperty(), vertexTypeEnum.getName()); - if (isVertexNotExist(checkedProperties)) { - Vertex vertex = graph.addVertex(); - vertex.property(GraphPropertyEnum.UNIQUE_ID.getProperty(), IdBuilderUtils.generateUniqueId()); - vertex.property(GraphPropertyEnum.LABEL.getProperty(), vertexTypeEnum.getName()); - graph.tx().commit(); - } - } - -} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanToJanusGraphMigration.groovy b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanToJanusGraphMigration.groovy new file mode 100644 index 0000000000..9c69a781c1 --- /dev/null +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/TitanToJanusGraphMigration.groovy @@ -0,0 +1,66 @@ +/* + * Before starting the migration, please make sure to create a backup of sdctitan keyspace in cassandra + * + * Usage Instructions : + * 1. Download JanusGraph gremlin in-built package from below URL; + * https://github.com/JanusGraph/janusgraph/releases/download/v0.3.1/janusgraph-0.3.1-hadoop2.zip + * 2. Unzip it and navigate to bin folder. + * 3. Run below command. + * Command : ./gremlin.sh -l -e + * Example : ./gremlin.sh -l ERROR -e /data/scripts/TitanToJanusGraphMigration.groovy /data/scripts/titan.properties + * + * Note: Please make sure that the above provided property file have the below field present; + * graph.allow-upgrade=true +*/ + +// Check for open database connections; should be only one +def Object checkAndCloseMultipleInstances(Object mgmt, Object graph, long sleepTime){ + if(mgmt.getOpenInstances().size() > 1) { + for (String instanceId in mgmt.getOpenInstances()) + if(!instanceId.contains("current")) + mgmt.forceCloseInstance(instanceId); + mgmt.commit(); + sleep(sleepTime); + mgmt = graph.openManagement(); + } + return mgmt; +} + +// Update the ID Store +def updateGraphIDStore(Object mgmt, long sleepTime){ + mgmt.set('ids.store-name', 'titan_ids'); + mgmt.commit(); + sleep(sleepTime); +} + +// Verify the ID Store +def verifyUpdatedGraphIDStore(String propertyPath){ + graph = JanusGraphFactory.open(propertyPath); + mgmt = graph.openManagement(); + if(!mgmt.get('ids.store-name').equals("titan_ids")) + throw new GroovyRuntimeException("FAILURE -> Error in setting up the ID Store to titan_ids; please contact system administrator... "); + else + println("SUCCESS -> Titan ID Store has also been set correctly... "); +} + +try { + graph = JanusGraphFactory.open(args[0]); + mgmt = graph.openManagement(); + + // Check if titan graph is upgraded to Janus Graph compatibility + if(mgmt.get('graph.titan-version').equals("1.0.0")) + throw new GroovyRuntimeException("FAILURE -> Titan graph is not upgraded to Janus. please make sure graph.allow-upgrade property is set to true in properties file and re-run the script."); + println("SUCCESS -> Titan Graph data is upgraded to Janus compatible Graph... "); + + // Update the ID Store if required + if(mgmt.get('ids.store-name').equals("janusgraph_ids")){ + mgmt = checkAndCloseMultipleInstances(mgmt, graph,2000l); + updateGraphIDStore(mgmt, 2000l); + verifyUpdatedGraphIDStore(args[0]); + } + println("SUCCESS -> Titan to Janus Graph upgrade process is now complete... "); + +} catch(Exception ex){ + println("FAILURE -> Titan to Janus Graph migration process has failed; please check the exception trace for more details."); + throw ex; +} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertex.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertex.java index 774af480ee..9911fb73f3 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertex.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertex.java @@ -20,9 +20,9 @@ package org.openecomp.sdc.asdctool.impl; -import com.thinkaurelius.titan.core.TitanFactory; -import com.thinkaurelius.titan.core.TitanGraph; -import com.thinkaurelius.titan.core.TitanGraphQuery; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphQuery; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.asdctool.Utils; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; @@ -38,21 +38,21 @@ public class UpdatePropertyOnVertex { private static Logger log = Logger.getLogger(UpdatePropertyOnVertex.class.getName()); - public Integer updatePropertyOnServiceAtLeastCertified(String titanFile, Map keyValueToSet, + public Integer updatePropertyOnServiceAtLeastCertified(String janusGraphFile, Map keyValueToSet, List> orCriteria) { - TitanGraph graph = null; + JanusGraph graph = null; Integer numberOfUpdatedVertexes = 0; try { - graph = openGraph(titanFile); + graph = openGraph(janusGraphFile); if (orCriteria != null && false == orCriteria.isEmpty()) { for (Map criteria : orCriteria) { - TitanGraphQuery query = graph.query(); + JanusGraphQuery query = graph.query(); if (criteria != null && !criteria.isEmpty()) { for (Map.Entry entry : criteria.entrySet()) { @@ -112,10 +112,10 @@ public class UpdatePropertyOnVertex { } - private Integer updateVertexes(Map keyValueToSet, TitanGraph graph, Map criteria) { + private Integer updateVertexes(Map keyValueToSet, JanusGraph graph, Map criteria) { Integer numberOfUpdatedVertexesPerService = 0; - TitanGraphQuery updateQuery = graph.query(); + JanusGraphQuery updateQuery = graph.query(); if (criteria != null && !criteria.isEmpty()) { for (Map.Entry entry : criteria.entrySet()) { @@ -159,9 +159,9 @@ public class UpdatePropertyOnVertex { return numberOfUpdatedVertexesPerService; } - public TitanGraph openGraph(String titanFileLocation) { + public JanusGraph openGraph(String janusGraphFileLocation) { - TitanGraph graph = TitanFactory.open(titanFileLocation); + JanusGraph graph = JanusGraphFactory.open(janusGraphFileLocation); return graph; diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandler.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandler.java index 8eec51071f..1c7afef1c3 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandler.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandler.java @@ -6,18 +6,18 @@ import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.asdctool.migration.tasks.handlers.XlsOutputHandler; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.EdgePropertyEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.jsongraph.utils.JsonParserUtils; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition; import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; -import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum; +import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum; import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.common.log.wrappers.Logger; @@ -42,10 +42,10 @@ public class VrfObjectFixHandler { private XlsOutputHandler outputHandler; private final String sheetName = this.getClass().getSimpleName() + "Report"; - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; - public VrfObjectFixHandler(TitanDao titanDao) { - this.titanDao = titanDao; + public VrfObjectFixHandler(JanusGraphDao janusGraphDao) { + this.janusGraphDao = janusGraphDao; } public boolean handle(String mode, String outputPath) { @@ -65,10 +65,10 @@ public class VrfObjectFixHandler { try{ Map>> corruptedData = fetchCorruptedData(); corruptedData.forEach(this::fixCorruptedVfrObjectAndRelatedInstances); - titanDao.commit(); + janusGraphDao.commit(); writeOutput(corruptedData); } catch (Exception e){ - titanDao.rollback(); + janusGraphDao.rollback(); log.debug("#fixCorruptedData - Failed to detect corrupted data. The exception occurred: ", e); return false; } @@ -93,7 +93,7 @@ public class VrfObjectFixHandler { private void fixCorruptedVfrObject(GraphVertex vfrObjectV) { vfrObjectV.getMetadataProperties().put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, VALID_TOSCA_NAME); - titanDao.updateVertex(vfrObjectV).left().on(this::rightOnUpdate); + janusGraphDao.updateVertex(vfrObjectV).left().on(this::rightOnUpdate); } private Map>> fetchCorruptedData(){ @@ -106,7 +106,7 @@ public class VrfObjectFixHandler { private List getCorruptedVrfObjects() { Map props = new EnumMap<>(GraphPropertyEnum.class); props.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, "org.openecomp.resource.configuration.VRFObject"); - return titanDao.getByCriteria(VertexTypeEnum.NODE_TYPE, props).left().on(this::rightOnGet); + return janusGraphDao.getByCriteria(VertexTypeEnum.NODE_TYPE, props).left().on(this::rightOnGet); } private void fillCorruptedData(GraphVertex vrfObjectV, Map>> findToUpdate) { @@ -115,7 +115,8 @@ public class VrfObjectFixHandler { Iterator instanceEdges = vrfObjectV.getVertex().edges(Direction.IN, EdgeLabelEnum.INSTANCE_OF.name()); while(instanceEdges.hasNext()){ Edge edge = instanceEdges.next(); - putCorruptedInstances(corruptedInstances, edge, (List) titanDao.getProperty(edge, EdgePropertyEnum.INSTANCES)); + putCorruptedInstances(corruptedInstances, edge, (List) janusGraphDao + .getProperty(edge, EdgePropertyEnum.INSTANCES)); } } @@ -139,7 +140,7 @@ public class VrfObjectFixHandler { String jsonMetadataStr = JsonParserUtils.toJson(jsonObj); container.property(GraphPropertyEnum.JSON.getProperty(), jsonMetadataStr); } catch (IOException e) { - throw new StorageException("Failed to fix the corrupted instances of the container", e, TitanOperationStatus.GENERAL_ERROR); + throw new StorageException("Failed to fix the corrupted instances of the container", e, JanusGraphOperationStatus.GENERAL_ERROR); } } @@ -159,7 +160,7 @@ public class VrfObjectFixHandler { private Map getJsonMap(Vertex container) { String json = (String)container.property(GraphPropertyEnum.JSON.getProperty()).value(); - Map properties = titanDao.getVertexProperties(container); + Map properties = janusGraphDao.getVertexProperties(container); VertexTypeEnum label = VertexTypeEnum.getByName((String) (properties.get(GraphPropertyEnum.LABEL))); return JsonParserUtils.toMap(json, label != null ? label.getClassOfJson() : null); } @@ -175,13 +176,13 @@ public class VrfObjectFixHandler { } } - private List rightOnGet(TitanOperationStatus status) { - if(status == TitanOperationStatus.NOT_FOUND){ + private List rightOnGet(JanusGraphOperationStatus status) { + if(status == JanusGraphOperationStatus.NOT_FOUND){ return emptyList(); } throw new StorageException(status); } - private GraphVertex rightOnUpdate(TitanOperationStatus status) { + private GraphVertex rightOnUpdate(JanusGraphOperationStatus status) { throw new StorageException(status); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGenerator.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGenerator.java index 7007c6dd5e..40680af56f 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGenerator.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGenerator.java @@ -42,33 +42,27 @@ import java.util.stream.Collectors; import org.openecomp.sdc.asdctool.utils.ConsoleWriter; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.LifecycleStateEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.be.resources.data.ESArtifactData; import org.openecomp.sdc.be.tosca.CsarUtils; -import org.openecomp.sdc.be.tosca.ToscaError; import org.openecomp.sdc.be.tosca.ToscaExportHandler; -import org.openecomp.sdc.be.tosca.ToscaRepresentation; import org.openecomp.sdc.common.api.ArtifactTypeEnum; import org.openecomp.sdc.common.log.wrappers.Logger; import org.openecomp.sdc.common.util.GeneralUtility; -import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.beans.factory.annotation.Autowired; -import fj.data.Either; - @org.springframework.stereotype.Component("csarGenerator") public class CsarGenerator extends CommonInternalTool { public CsarGenerator() { @@ -76,7 +70,7 @@ public class CsarGenerator extends CommonInternalTool { } @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private CsarUtils csarUtils; @Autowired @@ -90,14 +84,15 @@ public class CsarGenerator extends CommonInternalTool { private static Logger log = Logger.getLogger(CsarGenerator.class.getName()); public void generateCsar(String uuid, Scanner scanner) { - TitanOperationStatus status = TitanOperationStatus.OK; + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; Map props = new EnumMap<>(GraphPropertyEnum.class); props.put(GraphPropertyEnum.UUID, uuid); props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); props.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); - List byCriterria = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props).either(l -> l, r -> null); + List byCriterria = janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props).either(l -> l, r -> null); if (byCriterria != null && !byCriterria.isEmpty()) { if (byCriterria.size() > 1) { ConsoleWriter.dataLine("Warning ! More that 1 certified service with uuid", uuid); @@ -116,15 +111,15 @@ public class CsarGenerator extends CommonInternalTool { } else { ConsoleWriter.dataLine("No certified service with UUID", uuid); } - if (status == TitanOperationStatus.OK) { - titanDao.commit(); + if (status == JanusGraphOperationStatus.OK) { + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } - private TitanOperationStatus handleService(GraphVertex metadataV, String uuid) { - TitanOperationStatus status = TitanOperationStatus.OK; + private JanusGraphOperationStatus handleService(GraphVertex metadataV, String uuid) { + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; org.openecomp.sdc.be.model.Component component = toscaOperationFacade.getToscaFullElement(metadataV.getUniqueId()).either(l -> l, r -> null); if (component != null) { @@ -134,11 +129,12 @@ public class CsarGenerator extends CommonInternalTool { supplier = () -> generateCsarPayload(component); generateArtifact(component, ArtifactTypeEnum.TOSCA_CSAR, supplier); - GraphVertex toscaArtifactV = titanDao.getChildVertex(metadataV, EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson).either(l->l, r->null); + GraphVertex toscaArtifactV = janusGraphDao + .getChildVertex(metadataV, EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson).either(l->l, r->null); if ( toscaArtifactV != null ){ Map copy = component.getToscaArtifacts().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue()))); toscaArtifactV.setJson(copy); - titanDao.updateVertex(toscaArtifactV); + janusGraphDao.updateVertex(toscaArtifactV); } } else { @@ -147,8 +143,8 @@ public class CsarGenerator extends CommonInternalTool { return status; } - private TitanOperationStatus generateArtifact(Component component, ArtifactTypeEnum artifactType, Supplier supplier){ - TitanOperationStatus status = TitanOperationStatus.GENERAL_ERROR; + private JanusGraphOperationStatus generateArtifact(Component component, ArtifactTypeEnum artifactType, Supplier supplier){ + JanusGraphOperationStatus status = JanusGraphOperationStatus.GENERAL_ERROR; ArtifactDefinition csarArtifact = null; Optional op = component.getToscaArtifacts().values().stream().filter(p -> p.getArtifactType().equals(artifactType.getType())).findAny(); if (op.isPresent()) { @@ -166,12 +162,12 @@ public class CsarGenerator extends CommonInternalTool { return toscaExportHandler.exportComponent(component).either(l -> l.getMainYaml().getBytes(), r -> null); } - private TitanOperationStatus savePayload(org.openecomp.sdc.be.model.Component component, ArtifactDefinition csarArtifact, Supplier supplier) { + private JanusGraphOperationStatus savePayload(org.openecomp.sdc.be.model.Component component, ArtifactDefinition csarArtifact, Supplier supplier) { byte[] payload = supplier.get(); if ( payload == null ) { ConsoleWriter.dataLine("create artifact failed ", csarArtifact.getArtifactLabel()); - return TitanOperationStatus.GENERAL_ERROR; + return JanusGraphOperationStatus.GENERAL_ERROR; } ConsoleWriter.dataLine("createartifact success ", csarArtifact.getArtifactLabel()); csarArtifact.setPayload(payload); @@ -190,7 +186,7 @@ public class CsarGenerator extends CommonInternalTool { ConsoleWriter.dataLine("Artifact generated and saved into Cassandra ", csarArtifact.getArtifactLabel()); report(component, csarArtifact); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } private void report(org.openecomp.sdc.be.model.Component component, ArtifactDefinition csarArtifact) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java index e7f42c9614..76fcec8186 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java @@ -29,21 +29,21 @@ */ package org.openecomp.sdc.asdctool.impl.internal.tool; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.asdctool.utils.ConsoleWriter; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaElementOperation; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -56,7 +56,7 @@ import java.util.Scanner; @Component("deleteComponentHandler") public class DeleteComponentHandler extends CommonInternalTool{ @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private NodeTypeOperation nodeTypeOperation; @Autowired @@ -70,23 +70,23 @@ public class DeleteComponentHandler extends CommonInternalTool{ super("delete"); } public void deleteComponent(String id, Scanner scanner) { - TitanOperationStatus status = TitanOperationStatus.OK; - GraphVertex metadataVertex = titanDao.getVertexById(id).either(l -> l, r -> null); + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; + GraphVertex metadataVertex = janusGraphDao.getVertexById(id).either(l -> l, r -> null); if (metadataVertex != null) { status = handleComponent(scanner, metadataVertex); } else { ConsoleWriter.dataLine("No vertex for id", id); } - if (status == TitanOperationStatus.OK) { - titanDao.commit(); + if (status == JanusGraphOperationStatus.OK) { + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } - private TitanOperationStatus handleComponent(Scanner scanner, GraphVertex metadataVertex) { + private JanusGraphOperationStatus handleComponent(Scanner scanner, GraphVertex metadataVertex) { Map metadataProperties = metadataVertex.getMetadataProperties(); - TitanOperationStatus status = TitanOperationStatus.OK; + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; printComponentInfo(metadataProperties); Iterator edges = metadataVertex.getVertex().edges(Direction.OUT, EdgeLabelEnum.VERSION.name()); @@ -107,12 +107,12 @@ public class DeleteComponentHandler extends CommonInternalTool{ return status; } - private TitanOperationStatus handleComponent(GraphVertex metadataVertex) { + private JanusGraphOperationStatus handleComponent(GraphVertex metadataVertex) { ToscaElementOperation toscaElementOperation = getOperationByLabel(metadataVertex); Iterator edges = metadataVertex.getVertex().edges(Direction.IN, EdgeLabelEnum.VERSION.name()); if (edges != null && edges.hasNext()) { - TitanOperationStatus status = updatePreviousVersion(metadataVertex, edges); - if ( status != TitanOperationStatus.OK ){ + JanusGraphOperationStatus status = updatePreviousVersion(metadataVertex, edges); + if ( status != JanusGraphOperationStatus.OK ){ return status; } } @@ -121,28 +121,28 @@ public class DeleteComponentHandler extends CommonInternalTool{ .map(l -> { ConsoleWriter.dataLine("\nDeleted"); report(metadataVertex); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; }) .right() .map(r-> { ConsoleWriter.dataLine("\nFailed to delete. see log file"); return r; }); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } - private TitanOperationStatus updatePreviousVersion(GraphVertex metadataVertex, Iterator edges) { + private JanusGraphOperationStatus updatePreviousVersion(GraphVertex metadataVertex, Iterator edges) { Edge edge = edges.next(); - TitanVertex prevVersionVertex = (TitanVertex) edge.outVertex(); + JanusGraphVertex prevVersionVertex = (JanusGraphVertex) edge.outVertex(); // check if previous version is deleted - Boolean isDeleted = (Boolean) titanDao.getProperty(prevVersionVertex, GraphPropertyEnum.IS_DELETED.getProperty()); + Boolean isDeleted = (Boolean) janusGraphDao.getProperty(prevVersionVertex, GraphPropertyEnum.IS_DELETED.getProperty()); if (isDeleted != null && isDeleted) { ConsoleWriter.dataLine("\nPrevoius version is marked as deleted. Component cannot be deleted"); - return TitanOperationStatus.GENERAL_ERROR; + return JanusGraphOperationStatus.GENERAL_ERROR; } // update highest property for previous version - TitanOperationStatus status = updateStateOfPreviuosVersion(prevVersionVertex); - if ( TitanOperationStatus.OK != status ){ + JanusGraphOperationStatus status = updateStateOfPreviuosVersion(prevVersionVertex); + if ( JanusGraphOperationStatus.OK != status ){ return status; } @@ -150,51 +150,54 @@ public class DeleteComponentHandler extends CommonInternalTool{ return connectToCatalogAndArchive(metadataVertex, prevVersionVertex); } - private TitanOperationStatus updateStateOfPreviuosVersion(TitanVertex prevVersionVertex) { - String prevId = (String) titanDao.getProperty(prevVersionVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); - Either prevGraphVertex = titanDao.getVertexById(prevId); + private JanusGraphOperationStatus updateStateOfPreviuosVersion(JanusGraphVertex prevVersionVertex) { + String prevId = (String) janusGraphDao.getProperty(prevVersionVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); + Either prevGraphVertex = janusGraphDao.getVertexById(prevId); GraphVertex prevVertex = prevGraphVertex.left().value(); prevVertex.addMetadataProperty(GraphPropertyEnum.IS_HIGHEST_VERSION, true); - titanDao.updateVertex(prevVertex); + janusGraphDao.updateVertex(prevVertex); Iterator edgesIter = prevVersionVertex.edges(Direction.IN, EdgeLabelEnum.LAST_STATE.name()); if ( edgesIter.hasNext() ) { Edge lastStateEdge = edgesIter.next(); Vertex lastModifier = lastStateEdge.outVertex(); - TitanOperationStatus replaceRes = titanDao.replaceEdgeLabel(lastModifier, prevVersionVertex, lastStateEdge, EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE); - if (replaceRes != TitanOperationStatus.OK) { + JanusGraphOperationStatus + replaceRes = janusGraphDao + .replaceEdgeLabel(lastModifier, prevVersionVertex, lastStateEdge, EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE); + if (replaceRes != JanusGraphOperationStatus.OK) { log.info("Failed to replace label from {} to {}. status = {}", EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE, replaceRes); ConsoleWriter.dataLine("\nFailed to replace LAST_STATE edge . Failed to delete"); - return TitanOperationStatus.GENERAL_ERROR; + return JanusGraphOperationStatus.GENERAL_ERROR; } } - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } - private TitanOperationStatus connectToCatalogAndArchive(GraphVertex metadataVertex, TitanVertex prevVersionVertex) { + private JanusGraphOperationStatus connectToCatalogAndArchive(GraphVertex metadataVertex, JanusGraphVertex prevVersionVertex) { - TitanOperationStatus status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.CATALOG_ELEMENT, VertexTypeEnum.CATALOG_ROOT); - if ( status == TitanOperationStatus.OK ){ + JanusGraphOperationStatus + status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.CATALOG_ELEMENT, VertexTypeEnum.CATALOG_ROOT); + if ( status == JanusGraphOperationStatus.OK ){ status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.ARCHIVE_ELEMENT, VertexTypeEnum.ARCHIVE_ROOT); } return status; } - private TitanOperationStatus connectByLabel(GraphVertex metadataVertex, TitanVertex prevVersionVertex, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexlabel) { + private JanusGraphOperationStatus connectByLabel(GraphVertex metadataVertex, JanusGraphVertex prevVersionVertex, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexlabel) { Iterator edgesToCatalog = metadataVertex.getVertex().edges(Direction.IN, edgeLabel.name()); if ( edgesToCatalog != null && edgesToCatalog.hasNext() ){ //exist edge move to prev version - Either catalog = titanDao.getVertexByLabel(vertexlabel); + Either catalog = janusGraphDao.getVertexByLabel(vertexlabel); if (catalog.isRight()) { log.debug("Failed to fetch {} vertex, error {}", vertexlabel, catalog.right().value()); return catalog.right().value(); } GraphVertex catalogV = catalog.left().value(); Edge edge = edgesToCatalog.next(); - return titanDao.createEdge(catalogV.getVertex(), prevVersionVertex, edgeLabel, edge ); + return janusGraphDao.createEdge(catalogV.getVertex(), prevVersionVertex, edgeLabel, edge ); } - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } private boolean isReferenceExist(GraphVertex metadataVertex) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java index eb2574405f..02b37b7d21 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java @@ -8,14 +8,14 @@ import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ServiceArtifact import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.VfArtifactValidationTask; import org.openecomp.sdc.asdctool.impl.validator.tasks.moduleJson.ModuleJsonTask; import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager; -import org.openecomp.sdc.be.dao.DAOTitanStrategy; -import org.openecomp.sdc.be.dao.TitanClientStrategy; +import org.openecomp.sdc.be.dao.DAOJanusGraphStrategy; +import org.openecomp.sdc.be.dao.JanusGraphClientStrategy; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraClient; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.dao.titan.TitanGraphClient; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.model.DerivedNodeTypeResolver; -import org.openecomp.sdc.be.model.jsontitan.operations.*; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.*; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -81,14 +81,15 @@ public class ValidationToolConfiguration { return new CassandraClient(); } - @Bean(name = "dao-titan-strategy") - public TitanClientStrategy daoStrategy() { - return new DAOTitanStrategy(); + @Bean(name = "dao-janusgraph-strategy") + public JanusGraphClientStrategy daoStrategy() { + return new DAOJanusGraphStrategy(); } - @Bean(name = "migration-titan-client", initMethod = "createGraph") - public TitanGraphClient titanMigrationClient(@Qualifier("dao-titan-strategy") TitanClientStrategy titanClientStrategy) { - return new TitanGraphClient(titanClientStrategy); + @Bean(name = "migration-janusgraph-client", initMethod = "createGraph") + public JanusGraphClient janusGraphMigrationClient(@Qualifier("dao-janusgraph-strategy") + JanusGraphClientStrategy janusGraphClientStrategy) { + return new JanusGraphClient(janusGraphClientStrategy); } @Bean(name = "tosca-operation-facade") @@ -116,9 +117,9 @@ public class ValidationToolConfiguration { return new ByToscaNameDerivedNodeTypeResolver(); } - @Bean(name = "titan-dao") - public TitanDao titanDao(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) { - return new TitanDao(titanGraphClient); + @Bean(name = "janusgraph-dao") + public JanusGraphDao janusGraphDao(@Qualifier("migration-janusgraph-client") JanusGraphClient janusGraphClient) { + return new JanusGraphDao(janusGraphClient); } @Bean(name = "category-operation") diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java index 34696b33eb..57053eb032 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java @@ -2,15 +2,15 @@ package org.openecomp.sdc.asdctool.impl.validator.executers; import fj.data.Either; import org.openecomp.sdc.asdctool.impl.validator.config.ValidationConfigManager; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentParametersView; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -22,7 +22,7 @@ import java.util.stream.Collectors; public class ArtifactValidatorExecuter{ @Autowired - protected TitanDao titanDao; + protected JanusGraphDao janusGraphDao; @Autowired private ToscaOperationFacade toscaOperationFacade; @@ -42,7 +42,8 @@ public class ArtifactValidatorExecuter{ public Map> getVerticesToValidate(VertexTypeEnum type, Map hasProps){ Map> result = new HashMap<>(); - Either, TitanOperationStatus> resultsEither = titanDao.getByCriteria(type, hasProps); + Either, JanusGraphOperationStatus> resultsEither = janusGraphDao + .getByCriteria(type, hasProps); if (resultsEither.isRight()) { log.error("getVerticesToValidate failed "+ resultsEither.right().value()); return result; @@ -101,7 +102,7 @@ public class ArtifactValidatorExecuter{ log.error("Failed to fetch vf resources ", e); return false; } finally { - titanDao.commit(); + janusGraphDao.commit(); } return result; } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java index a10d3193b2..79bf510b55 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java @@ -5,9 +5,9 @@ import org.openecomp.sdc.asdctool.impl.validator.tasks.TopologyTemplateValidatio import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager; import org.openecomp.sdc.asdctool.impl.validator.utils.VertexResult; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; @@ -24,7 +24,7 @@ public class TopologyTemplateValidatorExecuter { private static Logger log = Logger.getLogger(VfValidatorExecuter.class.getName()); @Autowired - protected TitanDao titanDao; + protected JanusGraphDao janusGraphDao; protected String name; @@ -43,7 +43,8 @@ public class TopologyTemplateValidatorExecuter { props.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); } - Either, TitanOperationStatus> results = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props); + Either, JanusGraphOperationStatus> results = janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props); if (results.isRight()) { log.error("getVerticesToValidate failed "+ results.right().value()); return new ArrayList<>(); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java index faccd647c2..433ea9ef0a 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java @@ -8,9 +8,9 @@ import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition; import org.openecomp.sdc.be.model.ComponentParametersView; -import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate; -import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.TopologyTemplate; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElement; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.springframework.beans.factory.annotation.Autowired; diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java index 272b546a5d..dd1f54f337 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java @@ -11,9 +11,9 @@ import org.openecomp.sdc.be.datatypes.elements.MapGroupsDataDefinition; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.ComponentParametersView; import org.openecomp.sdc.be.model.LifecycleStateEnum; -import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate; -import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.TopologyTemplate; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElement; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.springframework.beans.factory.annotation.Autowired; diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/DataSchemaMenu.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/DataSchemaMenu.java index fe117d1a1a..d2d5e77f2b 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/DataSchemaMenu.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/DataSchemaMenu.java @@ -22,7 +22,7 @@ package org.openecomp.sdc.asdctool.main; -import org.openecomp.sdc.asdctool.impl.TitanGraphInitializer; +import org.openecomp.sdc.asdctool.impl.JanusGraphInitializer; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.cassandra.schema.SdcSchemaBuilder; import org.openecomp.sdc.be.dao.cassandra.schema.SdcSchemaUtils; @@ -62,14 +62,14 @@ public class DataSchemaMenu { System.exit(2); } break; - case "create-titan-structures": - log.debug("Start create titan keyspace"); - String titanCfg = 2 == args.length ? configurationManager.getConfiguration().getTitanCfgFile() : args[2]; - if (TitanGraphInitializer.createGraph(titanCfg)) { - log.debug("create titan keyspace successfull"); + case "create-janusgraph-structures": + log.debug("Start create janusgraph keyspace"); + String janusGraphCfg = 2 == args.length ? configurationManager.getConfiguration().getJanusGraphCfgFile() : args[2]; + if (JanusGraphInitializer.createGraph(janusGraphCfg)) { + log.debug("create janusgraph keyspace successfull"); System.exit(0); } else { - log.debug("create titan keyspace failed"); + log.debug("create janusgraph keyspace failed"); System.exit(2); } break; @@ -96,6 +96,6 @@ public class DataSchemaMenu { private static void DataSchemeUsage() { System.out.println("Usage: create-cassandra-structures "); - System.out.println("Usage: create-titan-structures "); + System.out.println("Usage: create-janusgraph-structures "); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ExportImportMenu.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ExportImportMenu.java index 36d2f66d58..844ae1ec6e 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ExportImportMenu.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ExportImportMenu.java @@ -36,7 +36,7 @@ public class ExportImportMenu { } private static void importUsage() { - System.out.println("Usage: import "); + System.out.println("Usage: import "); } private static void validateJsonUsage() { @@ -44,7 +44,7 @@ public class ExportImportMenu { } private static void exportUsage() { - System.out.println("Usage: export "); + System.out.println("Usage: export "); } private static void dataReportUsage() { @@ -52,7 +52,7 @@ public class ExportImportMenu { } private static void exportUsersUsage() { - System.out.println("Usage: exportusers "); + System.out.println("Usage: exportusers "); } public static void main(String[] args) throws Exception { @@ -116,7 +116,7 @@ public class ExportImportMenu { case "validate-json": String jsonFilePath = validateAndGetJsonFilePath(args); GraphJsonValidator graphJsonValidator = new GraphJsonValidator(); - if (graphJsonValidator.verifyTitanJson(jsonFilePath)) { + if (graphJsonValidator.verifyJanusGraphJson(jsonFilePath)) { System.exit(2); } break; diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/RemoveUtils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/RemoveUtils.java index 4bc21b38ca..236f819063 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/RemoveUtils.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/RemoveUtils.java @@ -52,7 +52,7 @@ public class RemoveUtils { } private static void removeUsage() { - System.out.println("Usage: remove-products "); + System.out.println("Usage: remove-products "); } private static boolean verifyParamsLength(String[] args, int i) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/UpdateIsVnfMenu.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/UpdateIsVnfMenu.java index ff548ff71a..fc65a2d2d8 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/UpdateIsVnfMenu.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/UpdateIsVnfMenu.java @@ -41,7 +41,7 @@ public class UpdateIsVnfMenu { private static void updateIsVnfTrueUsage() { System.out.println( - "Usage: updateIsVnfTrue "); + "Usage: updateIsVnfTrue "); } public static void main(String[] args) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710.java index bff30683ca..c4be03d899 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710.java @@ -21,17 +21,17 @@ import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLog import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.*; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.utils.ModelConverter; import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.CsarOperation; @@ -74,7 +74,7 @@ public class UpgradeMigration1710 implements PostMigration { private boolean isNodeTypesSupportOnly = true; @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private ToscaOperationFacade toscaOperationFacade; @@ -263,10 +263,10 @@ public class UpgradeMigration1710 implements PostMigration { private void cleanup(MigrationResult.MigrationStatus status) { if (status == MigrationResult.MigrationStatus.COMPLETED ) { log.info("Upgrade migration 1710 has been successfully finished. "); - titanDao.commit(); + janusGraphDao.commit(); } else { log.info("Upgrade migration 1710 was failed. "); - titanDao.rollback(); + janusGraphDao.rollback(); } outputHandler.writeOutputAndCloseFile(); if (!isNodeTypesSupportOnly && isLockSucceeded) { @@ -299,11 +299,11 @@ public class UpgradeMigration1710 implements PostMigration { finally { if (result) { log.info("Service upgrade finished successfully: uniqueId {} ", currUid); - titanDao.commit(); + janusGraphDao.commit(); } else { log.error("Failed to upgrade service with uniqueId {} ", currUid); - titanDao.rollback(); + janusGraphDao.rollback(); } markCheckedOutServiceAsDeletedIfUpgradeFailed(currUid, result); } @@ -314,7 +314,7 @@ public class UpgradeMigration1710 implements PostMigration { } private void upgradeServices() { - Either, TitanOperationStatus> getServicesRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.TOPOLOGY_TEMPLATE, ComponentTypeEnum.SERVICE); + Either, JanusGraphOperationStatus> getServicesRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.TOPOLOGY_TEMPLATE, ComponentTypeEnum.SERVICE); if (getServicesRes.isRight()) { log.error("Failed to retrieve the latest certified service versions"); return; @@ -341,7 +341,7 @@ public class UpgradeMigration1710 implements PostMigration { return upgradeService(getServiceRes.left().value()); } if(!latestGenericTypes.containsKey(derivedFromGenericType)){ - Either, TitanOperationStatus> getDerivedRes = findDerivedResources(derivedFromGenericType); + Either, JanusGraphOperationStatus> getDerivedRes = findDerivedResources(derivedFromGenericType); if(getDerivedRes.isRight()){ log.error(FAILED_TO_UPGRADE_COMPONENT, getServiceRes.left().value().getComponentType().getValue(), getServiceRes.left().value().getName(), getServiceRes.left().value().getInvariantUUID(), getServiceRes.left().value().getVersion(), "findDerivedResources", getDerivedRes.right().value()); outputHandler.addRecord( getServiceRes.left().value().getComponentType().name(),getServiceRes.left().value().getName(), getServiceRes.left().value().getInvariantUUID(), getServiceRes.left().value().getUniqueId(), MigrationResult.MigrationStatus.FAILED.name(), getDerivedRes.right().value()); @@ -531,7 +531,7 @@ public class UpgradeMigration1710 implements PostMigration { Optional propertyInvariantUuid = instanceProperties.stream().filter(p->p.getName().equals(SERVICE_INVARIANT_UUID_RPOPERTY)).findFirst(); if(propertyUuid.isPresent() && propertyInvariantUuid.isPresent()){ String serviceInvariantUUID = propertyInvariantUuid.get().getValue(); - Either, TitanOperationStatus> getLatestOriginServiceRes = getLatestCertifiedService(serviceInvariantUUID); + Either, JanusGraphOperationStatus> getLatestOriginServiceRes = getLatestCertifiedService(serviceInvariantUUID); if (getLatestOriginServiceRes.isRight()) { return instance; } @@ -565,9 +565,9 @@ public class UpgradeMigration1710 implements PostMigration { } private Either upgradeServiceProxyInstance(org.openecomp.sdc.be.model.Component component, ComponentInstance instance, ComponentInstance newComponentInstance) { - Either, TitanOperationStatus> getLatestOriginServiceRes = getLatestCertifiedService(instance.getSourceModelInvariant()); + Either, JanusGraphOperationStatus> getLatestOriginServiceRes = getLatestCertifiedService(instance.getSourceModelInvariant()); if (getLatestOriginServiceRes.isRight()) { - return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertTitanStatusToStorageStatus(getLatestOriginServiceRes.right().value()), instance.getOriginType().getComponentType()))); + return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getLatestOriginServiceRes.right().value()), instance.getOriginType().getComponentType()))); } ModelConverter.getVertexType(instance.getOriginType().name()); Either getOriginRes = toscaOperationFacade.getLatestByName(instance.getComponentName()); @@ -580,7 +580,7 @@ public class UpgradeMigration1710 implements PostMigration { return changeAssetVersion(component, instance, newComponentInstance); } - private Either, TitanOperationStatus> getLatestCertifiedService(String invariantUUID) { + private Either, JanusGraphOperationStatus> getLatestCertifiedService(String invariantUUID) { Map propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class); propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); @@ -589,7 +589,8 @@ public class UpgradeMigration1710 implements PostMigration { propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, invariantUUID); Map propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class); propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true); - return titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); + return janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); } private Either changeAssetVersion(org.openecomp.sdc.be.model.Component containerComponent, ComponentInstance instance, ComponentInstance newComponentInstance) { @@ -599,7 +600,7 @@ public class UpgradeMigration1710 implements PostMigration { private boolean upgradeNodeTypes() { log.info("Starting upgrade node types upon upgrade migration 1710 process. "); if (nodeTypes != null && !nodeTypes.isEmpty()) { - Either, TitanOperationStatus> getRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.NODE_TYPE, ComponentTypeEnum.RESOURCE); + Either, JanusGraphOperationStatus> getRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.NODE_TYPE, ComponentTypeEnum.RESOURCE); if (getRes.isRight()) { return false; } @@ -633,7 +634,7 @@ public class UpgradeMigration1710 implements PostMigration { private boolean upgradeVFs() { log.info("Starting upgrade VFs upon upgrade migration 1710 process. "); - Either, TitanOperationStatus> getVfsRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.TOPOLOGY_TEMPLATE, ComponentTypeEnum.RESOURCE); + Either, JanusGraphOperationStatus> getVfsRes = getAllLatestCertifiedComponentUids(VertexTypeEnum.TOPOLOGY_TEMPLATE, ComponentTypeEnum.RESOURCE); if (getVfsRes.isRight()) { log.info(UPGRADE_VFS_FAILED); return false; @@ -665,11 +666,11 @@ public class UpgradeMigration1710 implements PostMigration { finally { if (result) { log.info("Resource upgrade finished successfully: uniqueId {} ", currUid); - titanDao.commit(); + janusGraphDao.commit(); } else { log.error("Failed to upgrade resource with uniqueId {} ", currUid); - titanDao.rollback(); + janusGraphDao.rollback(); } markCheckedOutResourceAsDeletedIfUpgradeFailed(currUid, result); } @@ -804,7 +805,7 @@ public class UpgradeMigration1710 implements PostMigration { if (StringUtils.isNotEmpty(derivedFromGenericType) && !latestGenericTypes.containsKey(derivedFromGenericType)) { log.info("Starting upgrade vf with name {}, invariantUUID {}, version {}, latest derived from generic type {}, latest derived from generic version {}. ", component.getName(), component.getInvariantUUID(), component.getVersion(), derivedFromGenericType, derivedFromGenericVersion); log.info("Starting to fetch latest generic node type {}. ", derivedFromGenericType); - Either, TitanOperationStatus> getDerivedRes = findDerivedResources(derivedFromGenericType); + Either, JanusGraphOperationStatus> getDerivedRes = findDerivedResources(derivedFromGenericType); if (getDerivedRes.isRight()) { outputHandler.addRecord(component.getComponentType().name(), component.getName(), component.getInvariantUUID(), component.getUniqueId(), MigrationResult.MigrationStatus.FAILED.name(), getDerivedRes.right().value()); log.info("Failed to upgrade component with name {}, invariantUUID {}, version {} and latest generic. Status is {}. ", component.getName(), component.getInvariantUUID(), component.getVersion(), derivedFromGenericType); @@ -835,9 +836,10 @@ public class UpgradeMigration1710 implements PostMigration { StorageOperationStatus result = StorageOperationStatus.OK; log.info("Starting upgrade node type with name {}, invariantUUID {}, version{}. ", nodeTypeV.getMetadataProperty(GraphPropertyEnum.NAME), nodeTypeV.getMetadataProperty(GraphPropertyEnum.INVARIANT_UUID), nodeTypeV.getMetadataProperty(GraphPropertyEnum.VERSION)); log.info("Starting to find derived to for node type with name {}, invariantUUID {}, version{}. ", nodeTypeV.getMetadataProperty(GraphPropertyEnum.NAME), nodeTypeV.getMetadataProperty(GraphPropertyEnum.INVARIANT_UUID), nodeTypeV.getMetadataProperty(GraphPropertyEnum.VERSION)); - Either, TitanOperationStatus> parentResourceRes = titanDao.getParentVertecies(nodeTypeV, EdgeLabelEnum.DERIVED_FROM, JsonParseFlagEnum.ParseMetadata); - if (parentResourceRes.isRight() && parentResourceRes.right().value() != TitanOperationStatus.NOT_FOUND) { - return DaoStatusConverter.convertTitanStatusToStorageStatus(parentResourceRes.right().value()); + Either, JanusGraphOperationStatus> parentResourceRes = janusGraphDao + .getParentVertecies(nodeTypeV, EdgeLabelEnum.DERIVED_FROM, JsonParseFlagEnum.ParseMetadata); + if (parentResourceRes.isRight() && parentResourceRes.right().value() != JanusGraphOperationStatus.NOT_FOUND) { + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(parentResourceRes.right().value()); } List derivedResourcesUid = getAllDerivedGraphVertices(allCertifiedUids, parentResourceRes); @@ -871,13 +873,13 @@ public class UpgradeMigration1710 implements PostMigration { } if (performFullCertification(checkouRes.left().value()).isLeft()) { upgradedNodeTypesMap.put(nodeType.getToscaResourceName(), checkouRes.left().value()); - titanDao.commit(); + janusGraphDao.commit(); return true; } return false; } - private List getAllDerivedGraphVertices(List allCertifiedUids, Either, TitanOperationStatus> parentResources) { + private List getAllDerivedGraphVertices(List allCertifiedUids, Either, JanusGraphOperationStatus> parentResources) { List derivedResourcesUid = new ArrayList<>(); if (parentResources.isLeft()) { @@ -916,14 +918,15 @@ public class UpgradeMigration1710 implements PostMigration { return changeStateEither; } - private Either, TitanOperationStatus> findDerivedResources(String parentResource) { + private Either, JanusGraphOperationStatus> findDerivedResources(String parentResource) { Map propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class); propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); propertiesToMatch.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, parentResource); propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true); - return titanDao.getByCriteria(VertexTypeEnum.NODE_TYPE, propertiesToMatch, JsonParseFlagEnum.ParseMetadata); + return janusGraphDao + .getByCriteria(VertexTypeEnum.NODE_TYPE, propertiesToMatch, JsonParseFlagEnum.ParseMetadata); } private boolean latestVersionExists(GraphVertex latestDerivedFrom, String currentVersion) { @@ -940,14 +943,14 @@ public class UpgradeMigration1710 implements PostMigration { return Double.parseDouble(latestVersion) > Double.parseDouble(currentVersion); } - private Either, TitanOperationStatus> getAllLatestCertifiedComponentUids(VertexTypeEnum vertexType, ComponentTypeEnum componentType) { + private Either, JanusGraphOperationStatus> getAllLatestCertifiedComponentUids(VertexTypeEnum vertexType, ComponentTypeEnum componentType) { log.info("Starting to fetch all latest certified not checked out components with type {} upon upgrade migration 1710 process", componentType); - Either, TitanOperationStatus> result = null; + Either, JanusGraphOperationStatus> result = null; Map latestCertifiedMap = new HashMap<>(); Map latestNotCertifiedMap = new HashMap<>(); - Either, TitanOperationStatus> getComponentsRes = getAllLatestComponents(vertexType, componentType); - if (getComponentsRes.isRight() && getComponentsRes.right().value() != TitanOperationStatus.NOT_FOUND) { + Either, JanusGraphOperationStatus> getComponentsRes = getAllLatestComponents(vertexType, componentType); + if (getComponentsRes.isRight() && getComponentsRes.right().value() != JanusGraphOperationStatus.NOT_FOUND) { log.error("Failed to fetch all latest certified not checked out components with type {}. Status is {}. ", componentType, getComponentsRes.right().value()); result = Either.right(getComponentsRes.right().value()); } @@ -968,7 +971,7 @@ public class UpgradeMigration1710 implements PostMigration { return result; } - private Either, TitanOperationStatus> getAllLatestComponents(VertexTypeEnum vertexType, ComponentTypeEnum componentType) { + private Either, JanusGraphOperationStatus> getAllLatestComponents(VertexTypeEnum vertexType, ComponentTypeEnum componentType) { Map propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class); propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name()); @@ -979,7 +982,8 @@ public class UpgradeMigration1710 implements PostMigration { if (vertexType == VertexTypeEnum.TOPOLOGY_TEMPLATE && componentType == ComponentTypeEnum.RESOURCE) { propertiesNotToMatch.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.CVFC.name()); } - return titanDao.getByCriteria(vertexType, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); + return janusGraphDao + .getByCriteria(vertexType, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); } private Either, StorageOperationStatus> getLatestByName(GraphPropertyEnum property, String nodeName) { @@ -990,11 +994,12 @@ public class UpgradeMigration1710 implements PostMigration { propertiesToMatch.put(property, nodeName); propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true); - Either, TitanOperationStatus> highestResources = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); + Either, JanusGraphOperationStatus> highestResources = janusGraphDao + .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata); if (highestResources.isRight()) { - TitanOperationStatus status = highestResources.right().value(); + JanusGraphOperationStatus status = highestResources.right().value(); log.debug("Failed to fetch resource with name {}. Status is {} ", nodeName, status); - return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); + return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status)); } List resources = highestResources.left().value(); List result = new ArrayList<>(); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java index d520eee1b8..a47c63d451 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java @@ -6,17 +6,17 @@ import org.apache.tinkerpop.gremlin.structure.Direction; import org.openecomp.sdc.asdctool.migration.core.DBVersion; import org.openecomp.sdc.asdctool.migration.core.task.Migration; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaElementOperation; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.stereotype.Component; @@ -32,11 +32,11 @@ public class SdcCatalogMigration implements Migration { private static final List EXCLUDE_TYPES = Arrays.asList(ResourceTypeEnum.VFCMT, ResourceTypeEnum.Configuration); private ToscaElementOperation toscaElementOperation; - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; - public SdcCatalogMigration(TopologyTemplateOperation toscaElementOperation, TitanDao titanDao) { + public SdcCatalogMigration(TopologyTemplateOperation toscaElementOperation, JanusGraphDao janusGraphDao) { this.toscaElementOperation = toscaElementOperation; - this.titanDao = titanDao; + this.janusGraphDao = janusGraphDao; } @Override @@ -51,45 +51,46 @@ public class SdcCatalogMigration implements Migration { @Override public MigrationResult migrate() { - TitanOperationStatus status = null; + JanusGraphOperationStatus status = null; try { status = getOrCreateCatalogRoot() .either(this::associateCatalogRootToCatalogElements, err -> {LOGGER.error("failed to create catalog root. err: {}", err); return err;}); - return status == TitanOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create and associate catalog root. error: " + status); + return status == JanusGraphOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create and associate catalog root. error: " + status); } finally { commitOrRollBack(status); } } - private void commitOrRollBack(TitanOperationStatus status) { - if (status == TitanOperationStatus.OK) { - titanDao.commit(); + private void commitOrRollBack(JanusGraphOperationStatus status) { + if (status == JanusGraphOperationStatus.OK) { + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } - private Either getOrCreateCatalogRoot() { + private Either getOrCreateCatalogRoot() { LOGGER.info("creating or getting catalog root vertex"); - return titanDao.getVertexByLabel(VertexTypeEnum.CATALOG_ROOT) + return janusGraphDao.getVertexByLabel(VertexTypeEnum.CATALOG_ROOT) .right() .bind(this::createRootCatalogVertexOrError); } - private Either createRootCatalogVertexOrError(TitanOperationStatus titanOperationStatus) { - return titanOperationStatus == TitanOperationStatus.NOT_FOUND ? createRootCatalogVertex() : Either.right(titanOperationStatus); + private Either createRootCatalogVertexOrError(JanusGraphOperationStatus janusGraphOperationStatus) { + return janusGraphOperationStatus == JanusGraphOperationStatus.NOT_FOUND ? createRootCatalogVertex() : Either.right( + janusGraphOperationStatus); } - private Either createRootCatalogVertex() { + private Either createRootCatalogVertex() { LOGGER.info("Creating root catalog vertex"); GraphVertex catalogRootVertex = new GraphVertex(VertexTypeEnum.CATALOG_ROOT); catalogRootVertex.setUniqueId(IdBuilderUtils.generateUniqueId()); - return titanDao.createVertex(catalogRootVertex); + return janusGraphDao.createVertex(catalogRootVertex); } - private Either, TitanOperationStatus> getAllCatalogVertices() { + private Either, JanusGraphOperationStatus> getAllCatalogVertices() { LOGGER.info("fetching all catalog resources"); return toscaElementOperation.getListOfHighestComponents(ComponentTypeEnum.RESOURCE, EXCLUDE_TYPES, JsonParseFlagEnum.ParseMetadata) .right() @@ -98,12 +99,12 @@ public class SdcCatalogMigration implements Migration { .bind(this::getAllCatalogVertices); } - private Either, TitanOperationStatus> errOrEmptyListIfNotFound(TitanOperationStatus err) { - return TitanOperationStatus.NOT_FOUND.equals(err) ? Either.left(new ArrayList<>()) : Either.right(err); + private Either, JanusGraphOperationStatus> errOrEmptyListIfNotFound(JanusGraphOperationStatus err) { + return JanusGraphOperationStatus.NOT_FOUND.equals(err) ? Either.left(new ArrayList<>()) : Either.right(err); } @SuppressWarnings("unchecked") - private Either, TitanOperationStatus> getAllCatalogVertices(List allResourceCatalogVertices) { + private Either, JanusGraphOperationStatus> getAllCatalogVertices(List allResourceCatalogVertices) { LOGGER.info("number of resources: {}", allResourceCatalogVertices.size()); LOGGER.info("fetching all catalog services"); return toscaElementOperation.getListOfHighestComponents(ComponentTypeEnum.SERVICE, EXCLUDE_TYPES, JsonParseFlagEnum.ParseMetadata) @@ -113,20 +114,22 @@ public class SdcCatalogMigration implements Migration { .map(allServiceVertices -> ListUtils.union(allServiceVertices, allResourceCatalogVertices)); } - private TitanOperationStatus associateCatalogRootToCatalogElements(GraphVertex root) { + private JanusGraphOperationStatus associateCatalogRootToCatalogElements(GraphVertex root) { return getAllCatalogVertices() .either(catalogVertices -> associateCatalogRootToCatalogElements(root, catalogVertices), err -> err); } - private TitanOperationStatus associateCatalogRootToCatalogElements(GraphVertex root, List catalogElements) { + private JanusGraphOperationStatus associateCatalogRootToCatalogElements(GraphVertex root, List catalogElements) { LOGGER.info("number of catalog elements: {}", catalogElements.size()); LOGGER.info("connect all catalog elements to root edge"); List nonConnectedElements = catalogElements.stream().filter(this::edgeNotAlreadyExists).collect(Collectors.toList()); int numOfCreatedEdges = 0; for (GraphVertex catalogElement : nonConnectedElements) { - TitanOperationStatus edgeCreationStatus = titanDao.createEdge(root, catalogElement, EdgeLabelEnum.CATALOG_ELEMENT, null); - if (edgeCreationStatus != TitanOperationStatus.OK) { + JanusGraphOperationStatus + edgeCreationStatus = janusGraphDao + .createEdge(root, catalogElement, EdgeLabelEnum.CATALOG_ELEMENT, null); + if (edgeCreationStatus != JanusGraphOperationStatus.OK) { LOGGER.error("failed to create edge from catalog element to vertex {}", catalogElement.getUniqueId()); return edgeCreationStatus; } @@ -134,7 +137,7 @@ public class SdcCatalogMigration implements Migration { numOfCreatedEdges++; } LOGGER.info("number edges created: {}", numOfCreatedEdges); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } private boolean edgeNotAlreadyExists(GraphVertex catalogElement) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java index 9634025867..812c07e6b0 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java @@ -17,7 +17,7 @@ package org.openecomp.sdc.asdctool.migration.tasks.mig1806; import com.google.common.collect.ImmutableSet; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import java.math.BigInteger; import java.util.ArrayList; @@ -38,22 +38,20 @@ import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentParametersView; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsontitan.operations.ForwardingPathOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter; import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; @@ -61,14 +59,14 @@ import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; @org.springframework.stereotype.Component public class ForwardPathMigration implements Migration { - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; private UserAdminOperation userAdminOperation; private ToscaOperationFacade toscaOperationFacade; private User user = null; - public ForwardPathMigration(TitanDao titanDao, + public ForwardPathMigration(JanusGraphDao janusGraphDao, UserAdminOperation userAdminOperation, ToscaOperationFacade toscaOperationFacade) { - this.titanDao = titanDao; + this.janusGraphDao = janusGraphDao; this.userAdminOperation = userAdminOperation; this.toscaOperationFacade = toscaOperationFacade; } @@ -110,7 +108,7 @@ public class ForwardPathMigration implements Migration { hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); Map hasNotProps = new HashMap<>(); hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); - status = titanDao + status = janusGraphDao .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll) .either(this::cleanServices, this::handleError); return status; @@ -138,10 +136,11 @@ public class ForwardPathMigration implements Migration { } - private StorageOperationStatus handleError(TitanOperationStatus err) { - titanDao.rollback(); + private StorageOperationStatus handleError(JanusGraphOperationStatus err) { + janusGraphDao.rollback(); return DaoStatusConverter - .convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND == err ? TitanOperationStatus.OK : err); + .convertJanusGraphStatusToStorageStatus( + JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err); } private StorageOperationStatus fixDataOnGraph(Component component) { @@ -149,10 +148,10 @@ public class ForwardPathMigration implements Migration { return StorageOperationStatus.OK; } Service service = (Service) component; - Either getResponse = titanDao.getVertexById(service.getUniqueId(), + Either getResponse = janusGraphDao.getVertexById(service.getUniqueId(), JsonParseFlagEnum.NoParse); if (getResponse.isRight()) { - return DaoStatusConverter.convertTitanStatusToStorageStatus(getResponse.right().value()); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getResponse.right().value()); } Set ciNames = new HashSet<>(); @@ -163,13 +162,13 @@ public class ForwardPathMigration implements Migration { GraphVertex componentVertex = getResponse.left().value(); GraphVertex toscaDataVertex; - Either groupVertexEither = titanDao.getChildVertex(componentVertex, + Either groupVertexEither = janusGraphDao.getChildVertex(componentVertex, EdgeLabelEnum.FORWARDING_PATH, JsonParseFlagEnum.ParseJson); - if (groupVertexEither.isRight() && groupVertexEither.right().value() == TitanOperationStatus.NOT_FOUND) { + if (groupVertexEither.isRight() && groupVertexEither.right().value() == JanusGraphOperationStatus.NOT_FOUND) { return StorageOperationStatus.OK; } if (groupVertexEither.isRight()) { - return DaoStatusConverter.convertTitanStatusToStorageStatus(groupVertexEither.right().value()); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(groupVertexEither.right().value()); } toscaDataVertex = groupVertexEither.left().value(); Map forwardingPaths = new HashMap<>( @@ -186,42 +185,44 @@ public class ForwardPathMigration implements Migration { } } if (toBeDeletedFP.isEmpty()) { - titanDao.rollback(); + janusGraphDao.rollback(); return StorageOperationStatus.OK; } toBeDeletedFP.stream().forEach(fpKey -> forwardingPaths.remove(fpKey)); toscaDataVertex.setJson(forwardingPaths); - Either updatevertexEither = updateOrCopyOnUpdate( + Either updatevertexEither = updateOrCopyOnUpdate( toscaDataVertex, componentVertex); if (updatevertexEither.isRight()) { - titanDao.rollback(); - return DaoStatusConverter.convertTitanStatusToStorageStatus(updatevertexEither.right().value()); + janusGraphDao.rollback(); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updatevertexEither.right().value()); } - titanDao.commit(); + janusGraphDao.commit(); return StorageOperationStatus.OK; } - private Either cloneDataVertex(GraphVertex dataVertex, GraphVertex toscaElementVertex, Edge edgeToRemove) { + private Either cloneDataVertex(GraphVertex dataVertex, GraphVertex toscaElementVertex, Edge edgeToRemove) { EdgeLabelEnum label = EdgeLabelEnum.FORWARDING_PATH; GraphVertex newDataVertex = new GraphVertex(dataVertex.getLabel()); String id = IdBuilderUtils.generateChildId(toscaElementVertex.getUniqueId(), dataVertex.getLabel()); newDataVertex.cloneData(dataVertex); newDataVertex.setUniqueId(id); - Either createVertex = titanDao.createVertex(newDataVertex); + Either createVertex = janusGraphDao.createVertex(newDataVertex); if (createVertex.isRight()) { return createVertex; } newDataVertex = createVertex.left().value(); - TitanOperationStatus createEdge = titanDao.createEdge(toscaElementVertex, newDataVertex, label, titanDao.getEdgeProperties(edgeToRemove)); - if (createEdge != TitanOperationStatus.OK) { + JanusGraphOperationStatus + createEdge = janusGraphDao + .createEdge(toscaElementVertex, newDataVertex, label, janusGraphDao.getEdgeProperties(edgeToRemove)); + if (createEdge != JanusGraphOperationStatus.OK) { return Either.right(createEdge); } edgeToRemove.remove(); return Either.left(newDataVertex); } - private Either updateOrCopyOnUpdate(GraphVertex dataVertex, GraphVertex toscaElementVertex ) { + private Either updateOrCopyOnUpdate(GraphVertex dataVertex, GraphVertex toscaElementVertex ) { EdgeLabelEnum label = EdgeLabelEnum.FORWARDING_PATH; Iterator edges = dataVertex.getVertex().edges(Direction.IN, label.name()); int edgeCount = 0; @@ -230,21 +231,22 @@ public class ForwardPathMigration implements Migration { Edge edge = edges.next(); ++edgeCount; Vertex outVertex = edge.outVertex(); - String outId = (String) titanDao.getProperty((TitanVertex) outVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); + String outId = (String) janusGraphDao + .getProperty((JanusGraphVertex) outVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); if (toscaElementVertex.getUniqueId().equals(outId)) { edgeToRemove = edge; } } if (edgeToRemove == null) { - return Either.right(TitanOperationStatus.GENERAL_ERROR); + return Either.right(JanusGraphOperationStatus.GENERAL_ERROR); } switch (edgeCount) { case 0: // error - return Either.right(TitanOperationStatus.GENERAL_ERROR); + return Either.right(JanusGraphOperationStatus.GENERAL_ERROR); case 1: // update - return titanDao.updateVertex(dataVertex); + return janusGraphDao.updateVertex(dataVertex); default: // copy on update return cloneDataVertex(dataVertex, toscaElementVertex, edgeToRemove); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java index 7d741624c2..02b45dc332 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java @@ -8,11 +8,11 @@ import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; @@ -33,7 +33,7 @@ import java.util.Map; @Component public class ResourceLifecycleMigration implements Migration { - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; private LifecycleBusinessLogic lifecycleBusinessLogic; private UserAdminOperation userAdminOperation; @@ -41,8 +41,8 @@ public class ResourceLifecycleMigration implements Migration { private static final Logger log = Logger.getLogger(ResourceLifecycleMigration.class); - public ResourceLifecycleMigration(TitanDao titanDao, LifecycleBusinessLogic lifecycleBusinessLogic, UserAdminOperation userAdminOperation) { - this.titanDao = titanDao; + public ResourceLifecycleMigration(JanusGraphDao janusGraphDao, LifecycleBusinessLogic lifecycleBusinessLogic, UserAdminOperation userAdminOperation) { + this.janusGraphDao = janusGraphDao; this.lifecycleBusinessLogic = lifecycleBusinessLogic; this.userAdminOperation = userAdminOperation; } @@ -82,7 +82,7 @@ public class ResourceLifecycleMigration implements Migration { if (StorageOperationStatus.OK == status) { status = findResourcesAndChangeStatus(VertexTypeEnum.TOPOLOGY_TEMPLATE); } - titanDao.commit(); + janusGraphDao.commit(); return status; } @@ -97,12 +97,12 @@ public class ResourceLifecycleMigration implements Migration { hasNot.put(GraphPropertyEnum.IS_DELETED, true); log.info("findResourcesAndChangeStatus for type {} and state {}", type ,LifecycleStateEnum.READY_FOR_CERTIFICATION); - status = titanDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError); + status = janusGraphDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError); log.info("status {} for type {} and state {}", status, type ,LifecycleStateEnum.READY_FOR_CERTIFICATION); log.info("findResourcesAndChangeStatus for type {} and state {}", type ,LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS.name()); - status = titanDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError); + status = janusGraphDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError); log.info("status {} for type {} and state {}", status, type ,LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); @@ -130,9 +130,10 @@ public class ResourceLifecycleMigration implements Migration { return changeComponentState.isLeft() ? StorageOperationStatus.OK : StorageOperationStatus.GENERAL_ERROR; } - private StorageOperationStatus handleError(TitanOperationStatus err) { - log.debug("receive titan error {}", err); - return DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND == err ? TitanOperationStatus.OK : err); + private StorageOperationStatus handleError(JanusGraphOperationStatus err) { + log.debug("receive janusgraph error {}", err); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus( + JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java index 4786839250..f85b6ade88 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java @@ -4,12 +4,12 @@ import fj.data.Either; import org.openecomp.sdc.asdctool.migration.core.DBVersion; import org.openecomp.sdc.asdctool.migration.core.task.Migration; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition; import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition; import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition; @@ -17,8 +17,8 @@ import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.NodeTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter; import org.openecomp.sdc.common.log.wrappers.Logger; @@ -31,7 +31,7 @@ import java.util.Map.Entry; @Component public class SDCInstancesMigration implements Migration { - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; private NodeTemplateOperation nodeTemplateOperation; private static final Logger log = Logger.getLogger(SDCInstancesMigration.class); @@ -41,8 +41,8 @@ public class SDCInstancesMigration implements Migration { private static final List UUID_PROPS_NAMES = Arrays.asList("providing_service_uuid", "providing_service_uuid"); - public SDCInstancesMigration(TitanDao titanDao, NodeTemplateOperation nodeTemplateOperation) { - this.titanDao = titanDao; + public SDCInstancesMigration(JanusGraphDao janusGraphDao, NodeTemplateOperation nodeTemplateOperation) { + this.janusGraphDao = janusGraphDao; this.nodeTemplateOperation = nodeTemplateOperation; } @@ -69,13 +69,15 @@ public class SDCInstancesMigration implements Migration { hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.CVFC); - status = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, null, hasNotProps, JsonParseFlagEnum.ParseAll) + status = janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, null, hasNotProps, JsonParseFlagEnum.ParseAll) .either(this::connectAll, this::handleError); return status; } - private StorageOperationStatus handleError(TitanOperationStatus err) { - return DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND == err ? TitanOperationStatus.OK : err); + private StorageOperationStatus handleError(JanusGraphOperationStatus err) { + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus( + JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err); } private StorageOperationStatus connectAll(List containersV) { @@ -96,7 +98,8 @@ public class SDCInstancesMigration implements Migration { ComponentTypeEnum componentType = containerV.getType(); Map instanceProperties = null; if (componentType == ComponentTypeEnum.RESOURCE) { - Either subcategoryV = titanDao.getChildVertex(containerV, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.NoParse); + Either subcategoryV = janusGraphDao + .getChildVertex(containerV, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.NoParse); if (subcategoryV.isRight()) { log.debug("Failed to fetch category vertex for resource {} error {} ", containerV.getUniqueId(), subcategoryV.right().value()); return StorageOperationStatus.GENERAL_ERROR; @@ -122,9 +125,9 @@ public class SDCInstancesMigration implements Migration { } finally { if (status == StorageOperationStatus.OK) { - titanDao.commit(); + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } } @@ -133,10 +136,11 @@ public class SDCInstancesMigration implements Migration { private Either, StorageOperationStatus> getInstProperties(GraphVertex containerV) { Map instanceProperties; - Either instProps = titanDao.getChildVertex(containerV, EdgeLabelEnum.INST_PROPERTIES, JsonParseFlagEnum.ParseAll); + Either instProps = janusGraphDao + .getChildVertex(containerV, EdgeLabelEnum.INST_PROPERTIES, JsonParseFlagEnum.ParseAll); if (instProps.isRight()) { - if (instProps.right().value() == TitanOperationStatus.NOT_FOUND) { + if (instProps.right().value() == JanusGraphOperationStatus.NOT_FOUND) { instanceProperties = new HashMap<>(); } else { log.debug("Failed to fetch instance properties vertex for resource {} error {} ", containerV.getUniqueId(), instProps.right().value()); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java index bdab2cee2b..e8977227df 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java @@ -4,11 +4,11 @@ import fj.data.Either; import org.openecomp.sdc.asdctool.migration.core.DBVersion; import org.openecomp.sdc.asdctool.migration.core.task.Migration; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.stereotype.Component; @@ -19,10 +19,10 @@ import java.math.BigInteger; public class SdcArchiveMigration implements Migration { private static final Logger logger = Logger.getLogger(SdcArchiveMigration.class); - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; - public SdcArchiveMigration(TitanDao titanDao) { - this.titanDao = titanDao; + public SdcArchiveMigration(JanusGraphDao janusGraphDao) { + this.janusGraphDao = janusGraphDao; } @Override @@ -37,30 +37,30 @@ public class SdcArchiveMigration implements Migration { @Override public MigrationResult migrate() { - TitanOperationStatus status = null; + JanusGraphOperationStatus status = null; try { status = getOrCreateArchiveRoot(); - return status == TitanOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create archive root node. error: " + status); + return status == JanusGraphOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create archive root node. error: " + status); } finally { commitOrRollBack(status); } } - private void commitOrRollBack(TitanOperationStatus status) { - if (status == TitanOperationStatus.OK) { - titanDao.commit(); + private void commitOrRollBack(JanusGraphOperationStatus status) { + if (status == JanusGraphOperationStatus.OK) { + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } - private TitanOperationStatus getOrCreateArchiveRoot() { + private JanusGraphOperationStatus getOrCreateArchiveRoot() { logger.info("creating or getting catalog archive vertex"); - return titanDao.getVertexByLabel(VertexTypeEnum.ARCHIVE_ROOT) - .either(v -> TitanOperationStatus.OK, s -> this.createRootArchiveVertex()); + return janusGraphDao.getVertexByLabel(VertexTypeEnum.ARCHIVE_ROOT) + .either(v -> JanusGraphOperationStatus.OK, s -> this.createRootArchiveVertex()); } - private TitanOperationStatus createRootArchiveVertex() { + private JanusGraphOperationStatus createRootArchiveVertex() { GraphVertex archiveRootVertex = new GraphVertex(VertexTypeEnum.ARCHIVE_ROOT); archiveRootVertex.setUniqueId(IdBuilderUtils.generateUniqueId()); archiveRootVertex.addMetadataProperty(GraphPropertyEnum.LABEL, VertexTypeEnum.ARCHIVE_ROOT); @@ -68,9 +68,9 @@ public class SdcArchiveMigration implements Migration { logger.info("Creating root archive vertex {}", archiveRootVertex.getUniqueId()); - final Either vertexE = titanDao.createVertex(archiveRootVertex); + final Either vertexE = janusGraphDao.createVertex(archiveRootVertex); - return vertexE.isLeft() ? TitanOperationStatus.OK : vertexE.right().value(); + return vertexE.isLeft() ? JanusGraphOperationStatus.OK : vertexE.right().value(); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java index afbd3b411a..35e795095e 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java @@ -28,17 +28,17 @@ import org.openecomp.sdc.asdctool.migration.core.task.Migration; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition; import org.openecomp.sdc.be.datatypes.elements.MapInterfaceDataDefinition; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsontitan.operations.InterfaceOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter; import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; @@ -51,7 +51,7 @@ public class InterfaceOperationMigration implements Migration { private static final Logger LOGGER = Logger.getLogger(InterfaceOperationMigration.class); @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private UserAdminOperation userAdminOperation; @Autowired @@ -86,7 +86,8 @@ public class InterfaceOperationMigration implements Migration { private StorageOperationStatus getAndUpdateAllComponents(){ Map hasNotProps = new EnumMap<>(GraphPropertyEnum.class); hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); - return titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, null, hasNotProps, JsonParseFlagEnum.ParseAll) + return janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, null, hasNotProps, JsonParseFlagEnum.ParseAll) .either(this::updateComponentVertices, this::handleError); } @@ -101,16 +102,17 @@ public class InterfaceOperationMigration implements Migration { return status; } - private StorageOperationStatus handleError(TitanOperationStatus err) { - titanDao.rollback(); - return DaoStatusConverter.convertTitanStatusToStorageStatus( - TitanOperationStatus.NOT_FOUND == err ? TitanOperationStatus.OK : err); + private StorageOperationStatus handleError(JanusGraphOperationStatus err) { + janusGraphDao.rollback(); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus( + JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err); } private StorageOperationStatus updateDataOnGraph(GraphVertex componentVertex) { try { - Either interfaceVertexEither = - titanDao.getChildVertex(componentVertex, EdgeLabelEnum.INTERFACE, JsonParseFlagEnum.ParseJson); + Either interfaceVertexEither = + janusGraphDao + .getChildVertex(componentVertex, EdgeLabelEnum.INTERFACE, JsonParseFlagEnum.ParseJson); if (interfaceVertexEither.isLeft()) { GraphVertex interfaceVertex = interfaceVertexEither.left().value(); Map interfaceDefinitions = (Map) interfaceVertex.getJson(); @@ -121,9 +123,10 @@ public class InterfaceOperationMigration implements Migration { } } interfaceVertex.setJson(interfaceDefinitions); - Either updateInterfaceVertexEither = titanDao.updateVertex(interfaceVertex); + Either updateInterfaceVertexEither = janusGraphDao + .updateVertex(interfaceVertex); if(updateInterfaceVertexEither.isRight()){ - return DaoStatusConverter.convertTitanStatusToStorageStatus(updateInterfaceVertexEither.right().value()); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updateInterfaceVertexEither.right().value()); } } @@ -134,8 +137,8 @@ public class InterfaceOperationMigration implements Migration { } } - Either instInterfaceVertexEither = - titanDao.getChildVertex(componentVertex, EdgeLabelEnum.INST_INTERFACES, JsonParseFlagEnum.ParseJson); + Either instInterfaceVertexEither = + janusGraphDao.getChildVertex(componentVertex, EdgeLabelEnum.INST_INTERFACES, JsonParseFlagEnum.ParseJson); if (instInterfaceVertexEither.isLeft()) { GraphVertex instInterfaceVertex = instInterfaceVertexEither.left().value(); Map instInterfaceDefinitions = (Map) instInterfaceVertex.getJson(); @@ -148,17 +151,18 @@ public class InterfaceOperationMigration implements Migration { } } instInterfaceVertex.setJson(instInterfaceDefinitions); - Either updateInstInterfaceVertexEither = titanDao.updateVertex(instInterfaceVertex); + Either updateInstInterfaceVertexEither = janusGraphDao + .updateVertex(instInterfaceVertex); if(updateInstInterfaceVertexEither.isRight()){ - return DaoStatusConverter.convertTitanStatusToStorageStatus(updateInstInterfaceVertexEither.right().value()); + return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updateInstInterfaceVertexEither.right().value()); } } } - titanDao.commit(); + janusGraphDao.commit(); } catch (Exception e) { LOGGER.debug("Interface operation migration failed with error : ", e); - titanDao.rollback(); + janusGraphDao.rollback(); return StorageOperationStatus.GENERAL_ERROR; } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServlet.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServlet.java new file mode 100644 index 0000000000..e7d39ffb3e --- /dev/null +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServlet.java @@ -0,0 +1,165 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.asdctool.servlets; + +import org.janusgraph.core.JanusGraph; +import org.apache.commons.configuration.BaseConfiguration; +import org.apache.commons.configuration.Configuration; +import org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLWriter; +import org.glassfish.jersey.media.multipart.FormDataParam; +import org.openecomp.sdc.asdctool.Utils; +import org.openecomp.sdc.common.log.wrappers.Logger; + +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.io.*; +import java.util.Map.Entry; +import java.util.Properties; +//import com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter; + +@Path("/janusgraph") +public class ExportImportJanusGraphServlet { + + private static Logger log = Logger.getLogger(ExportImportJanusGraphServlet.class.getName()); + + @GET + @Path("export") + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response export(@FormDataParam("janusGraphProperties") File janusGraphPropertiesFile, + @FormDataParam("metadata") String exportGraphMetadata) { + + printJanusGraphConfigFile(janusGraphPropertiesFile); + printMetadata(exportGraphMetadata); + + Properties janusGraphProperties = convertFileToProperties(janusGraphPropertiesFile); + + if (janusGraphProperties == null) { + Response response = Utils.buildOkResponse(400, "cannot parse janusgraph properties file", null); + return response; + } + + Configuration conf = new BaseConfiguration(); + for (Entry entry : janusGraphProperties.entrySet()) { + String key = entry.getKey().toString(); + Object value = entry.getValue(); + conf.setProperty(key, value); + } + + conf.setProperty("storage.machine-id-appendix", System.currentTimeMillis() % 1000); + + try(JanusGraph openGraph = Utils.openGraph(conf)){ + + if (openGraph == null) { + Response buildErrorResponse = Utils.buildOkResponse(500, "failed to open graph", null); + return buildErrorResponse; + } + + // Open JanusGraph Graph + + Response buildOkResponse = Utils.buildOkResponse(200, "ok man", null); + + return buildOkResponse; + } + } + + private Properties convertFileToProperties(File janusGraphPropertiesFile) { + + Properties properties = new Properties(); + + try (FileReader fileReader = new FileReader(janusGraphPropertiesFile)){ + properties.load(fileReader); + } catch (Exception e) { + log.error("Failed to convert file to properties", e); + return null; + } + + return properties; + } + + private void printJanusGraphConfigFile(File janusGraphPropertiesFile) { + + if (log.isDebugEnabled()) { + StringBuilder builder = new StringBuilder(); + try (BufferedReader br = new BufferedReader(new FileReader(janusGraphPropertiesFile))) { + String line; + while ((line = br.readLine()) != null) { + builder.append(line + Utils.NEW_LINE); + } + + log.debug(builder.toString()); + + } catch (IOException e) { + log.error("Cannot print janusgraph properties file", e); + } + } + } + + private void printMetadata(String exportGraphMetadata) { + + log.debug(exportGraphMetadata); + + } + + public String exportGraph(JanusGraph graph, String outputDirectory) { + + String result = null; + + // GraphMLWriter graphMLWriter = new GraphMLWriter(graph); + GraphMLWriter graphMLWriter = GraphMLWriter.build().create(); + + String outputFile = outputDirectory + File.separator + "exportGraph." + System.currentTimeMillis() + ".ml"; + + OutputStream out = null; + try { + out = new BufferedOutputStream(new ByteArrayOutputStream()); + + // graphMLWriter.outputGraph(out); + + graphMLWriter.writeGraph(out, graph); + + // graph.commit(); + graph.tx().commit(); + + result = outputFile; + + } catch (Exception e) { + log.info("export Graph failed - {}" , e); + // graph.rollback(); + graph.tx().rollback(); + } finally { + try { + if (out != null) { + out.close(); + } + } catch (IOException e) { + log.info("close FileOutputStream failed - {}" , e); + } + } + return result; + + } + +} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServlet.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServlet.java deleted file mode 100644 index 31b1b1f07a..0000000000 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServlet.java +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.servlets; - -import com.thinkaurelius.titan.core.TitanGraph; -import org.apache.commons.configuration.BaseConfiguration; -import org.apache.commons.configuration.Configuration; -import org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLWriter; -import org.glassfish.jersey.media.multipart.FormDataParam; -import org.openecomp.sdc.asdctool.Utils; -import org.openecomp.sdc.common.log.wrappers.Logger; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.*; -import java.util.Map.Entry; -import java.util.Properties; -//import com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter; - -@Path("/titan") -public class ExportImportTitanServlet { - - private static Logger log = Logger.getLogger(ExportImportTitanServlet.class.getName()); - - @GET - @Path("export") - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response export(@FormDataParam("titanProperties") File titanPropertiesFile, - @FormDataParam("metadata") String exportGraphMetadata) { - - printTitanConfigFile(titanPropertiesFile); - printMetadata(exportGraphMetadata); - - Properties titanProperties = convertFileToProperties(titanPropertiesFile); - - if (titanProperties == null) { - Response response = Utils.buildOkResponse(400, "cannot parse titan properties file", null); - return response; - } - - Configuration conf = new BaseConfiguration(); - for (Entry entry : titanProperties.entrySet()) { - String key = entry.getKey().toString(); - Object value = entry.getValue(); - conf.setProperty(key, value); - } - - conf.setProperty("storage.machine-id-appendix", System.currentTimeMillis() % 1000); - - try(TitanGraph openGraph = Utils.openGraph(conf)){ - - if (openGraph == null) { - Response buildErrorResponse = Utils.buildOkResponse(500, "failed to open graph", null); - return buildErrorResponse; - } - - // Open Titan Graph - - Response buildOkResponse = Utils.buildOkResponse(200, "ok man", null); - - return buildOkResponse; - } - } - - private Properties convertFileToProperties(File titanPropertiesFile) { - - Properties properties = new Properties(); - - try (FileReader fileReader = new FileReader(titanPropertiesFile)){ - properties.load(fileReader); - } catch (Exception e) { - log.error("Failed to convert file to properties", e); - return null; - } - - return properties; - } - - private void printTitanConfigFile(File titanPropertiesFile) { - - if (log.isDebugEnabled()) { - StringBuilder builder = new StringBuilder(); - try (BufferedReader br = new BufferedReader(new FileReader(titanPropertiesFile))) { - String line; - while ((line = br.readLine()) != null) { - builder.append(line + Utils.NEW_LINE); - } - - log.debug(builder.toString()); - - } catch (IOException e) { - log.error("Cannot print titan properties file", e); - } - } - } - - private void printMetadata(String exportGraphMetadata) { - - log.debug(exportGraphMetadata); - - } - - public String exportGraph(TitanGraph graph, String outputDirectory) { - - String result = null; - - // GraphMLWriter graphMLWriter = new GraphMLWriter(graph); - GraphMLWriter graphMLWriter = GraphMLWriter.build().create(); - - String outputFile = outputDirectory + File.separator + "exportGraph." + System.currentTimeMillis() + ".ml"; - - OutputStream out = null; - try { - out = new BufferedOutputStream(new ByteArrayOutputStream()); - - // graphMLWriter.outputGraph(out); - - graphMLWriter.writeGraph(out, graph); - - // graph.commit(); - graph.tx().commit(); - - result = outputFile; - - } catch (Exception e) { - log.info("export Graph failed - {}" , e); - // graph.rollback(); - graph.tx().rollback(); - } finally { - try { - if (out != null) { - out.close(); - } - } catch (IOException e) { - log.info("close FileOutputStream failed - {}" , e); - } - } - return result; - - } - -} diff --git a/asdctool/src/main/resources/config/configuration.yaml b/asdctool/src/main/resources/config/configuration.yaml index bdc6a43e12..b1b51fd458 100644 --- a/asdctool/src/main/resources/config/configuration.yaml +++ b/asdctool/src/main/resources/config/configuration.yaml @@ -42,16 +42,16 @@ supportAllottedResourcesAndProxy: false deleteLockTimeoutInSeconds: 60 maxDeleteComponents: 10 -titanCfgFile: src\main\resources\config\titan.properties -titanMigrationKeySpaceCfgFile: src\main\resources\config\titan-migration.properties -titanInMemoryGraph: false -titanLockTimeout: 1800 +janusGraphCfgFile: src\main\resources\config\janusgraph.properties +janusGraphMigrationKeySpaceCfgFile: src\main\resources\config\janusgraph-migration.properties +janusGraphInMemoryGraph: false +janusGraphLockTimeout: 1800 -# The interval to try and reconnect to titan DB when it is down during ASDC startup: -titanReconnectIntervalInSeconds: 3 +# The interval to try and reconnect to JanusGraph DB when it is down during ASDC startup: +janusGraphReconnectIntervalInSeconds: 3 -# The read timeout towards Titan DB when health check is invoked: -titanHealthCheckReadTimeout: 1 +# The read timeout towards JanusGraph DB when health check is invoked: +janusGraphHealthCheckReadTimeout: 1 # The interval to try and reconnect to Elasticsearch when it is down during ASDC startup: esReconnectIntervalInSeconds: 3 diff --git a/asdctool/src/main/resources/config/janusgraph-migration.properties b/asdctool/src/main/resources/config/janusgraph-migration.properties new file mode 100644 index 0000000000..e982c2d085 --- /dev/null +++ b/asdctool/src/main/resources/config/janusgraph-migration.properties @@ -0,0 +1,4 @@ +storage.backend=cassandra +storage.hostname=localhost +storage.port=9160 +storage.cassandra.keyspace=sdctitan diff --git a/asdctool/src/main/resources/config/janusgraph.properties b/asdctool/src/main/resources/config/janusgraph.properties new file mode 100644 index 0000000000..5f22a08837 --- /dev/null +++ b/asdctool/src/main/resources/config/janusgraph.properties @@ -0,0 +1,28 @@ +storage.backend=cassandrathrift +storage.hostname=192.168.33.10 +storage.port=9160 +storage.username=asdc_user +storage.password=Aa1234%^! +storage.connection-timeout=10000 +storage.cassandra.keyspace=sdctitan + +storage.cassandra.ssl.enabled=true +storage.cassandra.ssl.truststore.location=C:\\gitWork\\vagrant-sdc-all-in-one\\mytmp.trust +storage.cassandra.ssl.truststore.password=Aa123456 + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.NetworkTopologyStrategy +storage.cassandra.replication-strategy-options=DC-sdc-iltlv633,1 +storage.cassandra.astyanax.local-datacenter=DC-sdc-iltlv633 + + +cache.db-cache = false +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.5 + +cache.tx-cache-size = 1000000 + +storage.lock.retries=5 +storage.lock.wait-time=500 diff --git a/asdctool/src/main/resources/config/titan-migration.properties b/asdctool/src/main/resources/config/titan-migration.properties deleted file mode 100644 index e982c2d085..0000000000 --- a/asdctool/src/main/resources/config/titan-migration.properties +++ /dev/null @@ -1,4 +0,0 @@ -storage.backend=cassandra -storage.hostname=localhost -storage.port=9160 -storage.cassandra.keyspace=sdctitan diff --git a/asdctool/src/main/resources/config/titan.properties b/asdctool/src/main/resources/config/titan.properties deleted file mode 100644 index 5f22a08837..0000000000 --- a/asdctool/src/main/resources/config/titan.properties +++ /dev/null @@ -1,28 +0,0 @@ -storage.backend=cassandrathrift -storage.hostname=192.168.33.10 -storage.port=9160 -storage.username=asdc_user -storage.password=Aa1234%^! -storage.connection-timeout=10000 -storage.cassandra.keyspace=sdctitan - -storage.cassandra.ssl.enabled=true -storage.cassandra.ssl.truststore.location=C:\\gitWork\\vagrant-sdc-all-in-one\\mytmp.trust -storage.cassandra.ssl.truststore.password=Aa123456 - -storage.cassandra.read-consistency-level=LOCAL_QUORUM -storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.NetworkTopologyStrategy -storage.cassandra.replication-strategy-options=DC-sdc-iltlv633,1 -storage.cassandra.astyanax.local-datacenter=DC-sdc-iltlv633 - - -cache.db-cache = false -cache.db-cache-clean-wait = 20 -cache.db-cache-time = 180000 -cache.db-cache-size = 0.5 - -cache.tx-cache-size = 1000000 - -storage.lock.retries=5 -storage.lock.wait-time=500 diff --git a/asdctool/src/main/resources/scripts/deleteAllProducts.sh b/asdctool/src/main/resources/scripts/deleteAllProducts.sh index 38e468d5f7..474b6c8980 100644 --- a/asdctool/src/main/resources/scripts/deleteAllProducts.sh +++ b/asdctool/src/main/resources/scripts/deleteAllProducts.sh @@ -1,8 +1,8 @@ #!/bin/bash -############################## -# delete all products from titan -############################## +##################################### +# delete all products from JanusGraph +##################################### CURRENT_DIR=`pwd` BASEDIR=$(dirname $0) diff --git a/asdctool/src/main/resources/scripts/exportUsers.sh b/asdctool/src/main/resources/scripts/exportUsers.sh index d701c57f92..fec7d5abe4 100644 --- a/asdctool/src/main/resources/scripts/exportUsers.sh +++ b/asdctool/src/main/resources/scripts/exportUsers.sh @@ -1,8 +1,8 @@ #!/bin/bash -############################## -# export all users from titan -############################## +################################## +# export all users from JanusGraph +################################## CURRENT_DIR=`pwd` BASEDIR=$(dirname $0) diff --git a/asdctool/src/main/resources/scripts/janusGraphSchemaCreation.sh b/asdctool/src/main/resources/scripts/janusGraphSchemaCreation.sh new file mode 100644 index 0000000000..d4b7871f30 --- /dev/null +++ b/asdctool/src/main/resources/scripts/janusGraphSchemaCreation.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +############################## +# JanusGraph Schema Creation +############################## + +CURRENT_DIR=`pwd` +BASEDIR=$(dirname $0) + +if [ ${BASEDIR:0:1} = "/" ] +then + FULL_PATH=$BASEDIR +else + FULL_PATH=$CURRENT_DIR/$BASEDIR +fi + +source ${FULL_PATH}/baseOperation.sh + +mainClass="org.openecomp.sdc.asdctool.main.DataSchemaMenu" + +command="java $JVM_LOG_FILE -cp $JARS $mainClass create-janusgraph-structures $@" +echo $command + +$command +result=$? + +echo "***********************************" +echo "***** $result *********************" +echo "***********************************" + +exit $result + + diff --git a/asdctool/src/main/resources/scripts/titanSchemaCreation.sh b/asdctool/src/main/resources/scripts/titanSchemaCreation.sh deleted file mode 100644 index 8a2488b3e2..0000000000 --- a/asdctool/src/main/resources/scripts/titanSchemaCreation.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -############################## -# Titan Schema Creation -############################## - -CURRENT_DIR=`pwd` -BASEDIR=$(dirname $0) - -if [ ${BASEDIR:0:1} = "/" ] -then - FULL_PATH=$BASEDIR -else - FULL_PATH=$CURRENT_DIR/$BASEDIR -fi - -source ${FULL_PATH}/baseOperation.sh - -mainClass="org.openecomp.sdc.asdctool.main.DataSchemaMenu" - -command="java $JVM_LOG_FILE -cp $JARS $mainClass create-titan-structures $@" -echo $command - -$command -result=$? - -echo "***********************************" -echo "***** $result *********************" -echo "***********************************" - -exit $result - - diff --git a/asdctool/src/main/resources/scripts/updateIsVnf.sh b/asdctool/src/main/resources/scripts/updateIsVnf.sh index 62bfb9cd66..bf45fa88b5 100644 --- a/asdctool/src/main/resources/scripts/updateIsVnf.sh +++ b/asdctool/src/main/resources/scripts/updateIsVnf.sh @@ -3,7 +3,7 @@ ######################################################################## # # Example: -# ./updateIsVnf.sh ../config/titan.properties Bservice,Myservice +# ./updateIsVnf.sh ../config/janusgraph.properties Bservice,Myservice # ######################################################################## diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/UtilsTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/UtilsTest.java index 8a9b1357ea..cefda717aa 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/UtilsTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/UtilsTest.java @@ -1,6 +1,6 @@ package org.openecomp.sdc.asdctool; -import com.thinkaurelius.titan.core.TitanGraph; +import org.janusgraph.core.JanusGraph; import org.apache.commons.configuration.Configuration; import org.apache.tinkerpop.gremlin.structure.Element; import org.junit.Assert; @@ -34,7 +34,7 @@ public class UtilsTest { @Test public void testOpenGraph() throws Exception { Configuration conf = null; - TitanGraph result; + JanusGraph result; // default test with null result = Utils.openGraph(conf); diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfigurationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfigurationTest.java index 5495d11827..7c661ae808 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfigurationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/configuration/GetConsumersConfigurationTest.java @@ -1,7 +1,7 @@ package org.openecomp.sdc.asdctool.configuration; import org.junit.Test; -import org.openecomp.sdc.be.dao.titan.TitanGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.model.operations.impl.ConsumerOperation; public class GetConsumersConfigurationTest { @@ -13,11 +13,11 @@ public class GetConsumersConfigurationTest { @Test public void testConsumerOperation() throws Exception { GetConsumersConfiguration testSubject; - TitanGenericDao titanGenericDao = null; + JanusGraphGenericDao janusGraphGenericDao = null; ConsumerOperation result; // default test testSubject = createTestSubject(); - result = testSubject.consumerOperation(titanGenericDao); + result = testSubject.consumerOperation(janusGraphGenericDao); } } \ No newline at end of file diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFixTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFixTest.java index 891946d26c..858538250d 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFixTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFixTest.java @@ -1,8 +1,7 @@ package org.openecomp.sdc.asdctool.impl; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatchers; @@ -12,14 +11,14 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.resources.data.ESArtifactData; import org.openecomp.sdc.common.api.ArtifactTypeEnum; import org.openecomp.sdc.common.api.Constants; @@ -40,10 +39,10 @@ public class ArtifactUuidFixTest { private ArtifactUuidFix test; @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock - private TitanVertex vertex; + private JanusGraphVertex vertex; @Mock ToscaOperationFacade toscaOperationFacade; @@ -70,25 +69,26 @@ public class ArtifactUuidFixTest { graphVertex.setUniqueId(uniqueId); graphVertex.setMetadataProperties(hasProps1); list.add(graphVertex); - when(titanDao.getByCriteria(VertexTypeEnum.NODE_TYPE, hasProps1)).thenReturn(Either.left(list)); + when(janusGraphDao.getByCriteria(VertexTypeEnum.NODE_TYPE, hasProps1)).thenReturn(Either.left(list)); Map hasProps2 = new HashMap<>(); hasProps2.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); hasProps2.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); hasProps2.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps2)).thenReturn(Either.left(list)); + when(janusGraphDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps2)).thenReturn(Either.left(list)); Map hasProps3 = new HashMap<>(); hasProps3.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); hasProps3.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps3)).thenReturn(Either.left(list)); + when(janusGraphDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps3)).thenReturn(Either.left(list)); Map hasProps = new HashMap<>(); hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF.name()); Map hasNotProps = new HashMap<>(); hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); + when(janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); Resource resource = new Resource(); resource.setName(uniqueId); Map deployArtifact = new HashMap<>(); @@ -155,7 +155,8 @@ public class ArtifactUuidFixTest { componentInstances.add(componentInstance); service.setComponentInstances(componentInstances); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); + when(janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); when(toscaOperationFacade.getToscaElement(ArgumentMatchers.eq(graphVertex.getUniqueId()),any(ComponentParametersView.class))) .thenReturn(Either.left(service)); byte[] payload = "value".getBytes(); @@ -188,7 +189,8 @@ public class ArtifactUuidFixTest { hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); Map hasNotProps = new HashMap<>(); hasNotProps.put(GraphPropertyEnum.IS_DELETED, true); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); + when(janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list)); result = test.doFix(fixComponent, runMode); assertEquals(false,result); } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidatorTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidatorTest.java index 06beb8d409..87d95ed997 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidatorTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphJsonValidatorTest.java @@ -14,33 +14,33 @@ public class GraphJsonValidatorTest { } @Test - public void testVerifyTitanJson() throws Exception { + public void testVerifyJanusGraphJson() throws Exception { GraphJsonValidator testSubject; boolean result; // default test testSubject = createTestSubject(); - result = testSubject.verifyTitanJson("src/test/resources/graph.json"); + result = testSubject.verifyJanusGraphJson("src/test/resources/graph.json"); assertTrue(result); } @Test - public void testVerifyTitanJsonErrorFile() throws Exception { + public void testVerifyJanusGraphJsonErrorFile() throws Exception { GraphJsonValidator testSubject; boolean result; // default test testSubject = createTestSubject(); - result = testSubject.verifyTitanJson("src/test/resources/graphError.json"); + result = testSubject.verifyJanusGraphJson("src/test/resources/graphError.json"); assertFalse(result); } @Test(expected=NoSuchFileException.class) - public void testVerifyTitanJsonNoFile() throws Exception { + public void testVerifyJanusGraphJsonNoFile() throws Exception { GraphJsonValidator testSubject; // default test testSubject = createTestSubject(); - testSubject.verifyTitanJson("stam"); + testSubject.verifyJanusGraphJson("stam"); } } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java index 5ade4faef8..111f66d540 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java @@ -1,6 +1,6 @@ package org.openecomp.sdc.asdctool.impl; -import com.thinkaurelius.titan.core.TitanGraph; +import org.janusgraph.core.JanusGraph; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.tinkerpop.gremlin.structure.Element; import org.junit.Test; @@ -61,18 +61,18 @@ public class GraphMLConverterTest { @Test(expected=IllegalArgumentException.class) public void testOpenGraph() throws Exception { GraphMLConverter testSubject; - String titanFileLocation = ""; - TitanGraph result; + String janusGraphFileLocation = ""; + JanusGraph result; // default test testSubject = createTestSubject(); - result = testSubject.openGraph("src/main/resources/config/titan.properties"); + result = testSubject.openGraph("src/main/resources/config/janusgraph.properties"); } @Test(expected=NullPointerException.class) public void testExportJsonGraph() throws Exception { GraphMLConverter testSubject; - TitanGraph graph = null; + JanusGraph graph = null; String outputDirectory = ""; String result; @@ -84,7 +84,7 @@ public class GraphMLConverterTest { @Test(expected=NullPointerException.class) public void testExportGraphMl_1() throws Exception { GraphMLConverter testSubject; - TitanGraph graph = null; + JanusGraph graph = null; String outputDirectory = ""; String result; @@ -96,7 +96,7 @@ public class GraphMLConverterTest { @Test public void testImportJsonGraph() throws Exception { GraphMLConverter testSubject; - TitanGraph graph = null; + JanusGraph graph = null; String graphJsonFile = ""; List> propertiesCriteriaToDelete = null; boolean result; @@ -109,7 +109,7 @@ public class GraphMLConverterTest { @Test(expected=NullPointerException.class) public void testFindErrorInJsonGraph_1() throws Exception { GraphMLConverter testSubject; - TitanGraph graph = null; + JanusGraph graph = null; String outputDirectory = ""; String result; @@ -122,7 +122,7 @@ public class GraphMLConverterTest { @Test(expected=NullPointerException.class) public void testExportUsers() throws Exception { GraphMLConverter testSubject; - TitanGraph graph = null; + JanusGraph graph = null; String outputDirectory = ""; String result; diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLDataAnalyzerTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLDataAnalyzerTest.java index c6905a939d..c2605a6946 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLDataAnalyzerTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLDataAnalyzerTest.java @@ -11,7 +11,7 @@ public class GraphMLDataAnalyzerTest { @Test public void testAnalyzeGraphMLData() throws Exception { GraphMLDataAnalyzer testSubject; - String[] args = new String[] { "export", "src/main/resources/config/titan.properties", "./" }; + String[] args = new String[] { "export", "src/main/resources/config/janusgraph.properties", "./" }; String result; // default test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializerTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializerTest.java new file mode 100644 index 0000000000..5be99c382a --- /dev/null +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/JanusGraphInitializerTest.java @@ -0,0 +1,16 @@ +package org.openecomp.sdc.asdctool.impl; + +import org.junit.Test; + +public class JanusGraphInitializerTest { + + @Test(expected=IllegalArgumentException.class) + public void testCreateGraph() throws Exception { + String janusGraphCfgFile = ""; + boolean result; + + // default test + result = JanusGraphInitializer.createGraph(""); + + } +} \ No newline at end of file diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ProductLogicTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ProductLogicTest.java index 982c85b060..09c8b08db6 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ProductLogicTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ProductLogicTest.java @@ -12,7 +12,7 @@ public class ProductLogicTest { @Test public void testDeleteAllProducts() throws Exception { ProductLogic testSubject; - String titanFile = ""; + String janusGraphFile = ""; String beHost = ""; String bePort = ""; String adminUser = ""; @@ -20,7 +20,7 @@ public class ProductLogicTest { // default test testSubject = createTestSubject(); - result = testSubject.deleteAllProducts(titanFile, beHost, bePort, adminUser); + result = testSubject.deleteAllProducts(janusGraphFile, beHost, bePort, adminUser); assertFalse(result); } } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializerTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializerTest.java deleted file mode 100644 index 431c59f591..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/TitanGraphInitializerTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.openecomp.sdc.asdctool.impl; - -import org.junit.Test; - -public class TitanGraphInitializerTest { - - @Test(expected=IllegalArgumentException.class) - public void testCreateGraph() throws Exception { - String titanCfgFile = ""; - boolean result; - - // default test - result = TitanGraphInitializer.createGraph(""); - - } -} \ No newline at end of file diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertexTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertexTest.java index 4db5c06262..4e52ad527e 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertexTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/UpdatePropertyOnVertexTest.java @@ -1,6 +1,6 @@ package org.openecomp.sdc.asdctool.impl; -import com.thinkaurelius.titan.core.TitanGraph; +import org.janusgraph.core.JanusGraph; import org.junit.Test; import java.util.List; @@ -15,8 +15,8 @@ public class UpdatePropertyOnVertexTest { @Test(expected=IllegalArgumentException.class) public void testOpenGraph() throws Exception { UpdatePropertyOnVertex testSubject; - String titanFileLocation = ""; - TitanGraph result; + String janusGraphFileLocation = ""; + JanusGraph result; // default test testSubject = createTestSubject(); @@ -26,13 +26,13 @@ public class UpdatePropertyOnVertexTest { @Test(expected=NullPointerException.class) public void testUpdatePropertyOnServiceAtLeastCertified() throws Exception { UpdatePropertyOnVertex testSubject; - String titanFile = ""; + String janusGraphFile = ""; Map keyValueToSet = null; List> orCriteria = null; Integer result; // default test testSubject = createTestSubject(); - result = testSubject.updatePropertyOnServiceAtLeastCertified(titanFile, keyValueToSet, orCriteria); + result = testSubject.updatePropertyOnServiceAtLeastCertified(janusGraphFile, keyValueToSet, orCriteria); } } \ No newline at end of file diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandlerTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandlerTest.java index c0ae55a607..b6ab4f5b55 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandlerTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/VrfObjectFixHandlerTest.java @@ -6,9 +6,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.anyMap; @@ -18,14 +18,14 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class VrfObjectFixHandlerTest { - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; private VrfObjectFixHandler vrfObjectFixHandler; @Before public void init(){ - titanDao = Mockito.mock(TitanDao.class); - vrfObjectFixHandler = new VrfObjectFixHandler(titanDao); + janusGraphDao = Mockito.mock(JanusGraphDao.class); + vrfObjectFixHandler = new VrfObjectFixHandler(janusGraphDao); } @Test @@ -35,25 +35,29 @@ public class VrfObjectFixHandlerTest { @Test public void handleDetectNotFoundTest(){ - when(titanDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right( + JanusGraphOperationStatus.NOT_FOUND)); assertThat(vrfObjectFixHandler.handle("detect", null)).isTrue(); } @Test - public void handleDetectTitanNotConnectedTest(){ - when(titanDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right(TitanOperationStatus.NOT_CONNECTED)); + public void handleDetectJanusGraphNotConnectedTest(){ + when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right( + JanusGraphOperationStatus.NOT_CONNECTED)); assertThat(vrfObjectFixHandler.handle("detect", null)).isFalse(); } @Test public void handleFixNotFoundTest(){ - when(titanDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right( + JanusGraphOperationStatus.NOT_FOUND)); assertThat(vrfObjectFixHandler.handle("fix", null)).isTrue(); } @Test public void handleFixNotCreatedTest(){ - when(titanDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right(TitanOperationStatus.NOT_CREATED)); + when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap())).thenReturn(Either.right( + JanusGraphOperationStatus.NOT_CREATED)); assertThat(vrfObjectFixHandler.handle("fix", null)).isFalse(); } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGeneratorTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGeneratorTest.java index 4e80f8e119..109aa9d102 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGeneratorTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/CsarGeneratorTest.java @@ -37,7 +37,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; @@ -45,7 +45,7 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.LifecycleStateEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.*; @@ -58,7 +58,7 @@ public class CsarGeneratorTest { private CsarGenerator test; @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock private Component component; @@ -83,9 +83,10 @@ public class CsarGeneratorTest { props.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); graphVertex.setMetadataProperties(props); - when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props)).thenReturn(Either.left(list)); + when(janusGraphDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props)).thenReturn(Either.left(list)); when(toscaOperationFacade.getToscaFullElement(any(String.class))).thenReturn(Either.left(component)); - when(titanDao.getChildVertex(graphVertex, EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson)).thenReturn(Either.left(graphVertex)); + when(janusGraphDao + .getChildVertex(graphVertex, EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson)).thenReturn(Either.left(graphVertex)); test.generateCsar(uuid,scanner); } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandlerTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandlerTest.java index 315f615fb4..b7e8eae560 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandlerTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandlerTest.java @@ -29,7 +29,7 @@ */ package org.openecomp.sdc.asdctool.impl.internal.tool; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,11 +39,11 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.TopologyTemplate; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.HashMap; @@ -58,7 +58,7 @@ public class DeleteComponentHandlerTest { private DeleteComponentHandler test; @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock private TopologyTemplateOperation topologyTemplateOperation; @@ -74,7 +74,7 @@ public class DeleteComponentHandlerTest { Scanner scanner = new Scanner(in); String id = "start"; GraphVertex loc = new GraphVertex(); - TitanVertex vertex = Mockito.mock(TitanVertex.class); + JanusGraphVertex vertex = Mockito.mock(JanusGraphVertex.class); loc.setVertex(vertex); Map metadataProperties = new HashMap<>(); @@ -83,7 +83,7 @@ public class DeleteComponentHandlerTest { metadataProperties.put(GraphPropertyEnum.NAME, "user1"); loc.setMetadataProperties(metadataProperties); - when(titanDao.getVertexById(id)).thenReturn(Either.left(loc)); + when(janusGraphDao.getVertexById(id)).thenReturn(Either.left(loc)); when(topologyTemplateOperation.deleteToscaElement(ArgumentMatchers.any(GraphVertex.class))).thenReturn(Either.left(toscaElement)); test.deleteComponent(id,scanner); diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfigurationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfigurationTest.java index 0d91f1a29e..cf064ee04d 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfigurationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfigurationTest.java @@ -8,13 +8,13 @@ import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ArtifactValidat import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ServiceArtifactValidationTask; import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.VfArtifactValidationTask; import org.openecomp.sdc.asdctool.impl.validator.tasks.moduleJson.ModuleJsonTask; -import org.openecomp.sdc.be.dao.TitanClientStrategy; +import org.openecomp.sdc.be.dao.JanusGraphClientStrategy; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraClient; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.dao.titan.TitanGraphClient; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; import org.openecomp.sdc.be.model.DerivedNodeTypeResolver; -import org.openecomp.sdc.be.model.jsontitan.operations.*; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.*; public class ValidationToolConfigurationTest { @@ -125,7 +125,7 @@ public class ValidationToolConfigurationTest { @Test public void testDaoStrategy() { ValidationToolConfiguration testSubject; - TitanClientStrategy result; + JanusGraphClientStrategy result; // default test testSubject = createTestSubject(); @@ -174,14 +174,14 @@ public class ValidationToolConfigurationTest { } @Test - public void testTitanDao() { + public void testJanusGraphDao() { ValidationToolConfiguration testSubject; - TitanGraphClient titanGraphClient = null; - TitanDao result; + JanusGraphClient janusGraphClient = null; + JanusGraphDao result; // default test testSubject = createTestSubject(); - result = testSubject.titanDao(titanGraphClient); + result = testSubject.janusGraphDao(janusGraphClient); } @Test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTaskTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTaskTest.java index 5799b6d03d..e4fb979620 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTaskTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTaskTest.java @@ -15,8 +15,8 @@ import org.openecomp.sdc.be.datatypes.elements.MapGroupsDataDefinition; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.model.ComponentParametersView; import org.openecomp.sdc.be.model.LifecycleStateEnum; -import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.TopologyTemplate; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; import java.util.HashMap; import java.util.Map; diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java index 8d46e61011..64e06ac5fb 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java @@ -41,18 +41,18 @@ import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLog import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.CsarOperation; @@ -95,7 +95,7 @@ public class UpgradeMigration1710Test { @Mock private LifecycleBusinessLogic lifecycleBusinessLogic; @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock private ComponentsUtils componentUtils; @Mock @@ -179,8 +179,8 @@ public class UpgradeMigration1710Test { public void nodeTypesUpgradeFailed() { migration.setNodeTypesSupportOnly(true); resolveUserAndDefineUpgradeLevel(); - when(titanDao.getByCriteria(any(), any(), any(), any())) - .thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + when(janusGraphDao.getByCriteria(any(), any(), any(), any())) + .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); } @@ -189,8 +189,8 @@ public class UpgradeMigration1710Test { configurationManager.getConfiguration().setEnableAutoHealing(false); migration.init(); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(0)).commit(); - verify(titanDao, times(0)).rollback(); + verify(janusGraphDao, times(0)).commit(); + verify(janusGraphDao, times(0)).rollback(); } @Test @@ -213,8 +213,8 @@ public class UpgradeMigration1710Test { migration.setNodeTypesSupportOnly(true); upgradeAllScenario(false); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(2)).commit(); - verify(titanDao, times(0)).rollback(); + verify(janusGraphDao, times(2)).commit(); + verify(janusGraphDao, times(0)).rollback(); } @Test @@ -230,8 +230,8 @@ public class UpgradeMigration1710Test { resolveUserAndDefineUpgradeLevel(); upgradeRules(failOnVfUpgrade, exceptionOnVfUpgrade, upgradeServices, upgradeVFC, isFailed); assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(1)).commit(); - verify(titanDao, times(2)).rollback(); + verify(janusGraphDao, times(1)).commit(); + verify(janusGraphDao, times(2)).rollback(); } @@ -247,8 +247,8 @@ public class UpgradeMigration1710Test { upgradeRules(failOnVfUpgrade, exceptionOnVfUpgrade, upgradeServices, upgradeVFC, isFailed); migration.init(); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(2)).commit(); - verify(titanDao, times(0)).rollback(); + verify(janusGraphDao, times(2)).commit(); + verify(janusGraphDao, times(0)).rollback(); } @Test @@ -262,8 +262,8 @@ public class UpgradeMigration1710Test { resolveUserAndDefineUpgradeLevel(); upgradeRules(failOnVfUpgrade, exceptionOnFvUpgrade, upgradeServices, upgradeVFC, isFailed); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(3)).commit(); - verify(titanDao, times(1)).rollback(); + verify(janusGraphDao, times(3)).commit(); + verify(janusGraphDao, times(1)).rollback(); } @@ -271,8 +271,8 @@ public class UpgradeMigration1710Test { public void upgradeAll() { upgradeAllScenario(true); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(4)).commit(); - verify(titanDao, times(0)).rollback(); + verify(janusGraphDao, times(4)).commit(); + verify(janusGraphDao, times(0)).rollback(); } @Test @@ -282,8 +282,8 @@ public class UpgradeMigration1710Test { .thenReturn(StorageOperationStatus.OK); upgradeAllScenario(true); assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(titanDao, times(4)).commit(); - verify(titanDao, times(0)).rollback(); + verify(janusGraphDao, times(4)).commit(); + verify(janusGraphDao, times(0)).rollback(); } @Test @@ -302,7 +302,7 @@ public class UpgradeMigration1710Test { @Test public void migrationFailedWhenUserNotResolved() { when(userAdminOperation.getUserData(anyString(), eq(false))).thenReturn(Either.right(ActionStatus.MISSING_INFORMATION)); - when(titanDao.rollback()).thenReturn(TitanOperationStatus.OK); + when(janusGraphDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); } @@ -523,13 +523,13 @@ public class UpgradeMigration1710Test { List components = Lists.newArrayList(); components.add(component); - when(titanDao.getByCriteria(any(), any(), any(), any())) + when(janusGraphDao.getByCriteria(any(), any(), any(), any())) .thenReturn(Either.left(components)); - when(titanDao.getParentVertecies(any(GraphVertex.class), any(EdgeLabelEnum.class), any(JsonParseFlagEnum.class))) + when(janusGraphDao.getParentVertecies(any(GraphVertex.class), any(EdgeLabelEnum.class), any(JsonParseFlagEnum.class))) //1th node to upgrade .thenReturn(Either.left(components)) //parent of the 1th node - stop recursion - .thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); } private GraphVertex createComponent() { @@ -601,7 +601,7 @@ public class UpgradeMigration1710Test { components.add(component); when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource)); - when(titanDao.getByCriteria(any(), any(), any(), any())) + when(janusGraphDao.getByCriteria(any(), any(), any(), any())) .thenReturn(Either.left(components)); when(csarOperation.getCsarLatestVersion(anyString(), any())) .thenReturn(Either.left("2.0")); diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigrationTest.java index 00b6d573af..47481f8f46 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigrationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigrationTest.java @@ -3,14 +3,14 @@ package org.openecomp.sdc.asdctool.migration.tasks.mig1802; import org.junit.Test; import org.openecomp.sdc.asdctool.migration.core.DBVersion; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.dao.titan.TitanGraphClient; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; public class SdcCatalogMigrationTest { private SdcCatalogMigration createTestSubject() { - return new SdcCatalogMigration(new TopologyTemplateOperation(), new TitanDao(new TitanGraphClient())); + return new SdcCatalogMigration(new TopologyTemplateOperation(), new JanusGraphDao(new JanusGraphClient())); } @Test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigrationTest.java index c10291b198..581ae09c26 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigrationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigrationTest.java @@ -8,8 +8,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.openecomp.sdc.asdctool.migration.core.DBVersion; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; public class ForwardPathMigrationTest { @@ -17,7 +17,7 @@ public class ForwardPathMigrationTest { ForwardPathMigration forwardPathMigration = null; @Mock - TitanDao titanDao; + JanusGraphDao janusGraphDao; @Mock UserAdminOperation userAdminOperation; @@ -27,7 +27,7 @@ public class ForwardPathMigrationTest { @Before public void setUp() throws Exception { - forwardPathMigration = new ForwardPathMigration(titanDao, userAdminOperation, toscaOperationFacade); + forwardPathMigration = new ForwardPathMigration(janusGraphDao, userAdminOperation, toscaOperationFacade); } @Test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigrationTest.java index b7f014039e..c3266f9ce2 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigrationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigrationTest.java @@ -11,14 +11,14 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.asdctool.migration.core.DBVersion; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; @RunWith(MockitoJUnitRunner.class) public class ResourceLifecycleMigrationTest { @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock private LifecycleBusinessLogic lifecycleBusinessLogic; @Mock @@ -29,7 +29,7 @@ public class ResourceLifecycleMigrationTest { @Before public void setUp() throws Exception { resourceLifecycleMigration = - new ResourceLifecycleMigration(titanDao, lifecycleBusinessLogic, userAdminOperation); + new ResourceLifecycleMigration(janusGraphDao, lifecycleBusinessLogic, userAdminOperation); } @Test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigrationTest.java index d040d66496..2a55aaf1fa 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigrationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigrationTest.java @@ -7,14 +7,14 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult; import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult.MigrationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition; import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.NodeTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import java.util.ArrayList; @@ -29,15 +29,16 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class SDCInstancesMigrationTest{ @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Mock private NodeTemplateOperation nodeTemplateOperation; @Test public void testFailedMigration(){ - SDCInstancesMigration instancesMigration = new SDCInstancesMigration(titanDao, nodeTemplateOperation); - when(titanDao.getByCriteria(any(), any(), any(), any() )).thenReturn(Either.right(TitanOperationStatus.GENERAL_ERROR)); + SDCInstancesMigration instancesMigration = new SDCInstancesMigration(janusGraphDao, nodeTemplateOperation); + when(janusGraphDao.getByCriteria(any(), any(), any(), any() )).thenReturn(Either.right( + JanusGraphOperationStatus.GENERAL_ERROR)); MigrationResult migrate = instancesMigration.migrate(); MigrationStatus migrationStatus = migrate.getMigrationStatus(); @@ -45,7 +46,7 @@ public class SDCInstancesMigrationTest{ } @Test public void testSuccessMigration(){ - SDCInstancesMigration instancesMigration = new SDCInstancesMigration(titanDao, nodeTemplateOperation); + SDCInstancesMigration instancesMigration = new SDCInstancesMigration(janusGraphDao, nodeTemplateOperation); List list = new ArrayList<>(); GraphVertex vertexOrig = new GraphVertex(); Map jsonComposition = new HashMap<>(); @@ -59,7 +60,7 @@ public class SDCInstancesMigrationTest{ vertexOrig.setType(ComponentTypeEnum.SERVICE); list.add(vertexOrig); - when(titanDao.getByCriteria(any(), any(), any(), any() )).thenReturn(Either.left(list)); + when(janusGraphDao.getByCriteria(any(), any(), any(), any() )).thenReturn(Either.left(list)); when(nodeTemplateOperation.createInstanceEdge(vertexOrig, instance)).thenReturn(StorageOperationStatus.OK); MigrationResult migrate = instancesMigration.migrate(); diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigrationTest.java index 0ea3b91083..1d3e7612ac 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigrationTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigrationTest.java @@ -10,18 +10,18 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.asdctool.migration.core.DBVersion; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; @RunWith(MockitoJUnitRunner.class) public class SdcArchiveMigrationTest { @Mock - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; SdcArchiveMigration sdcArchiveMigration = null; @Before public void setUp() throws Exception { - sdcArchiveMigration = new SdcArchiveMigration(titanDao); + sdcArchiveMigration = new SdcArchiveMigration(janusGraphDao); } @Test diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServletTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServletTest.java new file mode 100644 index 0000000000..93606e271d --- /dev/null +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportJanusGraphServletTest.java @@ -0,0 +1,38 @@ +package org.openecomp.sdc.asdctool.servlets; + +import org.janusgraph.core.JanusGraph; +import org.junit.Test; + +import javax.ws.rs.core.Response; +import java.io.File; + +public class ExportImportJanusGraphServletTest { + + private ExportImportJanusGraphServlet createTestSubject() { + return new ExportImportJanusGraphServlet(); + } + + @Test(expected=NullPointerException.class) + public void testExport() throws Exception { + ExportImportJanusGraphServlet testSubject; + File janusGraphPropertiesFile = null; + String exportGraphMetadata = ""; + Response result; + + // default test + testSubject = createTestSubject(); + result = testSubject.export(janusGraphPropertiesFile, exportGraphMetadata); + } + + @Test(expected=NullPointerException.class) + public void testExportGraph() throws Exception { + ExportImportJanusGraphServlet testSubject; + JanusGraph graph = null; + String outputDirectory = ""; + String result; + + // default test + testSubject = createTestSubject(); + result = testSubject.exportGraph(graph, outputDirectory); + } +} \ No newline at end of file diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServletTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServletTest.java deleted file mode 100644 index 9f104632dd..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/servlets/ExportImportTitanServletTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.openecomp.sdc.asdctool.servlets; - -import com.thinkaurelius.titan.core.TitanGraph; -import org.junit.Test; - -import javax.ws.rs.core.Response; -import java.io.File; - -public class ExportImportTitanServletTest { - - private ExportImportTitanServlet createTestSubject() { - return new ExportImportTitanServlet(); - } - - @Test(expected=NullPointerException.class) - public void testExport() throws Exception { - ExportImportTitanServlet testSubject; - File titanPropertiesFile = null; - String exportGraphMetadata = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.export(titanPropertiesFile, exportGraphMetadata); - } - - @Test(expected=NullPointerException.class) - public void testExportGraph() throws Exception { - ExportImportTitanServlet testSubject; - TitanGraph graph = null; - String outputDirectory = ""; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.exportGraph(graph, outputDirectory); - } -} \ No newline at end of file -- cgit 1.2.3-korg