Alena Prokharchyk wrote:
> Just one thing was missing - upgrade path from 4.4.1->4.5, I’ve added it
> to DataBaseUpgradeChecker:
>
> _upgradeMap.put("4.4.1", new DbUpgrade[] { new Upgrade441to450() });

Thanks for catching that and fixing it.

Regards.

>
>
> -Alena.
>
> On 7/28/14, 3:26 PM, "Alena Prokharchyk"<alena.prokharc...@citrix.com>
> wrote:
>
>> Will do, thank you, Rohit.
>>
>> -Alena.
>>
>> On 7/28/14, 3:23 PM, "Rohit Yadav"<rohit.ya...@shapeblue.com>  wrote:
>>
>>> Hi Alena,
>>>
>>> I've changed the upgrade path from 4.4.1 to 4.5.0, please verify at your
>>> end especially the DatabaseUpgradeChecker since there are too many list
>>> of upgrade path class changes.
>>>
>>> On master: d42e20429d1e238816a07edd865567c06a4914d3
>>>
>>> Regards.
>>>
>>> Alena Prokharchyk wrote:
>>>> 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=t
>>>>> o
>>>>> ol
>>>>>
>>>>> s/apidoc/gen_toc.py;h=1ad493d59ab6fb1fb52bbd07c17dc754bc128b0e;hp=bcc84
>>>>> 1
>>>>> 7c
>>>>>
>>>>> 3c5d3de2feb4129613038468c5ab9ac7;hb=628d8e6;hpb=0ac2eb4f671841b2525db81
>>>>> 0
>>>>> 94
>>>>> 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.overri
>>>>>>>> d
>>>>>>>> e
>>>>>>>> [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.overri
>>>>>>>> d
>>>>>>>> e
>>>>>>>> ========>    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.sq
>>>>>>>> l
>>>>>>>> ========>    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.sq
>>>>>>>> l
>>>>>>>> ========>    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_alt
>>>>>>> e
>>>>>>> r.
>>>>>>> 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_alte
>>>>>>> r
>>>>>>> .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.
>>>>>>> j
>>>>>>> av
>>>>>>> a:57)
>>>>>>>> at
>>>>>>>>
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>>>>>> s
>>>>>>> or
>>>>>>> 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(DatabaseUpgradeCheck
>>>>>>> e
>>>>>>> r.
>>>>>>> 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/MojoExecutionExcept
>>>>>>>> i
>>>>>>>> on
>>>>>>>>
>>>>>>>> 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.
>>> --
>>> 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.
>

--
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