Return-Path: X-Original-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 60627DF8D for ; Thu, 1 Nov 2012 20:40:44 +0000 (UTC) Received: (qmail 47321 invoked by uid 500); 1 Nov 2012 20:40:44 -0000 Delivered-To: apmail-incubator-cloudstack-commits-archive@incubator.apache.org Received: (qmail 47309 invoked by uid 500); 1 Nov 2012 20:40:44 -0000 Mailing-List: contact cloudstack-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-commits@incubator.apache.org Received: (qmail 47302 invoked by uid 99); 1 Nov 2012 20:40:44 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 20:40:44 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id EB26D51947; Thu, 1 Nov 2012 20:40:43 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ahuang@apache.org To: cloudstack-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [3/3] git commit: Changed the create database steps to be create from a single create-schema.sql and then apply database modifications Message-Id: <20121101204043.EB26D51947@tyr.zones.apache.org> Date: Thu, 1 Nov 2012 20:40:43 +0000 (UTC) Changed the create database steps to be create from a single create-schema.sql and then apply database modifications Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/772f660c Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/772f660c Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/772f660c Branch: refs/heads/javelin Commit: 772f660c33162f628c03f36b8f357e5cfca65c60 Parents: 3423c5d Author: Alex Huang Authored: Fri Oct 26 17:34:24 2012 -0700 Committer: Alex Huang Committed: Thu Nov 1 13:40:15 2012 -0700 ---------------------------------------------------------------------- developer/pom.xml | 206 ++++++++++----- platform/api/pom.xml | 2 +- .../platform/cloud/entity/api/NetworkEntity.java | 1 + .../cloud/entity/api/VirtualMachineEntity.java | 4 +- server/src/com/cloud/upgrade/DatabaseCreator.java | 95 +++++--- 5 files changed, 205 insertions(+), 103 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/772f660c/developer/pom.xml ---------------------------------------------------------------------- diff --git a/developer/pom.xml b/developer/pom.xml index 2d39233..3eb493d 100644 --- a/developer/pom.xml +++ b/developer/pom.xml @@ -1,13 +1,13 @@ - + 4.0.0 @@ -34,16 +34,63 @@ - deploydb2 + deploydb - deploydb2 + deploydb org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + initialize + + read-project-properties + + + + ${project.parent.basedir}/utils/conf/db.properties + ${project.parent.basedir}/utils/conf/db.properties.override + + true + + + + + + maven-antrun-plugin + 1.7 + + + generate-resources + + run + + + + + + + + + + + + + + + + + + + + org.codehaus.mojo exec-maven-plugin 1.2.1 @@ -81,8 +128,8 @@ - package - create-database-2 + process-test-resources + create-schema java @@ -96,16 +143,91 @@ cloud-server com.cloud.upgrade.DatabaseCreator + + ${basedir}/target/db/create-schema.sql + ${basedir}/target/db/create-schema-premium.sql + com.cloud.upgrade.DatabaseUpgradeChecker + + + org.codehaus.mojo + sql-maven-plugin + 1.5 + + + + mysql + mysql-connector-java + ${cs.mysql.version} + + + + org.gjt.mm.mysql.Driver + jdbc:mysql://${db.cloud.host}:${db.cloud.port}/cloud + ${db.cloud.username} + ${db.cloud.password} + + ${maven.test.skip} + true + + + + create-other-schema + process-test-resources + + execute + + + + ${basedir}/target/db/templates.sql + ${basedir}/target/db/create-index-fk.sql + ${basedir}/target/db/cloudbridge_schema.sql + ${basedir}/target/db/cloudbridge_multipart.sql + ${basedir}/target/db/cloudbridge_index.sql + ${basedir}/target/db/cloudbridge_multipart_alter.sql + ${basedir}/target/db/cloudbridge_bucketpolicy.sql + ${basedir}/target/db/cloudbridge_policy_alter.sql + ${basedir}/target/db/cloudbridge_offering.sql + ${basedir}/target/db/cloudbridge_offering_alter.sql + + + + + prefill-schema + process-test-resources + + execute + + + INSERT INTO `cloud`.`domain` (id, name, + parent, path, owner) VALUES (1, 'ROOT', NULL, '/', + 2) + + + + prefill-configuration + process-test-resources + + execute + + + INSERT INTO `cloud`.`configuration` + (category, instance, component, name, value) VALUES + ('Hidden', 'DEFAULT', 'management-server', 'init', + 'false') + + + + - deploydb + cleandb - deploydb + cleandb @@ -143,8 +265,8 @@ - - + + - - create-schema - process-test-resources - - execute - - - - ${basedir}/target/db/create-schema.sql - ${basedir}/target/db/create-schema-premium.sql - ${basedir}/target/db/templates.sql - ${basedir}/target/db/create-index-fk.sql - ${basedir}/target/db/cloudbridge_schema.sql - ${basedir}/target/db/cloudbridge_multipart.sql - ${basedir}/target/db/cloudbridge_index.sql - ${basedir}/target/db/cloudbridge_multipart_alter.sql - ${basedir}/target/db/cloudbridge_bucketpolicy.sql - ${basedir}/target/db/cloudbridge_policy_alter.sql - ${basedir}/target/db/cloudbridge_offering.sql - ${basedir}/target/db/cloudbridge_offering_alter.sql - - - - - prefill-schema - process-test-resources - - execute - - - INSERT INTO `cloud`.`domain` (id, name, - parent, path, owner) VALUES (1, 'ROOT', NULL, '/', - 2) - - - - prefill-configuration - process-test-resources - - execute - - - INSERT INTO `cloud`.`configuration` - (category, instance, component, name, value) VALUES - ('Hidden', 'DEFAULT', 'management-server', 'init', - 'false') - - http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/772f660c/platform/api/pom.xml ---------------------------------------------------------------------- diff --git a/platform/api/pom.xml b/platform/api/pom.xml index 66f7755..ce0344a 100644 --- a/platform/api/pom.xml +++ b/platform/api/pom.xml @@ -37,6 +37,6 @@ install src - + test http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/772f660c/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java ---------------------------------------------------------------------- diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java index ce7be7c..6a91cc1 100755 --- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java +++ b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java @@ -23,4 +23,5 @@ import org.apache.cloudstack.platform.entity.api.CloudEntity; import com.cloud.network.Network; public interface NetworkEntity extends CloudEntity, Network { + void connectTo(NetworkEntity network); } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/772f660c/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java ---------------------------------------------------------------------- diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java index 23d1dad..7ed3db5 100755 --- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java +++ b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java @@ -110,11 +110,11 @@ public interface VirtualMachineEntity extends VirtualMachine, CloudEntity { * @param network network to attach * @param deviceId device id to use when a nic is created */ - void connectTo(NetworkEntity network, short deviceId); + void connectTo(NetworkEntity network, short nicId); /** * Disconnect the VM from this network * @param netowrk network to disconnect from */ - void disconnectFrom(NetworkEntity netowrk); + void disconnectFrom(NetworkEntity netowrk, short nicId); } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/772f660c/server/src/com/cloud/upgrade/DatabaseCreator.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/upgrade/DatabaseCreator.java b/server/src/com/cloud/upgrade/DatabaseCreator.java index 89e4b6b..f6a5017 100755 --- a/server/src/com/cloud/upgrade/DatabaseCreator.java +++ b/server/src/com/cloud/upgrade/DatabaseCreator.java @@ -26,11 +26,14 @@ import java.sql.Connection; import java.sql.SQLException; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.ComponentLocator; +import com.cloud.utils.component.SystemIntegrityChecker; import com.cloud.utils.db.ScriptRunner; import com.cloud.utils.db.Transaction; /** - * Creates the CloudStack Database + * Creates the CloudStack Database by using the 4.0 schema and apply + * upgrade steps to it. */ public class DatabaseCreator { protected static void printHelp(String cmd) { @@ -42,46 +45,70 @@ public class DatabaseCreator { } public static void main(String[] args) { - System.out.println("Hello world!"); - } - public static void main2(String[] args) { if (args.length < 2) { printHelp("DatabaseCreator"); System.exit(1); } - File cleanScript = PropertiesUtil.findConfigFile(args[0]); - if (cleanScript == null) { - System.err.println("Unable to find " + args[0]); - printHelp("DatabaseCreator"); - System.exit(1); - } + for (int i = 0; i < args.length; i++) { - Connection conn = Transaction.getStandaloneConnection(); + if (args[i].endsWith("sql")) { - ScriptRunner runner = new ScriptRunner(conn, true, true); - FileReader reader = null; - try { - reader = new FileReader(cleanScript); - } catch (FileNotFoundException e) { - System.err.println("Unable to read " + args[0] + ": " + e.getMessage()); - System.exit(1); - } - try { - runner.runScript(reader); - } catch (IOException e) { - System.err.println("Unable to read " + args[0] + ": " + e.getMessage()); - System.exit(1); - } catch (SQLException e) { - System.err.println("Unable to execute " + args[0] + ": " + e.getMessage()); - System.exit(1); - } + File sqlScript = PropertiesUtil.findConfigFile(args[i]); + if (sqlScript == null) { + System.err.println("Unable to find " + args[i]); + printHelp("DatabaseCreator"); + System.exit(1); + } + + System.out.println("=============> Processing SQL file at " + sqlScript.getAbsolutePath()); + + Connection conn = Transaction.getStandaloneConnection(); + try { + + ScriptRunner runner = new ScriptRunner(conn, false, true); + FileReader reader = null; + try { + reader = new FileReader(sqlScript); + } catch (FileNotFoundException e) { + System.err.println("Unable to read " + args[i] + ": " + e.getMessage()); + System.exit(1); + } + try { + runner.runScript(reader); + } catch (IOException e) { + System.err.println("Unable to read " + args[i] + ": " + e.getMessage()); + System.exit(1); + } catch (SQLException e) { + System.err.println("Unable to execute " + args[i] + ": " + e.getMessage()); + System.exit(1); + } + } finally { - try { - conn.close(); - } catch (SQLException e) { - System.err.println("Unable to close DB connection: " + e.getMessage()); + try { + conn.close(); + } catch (SQLException e) { + System.err.println("Unable to close DB connection: " + e.getMessage()); + } + } + + } else { + System.out.println("=============> Processing upgrade: " + args[i]); + Class clazz = null; + try { + clazz = Class.forName(args[i]); + if (!SystemIntegrityChecker.class.isAssignableFrom(clazz)) { + System.err.println("The class must be of SystemIntegrityChecker: " + clazz.getName()); + System.exit(1); + } + } catch (ClassNotFoundException e) { + System.err.println("Unable to find " + args[i] + ": " + e.getMessage()); + System.exit(1); + } + + SystemIntegrityChecker checker = (SystemIntegrityChecker)ComponentLocator.inject(clazz); + checker.check(); + } } } - -} +} \ No newline at end of file