Bug CS-14448: Wrong error message on using the createVlanIpRange cmd
Cherry-picking from master for bug 14448 into 3.0.x.
Description:
Replacing placement of db ids in exception messages to uuids
in the file ManagementServerImpl.java.
Since there are a large number of files that throw exceptions
with db ids in them and they need to be changed, we will make
the changes in multiple commits.
Bug CS-14448: Wrong error message on using the createVlanIpRange cmd
Cherry-picking from master for bug 14448 into 3.0.x.
Description:
Adding a new class AnnotationHelper, that provides routines
to read annotations from a VO class.
Cloudstack does the mapping between cloudstack java VO objects
and the database tables using cglib. cglib creates proxy objects
as the maps between VO objects and the database. A VO (value
object) class is populated after querying from the MYSQL database.
Ideally, a getAnnotation() issued on a cglib proxy object should
get a list of all the annotations in all classes in the inheritence
chain. However, this functionality seems to be currently broken
in cglib. Hence, when querying for annotations given the object
of a VO class, we need to get to the corresponding VO class of that
cglib proxy class and issue a getAnnotation() on that class. To get
the VO class, we simply need to get the super class of the proxy
object. Also, we need to recurse to the root VO class in case the
VO class extends another VO class.
Note that the cache used by CS is ehcache.
Conflicts:
server/src/com/cloud/server/ManagementServerImpl.java
2) Added new parameter to listNetworks command - canUseForDeploy(boolean). When true, list only networks that can be used for vm deployment (networks have enough ip addresses to allocate from for the vm)
Conflicts:
api/src/com/cloud/api/ApiConstants.java
api/src/com/cloud/api/commands/ListNetworksCmd.java
api/src/com/cloud/api/response/NetworkResponse.java
api/src/com/cloud/network/NetworkService.java
server/src/com/cloud/api/ApiDBUtils.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/dao/IPAddressDao.java
server/src/com/cloud/network/dao/IPAddressDaoImpl.java
* Essential since we need firewall rules open before applying network
rules. Without the fix one recieves an UnsupportedCommandAnswer and
fails the application of the network rule
* Also RebootCommand responds with a RebootAnswer - minor fix
Description:
Checking in fix for the exception seen due to the absence of
the AsyncCommandQueued exception in the map of CSExceptionErrorCode
which is used to look up the error code corresponding to a
cloudstack exception. Also printing the stack trace in case
an exception is not found in the map.