mirror of
https://github.com/corda/corda.git
synced 2025-02-06 11:09:18 +00:00
[CORDA-2591] Prevent spurious logs in AttachmentVersionNumberMigration (#4765)
* Handle case where file containing network parameters is missing * Improve logging if attachments are not available and the file path doesn't exist * Get logs the right way around * Fix build error in tests
This commit is contained in:
parent
d43d0c9640
commit
092d66ac45
@ -29,11 +29,15 @@ class AttachmentVersionNumberMigration : CustomTaskChange {
|
|||||||
logger.info("Start executing...")
|
logger.info("Start executing...")
|
||||||
var networkParameters: NetworkParameters?
|
var networkParameters: NetworkParameters?
|
||||||
val baseDir = System.getProperty(SchemaMigration.NODE_BASE_DIR_KEY)
|
val baseDir = System.getProperty(SchemaMigration.NODE_BASE_DIR_KEY)
|
||||||
|
val availableAttachments = getAttachmentsWithDefaultVersion(connection)
|
||||||
if (baseDir != null) {
|
if (baseDir != null) {
|
||||||
val path = Paths.get(baseDir) / NETWORK_PARAMS_FILE_NAME
|
val path = Paths.get(baseDir) / NETWORK_PARAMS_FILE_NAME
|
||||||
networkParameters = getNetworkParametersFromFile(path)
|
networkParameters = getNetworkParametersFromFile(path)
|
||||||
if (networkParameters != null) {
|
if (networkParameters != null) {
|
||||||
logger.info("$msg using network parameters from $path, whitelistedContractImplementations: ${networkParameters.whitelistedContractImplementations}.")
|
logger.info("$msg using network parameters from $path, whitelistedContractImplementations: ${networkParameters.whitelistedContractImplementations}.")
|
||||||
|
} else if (availableAttachments.isEmpty()){
|
||||||
|
logger.info("$msg skipped, network parameters not found in $path, but there are no available attachments to migrate.")
|
||||||
|
return
|
||||||
} else {
|
} else {
|
||||||
logger.warn("$msg skipped, network parameters not found in $path.")
|
logger.warn("$msg skipped, network parameters not found in $path.")
|
||||||
return
|
return
|
||||||
@ -43,7 +47,6 @@ class AttachmentVersionNumberMigration : CustomTaskChange {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val availableAttachments = getAttachmentsWithDefaultVersion(connection)
|
|
||||||
if (availableAttachments.isEmpty()) {
|
if (availableAttachments.isEmpty()) {
|
||||||
logger.info("$msg skipped, no attachments not found.")
|
logger.info("$msg skipped, no attachments not found.")
|
||||||
return
|
return
|
||||||
@ -84,8 +87,13 @@ class AttachmentVersionNumberMigration : CustomTaskChange {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getNetworkParametersFromFile(path: Path): NetworkParameters? {
|
private fun getNetworkParametersFromFile(path: Path): NetworkParameters? {
|
||||||
val networkParametersBytes = path?.readObject<SignedNetworkParameters>()
|
return try {
|
||||||
return networkParametersBytes?.raw?.deserialize()
|
val networkParametersBytes = path?.readObject<SignedNetworkParameters>()
|
||||||
|
networkParametersBytes?.raw?.deserialize()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
// This condition is logged in the calling function, so no need to do that here.
|
||||||
|
null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getAttachmentsWithDefaultVersion(connection: JdbcConnection): List<String> =
|
private fun getAttachmentsWithDefaultVersion(connection: JdbcConnection): List<String> =
|
||||||
|
@ -30,7 +30,7 @@ class SchemaMigration(
|
|||||||
private val databaseConfig: DatabaseConfig,
|
private val databaseConfig: DatabaseConfig,
|
||||||
private val classLoader: ClassLoader = Thread.currentThread().contextClassLoader,
|
private val classLoader: ClassLoader = Thread.currentThread().contextClassLoader,
|
||||||
private val currentDirectory: Path?,
|
private val currentDirectory: Path?,
|
||||||
private val ourName: CordaX500Name? = null) {
|
private val ourName: CordaX500Name) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val logger = contextLogger()
|
private val logger = contextLogger()
|
||||||
@ -102,9 +102,7 @@ class SchemaMigration(
|
|||||||
if (path != null) {
|
if (path != null) {
|
||||||
System.setProperty(NODE_BASE_DIR_KEY, path) // base dir for any custom change set which may need to load a file (currently AttachmentVersionNumberMigration)
|
System.setProperty(NODE_BASE_DIR_KEY, path) // base dir for any custom change set which may need to load a file (currently AttachmentVersionNumberMigration)
|
||||||
}
|
}
|
||||||
if (ourName != null) {
|
System.setProperty(NODE_X500_NAME, ourName.toString())
|
||||||
System.setProperty(NODE_X500_NAME, ourName.toString())
|
|
||||||
}
|
|
||||||
val customResourceAccessor = CustomResourceAccessor(dynamicInclude, changelogList, classLoader)
|
val customResourceAccessor = CustomResourceAccessor(dynamicInclude, changelogList, classLoader)
|
||||||
|
|
||||||
val liquibase = Liquibase(dynamicInclude, customResourceAccessor, getLiquibaseDatabase(JdbcConnection(connection)))
|
val liquibase = Liquibase(dynamicInclude, customResourceAccessor, getLiquibaseDatabase(JdbcConnection(connection)))
|
||||||
|
@ -1093,7 +1093,7 @@ fun createCordaPersistence(databaseConfig: DatabaseConfig,
|
|||||||
return CordaPersistence(databaseConfig, schemaService.schemaOptions.keys, jdbcUrl, cacheFactory, attributeConverters, customClassLoader)
|
return CordaPersistence(databaseConfig, schemaService.schemaOptions.keys, jdbcUrl, cacheFactory, attributeConverters, customClassLoader)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun CordaPersistence.startHikariPool(hikariProperties: Properties, databaseConfig: DatabaseConfig, schemas: Set<MappedSchema>, metricRegistry: MetricRegistry? = null, classloader: ClassLoader = Thread.currentThread().contextClassLoader, currentDir: Path? = null, ourName: CordaX500Name? = null) {
|
fun CordaPersistence.startHikariPool(hikariProperties: Properties, databaseConfig: DatabaseConfig, schemas: Set<MappedSchema>, metricRegistry: MetricRegistry? = null, classloader: ClassLoader = Thread.currentThread().contextClassLoader, currentDir: Path? = null, ourName: CordaX500Name) {
|
||||||
try {
|
try {
|
||||||
val dataSource = DataSourceFactory.createDataSource(hikariProperties, metricRegistry = metricRegistry)
|
val dataSource = DataSourceFactory.createDataSource(hikariProperties, metricRegistry = metricRegistry)
|
||||||
val schemaMigration = SchemaMigration(schemas, dataSource, databaseConfig, classloader, currentDir, ourName)
|
val schemaMigration = SchemaMigration(schemas, dataSource, databaseConfig, classloader, currentDir, ourName)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user