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?