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.

Reply via email to