For the fix: https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=commitdiff;h=f3a9a835d32ceeecaefac70fb9b77272e914f18c I don't have any opinion about backward compatibility; but if we don't want it, is there any point in handling upgrade use cases?
Also, use same logic for Debs also? With present fix, we can do following to make sure it won't affect any functionality; 1. grep and replace all hardcoded links to /usr/<libpath>/cloud/agent to <...>/cloud/common throughout the codebase 2. fix paths in all confs, same as 1. 3. fix such paths in conf files during upgrades (this will be tricky to automate) Open for discussion, suggestions or, +1, -1, 0 to above? ________________________________________ From: Wido den Hollander [[email protected]] Sent: Saturday, October 06, 2012 12:47 AM To: [email protected] Subject: Re: [VOTE] how to upgrade CloudStack from 3.0.x to 4.0 On 10/05/2012 07:58 PM, Edison Su wrote: > Refer to bug CLOUDSTACK-248, the root cause is : > we change cloud-agent-scripts to cloud-scripts, and change the installation > path from /usr/lib64/cloud/agent to /usr/lib64/cloud/common. > But in the source code, there are some other places still use > /usr/lib64/cloud/agent. For backward compatibility, we link > /usr/lib64/cloud/common to /usr/lib64/cloud/agent during the cloud-scripts > installation. > It works for a fresh 4.0 installation, but doesn't work for upgrade: > During the upgrade, cloud-scripts will be installed first, then link from > /usr/lib64/cloud/common to /usr/lib64/cloud/agent will be created. Then > cloud-agent-scripts will be uninstalled automatically, thus > /usr/lib64/cloud/agent will be removed. When mgt server starts, it complains > can't find scripts under /usr/lib64/cloud/agent. > > Rohit fixes this issue by manually force upgrade cloud-scripts after the > upgrade process, which will install /usr/lib64/cloud/common and create the > link between /usr/lib64/cloud/common and /usr/lib64/cloud/agent. > > Actually we can put this extra installation process into ./install.sh, so it > will become transparent for end users. > Will it be reasonable/acceptable for the community? > Not everybody will use install.sh, people can also download the RPMs or DEBs manually or use a DEB/RPM repo. This should be fixed in the packaging itself. It's something I wanted to fix today, but didn't get to it. The problem lies in the management server, since I tested running the agent without the /usr/lib/cloud/agent directory and that runs just fine as long as "path.scripts" is pointing to the right path. So it's the management server which should be fixed and the whole symlink should be removed. Anything that is still searching in a hardcoded path should be fixed instead of banded. We are already seeing that the symlinking is doing, I don't want this to be haunting us for the next couple of releases. Regarding the change of the LibvirtComputingResource in agent.properties, this can be fixed in the postinst of the RPM and DEB packages by simply running a search and replace with sed on that particular file? I'm not really in favour of that however, since you are doing a major version upgrade as an admin you should take care of your configuration. Things have changed, we should just have a BIG warning in the upgrade documentation. Wido
