From eb2a7c97c0007b013bd1784ac17d57be02b63d03 Mon Sep 17 00:00:00 2001 From: Michael DÜrre Date: Thu, 10 Mar 2022 10:39:16 +0100 Subject: migrate sdnr features to phosphorus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix mapper and switch to dom api Updated to use phosphorus version of parent poms Issue-ID: CCSDK-3566 Signed-off-by: Michael DÜrre Change-Id: I98c5bef9286622e0d66b53db687557d798cd53f5 Signed-off-by: Michael DÜrre --- sdnr/wt/data-provider/dblib/pom.xml | 2 +- .../dataprovider/database/sqldb/SqlDBClient.java | 74 +++----- .../database/sqldb/data/HtUserdataManagerBase.java | 2 +- .../database/sqldb/data/HtUserdataManagerImpl.java | 26 +-- .../database/sqldb/data/SqlDBDataProvider.java | 7 +- .../sqldb/data/entity/DatabaseIdGenerator.java | 1 - .../sqldb/data/entity/HtDatabaseEventsService.java | 56 ++++-- .../data/entity/HtDatabaseMaintenanceService.java | 9 +- .../database/sqldb/database/SqlDBMapper.java | 26 ++- .../database/sqldb/database/SqlDBReaderWriter.java | 93 ++++++++-- .../sqldb/database/SqlDBReaderWriterFault.java | 4 +- .../sqldb/database/SqlDBReaderWriterPm.java | 6 +- .../sqldb/database/SqlDBReaderWriterUserdata.java | 6 +- .../database/sqldb/database/SqlDBStatusReader.java | 1 + .../database/sqldb/query/CountQuery.java | 2 +- .../database/sqldb/query/InsertQuery.java | 46 +++-- .../database/sqldb/query/SelectQuery.java | 19 +- .../database/sqldb/query/SqlQuery.java | 9 +- .../database/sqldb/query/UpdateQuery.java | 4 +- .../database/sqldb/query/UpsertQuery.java | 4 + .../dataprovider/dblib/test/TestCRUDMariaDB.java | 4 + .../dblib/test/TestMariaDataProvider.java | 203 +++++++++++++++++---- .../dataprovider/dblib/test/TestQuerySyntax.java | 42 ++++- .../dblib/test/util/MariaDBTestBase.java | 10 +- .../dblib/src/test/resources/pmdata24h.json | 55 ++++++ sdnr/wt/data-provider/feature/pom.xml | 2 +- sdnr/wt/data-provider/installer/pom.xml | 2 +- sdnr/wt/data-provider/model/pom.xml | 2 +- sdnr/wt/data-provider/pom.xml | 2 +- sdnr/wt/data-provider/provider/pom.xml | 15 +- .../data/entity/HtDatabaseEventsService.java | 6 +- .../data/entity/HtDatabaseMaintenanceService.java | 4 +- .../wt/dataprovider/http/about/ODLVersionLUT.java | 2 + .../wt/dataprovider/test/TestCRUDforDatabase.java | 8 +- .../sdnr/wt/dataprovider/test/TestMapper.java | 93 ++++++++++ .../test/TestYangGenSalMappingOpenRoadm.java | 6 +- .../wt/dataprovider/test/util/MariaDBTestBase.java | 15 +- sdnr/wt/data-provider/setup/pom.xml | 2 +- .../setup/istanbul/IstanbulReleaseInformation.java | 146 +++++++-------- .../setup/jakarta/JakartaReleaseInformation.java | 23 +-- .../wt/dataprovider/setup/MariaDBTestBase.java | 15 +- .../wt/dataprovider/setup/TestMariaDBMapper.java | 56 ++---- 42 files changed, 750 insertions(+), 360 deletions(-) create mode 100644 sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json create mode 100644 sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java (limited to 'sdnr/wt/data-provider') diff --git a/sdnr/wt/data-provider/dblib/pom.xml b/sdnr/wt/data-provider/dblib/pom.xml index e4bc57519..b1dd4ff04 100644 --- a/sdnr/wt/data-provider/dblib/pom.xml +++ b/sdnr/wt/data-provider/dblib/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java index ce9d4dcd1..1ed0b5f17 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java @@ -56,7 +56,6 @@ public class SqlDBClient { private static final String DBVERSION_REGEX = "^([\\d]+\\.[\\d]+\\.[\\d]+)"; private static final Pattern DBVERSION_PATTERN = Pattern.compile(DBVERSION_REGEX); private static final String SELECT_VERSION_QUERY = "SELECT @@version as version"; - private static final String LOG_PROBLEM_CLOSING_CONNECTION = "problem closing connection: "; private static final String DBNAME_DEFAULT = "sdnrdb"; private final String dbConnectionString; @@ -100,6 +99,7 @@ public class SqlDBClient { } catch (SQLException e) { LOG.warn("problem reading views: ", e); } + try { data.close(); } catch (SQLException ignore) { } return list; } @@ -114,6 +114,7 @@ public class SqlDBClient { } catch (SQLException e) { LOG.warn("problem reading tables: ", e); } + try { data.close(); } catch (SQLException ignore) { } return list; } @@ -155,22 +156,18 @@ public class SqlDBClient { public boolean createTable(String query) { boolean result = false; PreparedStatement stmt = null; + Connection connection = null; try { - Connection connection = this.getConnection(); + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); stmt.execute(); - connection.close(); + result = true; } catch (SQLException e) { LOG.warn("problem creating table:", e); } finally { - if (stmt != null) { - try { - stmt.close(); - } catch (SQLException e) { - LOG.warn("problem closing stmt:", e); - } - } + if (stmt != null) try { stmt.close(); } catch (SQLException logOrIgnore) {} + if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} } return result; } @@ -199,20 +196,17 @@ public class SqlDBClient { boolean result = false; SQLException innerE = null; Statement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try { + connection= this.getConnection(); stmt = connection.createStatement(); result = stmt.execute(query); result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result; } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -224,20 +218,17 @@ public class SqlDBClient { boolean result = false; SQLException innerE = null; PreparedStatement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try { + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); result = stmt.execute(); result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result; } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -249,24 +240,22 @@ public class SqlDBClient { String result = null; SQLException innerE = null; PreparedStatement stmt = null; - try (Connection connection = this.getConnection()) { + ResultSet generatedKeys = null; + Connection connection = null; + try { + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); stmt.execute(); - ResultSet generatedKeys = stmt.getGeneratedKeys(); + generatedKeys = stmt.getGeneratedKeys(); if (generatedKeys.next()) { result = String.valueOf(generatedKeys.getLong(1)); } } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (generatedKeys != null) try { generatedKeys.close(); } catch (SQLException ignore) {} + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -291,19 +280,16 @@ public class SqlDBClient { public ResultSet read(String query) { ResultSet data = null; Statement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try{ + connection = this.getConnection(); stmt = connection.createStatement(); data = stmt.executeQuery(query); } catch (SQLException e) { LOG.warn("problem reading db for query '{}': ", query, e); } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } return data; } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java index 60f28d95c..e015dd29f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java @@ -74,7 +74,7 @@ public abstract class HtUserdataManagerBase implements HtUserdataManager { @Override public boolean setUserdata(String username, String key, String data) { - JSONObject o = new JSONObject(); + JSONObject o = new JSONObject(this.getUserdata(username)); o.put(key, new JSONObject(data)); return this.setUserdata(username, o.toString()); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java index 79d963751..832d473c2 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java @@ -21,16 +21,7 @@ */ package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data; -import java.util.Arrays; -import java.util.List; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.rpctypehelper.QueryResult; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriterUserdata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.opendaylight.yangtools.yang.common.Uint64; public class HtUserdataManagerImpl extends HtUserdataManagerBase { @@ -42,7 +33,9 @@ public class HtUserdataManagerImpl extends HtUserdataManagerBase { @Override public boolean setUserdata(String username, String data) { - return this.rw.write(new UserdataBuilder().setId(username).setValue(data).build(), username) != null; + Userdata o = new UserdataBuilder().setId(username).setValue(data).build(); + String x = this.rw.updateOrInsert(o, username); + return x!=null; } @Override @@ -52,17 +45,8 @@ public class HtUserdataManagerImpl extends HtUserdataManagerBase { @Override protected String readUserdata(String username, String defaultValue) { - EntityInput input = new ReadFaultcurrentListInputBuilder() - .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(username).build())) - .setPagination(new PaginationBuilder().setPage(Uint64.valueOf(1)).setSize(Uint32.valueOf(1)).build()) - .build(); - QueryResult result = this.rw.getData(input); - if (result != null) { - List data = result.getResult(); - Userdata user = (data != null && !data.isEmpty()) ? data.get(0) : null; - return user == null ? defaultValue : user.getValue(); - } - return defaultValue; + Userdata user = this.rw.read(username); + return user!=null? user.getValue():defaultValue; } } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java index b6df73b89..1bb30dc69 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java @@ -120,11 +120,11 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa this.mediatorserverRW = new SqlDBReaderWriter<>(this.dbClient, Entity.MediatorServer, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MediatorServerEntity.class); + this.controllerId).setWriteInterface(MediatorServerEntity.class); this.maintenanceRW = new SqlDBReaderWriter<>(this.dbClient, Entity.Maintenancemode, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MaintenanceEntity.class); + this.controllerId).setWriteInterface(MaintenanceEntity.class); this.readStatus = new SqlDBStatusReader(this.dbClient, this.controllerId); @@ -137,7 +137,7 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa }; this.dbMaintenanceService = new HtDatabaseMaintenanceService(this); this.usermanager = new HtUserdataManagerImpl(new SqlDBReaderWriterUserdata(this.dbClient, - Entity.Userdata, config.getDbSuffix(), this.dbClient.getDatabaseName(), this.controllerId)); + Entity.Userdata, config.getDbSuffix())); if (initControllerId) { try { this.setControllerId(); @@ -512,6 +512,7 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa query = String.format("INSERT INTO `%s` (`id`,`desc`) VALUES ('%s','%s')", this.controllerTableName, this.controllerId, ""); LOG.trace(query); + try { data.close(); } catch (SQLException ignore) { } return this.dbClient.write(query); } else { LOG.trace("controllerId already set"); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java index 6244894e5..9d09a11c8 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java @@ -74,7 +74,6 @@ public class DatabaseIdGenerator { public static String getFaultcurrentId(String nodeId, String objectId, String problemName) { String uuId = extractUuid(objectId); - return String.format(FORMAT_FAULTDATA_ID, nodeId, uuId, problemName); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java index 88aaa583d..776c91fe5 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java @@ -40,6 +40,7 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp; import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionlogEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity; @@ -50,6 +51,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; import org.slf4j.Logger; @@ -89,68 +91,68 @@ public class HtDatabaseEventsService implements DataProvider { this.dbClient = new SqlDBClient(config.getUrl(), config.getUsername(), config.getPassword()); this.connectionlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Connectionlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Eventlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWFaultLog = new SqlDBReaderWriter<>(dbClient, Entity.Faultlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWFaultCurrent = new SqlDBReaderWriterFault<>(dbClient, Entity.Faultcurrent, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.equipmentRW = new SqlDBReaderWriter<>(dbClient, Entity.Inventoryequipment, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.guicutthroughRW = new SqlDBReaderWriter<>(dbClient, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity.Guicutthrough, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.gui.cut.through.entry.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(Guicutthrough.class); + this.controllerId).setWriteInterface(Guicutthrough.class); this.networkelementConnectionRW = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.networkelementConnectionRW.setWriteInterface(NetworkElementConnectionEntity.class); this.pm15mRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance15min, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.pm24hRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance24h, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWCMLog = new SqlDBReaderWriter<>(dbClient, Entity.Cmlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.cmlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); } @Override public void writeConnectionLog(ConnectionlogEntity event) { - this.connectionlogRW.write(event, event.getId()); + this.connectionlogRW.write(event, null); } @Override public void writeEventLog(EventlogEntity event) { - this.eventlogRW.write(event, event.getId()); + this.eventlogRW.write(event, null); } @Override public void writeFaultLog(FaultlogEntity fault) { - this.eventRWFaultLog.write(fault, fault.getId()); + this.eventRWFaultLog.write(fault, null); } @Override public void writeCMLog(CmlogEntity cm) { - this.eventRWCMLog.write(cm, cm.getId()); + this.eventRWCMLog.write(cm, null); } @Override public void updateFaultCurrent(FaultcurrentEntity fault) { - final String id = fault.getId() != null ? fault.getId() : DatabaseIdGenerator.getFaultcurrentId(fault); + final String id = DatabaseIdGenerator.getFaultcurrentId(fault); if (FaultEntityManager.isManagedAsCurrentProblem(fault)) { if (FaultEntityManager.isNoAlarmIndication(fault)) { LOG.debug("Remove from currentFaults: {}", fault.toString()); @@ -198,8 +200,7 @@ public class HtDatabaseEventsService implements DataProvider { @Override public int clearGuiCutThroughEntriesOfNode(String nodeName) { - this.guicutthroughRW.remove(nodeName); - return 0; + return this.guicutthroughRW.remove(nodeName); } @Override @@ -213,9 +214,28 @@ public class HtDatabaseEventsService implements DataProvider { return this.networkelementConnectionRW.updateOrInsert(ne, nodeId) != null; } + /** + * Remove network element connection if not required + * This function is called onDisconnect event for netconf node + */ @Override public void removeNetworkConnection(String nodeId) { - this.networkelementConnectionRW.remove(nodeId); + NetworkElementConnectionEntity e = this.networkelementConnectionRW.read(nodeId); + Boolean isRequired = e!=null? e.getIsRequired():null; + if (e != null && isRequired != null) { + if (isRequired) { + LOG.debug("updating connection status for {} of required ne to disconnected", nodeId); + this.networkelementConnectionRW.update(new UpdateNetworkElementConnectionInputBuilder() + .setStatus(ConnectionLogStatus.Disconnected).build(), nodeId); + } else { + LOG.debug("remove networkelement-connection for {} entry because of non-required", nodeId); + this.networkelementConnectionRW.remove(nodeId); + } + } else { + LOG.warn("Unable to update connection-status. dbentry for {} not found in networkelement-connection", + nodeId); + } + } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java index a17c6ae48..8c549ded8 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java @@ -33,8 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter; @@ -109,12 +107,7 @@ public class HtDatabaseMaintenanceService implements HtDatabaseMaintenance { @Override public MaintenanceEntity getMaintenance(@Nullable String nodeId) { - ReadMaintenanceListOutput result = this.dbProvider - .readMaintenanceList( - new ReadMaintenanceListInputBuilder().setFilter(getFilterInput("node-id", nodeId)).build()) - .build(); - final List data = result.getData(); - return data != null ? !data.isEmpty() ? data.get(0) : null : null; + return this.maintenanceRw.read(DatabaseIdGenerator.getMaintenanceId(nodeId)); } @Override diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java index c63d2f16b..19323b9f7 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java @@ -60,7 +60,7 @@ public class SqlDBMapper { private static final String ENUM_DBTYPE = "VARCHAR(100)"; private static final String BIGINT_DBTYPE = "BIGINT"; public static final String ODLID_DBCOL = "controller-id"; - private static final String ID_DBCOL = "id"; + public static final String ID_DBCOL = "id"; private static List> numericClasses = Arrays.asList(Byte.class, Integer.class, Long.class, BigInteger.class, Uint8.class, Uint16.class, Uint32.class, Uint64.class); private static final YangToolsMapper mapper = new YangToolsMapper(); @@ -78,18 +78,19 @@ public class SqlDBMapper { } public static String createTable(Class clazz, Entity e) throws UnableToMapClassException { - return createTable(clazz, e, "", false); + return createTable(clazz, e, "", false, true); } public static String createTable(Class clazz, Entity e, String suffix) throws UnableToMapClassException { - return createTable(clazz, e, suffix, false); + return createTable(clazz, e, suffix, false, true); } public static String createTable(Class clazz, Entity e, boolean autoIndex) throws UnableToMapClassException { - return createTable(clazz, e, "", false); + return createTable(clazz, e, "", false, true); } - public static String createTable(Class clazz, Entity e, String suffix, boolean autoIndex) + public static String createTable(Class clazz, Entity e, String suffix, boolean autoIndex, + boolean withControllerId) throws UnableToMapClassException { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE IF NOT EXISTS `" + e.getName() + suffix + "` (\n"); @@ -99,7 +100,9 @@ public class SqlDBMapper { } else { sb.append("`" + ID_DBCOL + "` " + STRING_DBTYPE + " " + getColumnOptions(ID_DBCOL, STRING_DBTYPE) + ",\n"); } - sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n"); + if(withControllerId) { + sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n"); + } for (Method method : getFilteredMethods(clazz, true)) { Class valueType = method.getReturnType(); String colName = getColumnName(method); @@ -110,8 +113,10 @@ public class SqlDBMapper { String options = getColumnOptions(colName, dbType); sb.append("`" + colName + "` " + dbType + " " + options + ",\n"); } - sb.append("primary key(" + ID_DBCOL + "),"); - sb.append("foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")"); + sb.append("primary key(" + ID_DBCOL + ")"); + if(withControllerId) { + sb.append(",foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")"); + } sb.append(");"); return sb.toString(); @@ -350,11 +355,14 @@ public class SqlDBMapper { public static List read(ResultSet data, Class clazz, String column) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, SQLException, InstantiationException, SecurityException, NoSuchMethodException, JsonProcessingException { - + if(data==null) { + return Arrays.asList(); + } Builder builder = findPOJOBuilder(clazz); if(builder==null && column==null) { throw new InstantiationException("unable to find builder for class "+clazz.getName()); } + List list = new ArrayList<>(); while (data.next()) { if (column == null) { diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java index b5322d6ff..56e965c9f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java @@ -57,34 +57,47 @@ public class SqlDBReaderWriter { protected final Entity entity; private final Class clazz; protected final SqlDBClient dbService; - private final String dbName; protected final String controllerId; protected final String tableName; + private final boolean ignoreControllerId; - public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { + this(dbService, e, dbSuffix, clazz, controllerId, false); + } + + public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, + String controllerId, boolean ignoreControllerId) { this.dbService = dbService; this.entity = e; this.clazz = clazz; - this.dbName = dbName; this.tableName = this.entity.getName() + dbSuffix; this.controllerId = controllerId; + this.ignoreControllerId = ignoreControllerId; } public long count(List filter) throws SQLException { String query; if (filter == null || filter.isEmpty()) { - query = String.format("SELECT table_rows FROM `information_schema`.`tables` " - + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName); + // query = String.format("SELECT table_rows FROM `information_schema`.`tables` " + // + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName); + query = String.format("SELECT COUNT(`id`) FROM `%s`", this.tableName); } else { query = String.format("SELECT COUNT(`id`) FROM `%s` %s", this.tableName, SqlQuery.getWhereExpression(filter)); } ResultSet data = this.dbService.read(query); + if(data==null) { + return 0; + } long cnt = 0; if (data.next()) { cnt = data.getLong(1); } + try { + data.close(); + } catch (SQLException ignore) { + } return cnt; } @@ -106,11 +119,19 @@ public class SqlDBReaderWriter { public QueryResult getData(EntityInput input) { SelectQuery query = new SelectQuery(this.tableName, input, this.controllerId); - LOG.trace("query={}", query.toSql()); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, clazz); final Map filter = input.getFilter(); + try { + if(data!=null) { + data.close(); + } + } catch (SQLException ignore) { + } long total = this.count(filter != null ? new ArrayList<>(filter.values()) : null, this.controllerId); return new QueryResult(mappedData, query.getPage(), query.getPageSize(), total); } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException @@ -126,8 +147,11 @@ public class SqlDBReaderWriter { if (id == null) { return this.writeWithoutId(object); } - InsertQuery query = new InsertQuery(this.entity, object, this.controllerId); + InsertQuery query = new InsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId); query.setId(id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } boolean success = false; try { success = this.dbService.write(query.toSql()); @@ -140,7 +164,11 @@ public class SqlDBReaderWriter { private String writeWithoutId(S object) { - InsertQuery query = new InsertQuery(this.entity, object, this.controllerId); + InsertQuery query = + new InsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { return this.dbService.writeAndReturnId(query.toSql()); } catch (SQLException e) { @@ -150,8 +178,11 @@ public class SqlDBReaderWriter { } public String update(S object, String id) { - UpdateQuery query = new UpdateQuery(this.entity, object, this.controllerId); + UpdateQuery query = new UpdateQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); query.setId(id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } String insertedId = null; PreparedStatement stmt = null; try { @@ -164,6 +195,9 @@ public class SqlDBReaderWriter { if (affectedRows > 0) { insertedId = id; } + if (LOG.isTraceEnabled()) { + LOG.trace("insertedid={}", insertedId); + } } catch (SQLException e) { LOG.warn("problem writing data into db: ", e); } finally { @@ -180,10 +214,12 @@ public class SqlDBReaderWriter { } public String updateOrInsert(S object, String id) { - UpsertQuery query = new UpsertQuery(this.entity, object, this.controllerId); + UpsertQuery query = new UpsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); query.setId(id); String insertedId = null; - LOG.trace("query={}", query.toSql()); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } PreparedStatement stmt = null; try { Connection connection = this.dbService.getConnection(); @@ -221,6 +257,9 @@ public class SqlDBReaderWriter { public int remove(List filters) { DeleteQuery query = new DeleteQuery(this.entity, filters); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } int affectedRows = 0; PreparedStatement stmt = null; try { @@ -249,9 +288,16 @@ public class SqlDBReaderWriter { public List readAll(Class clazz) { SelectQuery query = new SelectQuery(this.tableName); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, clazz); + try { + data.close(); + } catch (SQLException ignore) { + } return mappedData; } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { @@ -262,9 +308,16 @@ public class SqlDBReaderWriter { public List readAll(String key) { SelectQuery query = new SelectQuery(this.tableName, key, this.controllerId).groupBy(key); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, key); + try { + data.close(); + } catch (SQLException ignore) { + } return mappedData; } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { @@ -272,4 +325,22 @@ public class SqlDBReaderWriter { } return null; } + + public T read(String id) { + SelectQuery query = + new SelectQuery(this.tableName, this.controllerId).addFilter(SqlDBMapper.ID_DBCOL, id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } + T item = null; + try { + ResultSet data = this.dbService.read(query.toSql()); + List mappedData = SqlDBMapper.read(data, clazz); + item = mappedData.size()>0? mappedData.get(0): null; + } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException + | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { + LOG.warn("problem reading data {}: ", this.entity, e); + } + return item; + } } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java index 2d4e26eea..86d888a16 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java @@ -30,9 +30,9 @@ public class SqlDBReaderWriterFault extends SqlDBReaderWri private static final String NODE_KEY = "node-id"; - public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { - super(dbService, e, dbSuffix, clazz, dbName, controllerId); + super(dbService, e, dbSuffix, clazz, controllerId); } public List getAllNodes() { diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java index 021741bd8..22aabc429 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java @@ -53,9 +53,9 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter private static final FilterKey FILTERKEY = new FilterKey(KEY); - public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { - super(dbService, e, dbSuffix, clazz, dbName, controllerId); + super(dbService, e, dbSuffix, clazz, controllerId); } /** @@ -83,6 +83,7 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, UUID_KEY); + try { data.close(); } catch (SQLException ignore) { } Map inpFilter = input.getFilter(); long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId); return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total); @@ -114,6 +115,7 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, NODE_KEY); + try { data.close(); } catch (SQLException ignore) { } Map inpFilter = input.getFilter(); long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId); return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java index 2c849ac67..258cd160f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java @@ -27,11 +27,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro public class SqlDBReaderWriterUserdata extends SqlDBReaderWriter { - public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix, String dbName, - String controllerId) { - super(dbService, e, dbSuffix, Userdata.class, dbName, controllerId); + public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix) { + super(dbService, e, dbSuffix, Userdata.class, null, true); } + } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java index c98ba388d..b0b169d18 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java @@ -74,6 +74,7 @@ public class SqlDBStatusReader { } } + try { data.close(); } catch (SQLException ignore) { } } catch (SQLException e) { LOG.warn("problem reading status:", e); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java index c499fefb8..1c1ec622b 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java @@ -59,7 +59,7 @@ public class CountQuery implements SqlQuery { this(e); Map filter = input != null ? input.getFilter() : null; if (filter != null && filter.size() > 0) { - this.filters.addAll(filters); + this.filters.addAll(filter.values()); } if (controllerId != null) { this.addFilter(SqlDBMapper.ODLID_DBCOL, controllerId); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java index 108888ad0..f52fbd55a 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java @@ -39,17 +39,28 @@ public class InsertQuery implements SqlQuery { protected final Entity entity; private final String controllerId; + private final boolean ignoreControllerId; private final T object; private final boolean ignoreNull; private String id; + private final boolean ignoreIdField; public InsertQuery(Entity e, T object, String controllerId) { + this(e, object, controllerId, SqlQuery.DEFAULT_IGNORE_CONTROLLERID); + } + + public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId) { + this(e, object, controllerId, ignoreControllerId, SqlQuery.DEFAULT_IGNORE_ID_FIELD); + } + + public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { this.entity = e; this.controllerId = controllerId; this.object = object; this.ignoreNull = true; this.id = null; - + this.ignoreControllerId = ignoreControllerId; + this.ignoreIdField = ignoreIdField; } @Override @@ -63,8 +74,8 @@ public class InsertQuery implements SqlQuery { return null; } - protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, - JsonProcessingException { + protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException, + InvocationTargetException, JsonProcessingException { Class cls = this.object.getClass(); List> kvps = new ArrayList<>(); List cols = new ArrayList<>(); @@ -78,26 +89,37 @@ public class InsertQuery implements SqlQuery { m.setAccessible(true); value = m.invoke(this.object); col = SqlDBMapper.getColumnName(m); - if (col.equals("id") && this.id != null) { - value = this.id; + if (col.equals("id")) { + if (this.ignoreIdField) { + continue; + } + if (this.id != null) { + value = this.id; + } } if (ignoreNull && value == null) { continue; } - DBKeyValuePair kvp = SqlDBMapper.getEscapedKeyValue(m,col, value); + DBKeyValuePair kvp = SqlDBMapper.getEscapedKeyValue(m, col, value); cols.add(kvp.getKey()); args.add(kvp.getValue()); kvps.add(kvp); } if (this.id != null && !cols.contains("`id`")) { cols.add("`id`"); - args.add("'"+this.id+"'"); + args.add("'" + this.id + "'"); + } + if (!this.ignoreControllerId) { + args.add("'" + this.controllerId + "'"); + } + sb.append(String.join(",", cols)); + if (!this.ignoreControllerId) { + sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES ("); + } else { + sb.append(") VALUES ("); } - args.add("'"+this.controllerId+"'"); - sb.append( String.join(",", cols)); - sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES ("); - sb.append( String.join(",", args)+" )"); - this.appendAdditionalToQuery(sb,kvps); + sb.append(String.join(",", args) + " )"); + this.appendAdditionalToQuery(sb, kvps); return sb.toString(); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java index 2b3f9f3fa..6403a5c1d 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java @@ -54,9 +54,11 @@ public class SelectQuery implements SqlQuery { private final List groups; public SelectQuery(String tableName) { - this(tableName, Arrays.asList("*"), null); + this(tableName, (String)null); + } + public SelectQuery(String tableName, String controllerId) { + this(tableName, Arrays.asList("*"), controllerId); } - public SelectQuery(String tableName, List fields, String controllerId) { this.tableName = tableName; this.fields = fields; @@ -105,18 +107,21 @@ public class SelectQuery implements SqlQuery { } - public void addFilter(String property, String filtervalue) { + public SelectQuery addFilter(String property, String filtervalue) { this.addFilter(new FilterBuilder().setProperty(property).setFiltervalue(filtervalue).build()); + return this; } private static Filter cleanFilter(Filter filter) { - if (filter.getFiltervalue() != null - && (filter.getFiltervalues() == null || filter.getFiltervalues().isEmpty())) { + final String sFilter = filter.getFiltervalue(); + final List sFilters = filter.getFiltervalues(); + //if only single filter value is set + if (sFilter != null && (sFilters == null || sFilter.isEmpty())) { return "*".equals(filter.getFiltervalue()) ? null : filter; } else { List list = new ArrayList<>(filter.getFiltervalues()); - if (filter.getFiltervalue() != null && !filter.getFiltervalue().isEmpty()) { - list.add(filter.getFiltervalue()); + if (sFilter != null && !sFilter.isEmpty()) { + list.add(sFilter); } if (list.size() == 1 && "*".equals(list.get(0))) { return null; diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java index 82f10b1e5..3e26d0935 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java @@ -27,6 +27,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.TimeZone; +import java.util.stream.Collectors; import org.eclipse.jdt.annotation.Nullable; import org.onap.ccsdk.features.sdnr.wt.common.database.data.DbFilter; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.filters.DBFilterKeyValuePair; @@ -46,12 +47,15 @@ public interface SqlQuery { static final String MARIADB_TIMESTAMP_REPLACER_MIN = "0000-00-00 00:00:00"; static final int MARIADB_TIMESTAMP_REPLACER_MIN_LENGTH = MARIADB_TIMESTAMP_REPLACER_MIN.length(); static final int MARIADB_TIMESTAMP_REPLACER_MAX_LENGTH = MARIADB_TIMESTAMP_REPLACER.length(); + static final boolean DEFAULT_IGNORE_CONTROLLERID = false; + static final boolean DEFAULT_IGNORE_ID_FIELD = false; public static String getWhereExpression(List filters) { if (filters == null) { return ""; } StringBuilder sb = new StringBuilder(); + filters = filters.stream().filter(e -> !"*".equals(e.getFiltervalue())).collect(Collectors.toList()); if (!filters.isEmpty()) { sb.append(" WHERE (" + getFilterExpression(filters.get(0)) + ")"); @@ -64,7 +68,8 @@ public interface SqlQuery { public static String getFilterExpression(Filter filter) { String property = filter.getProperty(); - List values = collectValues(filter.getFiltervalue(), filter.getFiltervalues()); + List values = collectValues(filter.getFiltervalue(), filter.getFiltervalues()).stream() + .filter(e -> !"*".equals(e)).collect(Collectors.toList()); if (values.size() == 1) { return getFilterExpression(property, values.get(0)); } else if (values.size() > 1) { @@ -225,7 +230,7 @@ public interface SqlQuery { } private static String netconfToMariaDBTimestamp(String ts) { - if(ts==null) { + if (ts == null) { return null; } String v = ts.replace("T", " ").replace("Z", ""); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java index b47b03042..dc81161ee 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java @@ -44,10 +44,10 @@ public class UpdateQuery implements SqlQuery { private String id; public UpdateQuery(Entity e, T object) { - this(e, object, null); + this(e, object, null, SqlQuery.DEFAULT_IGNORE_CONTROLLERID, SqlQuery.DEFAULT_IGNORE_ID_FIELD); } - public UpdateQuery(Entity e, T object, String controllerId) { + public UpdateQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { this.entity = e; this.controllerId = controllerId; this.object = object; diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java index e6f1e13cb..39c505454 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java @@ -31,6 +31,10 @@ public class UpsertQuery extends InsertQuery { public UpsertQuery(Entity e, T object, String controllerId) { super(e, object, controllerId); + } + public UpsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { + super(e, object, controllerId, ignoreControllerId, ignoreIdField); + } @Override diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java index ad4ab6789..1dd9f725e 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java @@ -105,6 +105,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to read size"); } + try { data.close(); } catch (SQLException ignore) { } //create entry success = false; try { @@ -125,6 +126,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify write"); } + try { data.close(); } catch (SQLException ignore) { } //update entry success = false; try { @@ -145,6 +147,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify write"); } + try { data.close(); } catch (SQLException ignore) { } //delete entry success = false; try { @@ -161,6 +164,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify delete. size>0"); } + try { data.close(); } catch (SQLException ignore) { } } @Test diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java index b4e0584b0..c9cf27c68 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java @@ -24,6 +24,8 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; import java.sql.SQLException; @@ -34,14 +36,17 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import org.json.JSONArray; import org.json.JSONException; +import org.json.JSONObject; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriter; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.DeleteQuery; import org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test.util.MariaDBTestBase; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtUserdataManager; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; import org.opendaylight.netconf.shaded.sshd.common.util.io.IoUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; @@ -57,6 +62,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput; @@ -72,6 +80,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; @@ -90,10 +99,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadStatusOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput; @@ -102,6 +115,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint64; import ch.vorburger.exec.ManagedProcessException; @@ -112,6 +126,8 @@ public class TestMariaDataProvider { private static final String NODEID1 = "node1"; private static final String NODEID2 = "node2"; private static final String NODEID3 = "node3"; + private static final String NODEID4 = "node4"; + private static final String NODEID5 = "node5"; private static final String PROBLEM1 = "problem1"; private static final String TIME1 = "2021-05-25T05:12:55.0Z"; private static final String TIME2 = "2021-05-25T05:12:56.0Z"; @@ -121,6 +137,7 @@ public class TestMariaDataProvider { private static final String URI2 = "http://localhost:8181"; private static final String URI3 = "http://localhost:8181"; private static final String PATH = "https://samsung.com/3GPP/simulation/network-function/ves"; + private static final String USERNAME = "admin"; private static MariaDBTestBase testBase; private static SqlDBDataProvider dbProvider; private static SqlDBClient dbClient; @@ -176,12 +193,43 @@ public class TestMariaDataProvider { assertEquals(1, status.getData().get(0).getFaults().getMinors().intValue()); assertEquals(0, status.getData().get(0).getFaults().getWarnings().intValue()); + List nodeList = dbProvider.getAllNodesWithCurrentAlarms(); + assertTrue(nodeList.contains(NODEID1)); + assertEquals(1,nodeList.size()); + faultCurrent1 = new FaultcurrentBuilder().setNodeId(NODEID1).setCounter(1).setObjectId("obj") .setProblem(PROBLEM1).setTimestamp(DateAndTime.getDefaultInstance(TIME1)) .setSeverity(SeverityType.NonAlarmed).setId(String.format("%s/%s", NODEID1, PROBLEM1)).build(); dbProvider.updateFaultCurrent(faultCurrent1); faultCurrents = dbProvider.readFaultCurrentList(createInput("node-id", NODEID1, 1, 20)); assertEquals(1, faultCurrents.getData().size()); + + + } + + @Test + public void testSerializeDeserialize() { + + try { + CreateNetworkElementConnectionOutputBuilder necon = dbProvider.createNetworkElementConnection( + new NetworkElementConnectionBuilder().setNodeId(NODEID1).setIsRequired(Boolean.TRUE).build()); + List netestList = + dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)).getData(); + + assertNotNull(necon); + assertEquals(1, netestList.size()); + assertTrue(netestList.get(0).getIsRequired()); + SqlDBReaderWriter dbrw = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection, + MariaDBTestBase.SUFFIX, + Data.class, + CONTROLLERID); + Data e = dbrw.read(NODEID1); + assertNotNull(e); + + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } } @Test @@ -204,6 +252,7 @@ public class TestMariaDataProvider { dbProvider.writeFaultLog(fault2); faultlogs = dbProvider.readFaultLogList(createInput("node-id", NODEID1, 1, 20)); assertEquals(2, faultlogs.getData().size()); + } @Test @@ -211,28 +260,16 @@ public class TestMariaDataProvider { ReadCmlogListOutputBuilder cmlogs = dbProvider.readCMLogList(createInput(1, 20)); assertEquals(0, cmlogs.getData().size()); - CmlogEntity cm1 = new CmlogBuilder() - .setNodeId(NODEID2) - .setCounter(1) - .setTimestamp(DateAndTime.getDefaultInstance(TIME1)) - .setObjectId("obj") - .setNotificationType(CmNotificationType.NotifyMOIChanges) - .setNotificationId("1") - .setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION) - .setPath(PATH) - .setValue("pnf-registration: true") - .build(); - CmlogEntity cm2 = new CmlogBuilder() - .setNodeId(NODEID2) - .setCounter(2) - .setTimestamp(DateAndTime.getDefaultInstance(TIME2)) - .setObjectId("obj") - .setNotificationType(CmNotificationType.NotifyMOIChanges) - .setNotificationId("2") - .setSourceIndicator(CmSourceIndicator.UNKNOWN) - .setPath(PATH) - .setValue("pnf-registration: false") - .build(); + CmlogEntity cm1 = + new CmlogBuilder().setNodeId(NODEID2).setCounter(1).setTimestamp(DateAndTime.getDefaultInstance(TIME1)) + .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges) + .setNotificationId("1").setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION).setPath(PATH) + .setValue("pnf-registration: true").build(); + CmlogEntity cm2 = + new CmlogBuilder().setNodeId(NODEID2).setCounter(2).setTimestamp(DateAndTime.getDefaultInstance(TIME2)) + .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges) + .setNotificationId("2").setSourceIndicator(CmSourceIndicator.UNKNOWN).setPath(PATH) + .setValue("pnf-registration: false").build(); dbProvider.writeCMLog(cm1); dbProvider.writeCMLog(cm2); @@ -240,10 +277,10 @@ public class TestMariaDataProvider { assertEquals(2, cmlogs.getData().size()); List cmLogEntityList = List.of(cm1, cm2); - assertEquals("node2",cmLogEntityList.get(0).getNodeId()); - assertEquals("obj",cmLogEntityList.get(0).getObjectId()); - assertEquals(CmNotificationType.NotifyMOIChanges,cmLogEntityList.get(0).getNotificationType()); - assertEquals("2",cmLogEntityList.get(1).getNotificationId()); + assertEquals("node2", cmLogEntityList.get(0).getNodeId()); + assertEquals("obj", cmLogEntityList.get(0).getObjectId()); + assertEquals(CmNotificationType.NotifyMOIChanges, cmLogEntityList.get(0).getNotificationType()); + assertEquals("2", cmLogEntityList.get(1).getNotificationId()); } @@ -383,6 +420,45 @@ public class TestMariaDataProvider { data = dbProvider.readMaintenanceList(createInput(1, 20)); assertEquals(3, data.getData().size()); + UpdateMaintenanceInput update1 = + new UpdateMaintenanceInputBuilder().setId(NODEID1).setNodeId(NODEID1).setActive(false).build(); + try { + dbProvider.updateMaintenance(update1); + } catch (IOException e) { + e.printStackTrace(); + fail("unable to update maintenance data"); + } + data = dbProvider.readMaintenanceList(createInput("active","false",1, 20)); + assertEquals(1, data.getData().size()); + DeleteMaintenanceInput delete1 = new DeleteMaintenanceInputBuilder().setId(NODEID1).build(); + try { + dbProvider.deleteMaintenance(delete1); + } catch (IOException e) { + e.printStackTrace(); + fail("unable to delete maintenance data"); + } + data = dbProvider.readMaintenanceList(createInput(1, 20)); + assertEquals(2, data.getData().size()); + try { + dbClient.delete(new DeleteQuery(Entity.Maintenancemode, null).toSql()); + } catch (SQLException e) { + e.printStackTrace(); + fail("problem clearing faultlog"); + } + final String nodeId = "maint_node1"; + HtDatabaseMaintenance maintenanceService = dbProvider.getHtDatabaseMaintenance(); + MaintenanceEntity e = maintenanceService.createIfNotExists(nodeId); + assertNotNull(e); + assertEquals(nodeId,e.getNodeId()); + MaintenanceEntity e2 = new CreateMaintenanceInputBuilder(e).setActive(true).build(); + e = maintenanceService.setMaintenance(e2); + assertNotNull(e); + assertEquals(nodeId,e.getNodeId()); + assertTrue(e.getActive()); + maintenanceService.deleteIfNotRequired(nodeId); + data = dbProvider.readMaintenanceList(createInput("node-id",nodeId,1, 20)); + assertEquals(0, data.getData().size()); + } @Test @@ -456,22 +532,26 @@ public class TestMariaDataProvider { NetworkElementConnectionEntity ne2 = new NetworkElementConnectionBuilder().setNodeId(NODEID2) .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user") .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build(); + NetworkElementConnectionEntity ne3 = new NetworkElementConnectionBuilder().setNodeId(NODEID3) + .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user") + .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build(); try { dbProvider.createNetworkElementConnection(ne1); dbProvider.createNetworkElementConnection(ne2); + dbProvider.updateNetworkConnection22(ne3, NODEID3); } catch (IOException e) { e.printStackTrace(); fail("problem creating neconnection"); } data = dbProvider.readNetworkElementConnectionList(createInput(1, 20)); - assertEquals(2, data.getData().size()); + assertEquals(3, data.getData().size()); NetworkElementConnectionEntity update1 = new NetworkElementConnectionBuilder() .setStatus(ConnectionLogStatus.Connected).setDeviceType(NetworkElementDeviceType.ORAN).build(); dbProvider.updateNetworkConnectionDeviceType(update1, NODEID1); data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)); assertEquals(1, data.getData().size()); assertEquals(NetworkElementDeviceType.ORAN, data.getData().get(0).getDeviceType()); - assertEquals(true, data.getData().get(0).isIsRequired()); + assertEquals(true, data.getData().get(0).getIsRequired()); UpdateNetworkElementConnectionInput update2 = new UpdateNetworkElementConnectionInputBuilder().setId(NODEID2) .setHost("10.20.55.44").setIsRequired(true).build(); try { @@ -483,7 +563,7 @@ public class TestMariaDataProvider { data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID2, 1, 20)); assertEquals(1, data.getData().size()); assertEquals("10.20.55.44", data.getData().get(0).getHost()); - assertEquals(true, data.getData().get(0).isIsRequired()); + assertEquals(true, data.getData().get(0).getIsRequired()); ReadStatusOutputBuilder status = null; try { @@ -493,10 +573,10 @@ public class TestMariaDataProvider { fail("failed to read status"); } assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnected().intValue()); - assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue()); + assertEquals(2, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getDisconnected().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getMounted().intValue()); - assertEquals(2, status.getData().get(0).getNetworkElementConnections().getTotal().intValue()); + assertEquals(3, status.getData().get(0).getNetworkElementConnections().getTotal().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnableToConnect().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUndefined().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnmounted().intValue()); @@ -513,9 +593,39 @@ public class TestMariaDataProvider { data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)); assertEquals(0, data.getData().size()); data = dbProvider.readNetworkElementConnectionList(createInput(1, 20)); - assertEquals(1, data.getData().size()); + assertEquals(2, data.getData().size()); + } + @Test + public void testUserdata() { + HtUserdataManager mgr = dbProvider.getUserManager(); + String userdata = mgr.getUserdata(USERNAME); + assertEquals("{}",userdata); + JSONObject o = new JSONObject(); + o.put("key1", false); + o.put("key2","value2"); + boolean result = mgr.setUserdata(USERNAME, o.toString()); + assertTrue(result); + userdata = mgr.getUserdata(USERNAME); + o = new JSONObject(userdata); + assertEquals(false,o.getBoolean("key1")); + assertEquals("value2",o.getString("key2")); + o = new JSONObject(); + o.put("enabled", true); + o.put("name","abcdef"); + result = mgr.setUserdata(USERNAME,"app1",o.toString()); + assertTrue(result); + userdata = mgr.getUserdata(USERNAME); + o = new JSONObject(userdata); + assertEquals(false,o.getBoolean("key1")); + assertEquals("value2",o.getString("key2")); + JSONObject app = o.getJSONObject("app1"); + assertNotNull(app); + assertEquals(true, app.getBoolean("enabled")); + assertEquals("abcdef", app.getString("name")); + + } @Test public void testpm15m() { try { @@ -538,7 +648,7 @@ public class TestMariaDataProvider { assertEquals(10, data.getData().size()); ReadPmdata15mLtpListOutputBuilder ltpdata = null; try { - ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name","sim12600",1, 20)); + ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name", "sim12600", 1, 20)); } catch (IOException e) { e.printStackTrace(); fail("failed to read pmdata15m ltp list"); @@ -546,7 +656,7 @@ public class TestMariaDataProvider { assertEquals(3, ltpdata.getData().size()); ReadPmdata15mDeviceListOutputBuilder devicedata = null; try { - devicedata = dbProvider.readPmdata15mDeviceList(createInput(1,20)); + devicedata = dbProvider.readPmdata15mDeviceList(createInput(1, 20)); } catch (IOException e) { e.printStackTrace(); fail("failed to read pmdata15m devices list"); @@ -554,7 +664,6 @@ public class TestMariaDataProvider { assertEquals(1, devicedata.getData().size()); } - @Ignore @Test public void testpm24h() { try { @@ -573,9 +682,27 @@ public class TestMariaDataProvider { fail("failed to load pmdata24h"); } dbProvider.doWritePerformanceData(list); + data = dbProvider.readPmdata24hList(createInput(1, 20)); + assertEquals(1, data.getData().size()); + ReadPmdata24hLtpListOutputBuilder ltpdata = null; + try { + ltpdata = dbProvider.readPmdata24hLtpList(createInput("node-name", "test", 1, 20)); + } catch (IOException e) { + e.printStackTrace(); + fail("failed to read pmdata15m ltp list"); + } + assertEquals(1, ltpdata.getData().size()); + ReadPmdata24hDeviceListOutputBuilder devicedata = null; + try { + devicedata = dbProvider.readPmdata24hDeviceList(createInput(1, 20)); + } catch (IOException e) { + e.printStackTrace(); + fail("failed to read pmdata15m devices list"); + } + assertEquals(1, devicedata.getData().size()); } - private static EntityInput createInput(int page, int size) { + static EntityInput createInput(int page, int size) { return createInput(null, null, page, size); } @@ -597,7 +724,7 @@ public class TestMariaDataProvider { return String.join("\n", IoUtils.readAllLines(TestMariaDataProvider.class.getResourceAsStream(filename))); } - private static EntityInput createInput(String filter, String filterValue, int page, int size) { + static EntityInput createInput(String filter, String filterValue, int page, int size) { ReadFaultcurrentListInputBuilder builder = new ReadFaultcurrentListInputBuilder().setPagination( new PaginationBuilder().setPage(Uint64.valueOf(page)).setSize(Uint32.valueOf(size)).build()); if (filter != null && filterValue != null) { diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java index 24347c7db..576a3825c 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java @@ -22,12 +22,16 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.CountQuery; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.SelectQuery; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadGuiCutThroughEntryInputBuilder; @@ -164,8 +168,8 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); @@ -174,8 +178,8 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues2() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalue("*").build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalue("*").build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); @@ -185,12 +189,38 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues3() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); System.out.println(query.toSql()); assertFalse(query.toSql().contains("RLIKE")); } + @Test + public void testSelectForFilterValues4() { + EntityInput input = new ReadGuiCutThroughEntryInputBuilder() + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("abc")).build(), + new FilterBuilder().setProperty("node-id").setFiltervalues(Arrays.asList("*")).build()))) + .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) + .build(); + SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); + System.out.println(query.toSql()); + assertFalse(query.toSql().contains("RLIKE")); + } + @Test + public void testCount() { + CountQuery query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput(1, 20)); + String sQuery = query.toSql(); + assertNotNull(sQuery); + assertTrue(sQuery.contains("*") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName())); + + query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput("node-id","abc",1, 20)); + sQuery = query.toSql(); + assertNotNull(sQuery); + assertTrue(sQuery.contains("node-id") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName())); + + + } } diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java index 3360d3ed8..aebd3328e 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java @@ -34,6 +34,7 @@ import org.onap.ccsdk.features.sdnr.wt.common.configuration.subtypes.Section.Env import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBConfig; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.Userdata; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper.UnableToMapClassException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity; @@ -60,6 +61,7 @@ public class MariaDBTestBase { private SqlDBConfig config; private static final Map envDefaultValues = initEnvDefaultValues(); private static final String SDNRDBDATABASETEST = "test"; + public static final String SUFFIX = ""; public MariaDBTestBase() throws ManagedProcessException { this(new Random().nextInt(1000) + 50000); @@ -173,6 +175,7 @@ public class MariaDBTestBase { createTable(dbService, MaintenanceEntity.class, Entity.Maintenancemode, false); createTable(dbService, MediatorServerEntity.class, Entity.MediatorServer, true); createTable(dbService, NetworkElementConnectionEntity.class, Entity.NetworkelementConnection, false); + createTable(dbService, Userdata.class, Entity.Userdata, false, false); } public static boolean createTableOdl(SqlDBClient dbService) { @@ -181,11 +184,14 @@ public class MariaDBTestBase { System.out.println(createStatement); return dbService.createTable(createStatement); } - public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, SUFFIX, autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } diff --git a/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json new file mode 100644 index 000000000..6b1f6b543 --- /dev/null +++ b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json @@ -0,0 +1,55 @@ +[ + { + "uuid-interface": "LP-MWPS-TTP-RADIO", + "granularity-period": "period-24-hours", + "suspect-interval-flag": false, + "layer-protocol-name": "MWPS", + "performance-data": { + "time-period": 86400, + "es": 0, + "ses": 0, + "cses": 0, + "unavailability": 0, + "tx-level-min": 3, + "tx-level-max": 3, + "tx-level-avg": 3, + "rx-level-min": -44, + "rx-level-max": -45, + "rx-level-avg": -44, + "time2-states": 0, + "time4-states-s": 0, + "time4-states": 0, + "time8-states": -1, + "time16-states-s": -1, + "time16-states": 0, + "time32-states": -1, + "time64-states": 86400, + "time128-states": -1, + "time256-states": -1, + "time512-states": -1, + "time512-states-l": -1, + "time1024-states": -1, + "time1024-states-l": -1, + "time2048-states": -1, + "time2048-states-l": -1, + "time4096-states": -1, + "time4096-states-l": -1, + "time8192-states": -1, + "time8192-states-l": -1, + "snir-min": -99, + "snir-max": -99, + "snir-avg": -99, + "xpd-min": -99, + "xpd-max": -99, + "xpd-avg": -99, + "rf-temp-min": -99, + "rf-temp-max": -99, + "rf-temp-avg": -99, + "defect-blocks-sum": -1 + }, + "radio-signal-id": "Test8", + "scanner-id": "PM_RADIO_24H_1", + "time-stamp": "2017-03-01T00:00:00.0+00:00", + "node-name": "test" + } +] \ No newline at end of file diff --git a/sdnr/wt/data-provider/feature/pom.xml b/sdnr/wt/data-provider/feature/pom.xml index d8885ffb5..7e05c15b0 100644 --- a/sdnr/wt/data-provider/feature/pom.xml +++ b/sdnr/wt/data-provider/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/installer/pom.xml b/sdnr/wt/data-provider/installer/pom.xml index 1d13432a8..b118cbdb1 100755 --- a/sdnr/wt/data-provider/installer/pom.xml +++ b/sdnr/wt/data-provider/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/model/pom.xml b/sdnr/wt/data-provider/model/pom.xml index 05d98fa2d..0a73be143 100644 --- a/sdnr/wt/data-provider/model/pom.xml +++ b/sdnr/wt/data-provider/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/pom.xml b/sdnr/wt/data-provider/pom.xml index 70ac5655f..d24fb72c3 100755 --- a/sdnr/wt/data-provider/pom.xml +++ b/sdnr/wt/data-provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/provider/pom.xml b/sdnr/wt/data-provider/provider/pom.xml index 8c546aebd..1d3753b48 100644 --- a/sdnr/wt/data-provider/provider/pom.xml +++ b/sdnr/wt/data-provider/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -210,18 +210,7 @@ - - - - - - - - - - - - + org.apache.maven.plugins maven-surefire-plugin diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java index 13438ef15..9cfe4e50d 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java @@ -405,8 +405,8 @@ public class HtDatabaseEventsService implements ArchiveCleanProvider, DataProvid } NetworkElementConnectionBuilder builder = new NetworkElementConnectionBuilder(base); if (toJoin != null) { - if (toJoin.isIsRequired() != null) { - builder.setIsRequired(toJoin.isIsRequired()); + if (toJoin.requireIsRequired() != null) { + builder.setIsRequired(toJoin.requireIsRequired()); } if (toJoin.getCoreModelCapability() != null) { builder.setCoreModelCapability(toJoin.getCoreModelCapability()); @@ -483,7 +483,7 @@ public class HtDatabaseEventsService implements ArchiveCleanProvider, DataProvid public void removeNetworkConnection(String nodeId) { Boolean isRequired; NetworkElementConnectionEntity e = this.networkelementConnectionDB.read(nodeId); - if (e != null && (isRequired = e.isIsRequired()) != null) { + if (e != null && (isRequired = e.requireIsRequired()) != null) { if (isRequired) { LOG.debug("updating connection status for {} of required ne to disconnected", nodeId); this.networkelementConnectionDB.update(new UpdateNetworkElementConnectionInputBuilder() diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java index c6161b54c..9f4c0f399 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java @@ -166,8 +166,8 @@ public class HtDatabaseMaintenanceService implements HtDatabaseMaintenance { } else { LOG.warn("cannot read db. no db reader writer initialized"); } - if (ne != null && ne.isIsRequired() != null) { - return ne.isIsRequired(); + if (ne != null && ne.requireIsRequired() != null) { + return ne.requireIsRequired(); } else { return false; } diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java index 5211030eb..29d9ee9db 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java @@ -66,6 +66,8 @@ public class ODLVersionLUT { } if(odlMdsalVersionLUT==null) { odlMdsalVersionLUT = new HashMap<>(); + odlMdsalVersionLUT.put("8.0.7","phosphorus-SR1 (0.15.1)"); + odlMdsalVersionLUT.put("8.0.5","phosphorus-SR0 (0.15.0)"); odlMdsalVersionLUT.put("7.0.9","silicon-SR2 (0.14.2)"); odlMdsalVersionLUT.put("7.0.7","silicon-SR1 (0.14.1)"); odlMdsalVersionLUT.put("7.0.6","silicon-SR0 (0.14.0)"); diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java index d59a0784f..00e8075f9 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java @@ -379,7 +379,7 @@ public class TestCRUDforDatabase { // ==PARTIAL UPDATE============================ System.out.println("Try partial update..."); - assertEquals(false, data.get(0).isIsRequired()); + assertEquals(false, data.get(0).requireIsRequired()); updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build(); try { updateOutput = dbProvider.updateNetworkElementConnection(updateInput); @@ -392,7 +392,7 @@ public class TestCRUDforDatabase { readOperation = dbProvider.readNetworkElementConnectionList(readInput); data = readOperation.getData(); - assertEquals(true, data.get(0).isIsRequired()); + assertEquals(true, data.get(0).requireIsRequired()); assertEquals(url2, data.get(0).getHost()); assertEquals(port2, data.get(0).getPort().longValue()); @@ -463,7 +463,7 @@ public class TestCRUDforDatabase { assertNotEquals(0, data.size()); assertNotNull(data); assertEquals(nodeId, data.get(0).getNodeId()); - assertEquals(isActive, data.get(0).isActive()); + assertEquals(isActive, data.get(0).requireActive()); // ==UPDATE============================ @@ -489,7 +489,7 @@ public class TestCRUDforDatabase { assertNotNull(data); assertEquals(nodeId2, data.get(0).getNodeId()); - assertEquals(isActive2, data.get(0).isActive()); + assertEquals(isActive2, data.get(0).getActive()); // ==DELETE================================ System.out.println("Trying to delete..."); diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java new file mode 100644 index 000000000..50c231015 --- /dev/null +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java @@ -0,0 +1,93 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2020 highstreet technologies GmbH 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.onap.ccsdk.features.sdnr.wt.dataprovider.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.json.JSONObject; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnection; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; + +public class TestMapper { + + private static final YangToolsMapper MAPPER = new YangToolsMapper(); + + @Test + public void testYangGenEnumMapperDeser() { + NetworkElementConnection con = null; + try { + con = MAPPER.readValue("{\"device-type\":\"O-RAN\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"ORAN\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); + } + + @Test + public void testYangGenEnumMapperSer() { + NetworkElementConnection con = + new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.ORAN).build(); + String str = null; + try { + str = MAPPER.writeValueAsString(con); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals("O-RAN", new JSONObject(str).getString("device-type")); + con = new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.OROADM).build(); + str = null; + try { + str = MAPPER.writeValueAsString(con); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals("O-ROADM", new JSONObject(str).getString("device-type")); + } +} diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java index 1345d4edf..35ddaf2f3 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java @@ -35,6 +35,7 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2; import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper2; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataTypeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.BIPErrorCounter; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.OpticalPowerInputOSCMin; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType; @@ -78,7 +79,7 @@ public class TestYangGenSalMappingOpenRoadm extends Mockito { String jsonString = mapper2.writeValueAsString(pmDataType); out("Result json after mapping: " + jsonString); - PmdataEntity generatepmdNode = mapper2.readValue(jsonString.getBytes(), PmdataEntity.class); + PmdataEntity generatepmdNode = mapper2.readValue(jsonString, PmdataEntity.class); out("Original: " + pmDataType.toString()); out("Mapped : " + generatepmdNode.toString()); assertTrue("Can mapping not working", generatepmdNode.equals(pmDataType)); @@ -104,9 +105,10 @@ public class TestYangGenSalMappingOpenRoadm extends Mockito { @Test public void testOpenroadmPMString2() throws IOException, ClassNotFoundException { out("Test: " + method()); + PmDataTypeBuilder.getDefaultInstance("11298624220985537708"); String jsonString2 = getFileContent("pmdata2.json"); DataProviderYangToolsMapper mapper2 = new DataProviderYangToolsMapper(); - PmdataEntity generatepmdNode = mapper2.readValue(jsonString2.getBytes(), PmdataEntity.class); + PmdataEntity generatepmdNode = mapper2.readValue(jsonString2, PmdataEntity.class); out(generatepmdNode.toString()); // Print it with specified indentation } diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java index 18efde235..7d71571d4 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java @@ -154,20 +154,17 @@ public class MariaDBTestBase { } public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; + return dbService.createTable(createStatement); } } diff --git a/sdnr/wt/data-provider/setup/pom.xml b/sdnr/wt/data-provider/setup/pom.xml index 487aacd88..7d7a6ee16 100644 --- a/sdnr/wt/data-provider/setup/pom.xml +++ b/sdnr/wt/data-provider/setup/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java index 8a0aeb05e..6148e21d5 100644 --- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java +++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java @@ -44,95 +44,98 @@ import org.slf4j.LoggerFactory; public class IstanbulReleaseInformation extends ReleaseInformation { private final Logger LOG = LoggerFactory.getLogger(IstanbulReleaseInformation.class); - + private static String NORMAL_STRING_MAX_LEN = "1024"; public static final String TIMEZONE_TYPE_FORMAT = "CHAR(6) DEFAULT NULL CHECK (`%s` regexp '^[+-]\\\\d\\\\d:\\\\d\\\\d$')"; public static final String TABLENAME_CONTROLLER_FORMAT = "controller%s"; public static final String TABLEMAPPING_CONTROLLER = - "`id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 ,primary key(id)"; + "`id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,primary key(id)"; private static final String TABLEMAPPING_CONNECTIONLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n" - + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n" + + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; private static final String TABLEMAPPING_EVENTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`attribute-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`new-value` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + "`attribute-name` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`new-value` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" + + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`source-type` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 ,\n" + private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`performance-data` JSON ,\n" + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`time-stamp` DATETIME(3) ,\n" + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + + " ,\n" + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`radio-signal-id` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" + + "`scanner-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n" - + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n" + private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`performance-data` JSON ,\n" + + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`time-stamp` DATETIME(3) ,\n" + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n" - + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" - + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" + + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n" - + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n" - + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n" - + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" - + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`version` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`date` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`tree-level` BIGINT ,\n" + + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`contained-holder` JSON ,\n" + + "`serial` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`version` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`date` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`tree-level` BIGINT ,\n" - + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`contained-holder` JSON ,\n" - + "`serial` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`active` BOOLEAN ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n" - + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` " + private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`active` BOOLEAN ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`problem` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "start-tz") + " ,\n" + "`end` DATETIME(3) ,\n" + "`end-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "end-tz") + " ,\n" - + "`object-id-ref` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`object-id-ref` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; private static final String TABLEMAPPING_MEDIATORSERVER_FORMAT = - "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`password` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`device-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`device-function` VARCHAR(512) CHARACTER SET utf8 ,\n" + "`node-details` JSON ,\n" - + "`tls-key` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`value` JSON ,\n" + private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`password` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`device-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`device-function` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-details` JSON ,\n" + + "`tls-key` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`value` JSON ,\n" + + "primary key(id)"; public IstanbulReleaseInformation() { @@ -176,9 +179,8 @@ public class IstanbulReleaseInformation extends ReleaseInformation { + "\"device-function\": {\"type\": \"keyword\"},\"is-required\": {\"type\": \"boolean\"}," + "\"status\": {\"type\": \"keyword\"},\"tls-key\": {\"type\": \"keyword\"}," + "\"mount-method\": {\"type\":\"keyword\"}}", - "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d}," - +"\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}" - )); + "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d}," + + "\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}")); return map; } diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java index 03033edad..cf369925c 100644 --- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java +++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java @@ -49,17 +49,18 @@ public class JakartaReleaseInformation extends ReleaseInformation { private static final String TIMEZONE_TYPE_FORMAT = IstanbulReleaseInformation.TIMEZONE_TYPE_FORMAT; private final Logger LOG = LoggerFactory.getLogger(JakartaReleaseInformation.class); - private static final String TABLEMAPPING_CMLOG_FORMAT = - "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n" - + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`notification-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`notification-id` VARCHAR(40) CHARACTER SET utf8 ,\n" - + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`path` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`value` VARCHAR(255) CHARACTER SET utf8 ,\n" + "primary key(id)"; + private static final String TABLEMAPPING_CMLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`object-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`notification-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`notification-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`path` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) " + + "references `controller%s`(id) "; public JakartaReleaseInformation() { super(Release.JAKARTA_R1, createDBMap(), createMariaDBMap()); diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java index 6fd4a40a4..a2a1fcdec 100644 --- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java @@ -163,21 +163,18 @@ public class MariaDBTestBase { } public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; + return dbService.createTable(createStatement); } public String getDBUrl() { return envDefaultValues.get("SDNRDBURL"); diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java index f39f9b088..ef8998875 100644 --- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java +++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java @@ -24,10 +24,10 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.setup; import static org.junit.Assert.fail; import com.fasterxml.jackson.core.JsonProcessingException; import java.lang.reflect.InvocationTargetException; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.List; -import java.util.Properties; import java.util.concurrent.TimeUnit; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -63,12 +63,12 @@ import ch.vorburger.exec.ManagedProcessException; public class TestMariaDBMapper { - private static final String MARIADB_USERNAME = "sdnrdb"; - private static final String MARIADB_PASSWORD = "sdnrdb"; - // private static final String MARIADB_HOST = "10.20.11.159"; - private static final String MARIADB_HOST = "sdnrdb"; - private static final int MARIADB_PORT = 3306; - private static final String MARIADB_DATABASENAME = "sdnrdb"; +// private static final String MARIADB_USERNAME = "sdnrdb"; +// private static final String MARIADB_PASSWORD = "sdnrdb"; +// private static final String MARIADB_HOST = "10.20.11.159"; +// private static final String MARIADB_HOST = "sdnrdb"; +// private static final int MARIADB_PORT = 3306; +// private static final String MARIADB_DATABASENAME = "sdnrdb"; // private static DbLibService dbService; @@ -137,7 +137,6 @@ public class TestMariaDBMapper { writeEntry(builder.build(), Entity.NetworkelementConnection); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | JsonProcessingException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } @@ -152,16 +151,19 @@ public class TestMariaDBMapper { private List readEntry(Entity entity, Class clazz, String id) { final SelectQuery selectStatement = new SelectQuery(entity.getName()); System.out.println(selectStatement); + List list = null; try { - return SqlDBMapper.read(dbProvider.getDBService().read(selectStatement.toSql()), clazz); + ResultSet data = dbProvider.getDBService().read(selectStatement.toSql()); + list = SqlDBMapper.read(data, clazz); + try { data.close(); } catch (SQLException ignore) { } + } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { - // TODO Auto-generated catch block e.printStackTrace(); } - return null; + return list; } private boolean writeEntry(T data, Entity entity) throws IllegalAccessException, @@ -173,7 +175,6 @@ public class TestMariaDBMapper { return dbProvider.getDBService().write(insertStatement.toSql()); } catch (SQLException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -188,41 +189,24 @@ public class TestMariaDBMapper { try { return dbService.write(createStatement); } catch (SQLException e) { - // TODO Auto-generated catch block e.printStackTrace(); } return false; } - private static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; - } - - private static Properties getConfig() { - Properties config = new Properties(); - config.setProperty("org.onap.ccsdk.sli.dbtype", "jdbc"); - config.setProperty("org.onap.ccsdk.sli.jdbc.hosts", MARIADB_HOST); - config.setProperty("org.onap.ccsdk.sli.jdbc.url", - String.format("jdbc:mysql://dbhost:%d/%s", MARIADB_PORT, MARIADB_DATABASENAME)); - config.setProperty("org.onap.ccsdk.sli.jdbc.driver", "org.mariadb.jdbc.Driver"); - config.setProperty("org.onap.ccsdk.sli.jdbc.database", MARIADB_DATABASENAME); - config.setProperty("org.onap.ccsdk.sli.jdbc.user", MARIADB_USERNAME); - config.setProperty("org.onap.ccsdk.sli.jdbc.password", MARIADB_PASSWORD); - return config; + return dbService.createTable(createStatement); } } -- cgit 1.2.3-korg