aboutsummaryrefslogtreecommitdiffstats
path: root/adapters/mso-openstack-adapters/src/main
diff options
context:
space:
mode:
authorBenjamin, Max (mb388a) <mb388a@us.att.com>2019-02-04 20:02:38 -0500
committerBenjamin, Max (mb388a) <mb388a@us.att.com>2019-02-04 22:39:25 -0500
commita7058c0af341d852a667b1a5adac895e4652f01f (patch)
treeca3eeec0f3a9adcd646452d1f479b6316e43d45d /adapters/mso-openstack-adapters/src/main
parent19ae1728f6c2b2b18ced0ab8eb6b662c7122d10d (diff)
cloud config migration from openstack to catdb
remove the wait and sleep code in migration move cloud config migration from openstack to catdb Change-Id: Id887a37ce12665e5d8a604308ea251744529491c Issue-ID: SO-1461 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'adapters/mso-openstack-adapters/src/main')
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/db/migration/CloudConfig.java87
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/db/migration/R__CloudConfigMigration.java236
-rw-r--r--adapters/mso-openstack-adapters/src/main/resources/application-local.yaml5
-rw-r--r--adapters/mso-openstack-adapters/src/main/resources/application.yaml20
4 files changed, 4 insertions, 344 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/db/migration/CloudConfig.java b/adapters/mso-openstack-adapters/src/main/java/db/migration/CloudConfig.java
deleted file mode 100644
index 82139f21af..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/db/migration/CloudConfig.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package db.migration;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import org.onap.so.db.catalog.beans.CloudIdentity;
-import org.onap.so.db.catalog.beans.CloudSite;
-import org.onap.so.db.catalog.beans.CloudifyManager;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @deprecated
- * This class is introduced as deprecated as its only purpose is for migration of cloud config data. It shouldnt be used elsewhere.
- */
-
-@Deprecated
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class CloudConfig {
- @JsonProperty("identity_services")
- private Map<String, CloudIdentity> identityServices = new HashMap<>();
-
- @JsonProperty("cloud_sites")
- private Map<String, CloudSite> cloudSites = new HashMap<>();
-
- @JsonProperty("cloudify_managers")
- private Map<String, CloudifyManager> cloudifyManagers = new HashMap<>();
-
-
- public Map<String, CloudIdentity> getIdentityServices() {
- return identityServices;
- }
-
- public void setIdentityServices(Map<String, CloudIdentity> identityServices) {
- this.identityServices = identityServices;
- }
-
- public Map<String, CloudSite> getCloudSites() {
- return cloudSites;
- }
-
- public void setCloudSites(Map<String, CloudSite> cloudSites) {
- this.cloudSites = cloudSites;
- }
-
- public Map<String, CloudifyManager> getCloudifyManagers() {
- return cloudifyManagers;
- }
-
- public void setCloudifyManagers(Map<String, CloudifyManager> cloudifyManagers) {
- this.cloudifyManagers = cloudifyManagers;
- }
-
- public void populateId(){
- for (Map.Entry<String, CloudIdentity> entry : identityServices.entrySet()) {
- entry.getValue().setId(entry.getKey());
- }
-
- for (Map.Entry <String, CloudSite> entry : cloudSites.entrySet()) {
- entry.getValue().setId(entry.getKey());
- }
-
- for (Map.Entry<String, CloudifyManager> entry : cloudifyManagers.entrySet()) {
- entry.getValue().setId(entry.getKey());
- }
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/db/migration/R__CloudConfigMigration.java b/adapters/mso-openstack-adapters/src/main/java/db/migration/R__CloudConfigMigration.java
deleted file mode 100644
index 5acd8359ec..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/db/migration/R__CloudConfigMigration.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package db.migration;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
-import org.flywaydb.core.api.MigrationVersion;
-import org.flywaydb.core.api.migration.MigrationChecksumProvider;
-import org.flywaydb.core.api.migration.MigrationInfoProvider;
-import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
-import org.onap.so.db.catalog.beans.CloudIdentity;
-import org.onap.so.db.catalog.beans.CloudSite;
-import org.onap.so.db.catalog.beans.CloudifyManager;
-import org.onap.so.logger.MsoLogger;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Paths;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Collection;
-
-/**
- * Performs migration using JDBC Connection from the cloud config provided in the environment (application-{profile}.yaml) and persist data (when not already present) to the catalod database.
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class R__CloudConfigMigration implements JdbcMigration , MigrationInfoProvider, MigrationChecksumProvider {
- public static final String FLYWAY = "FLYWAY";
-
- private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, R__CloudConfigMigration.class);
- @JsonProperty("cloud_config")
- private CloudConfig cloudConfig;
-
- @Override
- public boolean isUndo(){
- return false;
- }
-
- @Override
- public void migrate(Connection connection) throws Exception {
- LOGGER.debug("Starting migration for CloudConfig");
-
- CloudConfig cloudConfig = null;
-
- String tableQuery = "SELECT * FROM identity_services";
- int totalRetries = 20;
- boolean tableExists = false;
- int count = 1;
- while(!tableExists && count != totalRetries) {
- try(Statement stmt = connection.createStatement();) {
- stmt.executeQuery(tableQuery);
- tableExists = true;
- } catch (SQLException e) {
- count++;
- // Wait 5 mintues
- Thread.sleep(300000);
- }
- }
-
- // Try the override file
- String configLocation = System.getProperty("spring.config.additional-location");
- if (configLocation != null) {
- try (InputStream stream = new FileInputStream(Paths.get(configLocation).normalize().toString())) {
- cloudConfig = loadCloudConfig(stream);
- }catch(Exception e){
- LOGGER.warnSimple("Error Loading override.yaml",e);
- }
- }
-
- if (cloudConfig == null) {
- LOGGER.debug("No CloudConfig defined in " + configLocation);
-
- // Try the application.yaml file
- try (InputStream stream = R__CloudConfigMigration.class.getResourceAsStream(getApplicationYamlName())) {
- cloudConfig = loadCloudConfig(stream);
- }
-
- if (cloudConfig == null) {
- LOGGER.debug("No CloudConfig defined in " + getApplicationYamlName());
- }
- }
-
- if(cloudConfig != null){
- migrateCloudIdentity(cloudConfig.getIdentityServices().values(), connection);
- migrateCloudSite(cloudConfig.getCloudSites().values(), connection);
- migrateCloudifyManagers(cloudConfig.getCloudifyManagers().values(), connection);
- }
- }
-
- public CloudConfig getCloudConfig() {
- return cloudConfig;
- }
-
- public void setCloudConfig(CloudConfig cloudConfig) {
- this.cloudConfig = cloudConfig;
- }
-
- private CloudConfig loadCloudConfig(InputStream stream) throws IOException {
- ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
- R__CloudConfigMigration cloudConfigMigration =
- mapper.readValue(stream, R__CloudConfigMigration.class);
- CloudConfig cloudConfig = cloudConfigMigration.getCloudConfig();
-
- if(cloudConfig != null){
- cloudConfig.populateId();
- }
-
- return cloudConfig;
- }
-
- private String getApplicationYamlName() {
- String profile = System.getProperty("spring.profiles.active") == null ? "" : "-" + System.getProperty("spring.profiles.active");
- return "/application" + profile + ".yaml";
- }
-
- private void migrateCloudIdentity(Collection<CloudIdentity> entities, Connection connection) throws SQLException {
- LOGGER.debug("Starting migration for CloudConfig-->IdentityService");
- String insert = "INSERT INTO `identity_services` (`ID`, `IDENTITY_URL`, `MSO_ID`, `MSO_PASS`, `ADMIN_TENANT`, `MEMBER_ROLE`, `TENANT_METADATA`, `IDENTITY_SERVER_TYPE`, `IDENTITY_AUTHENTICATION_TYPE`, `LAST_UPDATED_BY`) " +
- "VALUES (?,?,?,?,?,?,?,?,?,?);";
-
- try (Statement stmt = connection.createStatement();PreparedStatement ps = connection.prepareStatement(insert)) {
- for (CloudIdentity cloudIdentity : entities) {
- try (ResultSet rows = stmt.executeQuery("Select count(1) from identity_services where id='" + cloudIdentity.getId() + "'")) {
- int count = 0;
- while (rows.next()) {
- count = rows.getInt(1);
- }
- if (count == 0) {
- ps.setString(1, cloudIdentity.getId());
- ps.setString(2, cloudIdentity.getIdentityUrl());
- ps.setString(3, cloudIdentity.getMsoId());
- ps.setString(4, cloudIdentity.getMsoPass());
- ps.setString(5, cloudIdentity.getAdminTenant());
- ps.setString(6, cloudIdentity.getMemberRole());
- ps.setBoolean(7, cloudIdentity.getTenantMetadata());
- ps.setString(8, cloudIdentity.getIdentityServerType() != null ? cloudIdentity.getIdentityServerType().name() : null);
- ps.setString(9, cloudIdentity.getIdentityAuthenticationType() != null ? cloudIdentity.getIdentityAuthenticationType().name() : null);
- ps.setString(10, FLYWAY);
- ps.executeUpdate();
- }
- }
- }
- }
- }
-
- private void migrateCloudSite(Collection<CloudSite> entities, Connection connection) throws SQLException {
- LOGGER.debug("Starting migration for CloudConfig-->CloudSite");
- String insert = "INSERT INTO `cloud_sites` (`ID`, `REGION_ID`, `IDENTITY_SERVICE_ID`, `CLOUD_VERSION`, `CLLI`, `CLOUDIFY_ID`, `PLATFORM`, `ORCHESTRATOR`, `LAST_UPDATED_BY`) " +
- "VALUES (?,?,?,?,?,?,?,?,?);";
-
- try (Statement stmt = connection.createStatement();PreparedStatement ps = connection.prepareStatement(insert)) {
- for (CloudSite cloudSite : entities) {
- try (ResultSet rows = stmt.executeQuery("Select count(1) from cloud_sites where id='" + cloudSite.getId() + "'")) {
- int count = 0;
- while (rows.next()) {
- count = rows.getInt(1);
- }
- if (count == 0) {
- ps.setString(1, cloudSite.getId());
- ps.setString(2, cloudSite.getRegionId());
- ps.setString(3, cloudSite.getIdentityServiceId());
- ps.setString(4, cloudSite.getCloudVersion());
- ps.setString(5, cloudSite.getClli());
- ps.setString(6, cloudSite.getCloudifyId());
- ps.setString(7, cloudSite.getPlatform());
- ps.setString(8, cloudSite.getOrchestrator());
- ps.setString(9, FLYWAY);
- ps.executeUpdate();
- }
- }
- }
- }
- }
-
- private void migrateCloudifyManagers(Collection<CloudifyManager> entities, Connection connection) throws SQLException {
- String insert = "INSERT INTO `cloudify_managers` (`ID`, `CLOUDIFY_URL`, `USERNAME`, `PASSWORD`, `VERSION`, `LAST_UPDATED_BY`)" +
- " VALUES (?,?,?,?,?,?);";
-
- try (Statement stmt = connection.createStatement();PreparedStatement ps = connection.prepareStatement(insert)) {
- for (CloudifyManager cloudifyManager : entities) {
- try (ResultSet rows = stmt.executeQuery("Select count(1) from cloudify_managers where id='" + cloudifyManager.getId() + "'")) {
- int count = 0;
- while (rows.next()) {
- count = rows.getInt(1);
- }
- if (count == 0) {
- ps.setString(1, cloudifyManager.getId());
- ps.setString(2, cloudifyManager.getCloudifyUrl());
- ps.setString(3, cloudifyManager.getUsername());
- ps.setString(4, cloudifyManager.getPassword());
- ps.setString(5, cloudifyManager.getVersion());
- ps.setString(6, FLYWAY);
- ps.executeUpdate();
- }
- }
- }
- }
- }
-
- public MigrationVersion getVersion() {
- return null;
- }
-
- public String getDescription() {
- return "R_CloudConfigMigration";
- }
-
- public Integer getChecksum() {
- return Math.toIntExact(System.currentTimeMillis() / 1000);
- }
-}
-
diff --git a/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml b/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
index 67c4dd3c22..ef9b113e70 100644
--- a/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
+++ b/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
@@ -108,8 +108,3 @@ spring:
password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
role: ACTUATOR
-
-flyway:
- outOfOrder: true
- ignoreMissingMigrations: true
-
diff --git a/adapters/mso-openstack-adapters/src/main/resources/application.yaml b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
index 18084ced8d..e682060c74 100644
--- a/adapters/mso-openstack-adapters/src/main/resources/application.yaml
+++ b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
@@ -18,10 +18,12 @@ mso:
retryMultiplier: 60000
spring:
datasource:
- jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
+ type: com.zaxxer.hikari.HikariDataSource
+ url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driver-class-name: org.mariadb.jdbc.Driver
+ initialization-mode: never
jpa:
show-sql: true
hibernate:
@@ -43,18 +45,4 @@ management:
export:
prometheus:
enabled: true # Whether exporting of metrics to Prometheus is enabled.
- step: 1m # Step size (i.e. reporting frequency) to use.
-
-
-flyway:
- outOfOrder: true
- ignoreMissingMigrations: true
- baseline-on-migrate: true
- validate-on-migrate: false
-
-org:
- onap:
- so:
- adapters:
- network:
- encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
+ step: 1m # Step size (i.e. reporting frequency) to use.