- new utility method introduced in PropertiesUtil to load properties objects from files
- RegionManagerImpl modified to use the utility method
- Tests added for both
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Supplementing the fix/commit 748315620b
While remote executing commands through ssh, wait for channel condition of EXIT_STATUS.
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
Currently during ssh execution of remote command, if no response is received within timeout, Cloudstack is returning success result.
This is resulting in false positives. Fix is to check if exit status of remote command is available or not. If not, return failure result.
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
Changes:
- Calendar throws IllegalArgumentException when the hour of the day happens to be skipped due to DST changes.
- Fix will ask Calendar to adjust the time accordingly and get the next closest time
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.
Removed the assertion on the number of fields from ReflectUtil because it did not work with bytecode manipulation like what sonar works with.
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
- code comment turned to javadoc
- added braces to if and for statements to make it look more like the rest
- tests added
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
- javadoc changed - the old one was copy-pasted from AgentShell
- start and stop method removed - they did the same as the overridden methods
- _counter removed as it was only written, but never read
- remove from _asleep map was moved to a finally block, to make sure it is removed even in case of the thread gets interrupted
- Tests created for the above scenarios.
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
All of the code changes for the Spring Modularization will work in
a modularized context or a non-modularized context. This commit
is the final commit to turn modularization on. Revert this commit
to disable the modularization and go back to monolithic Spring
configuration.
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.
The managed context framework provides a simple way to add logic
to ACS at the various entry points of the system. As threads are
launched and ran listeners can be registered for onEntry or onLeave
of the managed context. This framework will be used specifically
to handle DB transaction checking and setting up the CallContext.
This framework is need to transition away from ACS custom AOP to
Spring AOP.
- removed methods that were not used
- parseLong, parseInt and parseFloat replaced with the commons-lang NumberUtils call
- Test for the remaining methods
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
As we moved to a more Spring managed lifecycle, the lifecycle management
in ComponentContext is not needed. The transition to fully spring managed
will not happen all at once. The management server will be done first and
then AWSAPI and UsageServer will come later. This change allows the
ComponentContext in the context of the management server to be bypassed.
Note, by default, the ComponentContext will run its initialization.
It was implemented by extending the NFS provider. Its validation was updated so that you can pass it a URL containing the
details of a CIFS share. The code that mounts NFS shares was extended to allow it do the same for CIFS shares. Otherwise,
the secondary storage code is left unchanged.
After upgrade the SSVM was staying in connecting/alert state. This was because
while handling the processConnect command for ssvm the management server was
trying to template sync. For resource limit calculation it was trying to get the
remote size of the template. If the template was no longer available a number
format exception was thrown. The process connect wasn't getting completed and
the ssvm used to stay in connecting/alert state. While creating template from
snapshot cloudstack looks for up and enabled ssvms and because there wasn't
any available (as the ssvm was in coonecting/alert state) it used to pick the
wrong resource (LocalNfs*Resource) instead of the NfsSecondaryStorageResource.
Fixed the issue by making sure number format exceptions are avoided so that
SSVM moves to the right state.
No change in behavior if management server has internet connection.
Now if management server doesn't have internet connection download process will not fail. But CS will noly check if the account has already reached or maxed its limits instead of checking if the limit will be breached with the addition of the new storage
a unit test for the most frequently used methods in the Script class
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
Eventutils and ActionEventUtils files
removing the 'EventUtils' file which got merged back during the Spring
changes to master at 4.1. 'EventUtils' file was replaced by
'ActionEventUtils', and the original file was removed for events
frameworks. This file conflict was resulting in action events not to be
published on to event bus
Detail: users should be able to add url parameters to the usage database
connection string, just like with the cloud database
BUG-ID: CLOUDSTACK-3410
Bugfix-for: 4.2
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1373350596 -0600
EnumerationImpl was not used and duplicates functionality
with org.apache.commons.collections.iterators.EnumerationIterator
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
- writeToFile removed since no references to it
- readFileAsString replaced with FileUtils.readFileToString
- minor code duplication removed in dependent method getNicStats
- unit test added
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
commons-lang is already a transitive dependency of the utils project, which allows removing some duplicated functionality.
This patch replaces StringUtils.join(String, Object...) with it's commons-lang counterpart.
It also replaces calls to String join(Iterable<? extends Object>, String) in cases where an array is already exist and it is only wrapped into a List.
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Changes:
- In VolumeReservationVO, the getter method of a column had a typo, causing us to create a wrong searchbuilder. It was searching over the 'id' column instead of 'vm_reservation_id' causing
- This bug was causing the vm deployment to choose a wrong pool during deployment since the search was choosing incorrectly
- This bug in the GenericSearchBuilder is also fixed - if the getter method does not use the standard 'get' or 'is' prefix, one should annotate that method using
@Column(name = "<column_name>") and indicate which column this method refers to. This will cause the GenericSearchBuilder to identify the field correctly.
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
Additional stuff needs to be configured in guest port profile when Vnmc is present to provide firewall services.
The xml command used to configure port profile had issues with special characters in the input value for 'org' parameter.
commit 7ce45ea108
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 15 18:36:33 2013 +0530
Fixed indentation and line ending
commit 0232048f90
Merge: 735c4c897911e9
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 15 17:05:59 2013 +0530
Merge branch 'master' into cisco-vnmc-api-integration
Conflicts:
api/src/org/apache/cloudstack/api/ApiConstants.java
client/tomcatconf/commands.properties.in
setup/db/db/schema-410to420.sql
tools/marvin/marvin/integration/lib/base.py
commit 735c4c8955
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 15 15:20:37 2013 +0530
Fixed unit tests based on recent changes in the Vnmc resource code
commit f166f2d0bf
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 15 14:50:25 2013 +0530
added tests to register vnmc and asa appliance in cloudstack
commit f38be4810e
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 8 18:42:06 2013 +0530
Removed unwanted files
commit 902ce426c1
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 8 17:59:30 2013 +0530
Fixed auto-wiring of components for Cisco Vnmc
commit 08467ee307
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 8 16:04:54 2013 +0530
Fixed compilation issues, incorrect merges from last commit
commit 67f11d46ad
Merge: 3422ceec9c68e1
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 8 15:11:10 2013 +0530
Merge branch 'master' into cisco-vnmc-api-integration
commit 3422ceefb6
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 8 14:42:32 2013 +0530
Correctly associating nat, acl policy sets to edge security profile in VNMC
commit 9c1e193fca
Author: Koushik Das <koushik.das@citrix.com>
Date: Sun Apr 7 21:22:22 2013 +0530
Passing correct subnet mask while creating edge firewall in VNMC
commit 05e3d04b55
Author: Koushik Das <koushik.das@citrix.com>
Date: Tue Apr 2 17:50:57 2013 +0530
Added changes related to icmp
commit bcecb589de
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Apr 1 13:57:21 2013 +0530
Some xml file renames
commit 9c1ee93f2e
Author: Koushik Das <koushik.das@citrix.com>
Date: Sat Mar 30 15:54:25 2013 +0530
Fixed PF and static NAT rule creation in VNMC
commit 7e6159fa05
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 27 18:53:49 2013 +0530
Added more unit tests for Cisco Vnmc element
commit fc0ed9adb6
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 27 16:48:28 2013 +0530
Cleaning up VNMC config as part of network shutdown
commit 5a427d48e2
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 27 02:22:54 2013 +0530
Added unit test for Vnmc network element implement() method
commit 48cbf34d3b
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 27 02:20:45 2013 +0530
Passing correct gateway ip while creating vservice node and guest port profile in Nexus
commit 2c386c61ef
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 22 13:50:52 2013 +0530
Nexus 1000v fix
commit 4d2168bfa9
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 22 00:30:01 2013 +0530
Egress firewall rule
commit e81ab3a2f4
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Mar 21 10:50:29 2013 +0530
More tests for VnmcResource class
commit 9e9c179212
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Mar 21 00:25:10 2013 +0530
Fixed build issue from master merge
commit f0c1af2b5c
Merge: 4f305c2873ec27
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 20 16:20:10 2013 +0530
Merge branch 'master' into cisco-vnmc-api-integration
Conflicts:
api/src/com/cloud/network/Network.java
api/src/org/apache/cloudstack/api/ApiConstants.java
client/tomcatconf/components-nonoss.xml.in
client/tomcatconf/nonossComponentContext.xml.in
plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
setup/db/db/schema-410to420.sql
vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
commit 4f305c2beb
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 20 15:09:34 2013 +0530
Initial set of tests, will add more in subsequent commits
commit 50bfcc1f75
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 20 15:02:14 2013 +0530
Updated pom to copy xmls to target location during build
commit 45bc92b826
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 20 14:58:59 2013 +0530
Fixed cpmpilation issue as missed out adding this file
commit 2ce7cdc756
Author: Koushik Das <koushik.das@citrix.com>
Date: Sun Mar 17 17:02:25 2013 +0530
Creating vservice node and associating it with port profile in nexus for guest VMs
commit 387545caff
Author: Koushik Das <koushik.das@citrix.com>
Date: Sat Mar 16 11:14:43 2013 +0530
Added license headers to XML files
commit 43e2997421
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Mar 13 11:51:59 2013 +0530
Changes related to instantiating the dao components
commit 99e88ecbf9
Author: Koushik Das <koushik.das@citrix.com>
Date: Tue Mar 12 23:40:35 2013 +0530
Fix build errors after merge from master
commit 7c20b120c2
Author: Koushik Das <koushik.das@citrix.com>
Date: Tue Mar 12 23:31:46 2013 +0530
Fixing poms and other xmls
commit ee868759a8
Merge: 9c94b6da1b33ca
Author: Koushik Das <koushik.das@citrix.com>
Date: Tue Mar 12 14:44:59 2013 +0530
Merge branch 'master' into cisco-vnmc-api-integration
Conflicts:
api/src/com/cloud/network/Network.java
api/src/org/apache/cloudstack/api/ApiConstants.java
plugins/pom.xml
setup/db/create-schema.sql
commit 9c94b6d231
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 8 22:20:23 2013 +0530
Fixed XML to create static route in VNMC correctly
commit ef069b3323
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 8 15:26:26 2013 +0530
Added logic for revoking ACL, PF and Static NAT rules
commit 4c65b70668
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 8 13:51:37 2013 +0530
Renamed delete-acl-rule -> delete-rule
commit aa94eca516
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 8 00:38:52 2013 +0530
- Creating static routes in VNMC as part of edge firewall configuration
- Passing order parameter while creating rules so that they are evaluated in a specific order
- Added methods in VnmcResource for listing acl policies and rules belonging to variouos policies. This is used to compute order while creation of various rules in VNMC
commit cc824e8585
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Mar 7 12:16:29 2013 +0530
Adding appropriate ACL rules for PF and static NAT
commit fb23c50365
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 1 17:21:45 2013 +0530
Added logic for deleting various VNMC artifacts. Added/updated relevant xmls as well.
commit 970c21a9a3
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 1 01:54:10 2013 +0530
Added implementation for delete of asa and vnmc apis
commit 22e1455142
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 1 01:19:43 2013 +0530
List asa api to return guest network if associated. From this it can be inferred if asa is available or not
commit 32223736c9
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Mar 1 00:50:55 2013 +0530
Added Vmware cluster info along with asa1kv appliance.
This is used to select the correct n1kv vsm for configuring the guest network
commit deed3cc951
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 25 18:03:59 2013 +0530
Added support for static NAT rules.
- Xmls for creating static nat rules in VNMC
- applyStaticNats implementation in VNMC network element
- handler for static nat in resource class
commit 681f0b7b50
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 25 10:44:13 2013 +0530
Added implementation for firewall and port forwarding rules in Cisco VNMC element class
commit 66b01a6589
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 22 19:19:44 2013 +0530
VNMC xml for deleting NAT policy
commit 5d98686768
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 22 19:16:41 2013 +0530
Added support for PF/DNAT rules.
Created methods in VNMCConnection class to create PF rules. Also moved out common code for PF and source NAT in methods.
Updated the corresponding VNMC resource class.
commit 8db2fbeb8f
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 22 18:21:45 2013 +0530
Added xml for creating NAT policy set in VNMC
commit f2da0d50ca
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 22 18:17:53 2013 +0530
Added VNMC XMLs for supporting PF/DNAT rules.
Also moved out some XMLs related to source NAT to common files so that these can be used for both source NAT and DNAT
commit 124a48819d
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Feb 21 17:53:12 2013 +0530
Separated out creation of ACL policy set and policy in VNMC
commit 1e38515f35
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Feb 21 11:54:44 2013 +0530
Added changes to create ingress fw rules in VNMC
commit cb2fba9e7c
Author: Koushik Das <koushik.das@citrix.com>
Date: Thu Feb 14 16:23:05 2013 +0530
Source NAT in VNMC
commit 720fe2f908
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Feb 13 14:16:47 2013 +0530
Fix Vnmc test file
commit d6dbe790c6
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Feb 13 12:07:03 2013 +0530
Added db. tables for asa1kv devices and their mapping with guest network
commit 3fd7e30f6e
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Feb 13 11:52:12 2013 +0530
Changes:
- Added implementation for add/list asa1kv APIs
- Added agent command for associating asa1kv appliance with logical edge firewall in VNMC
- Added handler for the above agent command in VNMC resource class
- Updated VNMC element class to support the above
commit d08e2a1faf
Author: Koushik Das <koushik.das@citrix.com>
Date: Wed Feb 13 11:40:58 2013 +0530
Added lifecycle APIs for Cisco Asa 1000v appliance.
Added corresponding Dao and VO classes.
Also added mapping Dao and VO for guest netwok and asa appliance
commit 6b999ec867
Author: Koushik Das <koushik.das@citrix.com>
Date: Tue Feb 12 00:05:39 2013 +0530
Changes:
a. Added handlers for CreateLogicalEdgeFirewall and ConfigureNexusVSMForASA commands
b. Logic for add/list vnmc device API
c. Partial implementation for network element implement()
commit 0656250308
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 11 23:48:19 2013 +0530
Moved VNMC provider creation to Network.java. The plugin code would have been the ideal place to keep it but current state of the code doesn't allow it.
commit dc402eaa7a
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 11 23:35:19 2013 +0530
Added new commands for the following:
a. Logical edge firewall creation in VNMC
b. Asa1kv vservice node creation and updating asa1kv inside port profile with guest network vlan id in n1kv VSM
commit d6cdfe35f8
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 11 23:06:36 2013 +0530
Added helper method to create port profile in n1kv VSM with additional parameters VDC tenant and edge security profile
Added helper method to create a vservice node in n1kv VSM
commit db42da17e9
Author: Koushik Das <koushik.das@citrix.com>
Date: Mon Feb 11 22:44:01 2013 +0530
Added database table for storing VNMC devices
commit f991436335
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 8 16:00:15 2013 +0530
Added support for network offering creation with VNMC as provider for firewall, port forwarding, source nat
commit 74de210359
Author: Koushik Das <koushik.das@citrix.com>
Date: Fri Feb 8 15:06:11 2013 +0530
Added name attribute for the VNMC lifecycle commands
commit 6ce25ef11d
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 16:44:28 2013 -0800
Fix licensing
commit 392cd8ed63
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 16:38:19 2013 -0800
cisco-vnmc: Fix api to use new conventions
commit 6b142bbaab
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:33:33 2013 -0800
WIP: configure ASA port profile
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 1ae21ea49a
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:33:01 2013 -0800
WIP rename device to resource to better reflect nature of VNMC
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 84d218f972
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:32:54 2013 -0800
WIP: fixes for associating ASA1000v to tenant
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit d74c6a9ac2
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:32:45 2013 -0800
WIP: fixes for associating ASA1000v to tenant
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 9350d10849
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:32:29 2013 -0800
WIP: admin commands for adding / listing VNMC
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit a8031a0cfe
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:41 2013 -0800
WIP ASA 1000v listing"
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit f9cc674b9c
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:36 2013 -0800
WIP : edge firewall
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 6a0964af00
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:30 2013 -0800
WIP : edge security policy
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit e32295e8cf
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:24 2013 -0800
WIP : dhcp server policy
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 446a9b8491
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:18 2013 -0800
WIP : dhcp server policy
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit e35e0eb59b
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:14 2013 -0800
Move unit test
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 2b43a3e74e
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:30:08 2013 -0800
Move unit test
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
commit 11b804a894
Author: Chiradeep Vittal <chiradeep@apache.org>
Date: Wed Jan 16 15:29:54 2013 -0800
WIP: XML control of VNMC
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
Addition of two new resource types i.e. Primary and Secondary storage space in the existing pool of
resource types.
Added methods to set the limits on these resources using updateResourceLimit
API command and to get a count using updateResourceCount. Also added calls in the
Templates, Volumes, Snapshots life cycle to check these limits and to increment/decrement the new
resource types
Resource Name :: Resource type number
Primary Storage 10
Secondary Storage 11
Also added jUnit Tests for the same.
Reviewed by : nitin mehta<nitin.mehta@citrix.com>
Summary: EC2 REST API: AWS APIs are not getting translated on the CloudStack Management Server and AWS API Installation Problems.
Fixing the class not found exception, key not found and other issues as mentioned in the above two defects.
Signed-off-by: Pradeep <pradeep.soundararajan@citrix.com>
Currently, allPossibleIps return the Ip lists which include the gateway,
so we need to remove gateway ip from this list.
Now, for non-VPC network it works, because NetUtils.getAllIpsFromCidr
return the Ip lists which do not include the first IP of the network
(like 192.168.0.1).
We need too add the first IP into the returned Ip list, because it can
be used for VM if it is not the gateway IP (for example, VPC networks).
The corresponding patch for 4.0.1 has been posted on
https://reviews.apache.org/r/9923/
Signed-off-by: Chip Childers <chip.childers@gmail.com>
Changes:
- Regular plugin/adapter components should usually be loaded at run level RUNLEVEL_COMPONENT(5)
- HypervisorVmPlannerSelector was at level 0, while configurationServer at level 2 - causing config to be not loaded for the HypervisorVmPlannerSelector
Enhanced baremetal servers support on Cisco UCS
change UcsXxxDao to Spring xml loading
change ListxxxCmd to inherit ListCmd
change API response in line with current API architecture
adding missing db schema to db upgrade schemaOh
Conflicts:
client/pom.xml
plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java
plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java
Non-printable characters results in empty pages for all users loading the
corrupted object in the web interface. It also results in the API call results
getting truncated with an error when it encounters the non-printable characters.
Every decoded parameter value is checked for control character using OWASP's
ESAPI library.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
The previous commit fails if a person had defined CATALINA_HOME already.
Instead of system env variable, get any passed variable 'catalina.home' and find
the file in that path.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
The EncryptionSecretKeyChecker is required to load db.properties with
encrypted passwords.
Make usre the integrity checkers are run before anything else during
start-up
The new policy is:
1. Generate a random IP.
2. Find the next available IP, start from the generated IP.
3. If we cannot find an available IP after certain times(10000 by default,
network.ipv6.search.retry.max) retry, give up.
The path to the keyfile was hardcoded, so added an alternative path for
compatibility with the packaging locations. Should ideally become a
setting in the config file.
Handle NPE while setting up data source in Transaction
- This occured as Transaction is called it would run the following which
assumed db.properties file, which may not be in one's classpath;
// Initialize with assumed db.properties file
initDataSource("db.properties");
- So, while this would be logged in logs, this is ignored for DatabaseCreator's
case. In DatabaseCreator we call initDataSource with full path anyway.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Also ass public_ipv6_address for ipv6 address management.
Extend nics and vlans for ipv6 address.
Add dependency to com.googlecode.ipv6(java-ipv6).
Modify dhcpcommand for ipv6.
- Fixed new join dao impls as spring components
- Fixed component context xml to load api rate limit checker
- Fixed root pom.xml for duplicate plugin
- Fixed list data centers method
- Fixed following conflicts:
api/src/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
api/src/org/apache/cloudstack/api/command/user/offering/ListServiceOfferingsCmd.java
api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
server/src/com/cloud/api/ApiDBUtils.java
server/src/com/cloud/api/ApiServer.java
server/src/com/cloud/api/query/QueryManagerImpl.java
server/src/com/cloud/configuration/DefaultComponentLibrary.java
server/src/com/cloud/server/ManagementServerImpl.java
server/src/com/cloud/storage/swift/SwiftManagerImpl.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Fix usage in ApiDispatcher. Add two kinds of helpers:
- One that gets list of exclude cmd whose fields are not be included
- One that loops till a base class is asssignable from superclass
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
The default data source assumption is that db server is on localhost, port 3306
and has user cloud and password cloud. The static variables rely on hardcoded
db.properties file only. We need to fix it
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
and CloudException in one place, and Introduced ApiErrorCode to handle CloudStack API error
code to standard Http code mapping.
Signed-off-by: Min Chen <min.chen@citrix.com>
Enhanced baremetal servers support on Cisco UCS
introduce an python etree like xml helper.
Ok, this is not a new wheel. Frankly speaking, all Java XML API just suc**.
there are two popular types of XML API in java, one class is for data binding, JAXB,
XStream fall into this category. Another class is tree based, like JDOM, XOM ...
for XML api call, data binding library is painful as you have to specify the schema
that how xml stream converts to java object, which means you have to pre-define all
schemas(xsd file for JAXB, java object for XStream ...). This is not productive, because you
must add new schema when XML document grows.
Tree based library shines in this case, for it's able to dynamically create an object tree
from xml stream without any knowledge of its structure. However, all tree based
XML API library fall into below convention:
Element e = root.getChildElement("child1").getChildElement("child2").getChildElement("child3")...getChildElement("childN")
anything wrong with it???
the sadness is if there is no "child2", you will get a NPE with above code, which means you have to judge
before getting.
And, why so verbose?? why not:
Element e = root.child1.child2.child3...childN ???
Ok I am joking, it's impossible in Java the world knows Java is a static language.
but you can actually do:
Element e = root.get("child1.child2.child3");
or
List<Element> e = root.getAsList("child1.child2.child3")
this is known as XPath style(though XPATH use '/'), python etree has supported it.
so I did this toy for my UCS xml api call, it's quite like etree which is easy to use, for example:
<components.xml>
<system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker">
<checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
<checker name="EncryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker"/>
<checker name="DatabaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker"/>
<checker name="DatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker"/>
</system-integrity-checker>
</components.xml>
XmlObject xo = XmlObjectParser.parseFromFile("~/components.xml.in");
List<XmlObject> checkers = xo.getAsList("system-integrity-checker.checker");
then you get a list of XmlObject which represent each 'checker' element:
XmlObject firstChecker = checkers.get(0);
// firstChecker.get("name") == "ManagementServerNode"
// firstChecker.get("class") == "com.cloud.cluster.ManagementServerNode"
// firstChecker.getTag() == "checker"
// firstChecker.getText() == "" if it's <checker/>xxx</checker>, then getText() == "xxx"
example 2:
<checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
<system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker">
<checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
</system-integrity-checker>
</components.xml>
yout can do:
XmlObject xo = XmlObjectParser.parseFromFile("~/components.xml.in");
XmlObject checker = xo.get("system-integrity-checker.checker");
then it returns a single object as we only have one "checker" in xml stream,
or you still do
List<XmlObject> checkers = xo.getAsList("system-integrity-checker.checker");
it returns a list which only contains one element of "checker"
if you do:
XmlObject checker = xo.get("system-integrity-checker.checker.this_middle_element_doesnt_exist.some_element");
it returns a null without any exception, so you don't have to worry if a parent element is missing when getting a leaf element
again it's not a new wheel, I just hate JAVA xml api
Create OvsVifDriver to deal with openvswitch specifics for plugging
intefaces
Create a parameter to set the bridge type to use in
LibvirtComputingResource.
Create several functions to get bridge information from openvswitch
Add a check to detect the libvirt version and throw an exception when
the version is to low ( < 0.9.11 )
Fix classpath loading in Script.findScript to deal with missing path
separators at the end.
Add notification to the BridgeVifDriver that lswitch broadcast type is
not supported.
Due to generic programming, most classes declare Daos with ID as Long, so they
get the getUuid(Long) definition, it has to be getUuid(String), uuid is not
gonna be anything else. Fix GenericDaoBase and GenericDao.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Improve CglibThrowableRenderer test case
Log to a separate Logger instead of the default one to avoid spurious
stack traces in test run output.
Actually verify that registering CglibThrowableRenderer with the
alternative log hierarchy actually removes call trace lines that
contains the string <generated>
- Makes plugins self contained so they decide their properties file format
- PluggableService creates the contract that implementing entity will return a
properties map which is apiname:rolemask (both are strings)
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
If you update your build to build a version with a name not ending in -SNAPSHOT,
you are required to declare versions on all your depdendencies. There is already
a cs.mysql.version property, this patch makes sure it is used where appropriate.
Signed-off-by: Chip Childers <chip.childers@gmail.com>
- Fix interface to return array of strings, or filenames
- Fix StaticRoleBased ACL adapter to process config files by going through all pluggable services
- Refactor interface names
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Multiple fixes:
1. changes to the mvn configuration
a. include simulator to client.war
b. activate simulator by profile
2. templates for simulator
3. developer prefill for simulator
a. Use deplydb-simulator to setup simulator db
4. Inherit components-simulator.xml from components.xml
5. ListVolumesCommand missed for MockStorageManager
6. Include simulator properties into utils/db.properties
TODO:
Secondary storage VMs don't come up because ComponentLocator doesn't
retain a unique set of adapaters by name. Fix this in subsequent
checkin.
- findByXId is read as find using some external Id (used by external network devices for ex.)
- what we really need is findByUuid that finds a unique VO using a uuid string
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Declare and define findByXId() in GenericDao and EntityManager.
This method would return a VO by UUID and EntityManager's interface would
take in the VO Interface.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
This was done for performance reasons.
I also refined the regex strings and added more test cases for different
string scenarios.
Signed-off-by: Chip Childers <chip.childers@gmail.com>
As noted in the bug, several of the API command in question
are async calls. I've added a simple regex-based string cleaning
function, and have the request and response strings running through
it prior to being appended to the audit log.
Unit tests added for the new cleaning function as well.
The call to skip logging the createSSHKeyPair response remains intact
for now, although it should probably be scrubbed similarly to the
password fields.
Signed-off-by: Chip Childers <chip.childers@gmail.com>
This is part 1 of list API refactoring. Commands covered:
listVmsCmd, listRoutersCmd Response covered:
UserVmResponse, DomainRouterResponse. DB views created:
user_vm_view, domain_router_view.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
- Refactor VPN and VM APIs to admin and user pkgs
- Names space, org.apache.cloudstack
- Fix refactored apis in commands*.in
- Fix comments etc.
- Expand tabs, remove trailing whitespace
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
This change will allow the Script class to look for resources in the classpath of the webapp. This makes it possible to distribute the management server as a single prepackaged war. An added benefit is easier integration with IDE's that have the option to start webapps internally.
Also fixes a bug/feature in the URL handling were some components of the script path were translated to urlencoding. This change means that files are more often found in the first two steps of the findScript method which saves some filesystem calls.
ComponentLocator.
When using the extend option in the components-nonoss.xml the adapter
lsit was overwritten (putAll on the map), but it should be merged
instead. This prevented adapters from the parent to be loaded.
ability to do jetty:run in eclipse). This change breaks the ability to
upload scripts to XenServer (and possibly other places). Needs some
investigation before enabling this again.
Description:
Checking in fix for the exception seen due to the absence of
the AsyncCommandQueued exception in the map of CSExceptionErrorCode
which is used to look up the error code corresponding to a
cloudstack exception. Also printing the stack trace in case
an exception is not found in the map.
Description:
Checking in fix for the exception seen due to the absence of
the AsyncCommandQueued exception in the map of CSExceptionErrorCode
which is used to look up the error code corresponding to a
cloudstack exception. Also printing the stack trace in case
an exception is not found in the map.
Conflicts:
utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java
policies. An error was getting reported during policy map creation that
config operation was in progress, Added synchronization to make sure
sending and receiving commands are seralized. Also removed the retry logic
as after this change it is not needed.
Reviewed-By: Vijay
Description:
Update create-schema.sql to create tables for
VSM and VSM-Cluster mapping.
Fixed an incorrect exception path in
CSExceptionErrorCode.
Conflicts:
utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java
Description:
Adding a netconf helper class for adding and
deleting port profiles. These functions need
to be further parameterized and error handling
needs to be taken care of.
At this point, the mgmt server comes up, loading the
Nexus related modules without dying.
Description:
1) Added a new properties file for Cisco N1kv VSM commands:
cisconexusvsm_commands.properties.in
2) Added the CiscoNexusVSMElement to the components.xml file.
3) Modified CiscoNexusVSMElement to implement NetworkElement.
The NetworkElement interface functions are not
relevant to the N1KV VSM, so we override them
with noops.
4) Added an addDao() of CiscoNexusVSMDeviceDaoImpl in populateDaos(),
else we'd run into a failure to look up the VSM's dao when the
mgmt server is starting up:
com.cloud.utils.exception.CloudRuntimeException: Unable to find DAO com.cloud.network.dao.CiscoNexusVSMDeviceDao
5) Also added the CiscoNexusVSMElementService in populateServices(),
and modified CiscoNexusVSMElement to implement Manager as well.
6) populateServices() was running into an exception that indicated
that it was unable to find a commands.properties file for the
cisco n1kv vsm service. Fixed it by changing getProperties() in
CiscoNexusVSMElement to return the correct string
"cisconexusvsm_commands.properties", and putting in an @Override
for getProperties() in CiscoNexusVSMElement. Also fixed up all
the other functions in CiscoNexusVSMElement that needed to have
@Override. Also updated build/developers.xml with this file
location. And did other small cleanup.
7) More clean up in CiscoNexusVSMDeviceManagerImpl.
Conflicts:
server/src/com/cloud/configuration/DefaultComponentLibrary.java
Reviewed by: Sateesh Chodapuneedi, Devdeep Singh
Description:
This is the first in a series of commits for integrating the
Cloudstack Management Server with the Nexus 1000v Virtual
Supervisor Module.
These changes introduce the necessary API command interfaces
to work with a Cisco N1KV VSM. The backend logic is still to
be put in and will be incorporated in subsequent commits.
Please do not attempt to use these APIs until then. Also,
these are not yet filled in into commands.xml, so they are
not currently exposed.
Additional APIs would be added if required.
These changes will not break any current management server
functionality.
Given below is a description of the changes put in here:
Added Cisco N1KV commands to core/api:
These are the added commands -
AddCiscoNexusVSMCmd
DeleteCiscoNexusVSMCmd
ConfigureCiscoNexusVSMCmd
ListCiscoNexusVSMCmd
ListCiscoNexusVSMNetworksCmd
Added a Network Element service file for Cisco N1KV.
Declared the interface functions that we'll need for
the N1KV VSM.
Defined a DeviceVO file for the Cisco Nexus Element.
Created a response file for Cisco Nexus VSM.
Created new event types for external Switching Management devices.
Put in logic to call interface methods in ListCiscoNexusVSMNetworksCmd
and ListCiscoNexusVSMCmd
NOT VSM RELATED:
Fixed minor typo in some of the event types for external load balancers.
Added properties of a VSM in the VSM VO class.
Replaced the "url" input parameter by "ipaddress"
in the AddCiscoNexusVSMCmd API.
Added a new file - CiscoNexusVSMElement.java to
contain the implementation of the functions
declared in the VSMElementService interface, and
put in implementations of the functions for the
Nexus VSM API commands. These functions are
defined in the CiscoNexusVSMElement class.
Added a class for Port Profiles (PortProfile.java).
The fields in this class are still not correctly
declared as of now. We'll make the required changes
going forward.
Added CiscoNexusVSMDeviceManagerImpl class.
Added CiscoNexusVSMResource class.
Created a new class to provide a package to
connect to Cisco Nexus VSMs. This will be a
set of Java wrapper functions that allow us
to connect/disconnect and send commands and
receive the results of those commands via
XML-RPC. These functions are yet to be
implemented, and will be checked in in future
commits.
Added two new classes, VSMCommand and
VSMResponse, to encapsulate XML-RPCcommands
and responses to and from a Ciscon Nexus VSM.
Put in the following function stubs inside the
CiscoNexusVSMService class:
connectToVSM()
disconnectFromVSM()
executeVSMCommand()
Added new field in the Type enum of the "Host"
interface, for Cisco Nexus VSMs.
Added two parameters to AddCiscoNexusVSMCommand
vsmName
zoneId
Modified the CiscoNexusVSMDeviceVO constructor to
take in an zoneId as a parameter when creating
the VO object.
Added new interface and class for the DeviceDao
implementation for Cisco Nexus VSM devices:
CiscoNexusVSMDeviceDao
CiscoNexusVSMDeviceDaoImpl
Removed the vsmvCenterDomainId property, since it's
going to the same as vsmDomainId, which is the VSM's
switch Domain Id.
Have started putting in the following query functions
in the CiscoNexusVSMDeviceDao interface:
Put in DAO implementations of some of the above functions in the CiscoNexusVSMDeviceDaoImpl class.
Added a vsmName parameter to the CiscoNexusVSMDeviceVO class.
Atomatic addition of Apache license header broke lots of mysql files
fix DB upgrade cleanup script not get executed issue.
add "#" as comment signature in ScriptRunner.java
Description:
Adding overloaded addProxyObject() function to CloudException
and RuntimeCloudException classes and using this function
to stuff exceptions with IDs, to reduce code footprint.
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.
Bug 13127: API error text refer to database ids instead of uuids
Code-Reviewers: Ewan Mellor, Kelven Yang
Description:
1. A new class CSExceptionErrorCode has been added to utils.
It contains a list of error codes for each type of
Exception class. Use fully qualified package paths for
Exceptions in CSExceptionErrorCode. We log any exception
name not found in the list of error codes for exceptions.
2. Whenever we throw an exception exobj anywhere in the
CS code, the CSErrorCode is set in the base class
constructor.
3. We add a new field csErrorCode in classes CloudException,
RuntimeCloudException, ExecutionException and
ExceptionResponse.
4. Two places in ApiServer.java were wrongly modified when
putting in changes for bug 13127 to not throw an exception.
This has been corrected in this commit.
Description:
Modify Exception handling to enable addition of multiple
uuids in a single exception thrown by API functions. Both
XML and JSON outputs will store all uuids and Fieldnames.
This will make it easier to provide more information when
an exception occurs - for example, a zone id, a cluster id,
host id, and then a specific property id.
Description:
Added a field name for the db id in the IdentityProxy class, and
modified setProxyObject() to take an additional id name parameter.
This will let us know the name of the uuid that we are returning.
E.g.- domainId, zoneId, etc. The client can view this field in
the json/xml output. Modified the JSON/XML serialization routines
to append this new parameter to the serialized output for Exception
Responses.
Description:
1) Added a setProxyObject() method to CloudException and RuntimeCloudException
2) Modified a bunch of throw exceptions in NetworkManagerImpl.java to call setProxyObject() before throwing an exception.
3) Changed scope of ProxyIdentity attribute to protected.
4) Added routines to ServerApiException to get/set IdentityProxy object, and
routine in RuntimeCloudException to get the Idproxy object.
5) Modified the exception handling around the dispatcher and handlerequest()
to copy over the IdentityProxy information before rethrowing an exception
eventually back to handle().
6) Removed duplicate IdentityProxy object in ServerApiException.
It was extending RuntimeCloudException which already had an
IdentityProxy object.
Description:
1) Moved RuntimeCloudException from api/ to utils/.
Added simple constructor to RuntimeCloudException.
Modified all classes that extended RuntimeException
to extend RuntimeCloudException. These classes
are listed below:
ServerApiException
CloudAuthenticationException
CloudExecutionException
AsyncCommandQueued
HypervisorVersionChangedException
RuntimeCloudException
2) Added overloaded constructed to CloudException.
Modified all classes that extend Exception to extend CloudException instead.
These classes are listed below:
ConcurrentOperationException
ConflictingNetworkSettingsException
ConnectionException
DiscoveryException
InsufficientCapacityException
ManagementServerException
ResourceUnavailableException
VirtualMachineMigrationException
AgentControlChannelException
OperationTimedoutException.java
UnsupportedVersionException.java
UsageServerException.java
UnableDeleteHostException.java
AgentAuthnException.java
HttpCallException.java
ActiveFencingException.java
ClusterInvalidSessionException.java
GreTunnelException.java
OvsVlanExhaustedException.java
Description:
1) Adding two new classes, CloudException and RunTimeCloudException.
The former extends Exception and the latter RunTimeException.
These will be used by classes that formerly directly extended
Exception and RuntimeException. These two classes have an attribute
of type IdentityProxy to enable exceptions fill in db ids in separate
attribute fields rather than in a string. Doing so will allow the
serialization module (GSON for JSON and other for XML) to kick in
and convert this db id to a uuid in ApiServer.java just before the
JSON/XML responses are sent out.
2) Moving IdentityProxy.java from api/ to utils/ since
both CloudException and RuntimeCloudException refer to it.
3) Changing references to IdentityProxy class from api/ to utils/.
4) While rebasing to master, a new file was added, merging
api/src/com/cloud/api/response/IsoVmResponse.java to this diff.
using a flag instead of calculating timeout value. The monitor thread may have inaccurate execution time which
may cause script forever hang
status 13962: resolved fixed
reviewed-by: Alex, Edison
Changes for Script.java:
1. Even the script is non-timeout one, set default timeout to one hour. This avoid a wrongn script forever hang
2. When InterruptedException happens, check if timeout is really reached, if not, continue
status 13962: resolved fixed
reviewed-by: Alex, Edison
It’s due to an security fix of OpenJDK 1.6.0 added by Redhat. Here is excerpt
of [RHSA-2011:1380-01] Critical: java-1.6.0-openjdk security update(
https://www.redhat.com/archives/rhsa-announce/2011-October/msg00011.html)
A flaw was found in the way the SSL 3 and TLS 1.0 protocols used block
ciphers in cipher-block chaining (CBC) mode. An attacker able to perform a
chosen plain text attack against a connection mixing trusted and untrusted
data could use this flaw to recover portions of the trusted data sent over
the connection. (CVE-2011-3389)
Note: This update mitigates the CVE-2011-3389 issue by splitting the first
application data record byte to a separate SSL/TLS protocol record. This
mitigation may cause compatibility issues with some SSL/TLS implementations
and can be disabled using the jsse.enableCBCProtection boolean property.
This can be done on the command line by appending the flag
"-Djsse.enableCBCProtection=false" to the java command.
To our knowledge, there are two condition need to be met to trigger this bug:
1. Using old keystore generated by mgmt. server 2.2.8, which is signed with
SHA1withDSA. Any version later than 2.2.8 would generate keystore signed with
SHA1withRSA. RSA one seems fine with us so far.
2. Use OpenJDK >=1.6.0.
The reason is, due to the security fix above, the assumption that one packet
would contain only one SSL record is broken. The decrypted data maybe only
contained the first byte of original application data. Then result in buffer
underflow when mgmt server want to read more from it.
To workaround it, according to the message above, add
"-Djsse.enableCBCProtection=false" to tomcat6.conf JAVA_OPTS line would work.
Notice the parameter would only work with latest version of OpenJDK, so simply
add it to the all setup would not work.
This patch provided a fix for it.
status 11904: resolved fixed
Changes:
- Added a new interface 'PluggableService'
- Any component that can be packaged separately from cloudstack, can implement this interface and provide its own property file listing the API commands the component supports
- As an example have made VirtualNetworkApplianceService pluggable and a new configureRouter command is added
- ComponentLocator reads all the pluggable service from componentLibrary or from components.xml and instantiates the services.
- As an example, DefaultComponentLibrary adds the pluggable service 'VirtualNetworkApplianceService'
- Also components.xml.in has an entry to show how a pluggable service can be added, but it is commented out.
- APIServer now reads the commands for each pluggable service and when a command for such a service is called, APIServer sets the required instance of the pluggable service in the coomand.
- To do this a new annotation '@PlugService' is added that is processed by APIServer. This eliminates the dependency on the BaseCmd to instantiate the service instances.
move all listxxx interface from HostDao to managers(ResourceManager, SecondaryStorageVmManager etc) with decent name using SearchCriteria2
or direct call SearchCriteria2 on demand
1) Added new apis: createFirewallRule, deleteFirewallRule, listFirewallRules
2) Modified existing apis - added boolean openFirewall parameter to createPortForwardingRule/createIpForwardingRule/createRemoteAccessVpn. If parameter is set to true, open firewall on the domR before creating an actual PF rule there
Modified backend calls appropriately.
3) Schema changes for firewall_rules table:
* startPort/endPort can be null now
* added icmp_type, icmp_code fields (can be not null only when protocol is icmp)
4) Added new manager - FirewallManagerImpl
Conflicts:
api/src/com/cloud/api/BaseCmd.java
client/tomcatconf/commands.properties.in
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/configuration/DefaultComponentLibrary.java
server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
server/src/com/cloud/network/rules/RulesManagerImpl.java
1) Added new apis: createFirewallRule, deleteFirewallRule, listFirewallRules
2) Modified existing apis - added boolean openFirewall parameter to createPortForwardingRule/createIpForwardingRule/createRemoteAccessVpn. If parameter is set to true, open firewall on the domR before creating an actual PF rule there
Modified backend calls appropriately.
3) Schema changes for firewall_rules table:
* startPort/endPort can be null now
* added icmp_type, icmp_code fields (can be not null only when protocol is icmp)
4) Added new manager - FirewallManagerImpl
implement pool-wise VM sync,
For XenServer, VM fullSync is pool-wise now, VM deltaSync is still per host
Conflicts:
server/src/com/cloud/vm/VirtualMachineManagerImpl.java
Use a new target "system-integrity-checker" in components.xml/components-premium.xml.
All checkers must be explicitly specified in XML file, they will execute before any components load
status 10860: resolved fixed
Use a new target "system-integrity-checker" in components.xml/components-premium.xml.
All checkers must be explicitly specified in XML file, they will execute before any components load
status 10860: resolved fixed
Use a new target "system-integrity-checker" in components.xml/components-premium.xml.
All checkers must be explicitly specified in XML file, they will execute before any components load
status 10860: resolved fixed
status 9697: resolved fixed
Do encoding for ASCII chars only (done to eliminate problems with multiple language support)
To disable encoding, set "encode.api.response" to false
status 9697: resolved fixed
Do encoding for ASCII chars only (done to eliminate problems with multiple language support)
To disable encoding, set "encode.api.response" to false
The port remains 8250.
The keystore saved at /etc/cloud/management/cloud.keystore. We also include one
fail-safe keystore/certificate for fallback if we are unable to generate
certificate and keystore. If we use fail-safe keystore, a warning and calltrace would be show.
Notice you need to upgrade agent, as well as systemVM's images.
status 9336: resolved fixed
Following changes were made:
* deleteSecurityGroup/authorizeSecurityGroupIngress - removed account/domainId parameters as SG is uniquely identified by id now
* removed account_name field from securityGroup DB table; removed allowed_security_group/allowed_sec_grp_acct from security_ingress_rule.
These values were used for api response generation only for performance purposes; added caching on API level to improve performance
* Added missing security checks for securityGroups/ingressRules
The OOME is due to when server reading the data, it would try to adjust the
reading buffer size according to the "packet length" it read. But if the "packet
length" is some random numbers, server would still try to allocate a part of
very big memory for the reading buffer, result in OOM.
This patch add a 64k limit to sending/receiving the packet. It's the maximum
length one IP datagram can support, and we don't think the request can exceed
this limit. Even if exceed the limit in normal condition, we would aware of it
due to the exception.
Solution has been verified using wget and telnet.
status 4387: resolved fixed
Changes:
- When migration fails we try to do cleanup on the destination host agent. The AgentUnavailableException in this cleanup was not caught.
-Due to that other cleanup like reverting capacity allocated and vm state were skipped.
-Fix is to catch the AgentUnavailableException so that rest of the cleanup can happen.
- Also corrected the exceptions in various cases of migration failure.
- In case the VM is still starting, HA should schedule a retry. Introduced a special migration exception for handling this.
Changes:
- When migration fails we try to do cleanup on the destination host agent. The AgentUnavailableException in this cleanup was not caught.
-Due to that other cleanup like reverting capacity allocated and vm state were skipped.
-Fix is to catch the AgentUnavailableException so that rest of the cleanup can happen.
- Also corrected the exceptions in various cases of migration failure.
- In case the VM is still starting, HA should schedule a retry. Introduced a special migration exception for handling this.
Bug 7723 - merge or re-write host tagging into master / 2.2
Bug 7627 - Need more logging for Allocators
Bug 8317 - Add better resource allocation failure messages
Changes for Deployment Planner to use host and storagePool allocators to find deployment destination.
Also has the changes for host tag feature.
Improved the logging for allocators.
status 8572: resolved fixed
1) As full domain name may not exceed a total length of 253 characters, and host name can be 63 chars long, so don't allow network domain length to exceed 190 chars.
2) Each label can have up to 63 chars
3) The characters allowed in a label are a subset of the ASCII character set, and includes the characters a through z, A through Z, digits 0 through 9, and the hyphen.Labels may not start or end with a hyphen.