You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by no...@apache.org on 2013/02/28 15:56:03 UTC

[12/20] git commit: refs/heads/noa/packaging_rpm_fixes - CLOUDSTACK-241: Moved regions upgrade chnages to Upgrade40to41.jav from schema file. Sets the right regins_id from db.properties instead of using default 1.

CLOUDSTACK-241: Moved regions upgrade chnages to Upgrade40to41.jav from schema file. Sets the right regins_id from db.properties instead of using default 1.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/79995bf6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/79995bf6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/79995bf6

Branch: refs/heads/noa/packaging_rpm_fixes
Commit: 79995bf6296f4c9a440a1fd11fa2b0162b7d8074
Parents: 1a2173f
Author: Kishan Kavala <ki...@cloud.com>
Authored: Thu Feb 28 11:20:35 2013 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Thu Feb 28 11:21:02 2013 +0530

----------------------------------------------------------------------
 .../com/cloud/server/ConfigurationServerImpl.java  |   22 ++--
 .../src/com/cloud/upgrade/dao/Upgrade40to41.java   |  102 +++++++++++----
 setup/db/db/schema-40to410.sql                     |    2 +-
 3 files changed, 85 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79995bf6/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 294bd6a..c5ae1e2 100755
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -130,7 +130,6 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
     @Inject private ResourceCountDao _resourceCountDao;
     @Inject private NetworkOfferingServiceMapDao _ntwkOfferingServiceMapDao;
     @Inject private IdentityDao _identityDao;
-    @Inject private RegionDao _regionDao;
 
     public ConfigurationServerImpl() {
     	setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP);
@@ -236,8 +235,6 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
             // Create default networks
             createDefaultNetworks();
 
-            createDefaultRegion();
-
             // Create userIpAddress ranges
 
             // Update existing vlans with networkId
@@ -340,21 +337,23 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
 
     @DB
     protected void saveUser() {
-    	//ToDo: Add regionId to default users and accounts
+        int region_id = _configDao.getRegionId();
         // insert system account
-        String insertSql = "INSERT INTO `cloud`.`account` (id, uuid, account_name, type, domain_id, region_id) VALUES (1, UUID(), 'system', '1', '1', '1')";
+        String insertSql = "INSERT INTO `cloud`.`account` (id, uuid, account_name, type, domain_id, region_id) VALUES (1, UUID(), 'system', '1', '1', ?)";
         Transaction txn = Transaction.currentTxn();
         try {
             PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql);
+            stmt.setInt(1, region_id);
             stmt.executeUpdate();
         } catch (SQLException ex) {
         }
         // insert system user
         insertSql = "INSERT INTO `cloud`.`user` (id, uuid, username, password, account_id, firstname, lastname, created, region_id)" +
-                " VALUES (1, UUID(), 'system', RAND(), 1, 'system', 'cloud', now(), '1')";
+                " VALUES (1, UUID(), 'system', RAND(), 1, 'system', 'cloud', now(), ?)";
         txn = Transaction.currentTxn();
         try {
             PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql);
+            stmt.setInt(1, region_id);
             stmt.executeUpdate();
         } catch (SQLException ex) {
         }
@@ -367,21 +366,23 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
         String lastname = "cloud";
 
         // create an account for the admin user first
-        insertSql = "INSERT INTO `cloud`.`account` (id, uuid, account_name, type, domain_id, region_id) VALUES (" + id + ", UUID(), '" + username + "', '1', '1', '1')";
+        insertSql = "INSERT INTO `cloud`.`account` (id, uuid, account_name, type, domain_id, region_id) VALUES (" + id + ", UUID(), '" + username + "', '1', '1', ?)";
         txn = Transaction.currentTxn();
         try {
             PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql);
+            stmt.setInt(1, region_id);
             stmt.executeUpdate();
         } catch (SQLException ex) {
         }
 
         // now insert the user
         insertSql = "INSERT INTO `cloud`.`user` (id, uuid, username, password, account_id, firstname, lastname, created, state, region_id) " +
-                "VALUES (" + id + ", UUID(), '" + username + "', RAND(), 2, '" + firstname + "','" + lastname + "',now(), 'disabled', '1')";
+                "VALUES (" + id + ", UUID(), '" + username + "', RAND(), 2, '" + firstname + "','" + lastname + "',now(), 'disabled', ?)";
 
         txn = Transaction.currentTxn();
         try {
             PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql);
+            stmt.setInt(1, region_id);
             stmt.executeUpdate();
         } catch (SQLException ex) {
         }
@@ -1292,9 +1293,4 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
         return svcProviders;
     }
 
