The upgrade path should also be merged to master branch. Where btw I already see an upgrade path from 4.4 to 4.5 implemented. Should we change it to 4.4.1->4.5?
-Alena. On 7/28/14, 2:54 PM, "Rohit Yadav" <rohit.ya...@shapeblue.com> wrote: >Hi, > >Adding upgrade paths is simple (you may add/update a wiki page on it): > >- You add a upgrade path class under com.cloud.upgrade.dao, something >like UpgradeVERAtoVERb, in our case Upgrade440to441 which should >implement the interface DbUpgrade. If there is some complex migration >you need to do in code put the sql and other statements in >performDataMigration method. >- Put upgrade path sql statements in db/schema-440to441.sql >- Put upgrade path cleanup statements in db/schema-440to441-cleanup.sql >- Finally add the version key and add/append the upgrade class in >DatabaseUpgradeChecker and all other keys where there is a previous >upgrade path. > >On 4.4 branch see the following commit for reference which fixes this: >9de4abeb49f74cd9a4418a97a4d25e5266c81f94 > >I hope the way upgrade stuff works and the boilerplate code we add >everytime should be fixed/refactored in future. > >On 4.4, I went ahead and fixed an apidoc build issue using master's: >https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=tool >s/apidoc/gen_toc.py;h=1ad493d59ab6fb1fb52bbd07c17dc754bc128b0e;hp=bcc8417c >3c5d3de2feb4129613038468c5ab9ac7;hb=628d8e6;hpb=0ac2eb4f671841b2525db81094 >0d8502e6a3dcf4 > >Regards. > >Will Stevens wrote: >> If there is documentation for how to do this somewhere, I could >>implement >> an empty upgrade path. Do we know if there are database changes needed >>for >> the 4.4.1 upgrade from 4.4.0? How would that requirement be captured? >> >> Cheers, >> >> Will >> >> >> *Will STEVENS* >> Lead Developer >> >> *CloudOps* *| *Cloud Solutions Experts >> 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 >> w cloudops.com *|* tw @CloudOps_ >> >> >> On Mon, Jul 28, 2014 at 4:52 PM, Daan Hoogland<daan.hoogl...@gmail.com> >> wrote: >> >>> Will, >>> >>> this is a bug due to our upgrade scheme: we have not yet implemented >>> it so it is missing. We need to implement some (possibly empty) >>> upgrade path to make sure this will still work for 4.4.1. >>> >>> On Mon, Jul 28, 2014 at 9:46 PM, Will Stevens<wstev...@cloudops.com> >>> wrote: >>>> I am guessing this is a bug, but I want to post it here before I >>>>create a >>>> ticket. I have pulled down the latest code from the 4.4 branch (which >>>> results in the 4.4.1 release). >>>> >>>> I am able to compile the code without any issues, but when I run the >>>> following command to deploy my DB it fails. >>>> >>>> $ mvn -P developer -pl developer,tools/devcloud -Ddeploydb >>>> >>>> The error is: >>>> [ERROR] Failed to execute goal >>>> org.codehaus.mojo:exec-maven-plugin:1.2.1:java (create-schema) on >>>>project >>>> cloud-developer: An exception occured while executing the Java class. >>> null: >>>> InvocationTargetException: The end upgrade version is actually at >>>>4.4.0 >>> but >>>> our management server code version is at 4.4.1-SNAPSHOT -> [Help 1] >>>> >>>> It looks like there is no upgrade path from 4.4.0 to 4.4.1, but I am >>>>just >>>> taking that from the error. >>>> >>>> I checked the './setup/db/db' directory and there is no file for >>>> 'schema-440to441.sql'. Also, I looked in >>>> './engine/schema/src/com/cloud/upgrade/dao' and there is no >>>> 'Upgrade440to441.java' file. Since this file does not exist, it is >>>> obviously not included in the >>>> './engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java' >>>>file >>>> either (which is where the error originates from). >>>> >>>> I have included the entire output for completeness... >>>> >>>> Listening for transport dt_socket at address: 8787 >>>> [INFO] Scanning for projects... >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] Reactor Build Order: >>>> [INFO] >>>> [INFO] Apache CloudStack Developer Mode >>>> [INFO] Apache CloudStack DevCloud >>>> [INFO] >>>> >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] Building Apache CloudStack Developer Mode 4.4.1-SNAPSHOT >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] >>>> [INFO] --- maven-checkstyle-plugin:2.11:check (cloudstack-checkstyle) >>>>@ >>>> cloud-developer --- >>>> [INFO] Starting audit... >>>> Audit done. >>>> >>>> [INFO] >>>> [INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties >>>> (default) @ cloud-developer --- >>>> [WARNING] Ignoring missing properties file: >>>> /mnt/hgfs/cs/cloudstack/developer/../utils/conf/db.properties.override >>>> [INFO] >>>> [INFO] --- maven-remote-resources-plugin:1.3:process (default) @ >>>> cloud-developer --- >>>> [INFO] >>>> [INFO] --- maven-antrun-plugin:1.7:run (default) @ cloud-developer --- >>>> [INFO] Executing tasks >>>> >>>> main: >>>> [INFO] Executed tasks >>>> [INFO] >>>> [INFO]>>> exec-maven-plugin:1.2.1:java (create-schema) @ >>>>cloud-developer >>>> [INFO] >>>> [INFO] --- maven-checkstyle-plugin:2.11:check (cloudstack-checkstyle) >>>>@ >>>> cloud-developer --- >>>> [INFO] Starting audit... >>>> Audit done. >>>> >>>> [INFO] >>>> [INFO]<<< exec-maven-plugin:1.2.1:java (create-schema) @ >>>>cloud-developer >>>> <<< >>>> [INFO] >>>> [INFO] --- exec-maven-plugin:1.2.1:java (create-schema) @ >>>>cloud-developer >>>> --- >>>> log4j:WARN No appenders could be found for logger >>>> (org.springframework.core.env.StandardEnvironment). >>>> log4j:WARN Please initialize the log4j system properly. >>>> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig >>>>for >>>> more info. >>>> ========> WARNING: Provided file does not exist: >>>> /mnt/hgfs/cs/cloudstack/developer/../utils/conf/db.properties.override >>>> ========> WARNING: Provided file does not exist: >>>> /mnt/hgfs/cs/cloudstack/developer/developer-prefill.sql.override >>>> ========> Initializing database=cloud with host=localhost port=3306 >>>> username=cloud password=cloud >>>> ============> Running query: drop database if exists `cloud` >>>> ============> Running query: create database `cloud` >>>> ============> Running query: GRANT ALL ON cloud.* to >>>>'cloud'@`localhost` >>>> identified by 'cloud' >>>> ============> Running query: GRANT ALL ON cloud.* to 'cloud'@`%` >>> identified >>>> by 'cloud' >>>> ========> Initializing database=cloud_usage with host=localhost >>>>port=3306 >>>> username=cloud password=cloud >>>> ============> Running query: drop database if exists `cloud_usage` >>>> ============> Running query: create database `cloud_usage` >>>> ============> Running query: GRANT ALL ON cloud_usage.* to 'cloud'@ >>> `localhost` >>>> identified by 'cloud' >>>> ============> Running query: GRANT ALL ON cloud_usage.* to >>>>'cloud'@`%` >>>> identified by 'cloud' >>>> ========> Initializing database=cloudbridge with host=localhost >>>>port=3306 >>>> username=cloud password=cloud >>>> ============> Running query: drop database if exists `cloudbridge` >>>> ============> Running query: create database `cloudbridge` >>>> ============> Running query: GRANT ALL ON cloudbridge.* to 'cloud'@ >>> `localhost` >>>> identified by 'cloud' >>>> ============> Running query: GRANT ALL ON cloudbridge.* to >>>>'cloud'@`%` >>>> identified by 'cloud' >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/create-schema.sql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/create-schema-premium.sql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/templates.sql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_schema.sql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_multipart.sql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_index.sql >>>> ========> Processing SQL file at >>>> >>> >>>/mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_multipart_alter. >>>sql >>>> ========> Processing SQL file at >>>> >>>>/mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_bucketpolicy.sq >>>>l >>>> ========> Processing SQL file at >>>> >>>>/mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_policy_alter.sq >>>>l >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_offering.sql >>>> ========> Processing SQL file at >>>> >>> >>>/mnt/hgfs/cs/cloudstack/developer/target/db/cloudbridge_offering_alter.s >>>ql >>>> ========> Processing SQL file at >>>> /mnt/hgfs/cs/cloudstack/developer/developer-prefill.sql >>>> ========> Processing upgrade: >>>>com.cloud.upgrade.DatabaseUpgradeChecker >>>> [WARNING] >>>> java.lang.reflect.InvocationTargetException >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> >>> >>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav >>>a:57) >>>> at >>>> >>> >>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor >>>Impl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297) >>>> at java.lang.Thread.run(Thread.java:744) >>>> Caused by: com.cloud.utils.exception.CloudRuntimeException: The end >>> upgrade >>>> version is actually at 4.4.0 but our management server code version >>>>is at >>>> 4.4.1-SNAPSHOT >>>> at >>>> >>> >>>com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker. >>>java:272) >>>> at >>>> >>> >>>com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.ja >>>va:432) >>>> at com.cloud.upgrade.DatabaseCreator.main(DatabaseCreator.java:217) >>>> ... 6 more >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] Reactor Summary: >>>> [INFO] >>>> [INFO] Apache CloudStack Developer Mode .................. FAILURE >>> [13.648s] >>>> [INFO] Apache CloudStack DevCloud ........................ SKIPPED >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] BUILD FAILURE >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [INFO] Total time: 16.677s >>>> [INFO] Finished at: Mon Jul 28 15:13:44 EDT 2014 >>>> [INFO] Final Memory: 38M/95M >>>> [INFO] >>>> >>>>----------------------------------------------------------------------- >>>>- >>>> [ERROR] Failed to execute goal >>>> org.codehaus.mojo:exec-maven-plugin:1.2.1:java (create-schema) on >>>>project >>>> cloud-developer: An exception occured while executing the Java class. >>> null: >>>> InvocationTargetException: The end upgrade version is actually at >>>>4.4.0 >>> but >>>> our management server code version is at 4.4.1-SNAPSHOT -> [Help 1] >>>> [ERROR] >>>> [ERROR] To see the full stack trace of the errors, re-run Maven with >>>>the >>> -e >>>> switch. >>>> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >>>> [ERROR] >>>> [ERROR] For more information about the errors and possible solutions, >>>> please read the following articles: >>>> [ERROR] [Help 1] >>>> >>>>http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException >>>> >>>> I currently have a dev environment available that I can revert to a >>>>clean >>>> install to test potential solutions if anyone has suggestions. >>>> >>>> Cheers, >>>> >>>> *Will STEVENS* >>>> Lead Developer >>>> >>>> *CloudOps* *| *Cloud Solutions Experts >>>> 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 >>>> w cloudops.com *|* tw @CloudOps_ >>> >>> >>> -- >>> Daan >>> >> > >-- >Rohit Yadav >Software Architect, ShapeBlue >M. +41 779015219 | rohit.ya...@shapeblue.com >Blog: bhaisaab.org | Twitter: @_bhaisaab > > >Find out more about ShapeBlue and our range of CloudStack related services > >IaaS Cloud Design & >Build<http://shapeblue.com/iaas-cloud-design-and-build//> >CSForge rapid IaaS deployment framework<http://shapeblue.com/csforge/> >CloudStack Consulting<http://shapeblue.com/cloudstack-consultancy/> >CloudStack Infrastructure >Support<http://shapeblue.com/cloudstack-infrastructure-support/> >CloudStack Bootcamp Training >Courses<http://shapeblue.com/cloudstack-training/> > >This email and any attachments to it may be confidential and are intended >solely for the use of the individual to whom it is addressed. Any views >or opinions expressed are solely those of the author and do not >necessarily represent those of Shape Blue Ltd or related companies. If >you are not the intended recipient of this email, you must neither take >any action based upon its contents, nor copy or show it to anyone. Please >contact the sender if you believe you have received this email in error. >Shape Blue Ltd is a company incorporated in England & Wales. ShapeBlue >Services India LLP is a company incorporated in India and is operated >under license from Shape Blue Ltd. Shape Blue Brasil Consultoria Ltda is >a company incorporated in Brasil and is operated under license from Shape >Blue Ltd. ShapeBlue SA Pty Ltd is a company registered by The Republic of >South Africa and is traded under license from Shape Blue Ltd. ShapeBlue >is a registered trademark.