Changes:
- Since Now a zone can have multiple physical networks, we need to find the physical network Id from the networkOffering's tag and zoneId and trafficType when we create a guest network
Reviewed-By: Alena
Changes:
- Correct the virtual router entries from table' virtual_router_providers' that wrongly refer to SecurityGroupProvider instead of VirtualRouter provider in physical_network_service_providers table
- For such entries, we update them to point to the VirtualRouter provider in physical_network_service_providers table
reviewed-by: kishan
- Add physical network to the removed data_center as well and mark it as removed, to avoid foreign constraint failures
- Since rest all stuff related to multiple physcial networks is done based on networks having non-null removed field, nothing will apply to this zone.
Reviewed-By: Alena
- Update instructions for setups with multiple physical networks and guest vnets
- if there are such setups upgraded to 3.0.3 and face problems starting VMs, then they need to roll back to 2.2.14 and carry out the instructions and then upgrade to 3.0.4
Reviewed-By: Alena
Changes:
- Looks like we cannot default to 'cloud-private' label.
- If it is not set, CS figures out the default management interface and usus its name.
- We will use the global config variable as the label. if it is null, the label on the physical network will be null.
Reviewed-by: Alena
Changes:
- If a 2.2.14 setup uses guest vnet and has multiple network tags, we cannot upgrade this to 3.0.x since on upgrade we dont know how to assign the vnets to physical networks
- So we error out and provide instructions
- If an already upgraded 3.0.3 setup has this some guest networks using vnet but the assignment of vnet to physical network is wrong, upgrade to 3.04 will detect it and error out with further steps
CS-15414 [upgrde from 2.2.14 to 3.0.4] Need to decrypt xen.guest.network.device value before setting the traffic label after upgrade.
Reviewed-by: Alena
- This uncovered a generic case where only 1 network tag is used and other few untagged networks.
- Upgrdae 303 to 304, should create a physical network for the untagged networks.
- Earlier we were doing this only if the 303 db has multiple physical networks. But in this case the 303 db will have just 1 physcial network (created due to the single tag used on 2.2.14).
- So we need to create the extra physical network for the untagged networks irrespective of the number of physical networks present in 303 db.
- This commit also take care of the decryption of the xen.guest.network.device value
Reviewed-By: Sheng Yang
Changes:
- Add uuid to data_center while upgrading from 2.2.14 to 3.0x.
- For previous setups that have already been updated, correctly add the uuid in 304 upgrade
CS-15382: Hosts going to Alert state if there were destroyed networks with non-existent tags prior to upgrade
Reviewed-By: Alena P.
Changes:
- If 2.2.14, create the SG provider by looking at is_security_group_enabled flag
- if 3.0.3, create the SG provider by looking at the ntwk_service_map.
Reviewed-By: Alena P.
Changes:
- Added upgrade path to 304. This would check the missing portions of the previous upgrades and try to correct.
- This will check if the setup has multiple physical networks with Guest traffic type. If yes then:
- Check if the previous upgrade has left behind any guest networks that were untagged in 2.2.14. For such networks, add a new physical network
- Check if the multiple physical network has tags. If no add tag and clone the network offerings for the networks on this physical network and add this tag to them
- Also clone the network offering service map.
- Thus this creates copies of offerings for each physical network.
Description:
Removing a reference to user_vm table when populating a system VM
id in an exception. Undoing change committed earlier as part of
Bug CS-15217.
Issue happens when ROOT volume gets created and there is subsequent failure in starting the VM. During retry if allocator assigns a different storage pool the scenario was not handled. Now in case of local storage the volume get recreated on the newly assigned pool and old one gets cleaned up. In case of shared storage the existing volume is migrated to new storage pool.
Reviewed-by: Prachi, Edison, Nitin
Description:
vlanId isn't a db ID, so removing its inclusion
in an IdentityProxy object when throwing an
exception. It's a string, so it was causing
problems since it was being converted to a Long.
Additional fix needed if an instance is being created from an ISO. If an instance is created from an iso disk
offering id is not null and only one root volume disk is created. Making a fix to pass the right resource count
for an instance being created from an iso.
Reviewed-By: Rajesh
Reviewed-by: devdeep.singh@citrix.com
Change:
1. Before creating the snapshot, we synchronized checkresourcelimit to allow the users to create the snapshot and increment the resource count.
2. Depending on the failure of snapshot creation/ backup, we are decrementing the resource count.
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.
Description:
Qualifying the VSM password stored in virtual_supervisor_module
as encryptable. The encryption/decryption is transparently done
by the cloudstack DAO layer.
2) added "tags" request parameter to the banch of list* Api commands (listVirtualMachines, listSnapshots - all commands are listed in the resource tags functional spec)
Description:
Encrypting password values before they're written out to
the cluster_details db, and decrypting them when reading
in the values from the db.
* 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:
1. Added exception processing for uuid lists in exceptions,
for commands of type BaseAsyncCreateCmd.
2. Added nullpointer check in addProxyObject().
3. Miscellaneous whitespace reformatting for git patching.
In case IP address is passed to deployVirtualMachine API, the default property on NIC was not getting set and as a result there was a failure down the line and VM creation was failing.
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
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
Multinode Management server - Not able to put the host in maintanace mode when the request is issed from the management server that is not the owner of the host
resolved fixed
reviewed-by: edison
Because there are more commands after GetDomRVersion command. Though
GetDomRVersion command itself is not that critical, the commands after it may
including DHCP and firewall related commands. The failure of GetDomRVersion
command would result in the following commands fail to be executed. So it should
fail, and fail loudly.
2) Don't allow to add new networks/implement existing ones for VPC in Disabled state. Disabled state indicates that there was unsuccessful attempt to remove the VPC, and the further cleanup will be taken care of by cleanup thread.