-    private void createDefaultRegion(){
-    	//Get Region name and URL from db.properties
-    	_regionDao.persist(new RegionVO(_regionDao.getRegionId(), "Local", "http://localhost:8080/client/api", "", ""));
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79995bf6/server/src/com/cloud/upgrade/dao/Upgrade40to41.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/dao/Upgrade40to41.java b/server/src/com/cloud/upgrade/dao/Upgrade40to41.java
index e7fea23..9268764 100644
--- a/server/src/com/cloud/upgrade/dao/Upgrade40to41.java
+++ b/server/src/com/cloud/upgrade/dao/Upgrade40to41.java
@@ -17,6 +17,7 @@
 
 package com.cloud.upgrade.dao;
 
+import com.cloud.utils.db.Transaction;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.script.Script;
 
@@ -33,48 +34,95 @@ import java.util.UUID;
 import org.apache.log4j.Logger;
 
 public class Upgrade40to41 implements DbUpgrade {
-	final static Logger s_logger = Logger.getLogger(Upgrade40to41.class);
-
-	@Override
-	public String[] getUpgradableVersionRange() {
-		return new String[] { "4.0.0", "4.1.0" };
-	}
-
-	@Override
-	public String getUpgradedVersion() {
-		return "4.1.0";
-	}
-
-	@Override
-	public boolean supportsRollingUpgrade() {
-		return false;
-	}
-
-	@Override
-	public File[] getPrepareScripts() {
-		String script = Script.findScript("", "db/schema-40to410.sql");
+    final static Logger s_logger = Logger.getLogger(Upgrade40to41.class);
+
+    @Override
+    public String[] getUpgradableVersionRange() {
+        return new String[] { "4.0.0", "4.1.0" };
+    }
+
+    @Override
+    public String getUpgradedVersion() {
+        return "4.1.0";
+    }
+
+    @Override
+    public boolean supportsRollingUpgrade() {
+        return false;
+    }
+
+    @Override
+    public File[] getPrepareScripts() {
+        String script = Script.findScript("", "db/schema-40to410.sql");
         if (script == null) {
             throw new CloudRuntimeException("Unable to find db/schema-40to410.sql");
         }
 
         return new File[] { new File(script) };
-	}
+    }
 
-	@Override
-	public void performDataMigration(Connection conn) {
+    @Override
+    public void performDataMigration(Connection conn) {
+        updateRegionEntries(conn);
         upgradeEIPNetworkOfferings(conn);
         upgradeEgressFirewallRules(conn);
-	}
+    }
 
-	@Override
-	public File[] getCleanupScripts() {
+    @Override
+    public File[] getCleanupScripts() {
         String script = Script.findScript("", "db/schema-40to410-cleanup.sql");
         if (script == null) {
             throw new CloudRuntimeException("Unable to find db/schema-40to410-cleanup.sql");
         }
 
         return new File[] { new File(script) };
-	}
+    }
+
+    private void updateRegionEntries(Connection conn) {
+        int region_id = Transaction.s_region_id;
+        PreparedStatement pstmt = null;
+        try {
+            //Update regionId in region table
+            s_logger.debug("Updating region table with Id: "+region_id);
+            pstmt = conn.prepareStatement("update `cloud`.`region` set id = ?");
+            pstmt.setInt(1, region_id);
+            pstmt.executeUpdate();
+
+            //Update regionId in account table
+            s_logger.debug("Updating account table with Id: "+region_id);
+            pstmt = conn.prepareStatement("update `cloud`.`account` set region_id = ?");
+            pstmt.setInt(1, region_id);
+            pstmt.executeUpdate();
+
+            //Update regionId in user table
+            s_logger.debug("Updating user table with Id: "+region_id);
+            pstmt = conn.prepareStatement("update `cloud`.`user` set region_id = ?");
+            pstmt.setInt(1, region_id);
+            pstmt.executeUpdate();
+
+            //Update regionId in domain table
+            s_logger.debug("Updating domain table with Id: "+region_id);
+            pstmt = conn.prepareStatement("update `cloud`.`domain` set region_id = ?");
+            pstmt.setInt(1, region_id);
+            pstmt.executeUpdate();
+
+            //Update regionId in cloud_usage account table
+            s_logger.debug("Updating cloud_usage account table with Id: "+region_id);
+            pstmt = conn.prepareStatement("update `cloud_usage`.`account` set region_id = ?");
+            pstmt.setInt(1, region_id);
+            pstmt.executeUpdate();
+            s_logger.debug("Successfully updated region entries with regionId: "+region_id);
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Error while updating region entries", e);
+        } finally {
+            try {
+                if (pstmt != null) {
+                    pstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+    }
 
     private void upgradeEIPNetworkOfferings(Connection conn) {
         PreparedStatement pstmt = null;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79995bf6/setup/db/db/schema-40to410.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-40to410.sql b/setup/db/db/schema-40to410.sql
index a2f5699..2c0b981 100644
--- a/setup/db/db/schema-40to410.sql
+++ b/setup/db/db/schema-40to410.sql
@@ -260,7 +260,7 @@ CREATE TABLE  `cloud`.`region` (
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-
+INSERT INTO `cloud`.`region` values ('1','Local','http://localhost:8080/client/api','','');
 ALTER TABLE `cloud`.`account` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';
 ALTER TABLE `cloud`.`user` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';
 ALTER TABLE `cloud`.`domain` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';