CLOUDSTACK-9047 rename enumsmake enums adhere to best practice naming conventions
* pr/1049:
CLOUDSTACK-9046 rename enums to adhere to naming conventions
CLOUDSTACK-9046 renamed enums in kvm plugin
CLOUDSTACK-9047 use 'State's only with context there are more types called 'State' (or to be called so but now 'state') So remove imports and prepend their enclosing class/context to them.
Signed-off-by: Daan Hoogland <daan@onecht.net>
* 4.6:
CLOUDSTACK-9075 - Uses the same vlan since it should have been already released
CLOUDSTACK-9075 - Adds VPC static routes test
CLOUDSTACK-9075 - Covers Private GW ACL with Redundant VPCs
CLOUDSTACK-9075 - Add method to get list of Physical Networks per zone
CLOUDSTACK-6276 Removing unused parameter in integration test for projects
CLOUDSTACK-6276 Removing unused parameter in integration test
CLOUDSTACK-6276 Fixing affinity groups for projects
CLOUDSTACK-6276 Fixing affinity groups for projectsWith some contributions from @resmo and @ustcweizhou.
This closes https://github.com/apache/cloudstack/pull/508
To test manually (need at least 2 hosts):
Create a project
Create an affinity group in that project
Deploy a vm with that affinity group
Deploy a second vm with that affinity group
They should be on different hosts
Ran old and new tests for affinity groups on the simulator
Test create affinity group as admin in project ... === TestName: test_01_admin_create_aff_grp_for_project | Status : SUCCESS ===
ok
Test create affinity group as domain admin for projects ... === TestName: test_02_doadmin_create_aff_grp_for_project | Status : SUCCESS ===
ok
Test create affinity group as user for projects ... === TestName: test_03_user_create_aff_grp_for_project | Status : SUCCESS ===
ok
Test create affinity group that exists (same name) for projects ... === TestName: test_4_user_create_aff_grp_existing_name_for_project | Status : SUCCESS ===
ok
#Delete Affinity Group by id. ... === TestName: test_01_delete_aff_grp_by_id | Status : SUCCESS ===
ok
#Delete Affinity Group by id should fail for user not in project ... === TestName: test_02_delete_aff_grp_by_id_another_user | Status : SUCCESS ===
ok
test DeployVM in anti-affinity groups ... === TestName: test_01_deploy_vm_anti_affinity_group | Status : SUCCESS ===
ok
test DeployVM in anti-affinity groups with more vms than hosts. ... === TestName: test_02_deploy_vm_anti_affinity_group_fail_on_not_enough_hosts | Status : SUCCESS ===
ok
List affinity group for a vm for projects ... === TestName: test_01_list_aff_grps_for_vm | Status : SUCCESS ===
ok
List multiple affinity groups associated with a vm for projects ... === TestName: test_02_list_multiple_aff_grps_for_vm | Status : SUCCESS ===
ok
List affinity groups by id for projects ... === TestName: test_03_list_aff_grps_by_id | Status : SUCCESS ===
ok
List Affinity Groups by name for projects ... === TestName: test_04_list_aff_grps_by_name | Status : SUCCESS ===
ok
List Affinity Groups by non-existing id for projects ... === TestName: test_05_list_aff_grps_by_non_existing_id | Status : SUCCESS ===
ok
List Affinity Groups by non-existing name for projects ... === TestName: test_06_list_aff_grps_by_non_existing_name | Status : SUCCESS ===
ok
List affinity group should list all for a vms associated with that group for projects ... === TestName: test_07_list_all_vms_in_aff_grp | Status : SUCCESS ===
ok
Update the list of affinityGroups by using affinity groupids ... === TestName: test_01_update_aff_grp_by_ids | Status : SUCCESS ===
ok
----------------------------------------------------------------------
Ran 16 tests in 581.706s
OK
Deploy vm as Admin in Affinity Group belonging to regular user (should fail) ... === TestName: test_01_deploy_vm_another_user | Status : SUCCESS ===
ok
Create Affinity Group as admin for regular user ... === TestName: test_02_create_aff_grp_user | Status : SUCCESS ===
ok
List Affinity Groups as admin for all the users ... === TestName: test_03_list_aff_grp_all_users | Status : SUCCESS ===
ok
List Affinity Groups belonging to admin user ... === TestName: test_04_list_all_admin_aff_grp | Status : SUCCESS ===
ok
List Affinity Groups belonging to regular user passing account id and domain id ... === TestName: test_05_list_all_users_aff_grp | Status : SUCCESS ===
ok
List Affinity Groups belonging to regular user passing group id ... === TestName: test_06_list_all_users_aff_grp_by_id | Status : SUCCESS ===
ok
Delete Affinity Group belonging to regular user ... === TestName: test_07_delete_aff_grp_of_other_user | Status : SUCCESS ===
ok
Test create affinity group as admin ... === TestName: test_01_admin_create_aff_grp | Status : SUCCESS ===
ok
Test create affinity group as domain admin ... === TestName: test_02_doadmin_create_aff_grp | Status : SUCCESS ===
ok
Test create affinity group as user ... === TestName: test_03_user_create_aff_grp | Status : SUCCESS ===
ok
Test create affinity group that exists (same name) ... === TestName: test_04_user_create_aff_grp_existing_name | Status : SUCCESS ===
ok
Test create affinity group with existing name but within different account ... === TestName: test_05_create_aff_grp_same_name_diff_acc | Status : SUCCESS ===
ok
Test create affinity group of non-existing type ... === TestName: test_06_create_aff_grp_nonexisting_type | Status : SUCCESS ===
ok
Delete Affinity Group by name ... === TestName: test_01_delete_aff_grp_by_name | Status : SUCCESS ===
ok
Delete Affinity Group as admin for an account ... === TestName: test_02_delete_aff_grp_for_acc | Status : SUCCESS ===
ok
Delete Affinity Group which has vms in it ... === TestName: test_03_delete_aff_grp_with_vms | Status : SUCCESS ===
ok
Delete Affinity Group with id which does not belong to this user ... === TestName: test_05_delete_aff_grp_id | Status : SUCCESS ===
ok
Delete Affinity Group by name which does not belong to this user ... === TestName: test_06_delete_aff_grp_name | Status : SUCCESS ===
ok
Delete Affinity Group by id. ... === TestName: test_08_delete_aff_grp_by_id | Status : SUCCESS ===
ok
Root admin should be able to delete affinity group of other users ... === TestName: test_09_delete_aff_grp_root_admin | Status : SUCCESS ===
ok
Deploy VM without affinity group ... === TestName: test_01_deploy_vm_without_aff_grp | Status : SUCCESS ===
ok
Deploy VM by aff grp name ... === TestName: test_02_deploy_vm_by_aff_grp_name | Status : SUCCESS ===
ok
Deploy VM by aff grp id ... === TestName: test_03_deploy_vm_by_aff_grp_id | Status : SUCCESS ===
ok
test DeployVM in anti-affinity groups ... === TestName: test_04_deploy_vm_anti_affinity_group | Status : SUCCESS ===
ok
Deploy vms by affinity group id ... === TestName: test_05_deploy_vm_by_id | Status : SUCCESS ===
ok
Deploy vm in affinity group of another user by name ... === TestName: test_06_deploy_vm_aff_grp_of_other_user_by_name | Status : SUCCESS ===
ok
Deploy vm in affinity group of another user by id ... === TestName: test_07_deploy_vm_aff_grp_of_other_user_by_id | Status : SUCCESS ===
ok
Deploy vm in multiple affinity groups ... === TestName: test_08_deploy_vm_multiple_aff_grps | Status : SUCCESS ===
ok
Deploy multiple vms in multiple affinity groups ... === TestName: test_09_deploy_vm_multiple_aff_grps | Status : SUCCESS ===
ok
Deploy VM by aff grp name and id ... === TestName: test_10_deploy_vm_by_aff_grp_name_and_id | Status : SUCCESS ===
ok
List affinity group for a vm ... === TestName: test_01_list_aff_grps_for_vm | Status : SUCCESS ===
ok
List multiple affinity groups associated with a vm ... === TestName: test_02_list_multiple_aff_grps_for_vm | Status : SUCCESS ===
ok
List affinity groups by id ... === TestName: test_03_list_aff_grps_by_id | Status : SUCCESS ===
ok
List Affinity Groups by name ... === TestName: test_04_list_aff_grps_by_name | Status : SUCCESS ===
ok
List Affinity Groups by non-existing id ... === TestName: test_05_list_aff_grps_by_non_existing_id | Status : SUCCESS ===
ok
List Affinity Groups by non-existing name ... === TestName: test_06_list_aff_grps_by_non_existing_name | Status : SUCCESS ===
ok
List affinity group should list all for a vms associated with that group ... === TestName: test_07_list_all_vms_in_aff_grp | Status : SUCCESS ===
ok
Update the list of affinityGroups by using affinity groupids ... === TestName: test_01_update_aff_grp_by_ids | Status : SUCCESS ===
ok
Update the list of affinityGroups by using affinity groupnames ... === TestName: test_02_update_aff_grp_by_names | Status : SUCCESS ===
ok
Update the list of affinityGroups for vm which is not associated ... === TestName: test_03_update_aff_grp_for_vm_with_no_aff_grp | Status : SUCCESS ===
ok
Update the list of Affinity Groups to empty list ... SKIP: Skip - Failing - work in progress
Update the list of Affinity Groups on running vm ... === TestName: test_05_update_aff_grp_on_running_vm | Status : SUCCESS ===
ok
----------------------------------------------------------------------
Ran 42 tests in 976.432s
OK (SKIP=1)
* pr/1134:
CLOUDSTACK-6276 Removing unused parameter in integration test for projects
CLOUDSTACK-6276 Removing unused parameter in integration test
CLOUDSTACK-6276 Fixing affinity groups for projects
Signed-off-by: Remi Bergsma <github@remi.nl>
* 4.6:
CLOUDSTACK-9022: move storage.cleanup related global configurations to StorageManager
CLOUDSTACK-9022: keep Destroyed volumes for sometime
Conflicts:
server/src/com/cloud/storage/StorageManagerImpl.java
[4.7] CLOUDSTACK-8958: add dedicated ips to domain (account for now)For now, we dedicate ip pool to account, however, other accounts in the same domain cannot fetch the ip from this ip pool.
By dedicating ip pool to domain, accounts in the domain can fetch the public ip from same ip pool.
* pr/1007:
CLOUDSTACK-8958: throw an exception if project account cannot be found
CLOUDSTACK-8958: add dedicated ips to domain (account for now)
Signed-off-by: Remi Bergsma <github@remi.nl>
* 4.6:
CLOUDSTACK-9053 security upgrade as per COLLECTIONS-580
CLOUDSTACK-9055: fix NPE in updating Redundant State of VPC networks
CLOUDSTACK-9057 remove old system vm upgrade code
* 4.6:
more poms didn't get updated with script
implemented upgrade path from 4.6.0 to 4.6.1
checkstyle pom didn't get updated with script
debian: add 4.6.1-snapshot to changelog
Updating pom.xml version numbers for release 4.6.1-SNAPSHOT
Updating pom.xml version numbers for release 4.6.0
CLOUDSTACK-8825, CLOUDSTACK-8824 : Fixed issues if vm.allocation.algorithm is set to firstfitleastconsumedFixed following issues if vm.allocation.algorithm is set to firstfitleastconsumed
1. VM deployment failure if thre is only ZWPS in setup
2. VM migration is impossible from UI
To test
1. Create setup with ZWPS only
2. set vm.allocation.algorithm to firstfitleastconsumed in global settings
3. deploy virtual machine
observation: vm deployment will fail
After this fix it will pass
second scenario
1. Create Cloudstack Setup with two hosts (As it needs setup for migration)
2. Try migrating VM from UI
Observation: There will be error response in logs with nothing available in UI
After fix it will pass
Regarding BVT I am not sure whether there exists tests for firstfitleastconsumed vm allocation algorithm.
* pr/787:
CLOUDSTACK-8825, CLOUDSTACK-8824 : Fixed following issues if vm.allocation.algorithm is set to firstfitleastconsumed 1. VM deployment failure if thre is only ZWPS in setup 2. VM migration is impossible from UI
Signed-off-by: Remi Bergsma <github@remi.nl>
The labeling was broken. Only labels assigned at zone creation
were used, changing labels was not working. Tested with changing
a label and checking it.
As a bonus fixed the consistency of KVM in Dutch compared to other
traffic labels in dutch and copied in the OVM3 translated label
in other languages.
There 2 things which has been changed.
* We look on power_state_update_time instead of update_time. Didn't make sense to me at all to look at update_time.
* Due DB update optimisation, powerState will only be updated if < MAX_CONSECUTIVE_SAME_STATE_UPDATE_COUNT. That is why we can not rely on these information unless we make sure these are up to date.
Guys, can you review it? things need to be discussed:
(1) this supports KVM/QCOW2 only. Anyone want to implement for other Hypervisor/format ?
(2) The original data volume (on primary storage) will be removed.
(3) The script uses the default timeout in libvirtComputingResource. Do we need to add one in global configuration (like copy.volume.wait or backup.snapshot.wait, create.volume.from.snapshot.wait)
(4) In scripts/storage/qcow2/managesnapshot.sh, I use "qemu-img convert -f qcow2 -O qcow2" to copy the snapshot from secondary to primary (hence there is no base image file), instead of "cp -f", this is because convert is faster than cp in my testing.
* pr/732:
CLOUDSTACK-5863: revert volume snapshot for KVM/QCOW2
Signed-off-by: Wei Zhou <w.zhou@tech.leaseweb.com>
This reverts commit cd7218e241, reversing
changes made to f5a7395cc2.
Reason for Revert:
noredist build failed with the below error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cloud-plugin-hypervisor-vmware: Compilation failure
[ERROR] /home/jenkins/acs/workspace/build-master-noredist/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java:[484,12] error: non-static variable logger cannot be referenced from a static context
[ERROR] -> [Help 1]
even the normal build is broken as reported by @koushik-das on dev list
http://markmail.org/message/nngimssuzkj5gpbz
Fix for the NicVO.java regression.Renamed set*() methods to correct naming.
* pr/726:
Fix for the NicVO.java regression.
Signed-off-by: Remi Bergsma <github@remi.nl>
Changed methodnames according to Nic.java refactor.
Fixed NicVO.java due to regression from Nic.java refactor.
Fixed VmWareGuru.java after Nic.java refactor.
See issue CLOUDSTACK-8736 for ongoing effort to clean up network code.
Cloudstack 8656: do away with more silently ignoring exceptions.a lot of messages added.
some restructuring for test exception assertions and try-with-resource blocks
* pr/654: (29 commits)
CLOUDSTACK-8656: more logging instead of sysout
CLOUDSTACK-8656: use catch block for validation
CLOUDSTACK-8656: class in json specified not found
CLOUDSTACK-8656: removed unused classes
CLOUDSTACK-8656: restructure of tests
CLOUDSTACK-8656: reorganise sychronized block
CLOUDSTACK-8656: restructure tests to ensure exception throwing
CLOUDSTACK-8656: validate the throwing of ServerApiException
CLOUDSTACK-8656: logging ignored exceptions
CLOUDSTACK-8656: try-w-r removes need for empty catch block
CLOUDSTACK-8656: try-w-r instead of clunckey close-except
CLOUDSTACK-8656: deal with empty SQLException catch block by try-w-r
CLOUDSTACK-8656: unnecessary close construct removed
CLOUDSTACK-8656: message about timed buffer logging
CLOUDSTACK-8656: message about invalid number from store
CLOUDSTACK-8656: move cli test tool to separate file
CLOUDSTACK-8656: exception is the rule for some tests
CLOUDSTACK-8656: network related exception logging
CLOUDSTACK-8656: reporting ignored exceptions in server
CLOUDSTACK-8656: log in case we are on a platform not supporting UTF8
...
Signed-off-by: Remi Bergsma <github@remi.nl>
* pr/547:
CLOUDSTACK-8601. VMFS storage added as local storage can be re-added as shared storage. Fail addition of a VMFS shared storage pool in case it has already been added as local storage in CS.
Signed-off-by: Mike Tutkowski <mike.tutkowski@solidfire.com>
* pr/649:
CLOUDSTACK-8656: checkstyle no longer used import removed
CLOUDSTACK-8656: messages on SQL exception in DbUtils!
CLOUDSTACK-8656: replace empty catch block on close by try-with-resource
CLOUDSTACK-8656: 30x legacy upgrade code exception messages
CLOUDSTACK-8656: removed redundant implements
CLOUDSTACK-8656: silent close failure of clustering socket log as info
CLOUDSTACK-8656: try with resource te eliminate empty catch clauses
CLOUDSTACK-8656: log messages on exception in legacy sql upgrade code
CLOUDSTACK-8656: removed unused input stream there was code to close a stream that was never created
CLOUDSTACK-8656: info on error closing peering channels
CLOUDSTACK-8656: messages on errors closing streams for local templates
CLOUDSTACK-8656: handle template properties loading
Signed-off-by: Daan Hoogland <daan@onecht.net>
* pr/603:
coverity: try-with-resource and restructure in upgrade datacenter
extra try-w-r
coverity issues in old upgrade code
Signed-off-by: Daan Hoogland <daan@onecht.net>
* pr/604:
coverity 1116563: resource count leak for accounts
coverity 1116562: resource count resource leak
coverity 1116612: update network cidrs firewall rules and acls
coverity 1116610: upgrade cluster overprovisioning details
coverity 1212194: reuse of prepared statements in try-block and of course have them autoclosed
coverity 1225199: vmware dc upgrade
coverity 1288575: replace all close with try-with-resource not strictly necessary in all but one case. done consequently.
Signed-off-by: Daan Hoogland <daan@onecht.net>
If SSVM cannot be started then the existing entry is removed and a new SSVM gets created. Made similar changes for CPVM as well.
Also cleaned up some log messages in SSVM and CPVM manager code.
VM sync. generates a lot of queries on vm_instance table with 'instance_name' as filter. Since the field is not
indexed, these kind of queries will impact DB performance. Added an index for instance_name field.
This closes#553
* Move config options to SAML plugin
This moves all configuration options from Config.java to SAML auth manager. This
allows us to use the config framework.
* Make SAML2UserAuthenticator validate SAML token in httprequest
* Make logout API use ConfigKeys defined in saml auth manager
* Before doing SAML auth, cleanup local states and cookies
* Fix configurations in 4.5.1 to 4.5.2 upgrade path
* Fail if idp has no sso URL defined
* Add a default set of SAML SP cert for testing purposes
Now to enable and use saml, one needs to do a deploydb-saml after doing a deploydb
* UI remembers login selections, IDP server
- CLOUDSTACK-8458:
* On UI show dropdown list of discovered IdPs
* Support SAML Federation, where there may be more than one IdP
- New datastructure to hold metadata of SP or IdP
- Recursive processing of IdP metadata
- Fix login/logout APIs to get new interface and metadata data structure
- Add org/contact information to metadata
- Add new API: listIdps that returns list of all discovered IdPs
- Refactor and cleanup code and tests
- CLOUDSTACK-8459:
* Add HTTP-POST binding to SP metadata
* Authn requests must use either HTTP POST/Artifact binding
- CLOUDSTACK-8461:
* Use unspecified x509 cert as a fallback encryption/signing key
In case a IDP's metadata does not clearly say if their certificates need to be
used as signing or encryption and we don't find that, fallback to use the
unspecified key itself.
- CLOUDSTACK-8462:
* SAML Auth plugin should not do authorization
This removes logic to create user if they don't exist. This strictly now
assumes that users have been already created/imported/authorized by admins.
As per SAML v2.0 spec section 4.1.2, the SP provider should create authn requests using
either HTTP POST or HTTP Artifact binding to transfer the message through a
user agent (browser in our case). The use of HTTP Redirect was one of the reasons
why this plugin failed to work for some IdP servers that enforce this.
* Add new User Source
By reusing the source field, we can find if a user has been SAML enabled or not.
The limitation is that, once say a user is imported by LDAP and then SAML
enabled - they won't be able to use LDAP for authentication
* UI should allow users to pass in domain they want to log into, though it is
optional and needed only when a user has accounts across domains with same
username and authorized IDP server
* SAML users need to be authorized before they can authenticate
- New column entity to track saml entity id for a user
- Reusing source column to check if user is saml enabled or not
- Add new source types, saml2 and saml2disabled
- New table saml_token to solve the issue of multiple users across domains and
to enforce security by tracking authn token and checking the samlresponse for
the tokens
- Implement API: authorizeSamlSso to enable/disable saml authentication for a
user
- Stubs to implement saml token flushing/expiry
- CLOUDSTACK-8463:
* Use username attribute specified in global setting
Use username attribute defined by admin from a global setting
In case of encrypted assertion/attributes:
- Decrypt them
- Check signature if provided to check authenticity of message using IdP's
public key and SP's private key
- Loop through attributes to find the username
- CLOUDSTACK-8538:
* Add new global config for SAML request sig algorithm
- CLOUDSTACK-8539:
* Add metadata refresh timer task and token expiring
- Fix domain path and save it to saml_tokens
- Expire hour old saml tokens
- Refresh metadata based on timer task
- Fix unit tests
This closes#489
(cherry picked from commit 20ce346f3a)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Conflicts:
client/WEB-INF/classes/resources/messages_hu.properties
plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckHealthCommandWrapper.java
plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java
ui/scripts/ui-custom/login.js
/+= may break on some environments, url safe encoded passwords will have -_,
characters which are more acceptable
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 19cc5eb9e6)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
... of new volumes. Following changes are implemented 1. Disable or enable a pool with the
updateStoragePool api. A new 'enabled' parameter added for the same. 2. When a
pool is disabled the state of the pool is updated to 'Disabled' in the db. On
enabling it is updated back to 'Up'. Alert is raised when a pool is disabled or
enabled. 3. Updated other storage providers to also honour the disabled state.
4. A disabled pool is skipped by allocators for provisioing of new volumes. 5.
Since the allocators skip a disabled pool for provisioning of volumes, the
volumes are also not listed as a destination for volume migration.
FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Disabling+Storage+Pool+for+Provisioning
This closes#257
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
During cold volume migration we are duplicating volume entry in volumes table.
When migration is complete, we update the uuid of new entry and expunge the older entry.
This results in removal of resource tags on volume as its resource id still pointing to older volume.
As part of fix while updating uuid for volume, we are updating resource_id for tags also.
This closes#194
1. provide compatibility with the Big Cloud Fabric (BCF) controller
L2 Connectivity Service in both VPC and non-VPC modes
2. virtual network terminology updates: VNS --> BCF_SEGMENT
3. uses HTTPS with trust-always certificate handling
4. topology sync support with BCF controller
5. support multiple (two) BCF controllers with HA
6. support VM migration
7. support Firewall, Static NAT, and Source NAT with NAT enabled option
8. add VifDriver for Indigo Virtual Switch (IVS)
This closes#151
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
- With the changes added by the rVPC work, the bump priority became deprecated.
This commit includes a refactor to get it removed from the following resources:
* Java classes
* domain_router table - removing the is_priority_bumpup column
* Fixing unit tests
All changes were tested with:
XenServer 6.2 running under our VMWare zone
CloudStack Management Server running on MacBook Pro
MySql running on MackBook Pro
Storage Type: Local
Fixing assign IPv4 on GuestNetworkGuru.java
Fixing getRouters() on VpcVirtualRouterElement.java
Fixing Fixing paths on keepalived.conf.templ
Refactor on the other files
Added a source column to the user table.
Source now has only two values UNKNOWN,LDAP with UNKNOWN being the
default and is an enum is com.cloud.User.
When the source is UNKNOWN, the old method of authenticating against all
the available authenticators is used. If a source is available, only
that particular authenticator will be used.
added overloaded methods in AccountService to createUserAccount and
createUser with source specified.
(cherry picked from commit 5da733072e)
This is a plugin that puts in ovm3 support ranging from 3.3.1 to 3.3.2. Basic
functionality is in here, advanced networking etc..
Snapshots only work when a VM is stopped now due to the semantics of OVM's raw
image implementation (so snapshots should work on a storage level underneath the
hypervisor shrug)
This closes#113
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
check and update only when required
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit b879916f5c)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Design Document:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Allow+VM+listing+by+User+ID
- Adds column to VMInstance DAO
- Adds column in vm_instance table
- Adds column in the UserVMJoinVO
- Adds default admin user which has UID = 2
- Adds migration path that sets user_id to first user of the accountId that
owns the vm in vm_instance table
- Add arg on list VMs API to query by userId, add support in query layer
- Refactor VMInstanceVO and child classes to accept userId
- Add code to let service layer pass userId if loggedIn user belongs to same
account as the owner executing an API call or use first user from owner account
- In case of CPVM and SSVM use system user ID
- Fix unit tests and spring injections
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Call removeRawUsageRecords with interval (> 0) and it will clean up cloud_usage
table by removing records older than interval no. of days from today (current date)
and in case it runs when the job exec time is near, it will fail alerting
user to try again after a 15 min window.
There is an issue with async job scheduler, if this API were async it tries
to search and remove job from cloud_usage.async_job table and fails which is
why this API is sync and extends BaseCmd.
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
During VM creation, if vm.instancename.flag is set to true and hypervisor type is VMware, check if VM with the same hostname already exists in the zone.
Changes:
- This is a race condition between the deleteDomain thread and AccountChecker thread. DeleteDomain thread marks the domain as inactive and proceeds for cleanup, AccountChecker thread that runs at the same time cleans up any domains marked as inactive.
- When the DeleteDomain thread finds that domain is already removed, it need not error out since the domain deletion has already happened
Upgrade fails if value is set using plain text encoding, the value needs to
be encrypted (if a key was provided during db was setup).
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 6321a29e43)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
remove 441to450 ddl
(cherry picked from commit 5578616143)
(cherry picked from commit f18d6238b0)
Conflicts:
engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
schema: Add upgrade paths from 4.3.2 to 4.4.0
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 73c62837b5)
Conflicts:
engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java
setup/db/db/schema-441to450.sql
merged new work from schema-441to450.sql into schema-442to450.sql
root cause:
when vmsync reports system VM is down, CCP doesn't release the VM resource before starting it.
fix:
make sure cleanup is called for a VM when it is reported as Stopped
Revert "CLOUDSTACK-7073: Added domainId field to the user table in order to restrict duplicated users creation on the db level"
This reverts commit 5a96d8ef5c.
Conflicts:
setup/db/db/schema-440to450.sql
GPU enabled hosts from non-GPU VM deployment.
Cluster reordering is based on the number of unique host tags in a cluster,
cluster with most number of unique host tags will put at the end of list.
Hosts with GPU capability will get tagged with implicit tags defined by
global config param 'implicit.host.tags' at the time os host discovery.
Also added FirstFitPlannerTest unit test file.
GPU enabled hosts from non-GPU VM deployment.
Cluster reordering is based on the number of unique host tags in a cluster,
cluster with most number of unique host tags will put at the end of list.
Hosts with GPU capability will get tagged with implicit tags defined by
global config param 'implicit.host.tags' at the time os host discovery.
Also added FirstFitPlannerTest unit test file.
Also when the ssvm is destroyed all the download urls are expired to be cleaned up in the next run by the new ssvm.
(cherry picked from commit ce90837357)
GPU enabled hosts from non-GPU VM deployment.
Cluster reordering is based on the number of unique host tags in a cluster,
cluster with most number of unique host tags will put at the end of list.
Hosts with GPU capability will get tagged with implicit tags defined by
global config param 'implicit.host.tags' at the time os host discovery.
Also added FirstFitPlannerTest unit test file.
(cherry picked from commit 39fe766c2b)
GPU enabled hosts from non-GPU VM deployment.
Cluster reordering is based on the number of unique host tags in a cluster,
cluster with most number of unique host tags will put at the end of list.
Hosts with GPU capability will get tagged with implicit tags defined by
global config param 'implicit.host.tags' at the time os host discovery.
Also added FirstFitPlannerTest unit test file.
GPU enabled hosts from non-GPU VM deployment.
Cluster reordering is based on the number of unique host tags in a cluster,
cluster with most number of unique host tags will put at the end of list.
Hosts with GPU capability will get tagged with implicit tags defined by
global config param 'implicit.host.tags' at the time os host discovery.
Also added FirstFitPlannerTest unit test file.
This adds an upgrade path from 4.3.1 to 4.4.0, the implementation of which
simply extends the Upgrade430to440 as there was no schema change between 4.3.0
and 4.3.1
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 208399354f)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
In vm secondary ips case static nat configured to vm primary/secondary ips
IP1-->vm1Ip1, IP2-->vm1Ip2
While destroying vm deleting all static nats associated with the vm
Changes:
PodId in which the router should get started was not being saved to the DB due to the VO's setter method not following the setXXX format. So when planner loaded the router from DB, it always got podId as null and that would allow planner to deploy the router in any pod. If the router happens to start in a different pod than the user VM, the Vm fails to start since the Dhcp service check fails.
Fixed the VO's setPodId method, that was causing the DB save operation fail.
1. Adding the missing Template/Volume URLs expiration functionality
2. Improvement - While deleting the volume during expiration use rm -rf as vmware now contains directoy
3. Improvement - Use standard Answer so that the error gets logged in case deletion of expiration link didnt work fine.
4. Improvement - In case of domain change, expire the old urls
with hostid included was passed to the local storage pool allocator, it returned all the local
storage pools in the cluster, instead of just the local pool on the given host in the plan.
This was happening the search at a host level was happening only for data disk. Fixed this.
Additionally, the query to list the storage pools on a host was failing if the pool did have
tags. Fixed the query too.
CLOUDSTACK-6802: Fix for not being able to attach data disk on local. This issue gets fixed
with the above issue too. The query to list pools on a host was failing if there were no
tags on the storage pool.
Local env
1. Create user defined mapping
2. Delete / modify user defined mapping. Should pass
3. Delete / modify system defined mapping. Should fail
Signed off by :- Nitin Mehta<nitin.mehta@citrix.com>
Add ability to distinguish between user defined and system defined guest OS and mappings
Add default mappings for XenServer
Local testing with
1. Add new guest OS by API
2. Add new guest OS mapping by API
Updated these APIs to use VM primary/secondary details on LB rule.
listLoadBalancerRuleInstances API lists the vm ips which are assigned to lb rule when passed
listlbvmips
removeFromLoadBalancerRule is updated to remove the spcific vm ip entry assinged to LB rule.
Added new param vmidipmap to this API
introduce 'RegionLevelVpc' as capability of 'Connectivity' service. Add
support for CreateVPCOffering to take the 'regionlevelvpc' as capability
of service 'connectivity'.
introduces new capability 'StretchedL2Subnet' for 'Connectivity'
service. Also add support to createNetworkOffering api to allow
StretchedL2Subnet capablity for the connectivity service.
adds check to ensure 'Connectivity' service provider supports
'StretchedL2Subnet' and 'RegionLevelVpc' capabilities when specified in
createNetworkOffering and createVpcOffering respectivley
enable ovs plug-in to support both StretchedL2Subnet and RegionLevelVpc
capabilities
make zone id optional parameter in createVpc, zone id can be null only
if vpc offfering supports region level VPC
in region level vpc, let the network/tier to be created in any zone of
the region
keep zoneid as required param for createVpc
skip external guest network guru if 'Connectivy' service is present in
network offering
fix build break in contrail manager
permit VM's to be created in different zone that in which network is
created if the network support streched L2 subnet
add integration tests for region level VPC
rebase to master
Conflicts:
setup/db/db/schema-430to440.sql
Conflicts:
api/src/org/apache/cloudstack/api/ApiConstants.java
engine/schema/src/com/cloud/network/vpc/VpcVO.java
setup/db/db/schema-430to440.sql
template is downloading, template_store_ref has leftover not in ready
state, when create vm from that template, the code doesn't check either
zone id, nor template_store_ref state.
Conflicts:
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
2) Corrected some logging in MidoNetPublicNetworkGuru - removed .toString method call on the objects in the log body as toString is called on the object by default when use log4j
Add APIs for ability to add new guest OS types, and their hypervisor specific mappings.
The table guest_os_hypervisor is currently maintained but not used, and the APIs reuse the same
Signed off by: Nitin Mehta <nitin.mehta@citrix.com>
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
- Move database access code to new class DatabaseAccessObject.
This was done to ease the effort of testing, since
DbUpgradeUtils has a static API and it is harder to mock
static things with Mockito.
- Log exceptions even if ignored
- Add unit tests for both DbUpgradeUtils and DatabaseAccessObject
- DbUpgradeUtils.dropTableColumnsIfExist(...) no longer throws
CloudRuntimeException to make it consistent with the other methods in
the class
Signed-off-by: Daan Hoogland <daan@onecht.net>
Introduce generic BaseAsync(Vm/Volume)Cmd to make get the flag value for logging action events.
Rename the db field as display rather than display_event in keeping with the convention
encoded. This cause createStoragePool or addImageStore command to fail if special
characters were present. Updated the code to pass user, password and domain as part
of details while adding primary or secondary. Also made changes on server side to
handle it.
java.lang.AssertionError: Searching for a field that's not there: display
at com.cloud.utils.db.SearchBase.set(SearchBase.java:219)
at com.cloud.utils.db.SearchBase$Interceptor.intercept(SearchBase.java:475)
java.lang.AssertionError: Searching for a field that's not there: serviceName
at com.cloud.utils.db.SearchBase.set(SearchBase.java:219)
at com.cloud.utils.db.SearchBase$Interceptor.intercept(SearchBase.java:475)
at com.cloud.network.dao.MonitoringServiceVO$$EnhancerByCGLIB$$84195222.getServiceName(<generated>)
at com.cloud.network.dao.MonitoringServiceDaoImpl.<init>(MonitoringServiceDaoImpl.java:41)
Removing resource leaks from UsageSanityChecker and
refactoring it (encapsulation, removal of copy and paste, constants...)
Modularize static method for closing Statments in TransactionLegacy
and reusing this new method from other classes (Upgrade2214to30)
Create Unit and Integration Tests for UsageSanityChecker
Add DBUnit cases and integration profile for nitegration tests as
a base for future DB tests
encryption is enabled When db encryption is enabled, the server expects all
secure,hidden fields in encrypted form. moved the insert statements which has
dafault values to java and populated encrypted values if encryption is
enabled.
service and not used for LB
Fix adds a boolean flag to addNetscalerLoadBalancer api, which
will mark added NetScaler for exclusive GSLB service. A netscaler marked
as exclusive gslb service provider is not picked for any guest network's
lb provider.
scaling up vms was not considering parameter cluster.(memory/cpu).allocated.capacity.disablethreshold. Fixed it
Also added overprovisioning factor retrieval at the cluster level for host capacity check
This patch adds support for trust chains in the netscaler.
I initially planned on using the 10.1 API's "bundle" feature but during
my testing I found that was not working. So I am doing the chain linking
myself. Also NS can have only one entity of a certificate ie lets say
two different users try to add the same certificate on the netscaler
only one of them will go through. The other one says resouce already
exists even though they have different files.
This can be a problem in trust chains where the chain can be shared
between multiple accounts/certificates. So, I am using the figerprint as
an identifier of a certificate and making sure that we delete it only
when no one references it.
Resource limit shouldnt be counted for resources with display flag = 0. Adding functions to resourcelimitmanager and doing it for the volumes at the moment.
used cpu is getting bumped up when the over provisioning factor > 1. This was because we didnt record the overprovisioning factors of the vms which got deployed pre 4.2
Upgrade path will fix that by populating the cpu/mem overprovisioning factors for each of the vms in user_vm_details table using the global overprovisioning factor.
Reviewed by : bharat kumar <bharat.kumar@citrix.com>
Signed off by : nitin mehta<nitin.mehta@citrix.com>
If the VM has snapshots then the chain_info of a volume can be longer than 255 characters.
Increasing the column length of chain_info in VolumeVO to match the maximum length of type text(db schema type)
Now VPN connection can be created as "passive", which would enable the ability
of remote peer initiate the connection. So it's possible for VPC VR to
establish the connection to another VPC VR of CloudStack.
Test case also included.
The test case would create 2 vpcs and using VPN to connect them.
1) added createDetail to ResourceDetailDao interface to provide generic way of creating resourceDetail DB objects
2) added resource details support for firewall rules
1) Added support for Zone resource details
2) Renamed DcDetailsDao to DataCenterDetailsDao to follow the CS name convention for DataCenter related classes
* changed name for TaggedResourceType enum to ResourceObjectType as this enum is used both by ResourceMetaData and ResourceTags code
* enhanced the enum with extra fields resourceTagsSupport (boolean) and metadataSupport identifying if the resource supports tags and/or metadata.
* cleanup unused @Inject objects from the ResourceMetaDataManager
xs 6.1/6.2 introduce the new virtual platform, so there are two virtual platforms, windows PV driver version must match virtual platforms,
this patch tracks PV driver versions in vm details and template details.
Anthony
list Clusters/pods/zones API not accounting for reserved in the used capacity percentage.
Fix listCapacity cmd for reserved as well
Signed off by : nitin mehta<nitin.mehta@citrix.com>
Introduction of a new Transaction API that is more consistent with the style
of Spring's transaction managment. The existing Transaction class was renamed
to TransactionLegacy. All of the non-DAO code in the management server has been
updated to use the new Transaction API.
When running DatabaseUpgradeChecker as a standalone program _dao will not
be injected. Still create an instance of VersionDaoImpl in constructor
and when DatabaseUpgradeChecker is ran in the mgmt server it will be
overwritten by the injected value.
ACS is now comprised of a hierarchy of spring application contexts.
Each plugin can contribute configuration files to add to an existing
module or create it's own module.
Additionally, for the mgmt server, ACS custom AOP is no longer used
and instead we use Spring AOP to manage interceptors.
Also fixed existing bugs for the API:
* corrected action event to be VOLUME.UPDATE (was VOLUME.ATTACH)
* all parameters to update, should be optional - fixed that. If nothing is specified, the db object will remain with its original fields
Check for the all the transition states for Maintenance. Also corrected the isMaintenance function for StoragePoolVo
Signed off by : nitin mehta<nitin.mehta@citrix.com>
Description:
Set the criterion for overriding/preserving the vmware.create.full.clone
flag so that if past version deployments have any deployments (data centers),
this flag will be set to false. Else, it will be set to true.
The earlier criterion to set this flag was based on the CS version numbers,
but that is not a good business logic to serve as a basis to set the flag.
Changes:
- In the upgrade path, for a private zone, entry needs to be added in the affinity_group_domain_map to provide access to the private zone for the domains it belongs too.
Changes:
- Implict creation of the 'ExplicitDedication' Affinity group during resource dedication
- Only one group per account or per domain will be present
- ListDedicatedResources by affinityGroup
- Deployment should consider dedicated resources associated to the group only
- Deleting affinity group should release the dedicated resouces
- Releasing the dedicated resources should remove the group associated if there are no more resources.
Conflicts:
plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
Changes:
- 'ExcplicitDedication' type of group can be created/deleted by Root admin only
- Users can no longer create this type of affinity group
- RootAdmin can create this type of affinitygroup at domain level. Such a domain level group is available for all accounts in that domain for listing and for use during deployVM.
- The domain level affinitygroup should be visible to the users in that domain, domain admins and Root admin.
Conflicts:
server/src/com/cloud/api/query/QueryManagerImpl.java
server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
On a fresh environment, some values in cloud.configuration table are persisted in com.cloud.server.ConfigurationServerImpl.persistDefaultValues()
A default value need to be set before com.cloud.upgrade.DatabaseUpgradeChecker
UI support for baremetal PXE server
CloudStack CLOUDSTACK-1364
UI support for baremetal DHCP server
Conflicts:
plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java
plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
While upgrading to 4.2, the type of vswitch being used by each cluster is persisted to cluster_details table. This helps if user want to change the type of vswitch used in a zone or entire cloud later on but leave existing cluster continue to use old vswitches. Hence even after modifying the type of vswitch at cloud level (by modifying global configuration parameters) or modifying the type vswitch at zone level (by modifying the traffic label) would not disturb operation of existing clusters.
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
only when there is portable IP range added at region level.
region response will now have details if portable IP service is enabled
or not. Portable IP service for a region is turned off by default. when
adming adds a portable ip range portable ip service is enabled for the
region.
Updating the new system template URLs for the existing templates during upgrade to 4.2.
If new 4.2 system template is registered before upgrade then marking the old templates as removed during upgrade.
The time increased due to the newly added dedicated resources feature. During regular VM deployment, all dedicated resources are put in avoid list so that they are not considered for deployment.
Now the way to compute the list of dedicated resources is not optimal and performance deteriorates in an environment having lot of pods, clusters and hosts as the logic is to query db. for each suc resource.
The fix is to optimize the logic not to loop through all resources but get the list of each resource type in a single query.
Conflicts:
server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
Snapshot object is being accessed even when it is null. In case snapshot is not present in backup store the code should return after cleaning db entry.
Also noticed discrepancy in the upgraded db setup but couldn't fully verify it, so added logging in the upgrade logic for template/snapshots etc.
Track the Datacenter of previous cluster correctly while going through each cluster in the zone to see if 2 clusters are from different DC/vCenter.
Cherry picked from 4.2 commit a3450afff5
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
System template upgrade is not required during 4.0 upgrade since we handle the same during 4.2 upgrade. So removing the system template update during 4.0 upgrade.
KVM.snapshot.enabled is lowercased by f025db95 to keep the configs
uniformly lower-case. But it missed the upgrade script and the
references in SnapshotManagerImpl. This commit will fix the issue in all
locations
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
(cherry picked from commit 0e216fa7e41bdfe0cc744006bb896c8b00138ca2)
Persist the download url in the db for volume download.
Signed off by : nitin mehta<nitin.mehta@citrix.com>
Conflicts:
server/src/com/cloud/storage/VolumeManagerImpl.java
Marked the system template new system template as dynamicallyScalable
- handled upgrade case
- moved "dynamicallyScalable" flag to vm_instance table from user_vm_details to support dynamic scaling of system vm
Signed off by : Nitin Mehta<nitin.mehta@citrix.com>
Changes:
- During host deletion, host entry in databse gets removed prior to the disconnect task getting processed.
- This causes the disconnect task to get NPE while trying to do the host state transition
The issue is that while calculating the used primary storage size, the updateResourceCount
API is also calculating the disk size of virtual router VM, created for that account and
because of this, the API is returning the incorrect result.
Changes:
- Locking the group and save reservation mechanism done by DPM
- Added admin operation to cleanup VM reservations
- DPM will also cleanup VM reservations on startup
User should be able to delete/archive alerts and events by selecting a time period or by
choosing the alerts and events older than a date. Added the ability to choose a time period
too.
Summary of changes in the fix
- Optimized host scan logic, now instead of iterating over each cluster host scan is done for a batch of clusters
- Made host scan task interval configurable
only on first rule is created on the IP and last rule is revoked on the
IP
Current suboptima logic of IP Assoc
- On associate IP to GuestNetwork there is an IPAssoc command sent to
corresponding network service providers of the network
- On every rule apply on IP associated with the network send IP assoc
to the network service providers
- On every rule deletion on IP associated with a network sernd IP assoc
command to the network service providers
With this fix logic of IP assoc is changed as below which eliminates
executio of unnessary and expensive IpAssocCommand resource command
- On associate IP to GuestNetwork, associate IP only to the network,
Untill any service is associated with the IP dont send IP Assoc
- On creation of first rule on the IP send IPAssoc to corresponding
network service provider. Since IP is used for a service, IPAssoc
need to be sent to correpondign service provider
- On deletion of last rule on the IP send IPAssoc to corresponding
network service provider. When last rule is deleted, IP has no
service associated with it, so send IP assoc to service provider to
remove the IP association
involved in the GSLB
add weights to each site participating in the GSLB. Traffic will be load
balanced across the sites based on the weigths associated with each
site. If not specified weight of site is defaulted to 1.
NAT does not work
making an exception for portabe IP, so that if the current datacenter with
portable IP is associated is different from destiantion data center
also on transfer on to new zone, transfer the portable ip association to
new data center, physical network id's
CLOUDSTACK-3042 - handle Scaling up of vm memory/CPU based on the presence of XS tools in the template
This also takes care of updation of VM after XS tools are installed in the vm and set memory values accordingly to support dynamic scaling after stop start of VM
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
has dedicated resources and the dedicated resources have all been consumed - use.system.public.ips and use.system.guest.vlans
Both configs are configurable at the account level too.
Recurring snapshot schedule not showing up in UI
For some of the volumes Recurring snapshot schedule was not showing up in UI because the active column was set to false. Since we dont use this column anymore I am removing the active=true check in the listSnapshotPolicies call.
combination prior to 3.0 release
Fix does following:
- add F5 network service provider into a physical network if there if F5
deployed in the zone
- add instance of F5 network service provider
- add SRX network service provider into a physical network if there if
SRX deployed in the zone
- add instance of SRX network service provider
- upgrade all the guest networks to network offering '"Isolated with
external providers"
Upgrade handling.
Detect legacy zones during db upgrade and perform data migration.
If legacy zone is detected the table 'cloud'.'legacy_zones' is populated.
If an existing zone which has resources that belong to single VMware datacenter then such zone would not be marked as legacy zone. Such zone would be automatically associated with the specific Vmware datacenter of the clusters inside the zone.
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
This feature allows a user to deploy VMs only in the resources dedicated to his account or domain.
1. Resources(Zones, Pods, Clusters or hosts) can be dedicated to an account or domain.
Implemented 12 new APIs to dedicate/list/release resources:
- dedicateZone, listDedicatedZones, releaseDedicatedZone for a Zone.
- dedicatePod, listDedicatedPods, releaseDedicatedPod for a Pod.
- dedicateCluster, listDedicatedClusters, releaseDedicatedCluster for a Cluster
- dedicateHost, listDedicatedHosts, releaseDedicatedHost for a Host.
2. Once a resource(eg. pod) is dedicated to an account, other resources(eg. clusters/hosts) inside that cannot be further dedicated.
3. Once a resource is dedicated to a domain, other resources inside that can be further dedicated to its sub-domain or account.
4. If any resource (eg.cluster) is dedicated to a account/domain, then resources(eg. Pod) above that cannot be dedicated to different accounts/domain (not belonging to the same domain)
5. To use Explicit dedication, user needs to create an Affinity Group of type 'ExplicitDedication'
6. A VM can be deployed with the above affinity group parameter as an input.
7. A new ExplicitDedicationProcessor has been added which will process the affinity group of type 'Explicit Dedication' for a deployment of a VM that demands dedicated resources.
This processor implements the AffinityGroupProcessor adapter. This processor will update the avoid list.
8. A VM requesting dedication will be deployed on dedicatd resources if available with the user account.
9. A VM requesting dedication can also be deployed on the dedicated resources available with the parent domains iff no dedicated resources are available with the current user's account or
domain.
10. A VM (without dedication) can be deployed on shared host but not on dedicated hosts.
11. To modify the dedication, the resource has to be released first.
12. Existing Private zone functionality has been redirected to Explicit dedication of zones.
13. Updated the db upgrade schema script. A new table "dedicated_resources" has been added.
14. Added the right permissions in commands.properties
15. Unit tests: For the new APIs and Service, added unit tests under : plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/DedicatedApiUnitTest.java
16. Marvin Test: To dedicate host, create affinity group, deploy-vm, check if vm is deployed on the dedicated host.
Squashed commit of the following:
commit f244f9ce7982db16984dd87c31545f1c0240c704
Merge: 993cbb0 f5c8e38
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 20 18:54:05 2013 +0530
Merge branch 'master' into portablepublicip
Conflicts:
server/src/com/cloud/server/ManagementServerImpl.java
server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
commit 993cbb0df9fa6e64b96b18ed775b73cdf4a8f5d7
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 20 18:49:54 2013 +0530
introduce 'transferPortableIP' interface method in network manger. This
method will transfer association of portable ip from one network to
another network.
commit 0c1c2652c1b39e9a81ca35464360e11ed9ef23f1
Merge: a718d35a29e393
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Fri May 17 02:48:54 2013 +0530
Merge branch 'master' into portablepublicip
Conflicts:
utils/src/com/cloud/utils/net/NetUtils.java
commit a718d353f7
Merge: ecca117c211818
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 13 21:22:19 2013 +0530
Merge branch 'master' into portablepublicip
Conflicts:
api/src/org/apache/cloudstack/api/ResponseGenerator.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/network/NetworkServiceImpl.java
server/src/com/cloud/network/addr/PublicIp.java
server/src/com/cloud/server/ManagementServerImpl.java
server/test/com/cloud/network/MockNetworkManagerImpl.java
server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
setup/db/db/schema-410to420.sql
commit ecca117e34
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 13 20:05:29 2013 +0530
added integration tests for testing portable ip ranges
commit 895a27c277
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 13 15:12:19 2013 +0530
- establish model for transferring portable IP association from a network
with which it is associated to another network.
- enabling static nat api, extended to transfer potrtable IP across the
networks if the VM/network is different from the current associate
network of the portable ip
commit 51509751b2
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Mon May 13 12:05:33 2013 +0530
seperate out associate/disassociate with guest network operations from
alloc and release of portable ip
commit bd058f58c2
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sun May 12 21:14:48 2013 +0530
enhance disasociateIPAddr API to release protable IP associated with a
guest network or VPC
commit 27504d9098
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sun May 12 16:53:45 2013 +0530
enhance asociateIPAddr API to acquire a protable IP and associate with a
guest network or VPC
commit f82c6a8431
Merge: 3dbfb440749013
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sat May 11 23:32:13 2013 +0530
Merge branch 'master' into portablepublicip
Conflicts:
api/src/com/cloud/network/IpAddress.java
api/src/org/apache/cloudstack/api/ResponseGenerator.java
client/tomcatconf/commands.properties.in
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
server/test/org/apache/cloudstack/affinity/AffinityApiTestConfiguration.java
server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
setup/db/db/schema-410to420.sql
commit 3dbfb44eb5
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sat May 11 20:33:19 2013 +0530
- add 'portable' boolean as property of IpAddress, persist the property in
IPAddressVO, return the property in IpAddressResponse
- add ability to request portable IP in associateIpAddress api
commit bf3cb274cf
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sat May 11 16:08:40 2013 +0530
add the status of each portable IP (its state, details of associated data
center/VPC/guest network etc) in the PortableIpRangeResponse returned by
listPortableIpRanges API
commit e7b2fb2255
Author: Murali Reddy <muralimmreddy@gmail.com>
Date: Sat May 11 14:36:01 2013 +0530
Introdcues notion of 'portable IP' pool at region level.
Introduces root admin only API's to provision portable ip to a region
- createPortableIpRange
- deletePortableIpRange
- listPortableIpRanges
1. A new implicit planner which extends the functionality provided by FirstFitPlanner.
2. Implicit planner can be used in either strict or preferred mode. In strict mode it tries to deploy a vm of a given account on a host on which vms of the account are already running. If no such host is found it'll search for an empty host to service the request. Otherwise the deploy vm request fails.
3. In preferred mode, if a host which is running vms of the account or an empty host isn't found, the planner then tries to deploy on any other host provided it isn't running implicitly dedicated strict vms of any other account.
4. Updated the createServiceOffering api to configure the details for the planner that the service offering is using.
5. Made db changes to store the service offering details for the planner.
6. Unit tests for testing the implicit planner functionality.
7. Marvin test for validating the functionality.
- Changes merged from planner_reserve branch
- Exposing deploymentplanner as an optional parameter while creating a service offering
- changes to DeploymentPlanningManagerImpl to make sure host reserve-release happens between conflicting planner usages.
Public IP addresses resource count of an account - number of ip addresses dedicated to an account
plus the number of ip addresses belonging to the system that have been allocated to the account
1) Only PrivateNetworkGuru handles network creation for the private gateway. Exluded Guest Network Guru from this list (was mistakenly included as a part of merge for Nicira integration)
2) Pass vpc_id to createNetwork call when the network is created as a part of private gateway creation
3) Fixed VPC restart when there are multiple private gateways present (have to grab all the private gateways when creating nic profiles for the VPC router that is being re-created)
4) 41-42 db upgarde: set vpc_id for the private networks of the existing VPCs
Public IP addresses resource count of an account - number of ip addresses dedicated to an account
plus the number of ip addresses belonging to the system that have been allocated to the account
This feature enables adding of guest ip ranges (public ips) form different subnets.
In order to provide the dhcp service to a different subnet we create an ipalias on the router. This allows the router to listen to the dhcp request from the guest vms and respond accordingly. Every time a vm is deployed in the new subnet we configure an ip alias on the router. Cloudstack uses dnsmasq to provide dhcp service. We need to configure the dnsmasq to issue ips on the new subnets. Added a new class dnsmasqconfigurator which generates the dnsmasq confg file, this file replaces the old config in the router.
The details of the alias ips are stored in db in the nic_ip_alias table. Every time a new subnet is added one of the ip from the subnet is used to configure the ip alias.
I have pushed the code to https://github.com/bvbharatk/cloud-stack/tree/Cloudstack-702 , also rebased the code with master.
I need to test the code for advanced sg enabled network using kvm.
I have added the unit test
Marvin tests are at https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=53e4965
Also accomodated some of the changes suggested by koushik.
corrected the import statements. renamed the IpAlias command to createIpAlias command.
This feature supports only ipv4
Squashed commit of the following:
commit def0861d5a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu May 9 10:53:09 2013 -0700
Inernallb: added internalLbVm to the list of network elements for nonoss build
commit 56d94fc074
Merge: d828c158f9a42e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu May 9 09:51:36 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
server/src/com/cloud/network/vpc/VpcManagerImpl.java
commit d828c154fd
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed May 8 14:58:22 2013 -0700
internallb: Fixed nonoss build
commit 1b8a6986a6
Merge: 9e74fa9738d35a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed May 8 13:20:07 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
api/src/com/cloud/async/AsyncJob.java
api/src/com/cloud/network/NetworkModel.java
api/src/com/cloud/network/rules/LoadBalancerContainer.java
api/src/org/apache/cloudstack/api/BaseCmd.java
api/src/org/apache/cloudstack/api/ResponseGenerator.java
api/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerContainer.java
client/tomcatconf/commands.properties.in
engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/NetworkModelImpl.java
server/src/com/cloud/network/NetworkServiceImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
server/test/com/cloud/network/MockNetworkModelImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
server/test/com/cloud/vpc/MockNetworkModelImpl.java
server/test/resources/appLoadBalancer.xml
setup/db/db/schema-410to420.sql
test/integration/component/test_multiple_ip_ranges.py
test/integration/smoke/test_guest_vlan_range.py
tools/marvin/marvin/integration/lib/base.py
commit 9e74fa9406
Author: Prasanna Santhanam <tsp@apache.org>
Date: Thu May 9 00:11:40 2013 +0530
marvin changes for internallbvm provider
- changed the simulator context to load the internallb bean
- fixed deployDataCenter to use the additional provider by default
- fixed the sandbox script and the setup script for simulator checkin
tests
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 0a2d49301b
Author: Jessica Wang <jessicawang@apache.org>
Date: Tue May 7 15:50:41 2013 -0700
Internal LB - UI - zone wizard - advanced zone - enable internal LB element, enable internal LB provider.
commit 43e1667f90
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue May 7 13:26:53 2013 -0700
Moved all DAOs and VOs to the cloud-engine-schema project
commit 2fd94c8bbe
Author: Radhika PC <radhika.puthiyetath@citrix.com>
Date: Tue May 7 18:26:08 2013 +0530
CLOUDSTACK-893 api
commit 12b64d6c00
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 17:06:15 2013 +0530
Fixing the gmaven configuration for marvin/pom.xml
For the marvin checkin test custom properties had a typo when run for
the *nix environment.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 1e4274dd9f
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 15:28:43 2013 +0530
Renaming TesDedicateVlanRange -> TestDedicateVlanRange
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 9264ac526f
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 15:28:20 2013 +0530
Adding isolation method to the zone creation of marvin
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 3a0dc67de0
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 15:27:26 2013 +0530
adding ACL for dedicateGuestVlanRange set of APIs
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 79f6e11368
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 15:26:48 2013 +0530
add debug logs when access checkers fail to find API
When the access checkers fail for api discovery, we fail silently.
instead record a debug message.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 92cb7d3e0f
Author: Hugo Trippaers <trippie@gmail.com>
Date: Tue May 7 11:44:23 2013 +0200
commit e0d8f01ecd enabled all tests. Fix
AWSAPI build by removing broken tests and excluding failing tests.
commit 4a391464c7
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date: Tue May 7 10:57:23 2013 +0200
commit e0d8f01ecd enabled all tests, but the tests in vmware-base are horribly broken and will not compile with the current CloudStack.
Removing the tests to fix the nonoss build and they are so broken they should be rewritten from scratch anyway.
commit 2ca03a8513
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 13:51:34 2013 +0530
moving test data to top level dictionary
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit ceaa4e1b0d
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 13:50:56 2013 +0530
Adding tracelogs to the API discovery service
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit a3f5f01c7e
Author: Prasanna Santhanam <tsp@apache.org>
Date: Tue May 7 13:50:12 2013 +0530
dedicateGuestVlanRange is admin only API
Adding ACL for the dedicateGuestVlanRange API.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 1c4c80fe91
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date: Tue May 7 09:58:16 2013 +0200
Recent pom switcharoo caused the client to lose the dependecy on console-proxy, which it needs to include the systemvm
commit 8103f3c386
Author: Radhika PC <radhika.puthiyetath@citrix.com>
Date: Tue May 7 11:30:17 2013 +0530
CLOUDSTACK-893 first cut
commit 67d0411d73
Author: Dave Cahill <dcahill@midokura.com>
Date: Fri Apr 19 17:31:44 2013 +0900
Add docs for MidoNet networking plugin [CLOUDSTACK-996]
Signed-off-by: Dave Cahill <dcahill@midokura.com>
commit c745e6d28e
Author: Alex Huang <alex.huang@gmail.com>
Date: Mon May 6 16:34:03 2013 -0700
Fixed up the simulator to run with windows paths in cygwin
commit be91c03702
Author: Alex Huang <alex.huang@gmail.com>
Date: Mon May 6 10:34:22 2013 -0700
Moved over the VLAN daos
commit dcc09f8472
Author: Alex Huang <alex.huang@gmail.com>
Date: Mon May 6 06:31:47 2013 -0700
Missing file and updated .gitignore
commit e9953cd1a8
Author: Alex Huang <alex.huang@gmail.com>
Date: Mon May 6 06:29:59 2013 -0700
Fixed up unit testing to use only an in class TestConfiguration
commit 6727571403
Author: Alex Huang <alex.huang@gmail.com>
Date: Thu May 2 15:20:49 2013 -0700
Fixed an incorrect unit test for affinity group. Removed some useless pom.xml.
commit d015fb3520
Author: Alex Huang <alex.huang@gmail.com>
Date: Thu May 2 06:50:38 2013 -0700
Moved most of the VOs and DAOs from server package into engine-schema as well
commit 77547a58df
Author: Alex Huang <alex.huang@gmail.com>
Date: Wed May 1 15:15:57 2013 -0700
Removed files that are no longer used and further separated out the files in the core project
commit 345f3d3482
Author: Alex Huang <alex.huang@gmail.com>
Date: Wed May 1 05:46:15 2013 -0700
Moved agent commands to core and out of api
commit e91ca00571
Author: Alex Huang <alex.huang@gmail.com>
Date: Tue Apr 30 19:06:20 2013 -0700
Removed framework-api which is completely useless. Changed framework-ipc to reference gson itself. Move VOs into engine-schema.
commit f64564e490
Author: Dennis Lawler <dlawler@gmail.com>
Date: Mon Apr 29 15:10:09 2013 -0700
Removing filterwin2k option
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 944a7ea5d6
Author: Wei Zhou <w.zhou@leaseweb.com>
Date: Mon May 6 20:57:02 2013 +0100
CLOUDSTACK-2319: fix "unable to add egress rules" in SecurityGroup
Signed-off-by: Chip Childers <chip.childers@gmail.com>
commit ff7f8ba362
Author: Wei Zhou <w.zhou@leaseweb.com>
Date: Mon May 6 20:56:06 2013 +0100
CLOUDSTACK-2322: update network.gateway to fix deployVm error on
SharedNetwork after ipv6 support
Signed-off-by: Chip Childers <chip.childers@gmail.com>
commit a153373c7e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon May 6 11:45:19 2013 -0700
CLOUDSTACK-129: added new API - listNetworkIsolationMethods - for displaying isolation methods supported by the cloudStack
commit 46f59cd49e
Author: Prasanna Santhanam <tsp@apache.org>
Date: Mon May 6 20:39:36 2013 +0530
Fixed the incorrect assertion in noncontiguous_vlan test
The assertion fails if the VLAN is found in which case find returns a
positive number. So here the assertion should infact assert < 0 result.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit bd1dcc10b3
Author: Prasanna Santhanam <tsp@apache.org>
Date: Mon May 6 19:53:42 2013 +0530
Affinity Groups requires multiple storage pools
Fixing the affinity group test which would fail to find the appropriate
storage pool to satisfy the anti-affinity group of the second VM
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 7f853cdb8f
Author: Prasanna Santhanam <tsp@apache.org>
Date: Mon May 6 19:16:15 2013 +0530
fixing double calls to VM deploy
This fixes regression introduced in commit 2f40a90c that made duplicate
calls to deployVirtualMachine.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 646e810fcf
Author: Prasanna Santhanam <tsp@apache.org>
Date: Mon May 6 18:51:53 2013 +0530
fixing wildcard imports
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit b29b6e8525
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date: Fri May 3 14:03:53 2013 +0200
BigSwitch should only respond if it is the actual provider on the network.
This fixes an NPE during the release call.
commit 6fcc9b009b
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Date: Thu May 2 17:38:27 2013 +0200
Prevent Nicira NVP tags from exceeding the 40 character limit.
commit d8e61a1c0a
Author: Sanjay Tripathi <sanjay.tripathi@citrix.com>
Date: Thu May 2 13:45:39 2013 +0530
CLOUDSTACK-2188 : Parsing error with Download Monitor while checking the health of downloaded templates
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
commit 5b6e1140f9
Author: Sebastien Goasguen <runseb@gmail.com>
Date: Mon May 6 05:35:58 2013 -0400
CLOUDSTACK-2339: Adding libcloud example
commit 7be62d2374
Author: Sebastien Goasguen <runseb@gmail.com>
Date: Mon May 6 05:35:19 2013 -0400
CLOUDSTACK-2338: Adding example of how to sign api requests in python
commit 156fd68902
Author: Talluri <Srikanteswararao.Talluri@citrix.com>
Date: Fri May 3 23:11:56 2013 +0530
CLOUDSTACK-2323: fix test scripts to conform with library changes
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 33ff5e9107
Author: sanjeevneelarapu <sanjeev.neelarapu@citrix.com>
Date: Tue Apr 30 20:09:46 2013 +0530
CLOUDSTACK-702: Tests for Multiple IP Ranges
1.Deleting IP Range from the existing CIDR
2.Add non-contiguous guest IP range in new CIDR
3.Add overlapped guest IP range in existing CIDR
Signed-off-by: sanjeevneelarapu <sanjeev.neelarapu@citrix.com>
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
commit 33059d1f66
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date: Mon May 6 14:08:40 2013 +0530
scaleUp VM response change corresponding UI changes
commit 92e18d8106
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date: Mon May 6 13:45:32 2013 +0530
CLOUDSTACK-2337:Resize button available for root/domain admin and normal users
commit d5cd3f7e00
Author: Likitha Shetty <likitha.shetty@citrix.com>
Date: Wed May 1 13:47:26 2013 +0530
Dedicate guest vlan range to account
commit 12c79c8377
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date: Sun May 5 12:02:32 2013 +0530
scale up virtual machine response change in the backend
commit 94bac27622
Author: Rohit Yadav <bhaisaab@apache.org>
Date: Sun May 5 09:58:04 2013 +0530
appliance: Upgrade systemvm appliance from rc1 to Debian7 GA
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
commit c598bb0038
Author: Isaac Chiang <isaacchiang@gmail.com>
Date: Sun May 5 01:57:35 2013 +0530
CLOUDSTACK-2076:Listview widget infinte scrolling error
commit d0615ea9a1
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date: Sun May 5 01:15:14 2013 +0530
CLOUDSTACK-2274:Detail view loading problem when deleting a zone
commit 733b513c3a
Author: Isaac Chiang <isaacchiang@gmail.com>
Date: Sat May 4 13:41:02 2013 +0530
CLOUDSTACK-2160:Refresh button functionality for security groups and statistics tab
commit 418d75d7a4
Author: Marcus Sorensen <marcus@betterservers.com>
Date: Fri May 3 14:09:52 2013 -0600
Summary: Release old DHCP entries
Detail: Refresh dnsmasq with updated entries live, no outage
BUG-ID: CLOUDSTACK-2299
Submitted-by: Dennis Lawler <dlawler@gmail.com>
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1367611792 -0600
commit b3dce64577
Author: Kelven Yang <kelveny@gmail.com>
Date: Tue May 7 10:57:19 2013 -0700
fix unitest
commit b17885f0f6
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue May 7 09:55:47 2013 -0700
InternalLb: some fixes to the unittest
commit 1cff609347
Merge: 053e184a3a5c13
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri May 3 11:23:08 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
server/src/com/cloud/network/NetworkModelImpl.java
server/src/com/cloud/network/NetworkServiceImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
server/test/com/cloud/network/MockNetworkManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
commit 053e18454d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri May 3 11:07:07 2013 -0700
InternalLB: marvin integration test for internal lb feature
commit 2e8e2f98f5
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed May 1 13:53:20 2013 -0700
InternalLB: don't allow to upgrade the network from the network offering with internal LB to the offering with public LB, and vice versa
commit c773d204c8
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed May 1 13:21:52 2013 -0700
Internal LB: if we detect that we are inside an internal lb vm, call out to the ilb script to perform LB configuration
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 8c8845bf77
Merge: 7e95545471ca30
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed May 1 10:14:06 2013 -0700
Merge branch 'master' into internallb1
commit 7e9554596f
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed May 1 10:01:16 2013 -0700
InternalLb: boot args parameters cleanup for the internal lb vm
commit b7cf870074
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 30 10:31:28 2013 -0700
InternalLb: more unittests for internal lb element
commit 63bb98ebe2
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Mon Apr 29 18:29:25 2013 -0700
allow ssh on eth1
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit ca1c313c29
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 29 17:58:45 2013 -0700
InternalLb: DB upgrade - update existing physical networks with InternalLbVm provider
commit ed50caa01c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 29 17:48:36 2013 -0700
InternalLbVM: handle the scenario when sourceIpAddress is not passed when create internal Lb rule
commit 4c22c911a9
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Mon Apr 29 15:56:00 2013 -0700
backend support for Internal LB
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 7b24a7640c
Merge: 440e848a0dbf89
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 29 15:49:48 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/api/query/QueryManagerImpl.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/firewall/FirewallManagerImpl.java
setup/db/db/schema-410to420.sql
commit 440e8484d6
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 29 13:27:06 2013 -0700
InternalLB: unittests for InternalLoadBalancerVMManager
commit 63babe4b7e
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 26 13:44:01 2013 -0700
InternalLb:
1) Added unittests for InternalLoadBalancerVMService
2) Added unittests for InternalLoadBalancerElementService
commit 4f9c47ce54
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 25 14:46:42 2013 -0700
InternalLb: create internal lb vm specific service offering
commit 408ee59d1f
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 24 17:08:08 2013 -0700
Internallb: new set of Web services APIs for managing Internal LB VMs
commit 7680e1cc10
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 24 17:08:08 2013 -0700
Internallb:
1) InternalLb and PublicLb can't be enabled on the same network offering
2) Can have internalLb only on VPC tier
commit d73ca7ef73
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 24 13:02:32 2013 -0700
InternalLb:
1) fixed the bug when the guest nic on internal lb vm wasnt set to be default
2) Don't send the rules to the internal lb vm if its in Stopped state
commit ca2fc30655
Merge: 805756704a2b2d
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 23 16:56:11 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
server/src/com/cloud/network/vpc/VpcManagerImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
setup/db/db/schema-410to420.sql
commit 8057567aaa
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 23 13:15:36 2013 -0700
Internallb: more unittests for ApplicationLoadBalancerService
commit 35c0273b85
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 19 16:17:45 2013 -0700
InternalLb: unittests for ApplicationLoadBalancerService
commit 69b23f7003
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 18 14:01:10 2013 -0700
InternalLb: create/configure/listInternalLoadBalancerElement - fixes to the API response
commit a3321ce617
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 18 13:31:16 2013 -0700
Internal LB : renamed the classes responsible for managing internal lb elements. Now the names are InternalLoadBalancerVMManager, InternalLoadBalancerVMService and InternalLoadBalancerVMManagerImpl
commit 2baf7c365c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 18 10:02:17 2013 -0700
Internallb: verify requested IP for LB rule (if specified) against guest network cidr
commit 0cfe96bd00
Merge: 501f2ff11162f5
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 17 15:41:51 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
api/src/com/cloud/network/IpAddress.java
server/src/com/cloud/network/NetworkServiceImpl.java
setup/db/db/schema-410to420.sql
commit 501f2ffa0b
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 16 17:03:50 2013 -0700
InternalLb: validate source ip network as a part of LB rule creation
commit 4d9a7dfd85
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 16 16:03:32 2013 -0700
InternalLB: in VPC, restrict public LB to one tier only. Internal LB can be supported on multiple tiers
commit 8689bf9eb3
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 16 15:59:56 2013 -0700
Internal LB: added internal lb vm to the list of supported providers in VPC default offering
commit b7709b89ff
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 16 11:04:22 2013 -0700
Internal Lb: added 2 boolean fields - internal_lb and public_lb - to the network offering. Define if internal or public LB service is supported. In the current release it's either one or another; in the future releases we might support both on the same network
commit 014689e45e
Merge: b3b16ba90e8158
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 16 09:55:45 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
api/src/com/cloud/network/Network.java
plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/NetworkServiceImpl.java
server/test/com/cloud/network/MockNetworkManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
setup/db/db/schema-410to420.sql
commit b3b16bae48
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 15 17:00:31 2013 -0700
InternalLB: allow to specify more than one provider for the LB service when create network offering as diff providers can support internal and public LB for the same network
commit a4fc1d7d65
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 15 13:45:25 2013 -0700
Internal LB:
1) Added network_offering_details DB table and corresponding VO/DAO objects. Change createNetworkOffering web services api to accept the map of key/value pairs as details.
2) Allow to have multiple providers for the same service for the network to support the case when LB service can have separate providers for Internal LB and Public LB
commit 4530cebf2b
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 15 10:06:10 2013 -0700
InternalLbVm: support for start/stop Internal lb vm
commit ae69f0ae56
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 17:25:02 2013 -0700
InternalLb: fixed prepare() in InternalLbElement - have to prepare nics of User vms only
commit 888a83c221
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 15:58:27 2013 -0700
InternalLb: Start/deploy internal LB vms for the existing LB rules as a part of network implement
commit 3b41d5bee1
Merge: bb735314b1a9f1
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 15:32:40 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
server/src/com/cloud/network/NetworkModelImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
commit bb73531fed
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 15:13:55 2013 -0700
Internal Lb: list internal lb vms as a part of listRouters response. Introduced new parameter - role (can be virtual_router or internal_lb_vm)
commit c113ea184b
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 12:00:09 2013 -0700
Add Internal Lb Provider/Element as a part of adding a physical network
commit 78c9db79da
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 12 10:05:28 2013 -0700
InternalLbVm: destroy the internal lb vm when the last rule for the ip is being revoked
commit af6201257b
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 16:55:37 2013 -0700
Internal LB: fixed some bugs in internal lb vm startup process
commit 1db240c2b6
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 14:23:55 2013 -0700
InternalLb: fixed searchCriteria constructor in ApplicationLoadBalancerDaoImpl
commit 3795048fcc
Merge: f4c2b535f8a278
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 14:09:31 2013 -0700
Merge branch 'master' into internallb1
Conflicts:
api/src/com/cloud/async/AsyncJob.java
api/src/org/apache/cloudstack/api/ApiConstants.java
api/src/org/apache/cloudstack/api/BaseCmd.java
api/src/org/apache/cloudstack/api/ResponseGenerator.java
client/tomcatconf/commands.properties.in
server/src/com/cloud/api/ApiDBUtils.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/server/ManagementServerImpl.java
setup/db/db/schema-410to420.sql
commit f4c2b53c21
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 13:46:47 2013 -0700
InternalLB: modified InternalLbElement to start the Internal Lb vm for each ip address (if not already started)
commit 76a4b1cf81
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 11:41:47 2013 -0700
InternalLB: added logic for acquiring guest ip address for the Internal LB rule
commit 915e39fbaa
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 11 10:19:18 2013 -0700
Removed unused methods doing ipAllocation from GuestNetworkGuru and NetworkServiceImpl. The correct method is located in NetworkModelImpl
commit 3f2a62c7f6
Merge: 20beb7aa0b5ebc
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 10 17:16:07 2013 -0700
Merge branch 'master' into internallb1
commit 20beb7a16c
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 10 15:28:12 2013 -0700
Internal LB: applyLoadBalancerRules - put not null check for sourceIpAddressId (can be null when Schema is not Public)
commit 87e5f5b9a6
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Wed Apr 10 15:17:58 2013 -0700
Internal LB: intermediate checkin - added InternalLBAppliance manager and managerImpl
commit 53b9c0d142
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 9 17:55:10 2013 -0700
Internal LB: added @Since to API docs for Internal LB related commands
commit 867b305ea8
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 9 17:51:19 2013 -0700
Internal LB: Made InternalLbElement to extend the ip deployer as the LB service implements IPDeployerRequester
commit 7b9af28094
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 9 15:45:30 2013 -0700
InternalLb: new set of Web Services APIs to add InternalLB as a network element to the cloudStack (the element is packaged as an independent plugin). New APIs:
1) configureInternalLoadBalancerElement
2) createInternalLoadBalancerElement
3) listInternalLoadBalancerElements
commit 039e303d4a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 9 14:01:11 2013 -0700
InternalLB: Modified pluggable service VirtualRouterElementService to accept only VirtualRouter and VpcVirtualRouter as a VirtualRouterProvider type when add/configure elements. Other VirtualRouterProviderTypes are are taken care by elb/internal lb plugins.
commit f0018b4512
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Tue Apr 9 12:56:42 2013 -0700
Internal LB:
1)Added InternalLoadBalancerManager and corresponding Impl
2)Add InternalLbVm as a default CS provider. DB upgrade is covered as well
commit e344cf250a
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 8 16:57:47 2013 -0700
InternalLB - removed unused code from LoadBalancerDao
commit 3588f46848
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 8 16:23:03 2013 -0700
Internal LB - added network-element plugin for internal lb service
commit 76325e6168
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 8 13:58:08 2013 -0700
Internal Lb:
1) When network has both kinds of LB rules - Public and Internal - never send them in the same set to the provider
2) Added extra checks on the provider side to validate if the schema - Public or Internal - is supported.
commit 56c2fe1d37
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 8 12:34:59 2013 -0700
InternalLB:
1) Added new capability for the LB service - LbSchemes. Can take 2 values - Internal and Public.
2) F5 and Netscaler LB providers - changes all LB related methods to accept LoadBalancingRule instead of ? extends FirewallRule.
commit 34bcb2d026
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Mon Apr 8 12:11:11 2013 -0700
InternalLB: implemented list/delete/create web services API commands that will be used for Internal LB creation
commit 9ab31e11f7
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Fri Apr 5 15:59:55 2013 -0700
InternalLB: change LoadBalancingRule - reference sourceIpAddress of th load balancer by its value, not DB id
commit 08f855d4e4
Author: Alena Prokharchyk <alena.prokharchyk@citrix.com>
Date: Thu Apr 4 09:26:21 2013 -0700
InternalLB:
1) Added new set of Interfaces - including the new VO - for the internal load balancer
2) DB change - added source_ip_address/source_ip_address_network_id/scheme (Internal/Public) fields to the load_balancer table