Description:
As part of the fix for Bug CS-13127, a new overloaded function,
addProxyObject() was added to facilitate transparent db id to
uuid conversions when db IDs were added to exceptions that were
thrown in the Cloudstack mgmt server code. However, it turns out
that there are quite many db IDs still in the code that are
being directly embedded in the String message that is passed
during exception creation.
In this commit, we modify the default constructor of
InvalidParameterValueException so that it takes a second
argument of type List<IdentityProxy>. This will help developers
see that there is a second parameter required, and make them
look into what that parameter is about. Hopefully, this will
stop db IDs from being embedded into the exception message.
The parameter can be set to null though, since there are many
places in the code that don't embed any DB IDs in the exception.
This is still a WIP, so the older default constructor for
InvalidParameterValueException has not been removed yet. When
all instances of throw new InvalidParameterValueException()
have been moved over to the new default constructor, the old
one will be removed, else compilation will break. The reason
for having to do this in batches is that there are way too
many places in the code that throw exceptions, and they all
cannot be covered in a single commit without it taking much
time.
In following commits, all other exceptions will be changed
in the same way as InvalidParameterValueException.
2) added "tags" request parameter to the banch of list* Api commands (listVirtualMachines, listSnapshots - all commands are listed in the resource tags functional spec)
* Separate service for NetworkACL - "NetworkACL" service
* allow having just one network supporting LB in the VPC
* perform check against VPC when upgrade network to the new network offering (the same set of checks when you add new network to the VPC)
Description:
Fixing two other scenarios apart from the reported one
where we were not passing in database IDs for translation
into uuids, in the exception.
Bug CS-14448: Wrong error message on using the createVlanIpRange cmd
Cherry-picking from master for bug 14448 into 3.0.x. Resolved
conflicts encountered during cherry-picking.
Description:
Adding overloaded addProxyObject() function to CloudException
and RuntimeCloudException classes and using this function
to stuff exceptions with IDs, to reduce code footprint.
Conflicts:
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/resource/ResourceManagerImpl.java
Bug CS-14448: Wrong error message on using the createVlanIpRange cmd
Cherry-picking from master for bug 14448 into 3.0.x. Resolving
conflicts arising from the pick.
Description:
Modifying the API functions' exception handling to call
addProxyObject() wherever applicable, and removing some
wrong calls to addProxyObject() that were put in in an
earlier commit for this bug.
With this commit, we cover many API functions to use the
new exception handling code, but some pieces may still be
left out. These will be covered as work in progress, when
making changes to the CS API code.
Conflicts:
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
server/src/com/cloud/resource/ResourceManagerImpl.java
Bug CS-14448: Wrong error message on using the createVlanIpRange cmd
Cherry-picking from master for bug 14448 into 3.0.x. Modified the
pick to resolve some conflicts.
Description:
Removed some wrong invocations to addProxyObject() when
throwing exceptions in NetworkManagerImpl.java.
Replaced db ids with uuids in various points in the code
of NetworkManagerImpl.java, where exceptions are thrown.
Conflicts:
server/src/com/cloud/network/NetworkManagerImpl.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