Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOSIP-36077 - Restructured the config manager #1625

Merged
merged 4 commits into from
Sep 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package io.mosip.testrig.apirig.dbaccess;

import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
Expand All @@ -19,14 +17,11 @@
import org.hibernate.jdbc.Work;
import org.testng.Assert;

import io.mosip.testrig.apirig.testrunner.MosipTestRunner;
import io.mosip.testrig.apirig.utils.AdminTestUtil;
import io.mosip.testrig.apirig.utils.ConfigManager;

public class AuditDBManager extends AdminTestUtil {
private static final Logger DBCONNECTION_LOGGER = Logger.getLogger(AuditDBManager.class);
private static Map<String, Object> records;
private static List<Map<String, Object>> allRecords;
public static String env = System.getProperty("env.user");
public static Map<String, SessionFactory> sessionFactoryMapS = Collections
.synchronizedMap(new HashMap<String, SessionFactory>());
Expand Down Expand Up @@ -104,40 +99,38 @@ private static Session getDataBaseConnection(String dbName) {
Session session = null;
SessionFactory sessionFactory = sessionFactoryMapS.get(dbName);
if (sessionFactory == null) {
try {
try {
sessionFactory = getDataBaseConnectionSessionFactory(dbName);
sessionFactoryMapS.put(dbName, sessionFactory);
} catch (HibernateException e) {
DBCONNECTION_LOGGER.error("Exception in Database Connection with following message: " + e.getMessage());
} catch (NullPointerException e) {
Assert.assertTrue(false, "Exception in getting the SessionFactory for DB Schema : " + dbName );
Assert.assertTrue(false, "Exception in getting the SessionFactory for DB Schema : " + dbName);
}
}
if (sessionFactory != null) {
session = sessionFactory.getCurrentSession();
session.beginTransaction();
DBCONNECTION_LOGGER.info("Session begined with Schema : " + dbName);
}
return session;
return session;
}

private static SessionFactory getDataBaseConnectionSessionFactory(String dbName) {
SessionFactory factory = null;
String dbschema = ConfigManager.getAuditDbSchema();

if(dbName.equalsIgnoreCase("partner"))
dbschema=ConfigManager.getIdaDbSchema();
if(dbName.equalsIgnoreCase("master"))
dbschema=ConfigManager.getMasterDbSchema();
if (dbName.equalsIgnoreCase("partner"))
dbschema = ConfigManager.getIdaDbSchema();

if (dbName.equalsIgnoreCase("master"))
dbschema = ConfigManager.getMasterDbSchema();

try {
Configuration config = new Configuration();
config.setProperty("hibernate.connection.driver_class", ConfigManager.getproperty("driver_class"));
config.setProperty("hibernate.connection.url",
"jdbc:" + ConfigManager.getproperty("postgresqlUser") + "://"
+ ConfigManager.getDbServer() + ":" + ConfigManager.getDbPort()
+ "/mosip_" + dbschema);
config.setProperty("hibernate.connection.url", "jdbc:" + ConfigManager.getproperty("postgresqlUser") + "://"
+ ConfigManager.getDbServer() + ":" + ConfigManager.getDbPort() + "/mosip_" + dbschema);
config.setProperty("hibernate.connection.username", ConfigManager.getAuditDbUser());
config.setProperty("hibernate.connection.password", ConfigManager.getAuditDbPass());
config.setProperty("hibernate.default_schema", ConfigManager.getproperty(dbName + "_default_schema"));
Expand All @@ -146,21 +139,20 @@ private static SessionFactory getDataBaseConnectionSessionFactory(String dbName)
config.setProperty("hibernate.show_sql", ConfigManager.getproperty("show_sql"));
config.setProperty("hibernate.current_session_context_class",
ConfigManager.getproperty("current_session_context_class"));
factory = config.buildSessionFactory();
factory = config.buildSessionFactory();
} catch (HibernateException e) {
DBCONNECTION_LOGGER.error("Exception in Database Connection with following message: " + e.getMessage());
} catch (NullPointerException e) {
Assert.assertTrue(false, "Exception in getting the SessionFactory for DB Schema : " + dbschema );
Assert.assertTrue(false, "Exception in getting the SessionFactory for DB Schema : " + dbschema);
}
return factory;
}


public static void closeDataBaseConnection(Session session) {
if (session != null) {
DBCONNECTION_LOGGER.info("Session closed");
session.close();
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@
import java.text.NumberFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;

import org.apache.commons.lang3.SerializationUtils;
import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ISuiteResult;
Expand Down Expand Up @@ -187,6 +185,14 @@ private String getCommitId() {
}

}

private static String convertMillisToTime(long milliseconds) {
long seconds = (milliseconds / 1000) % 60;
long minutes = (milliseconds / (1000 * 60)) % 60;
long hours = (milliseconds / (1000 * 60 * 60)) % 24;
// Format time into HH:MM:SS
return String.format("%02d:%02d:%02d", hours, minutes, seconds);
}

protected PrintWriter createWriter(String outdir) throws IOException {
new File(outdir).mkdirs();
Expand Down Expand Up @@ -253,7 +259,6 @@ protected void writeDocumentEnd() {

protected void writeSuiteSummary() {
NumberFormat integerFormat = NumberFormat.getIntegerInstance();
NumberFormat decimalFormat = NumberFormat.getNumberInstance();
LocalDate currentDate = LocalDate.now();
String formattedDate =null;
String branch = null;
Expand Down Expand Up @@ -335,7 +340,7 @@ protected void writeSuiteSummary() {
if (reportKnownIssueTestCases) {
writer.print("<th># Known_Issues</th>");
}
writer.print("<th>Execution Time (ms)</th>");
writer.print("<th>Execution Time (HH:MM:SS)</th>");
// writer.print("<th>Included Groups</th>");
// writer.print("<th>Excluded Groups</th>");
writer.print(GlobalConstants.TR);
Expand Down Expand Up @@ -388,7 +393,7 @@ protected void writeSuiteSummary() {
if (reportKnownIssueTestCases) {
writeTableData(integerFormat.format(knownIssueTests), (knownIssueTests > 0 ? "num thich-orange-bg" : "num"));
}
writeTableData(decimalFormat.format(duration), "num");
writeTableData(convertMillisToTime(duration), "num");
// writeTableData(testResult.getIncludedGroups());
// writeTableData(testResult.getExcludedGroups());

Expand Down Expand Up @@ -435,7 +440,7 @@ protected void writeSuiteSummary() {
writeTableHeader(integerFormat.format(totalKnownIssueTests),
(totalKnownIssueTests > 0 ? "num thich-orange-bg" : "num"));
}
writeTableHeader(decimalFormat.format(totalDuration), "num");
writeTableHeader(convertMillisToTime(totalDuration), "num");
writer.print(GlobalConstants.TR);
}

Expand Down Expand Up @@ -505,7 +510,7 @@ protected void writeScenarioSummary() {
writer.print("<th>Unique Identifier</th>");
writer.print("<th>Test Case</th>");
writer.print("<th>Test Case Description</th>");
writer.print("<th>Execution Time (ms)</th>");
writer.print("<th>Execution Time (HH:MM:SS)</th>");
writer.print(GlobalConstants.TR);
writer.print("</thead>");

Expand Down Expand Up @@ -636,7 +641,7 @@ private int writeScenarioSummary(String description, List<ClassResult> classResu
.append(methodName).append("</a></td>").append("<td style=\"text-align:center;\">")
.append(testCaseDescription).append("</td>")
.append("<td style=\"text-align:center;\" rowspan=\"").append(resultsCount).append("\">")
.append(duration).append("</td></tr>");
.append(convertMillisToTime(duration)).append("</td></tr>");

scenarioIndex++;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.security.SecureRandom;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -39,8 +40,6 @@
import io.mosip.testrig.apirig.utils.GlobalConstants;
import io.mosip.testrig.apirig.utils.GlobalMethods;
import io.mosip.testrig.apirig.utils.KernelAuthentication;
import io.mosip.testrig.apirig.utils.KeycloakUserManager;
import io.mosip.testrig.apirig.utils.PartnerRegistration;
import io.mosip.testrig.apirig.utils.RestClient;
import io.restassured.RestAssured;
import io.restassured.response.Response;
Expand Down Expand Up @@ -346,8 +345,18 @@ public static void suiteSetup() {

public static void setReportName(String moduleName) {
System.getProperties().setProperty("emailable.report2.name",
"mosip-" + environment + "-" + moduleName + "-" + System.currentTimeMillis() + "-report.html");
"mosip-" + environment + "-" + moduleName + "-" + getCurrentDateTime() + "-report.html");
}

// Method to get the current date and time in the specified format
public static String getCurrentDateTime() {
// Get the current date and time
LocalDateTime now = LocalDateTime.now();
// Define the desired formatter with the pattern "yyyy-MM-dd_HH:mm:ss"
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm");
// Format the current date and time using the formatter
return now.format(formatter);
}

/**
* After the entire test suite clean up rest assured
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,7 @@
import io.mosip.testrig.apirig.utils.AdminTestUtil;
import io.mosip.testrig.apirig.utils.CertificateGenerationUtil;
import io.mosip.testrig.apirig.utils.CertsUtil;
import io.mosip.testrig.apirig.utils.ConfigManager;
import io.mosip.testrig.apirig.utils.EncryptionDecrptionUtil;
import io.mosip.testrig.apirig.utils.GlobalConstants;
import io.mosip.testrig.apirig.utils.GlobalMethods;
import io.mosip.testrig.apirig.utils.JWKKeyUtil;
import io.mosip.testrig.apirig.utils.KeyCloakUserAndAPIKeyGeneration;
import io.mosip.testrig.apirig.utils.KeycloakUserManager;
Expand Down Expand Up @@ -69,7 +66,6 @@ public static void main(String[] arg) {
} else {
ExtractResource.copyCommonResources();
}
// ConfigManager.init();
BaseTestCase.suiteSetup();
setLogLevels();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,14 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import org.apache.log4j.Logger;

import io.mosip.testrig.apirig.testrunner.MosipTestRunner;

public class ConfigManager {
private static final Logger LOGGER = Logger.getLogger(ConfigManager.class);

Expand Down Expand Up @@ -110,8 +106,7 @@ public static String getproperty(String key) {


public static String getRolesForUser(String userId) {
Properties props = getproperties(MosipTestRunner.getGlobalResourcePath() + "/" + "config/Kernel.properties");
return props.getProperty("roles." + userId);
return getproperty("roles." + userId);
}

public static String getServerErrorsToMonitor() { return getproperty("serverErrorsToMonitor"); }
Expand Down
16 changes: 6 additions & 10 deletions apitest-commons/src/main/resources/config/Kernel.properties
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ auditActuatorEndpoint=/v1/auditmanager/actuator/info
validateBindingEndpoint=ida-binding
esignetWellKnownEndPoint=/v1/esignet/oidc/.well-known/openid-configuration
signupSettingsEndPoint=/v1/signup/settings

esignetActuatorPropertySection=esignet-default.properties



Expand Down Expand Up @@ -210,10 +210,7 @@ hibernate.show_sql=true
hibernate.current_session_context_class=thread
db-su-user=postgres
postgres-password=
pms_db_schema=pms
km_db_schema=keymgr
master_db_schema=master
audit_db_schema=audit
ida_db_schema=ida


Expand Down Expand Up @@ -241,6 +238,7 @@ usePreConfiguredOtp=false
eSignetDeployed=yes
partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732
reportIgnoredTestCases=no
reportKnownIssueTestCases=no
servicesNotDeployed=
esignetMockBaseURL=esignet-insurance.
sunBirdBaseURL=registry
Expand All @@ -258,6 +256,8 @@ admin_password=mosip123
admin_userName=220005
admin_zone_password=mosip123
admin_zone_userName=globaladmin
mockNotificationChannel=email,phone
mountPathForReport=/home/mosip/testrig/report



Expand All @@ -272,13 +272,9 @@ langselect=0

#----------------------------------AuthDemoService Host properties----------------------------------------------------------#
#Uncommemnt the below to run locally
authDemoServiceBaseURL=http://localhost
authDemoServicePort=8082
authCertsPath=
#authCertsPath=
#Uncommemnt the below to run in Docker
#authDemoServiceBaseURL=http://authdemo.apitestrig
#authDemoServicePort=80
#authCertsPath=/home/mosip/authcerts
authCertsPath=/home/mosip/authcerts


mosip_components_base_urls=
Expand Down
Loading