Commit Graph

337 Commits

Author SHA1 Message Date
Alex Huang b86828bbbe some formatting changes for agentmanager 2011-04-05 11:04:35 -07:00
Alex Huang 075fba5899 stackmaid is now taskmanager 2011-04-05 10:17:22 -07:00
Kelven Yang 1692caabe8 Make sure hooking of answer command callback be called for both sync/Async commands 2011-04-04 14:46:19 -07:00
Kelven Yang 918df1a838 missing one more place to notify answer commands 2011-04-04 14:44:24 -07:00
Kelven Yang 2759eefcf5 Add weight to command to help future load management, fix issues found in system vm pooling 2011-04-04 09:33:42 -07:00
Kelven Yang ea95ac1808 bug 8713 : finalize the implementation of supporting system vm pooling 2011-03-31 17:14:09 -07:00
Prasanna Santhanam 41e7642825 don't do a cidr check for the simulator 2011-03-30 19:41:13 +05:30
Murali Reddy 1b251a5fc8 Bug 4061: support for Microsoft Hyper-V changes- part 1 2011-03-30 18:48:51 +05:30
alena bb895a7b75 bug 8103: don't allow to remove host if it has Running/Stopping/Starting vms
status 8103: resolved fixed
2011-03-25 17:29:54 -07:00
prachi 514321cadf Bug 6873: disable/enable mode for clusters (and pods and zones and hosts)
Fixed problems in setting default 'allocation_state'. It is now set to 'Enabled' by default if not provided in the API command.
2011-03-24 12:54:51 -07:00
prachi 923f562aa8 Bug 6873: disable/enable mode for clusters (and pods and zones and hosts)
- Added a new flag 'allocation_state' to zone,pod,cluster and host
- The possible values for this flag are 'Enabled' or 'Disabled'
- When a new zone,pod,cluster or host is added, allocation_state is 'Disabled' by default.
- For existing zone,pod,cluster or host, the state is 'Enabled'.
- All Add/Update/List  commands for each of zone,pod,cluster or host can now take a new parameter 'allocationstate'
- If 'allocation_state' is 'Disabled', Allocators skip that zone or pod or cluster or pod.
- For a root admin, ListZones lists all zones including the 'Disabled' zones. But for any other user, the 'Disabled' zones are not included in the response.
- For any usecase that creates/deploys/adds/registers a resource and takes in zone as parameter, now we check if the Zone is 'Disabled'. If yes then the operation cannot be performed by a user other than root-admin. Add volume, snapshot, templates are examples of this usecase.
- To enable the root admin to test a particular pod/cluster/host, deployVM command takes in 'host_id' parameter that can be passed in only by root admin.
If this parameter is passed in by the admin, allocators do not search for hosts and use that host only. StoragePools are searched in the cluster of that host.
If VM cannot be deployed to that host, allocators and deployVM fails without retrying
2011-03-23 22:15:35 -07:00
Frank b4e18b7fbe Bug 8208 - bare metal provisioning
use hostTags in addHostCmd
2011-03-18 18:04:34 -07:00
will ae549ed4d1 bug 8208: Added first addHost dialog to take into account baremetal requirements in the resource page.
- Standardized the addHost optional parameters for baremetal.
2011-03-17 16:29:31 -07:00
anthony ebba4d9420 bug 8480: allow multiple hosts in maintenance mode
status 8480: resolved fixed
2011-03-15 16:35:01 -07:00
nit f88fb1e505 bug 8887 : Stats Calculation Improvement - Storage stats wont update DB anymore and would be kept "in memory" just like other stats. For the listCapacityCmd which consumes it (sec. storage used and primary storage used) this would be constructed using the in memory maps rather than DB which wont have sec storage and primary storage used in the DB anymore. 2011-03-14 18:45:00 -07:00
prachi ed9a11c6b6 API changes for Bug 3316 - Manual live migration of Virtual Machines
This is a Root admin only functionality
---------------------
Service API changes:
---------------------
- ManagementServer  will expose new API:
   Pair<List<HostVO>, List<Long>> listHostsForMigrationOfVM(UserVm vm, Long
startIndex, Long pageSize)
The API returns list of all hosts in the VM's cluster minus the current host and also a list of hostIds that seem to have enough CPU and RAM capacity to host this VM.
- ListHostsCmd will call this service API if virtualmachineid is present in the request.
- MigrateVmCmd is the new command added that takes in virtualmachineid and destination hostid
- UserVmService  will expose a new API:  UserVm migrateVirtualMachine(UserVm vm, Host destinationHost)

------------------------------------
API throws error in following cases:
------------------------------------
- User is not a root Admin. (‘Permission denied’)
- A VM uses local storage, we cannot migrate it, so ‘listHosts’ will throw error.
- We fail to migrate the VM on the chosen host.
- API will support migration for XenServer only currently. So error is thrown
if hypervisor is not XenServer (e.g KVM, vSphere etc)
- Destination host is not in same cluster as source host.
- VM is not in running state
2011-03-11 17:49:53 -08:00
anthony 7d7dee791a bug 7877: prevent two mgmt servers connecting to one same host
status 7877: resolved fixed
2011-03-09 18:29:42 -08:00
Frank 469280866d Bug 8208 - bare metal provisioning
able to add external DHCP server
2011-03-08 17:29:33 -08:00
Frank 6c819c1491 Merge branch 'bareMetal'
Conflicts:
	api/src/com/cloud/api/ApiConstants.java
	api/src/com/cloud/api/commands/DeployVMCmd.java
	api/src/com/cloud/offering/ServiceOffering.java
	api/src/com/cloud/vm/UserVmService.java
	client/tomcatconf/components.xml.in
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/deploy/FirstFitPlanner.java
	server/src/com/cloud/service/ServiceOfferingVO.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
2011-03-08 14:18:11 -08:00
Frank 5517046a66 Bug 8208 - bare metal provisioning
throw exception when pxe server is not per pod
2011-03-08 10:05:58 -08:00
nit 7c127bf096 bug 8824: remove capacity entry when deleting secondary storage.
status 8824: resolved fixed
2011-03-04 17:40:43 -08:00
Alex Huang 40db230095 more changes for db upgrade 2011-03-04 11:09:24 -08:00
Frank 7fa053370e Bug 8208 - bare metal provisioning
Add bare metal planner
2011-03-01 17:47:37 -08:00
prachi 889827b63a Bug 7845 - Productize DeploymentPlanner
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.
2011-02-28 13:47:51 -08:00
anthony 1970161844 bug 8714: support paraleel recursive snapshot
snapshot doesn't depend on volume any more, volume can be removed even there are snapshots on this volume

status 8714: resolved fixed
2011-02-25 22:17:13 -08:00
Frank a9728998ff Bug 8208 - bare metal provisioning
Successfully add start entry into LinMin PXE server
2011-02-25 18:58:07 -08:00
Frank 828f8c9493 Bug 8208 - bare metal provisioning
Able to add cluster and host
2011-02-23 17:20:43 -08:00
Frank b313b7c852 Add bare metal stuff to addHost command
add ipmi.py
2011-02-22 19:07:07 -08:00
alena 15f59e6f58 bug 8637: throw ResourceAllocationException when resource limit is exceeded.
status 8637: resolved fixed
2011-02-18 12:26:58 -08:00
Alex Huang 7dd54f079b started vms with these latest 2011-02-11 17:03:04 -08:00
Alex Huang b0f0efa29b more changes to make it work better in a cluster 2011-02-11 17:03:04 -08:00
Kelven Yang 737954bed8 1) prepare to seperate volume/snapshot logic to secondary storage VM
2) Add vmware.service.console configuration variable to allow customized VMware setup
2011-02-10 16:41:19 -08:00
anthony 213ea43f63 for the last host 2011-02-07 20:07:14 -08:00
anthony c85e13fbf9 bug 7635: stop vms if this host is the last one in cluster , when put this host into maintenance mode
status 7635: resolved fixed
2011-02-07 18:31:16 -08:00
Alex Huang c6fe6f2f45 Removed all the stats command/answer from debug logging 2011-02-07 12:50:22 -08:00
Kelven Yang 33d804846f Native HA support improvements 2011-02-04 14:32:18 -08:00
Alex Huang 0105c03a27 initial HA work 2011-02-04 11:51:14 -08:00
Edison Su fd0752e995 bug 5811, 8261: When delete host, send a shutdownCommand to kvm agent, then kvm agent will not automatically reconnect to mgt server
status 5811: resolved fixed
status 8261: resolved fixed
2011-02-03 13:40:07 -05:00
Kelven Yang ddda5fc431 Cleanup of worker VMs left over from previous session in a reliable way 2011-01-31 17:41:07 -08:00
Kelven Yang 4696b16d10 Normalize name convention for vmware hypervisor 2011-01-28 11:16:30 -08:00
kishan 7fcd0314d8 bug 6414, 6513: do not send host alerts when conole proxy or ssvm goes down
status 6414, 6513: resolved fixed
2011-01-20 16:51:53 +05:30
Alex Huang ad4ed5b2fd added hypervisor type to vm 2011-01-11 18:02:09 -08:00
anthony be174f7f36 correct checking answer 2011-01-07 13:54:58 -08:00
Kelven Yang a0d821ca79 VMware local storage support 2011-01-05 06:14:43 -08:00
abhishek 1d25a33be1 bug 5915: removing the check to see if there are other hosts in maintenance, whilst enabling host maintenance
status 5915: resolved fixed
2011-01-05 13:47:39 -08:00
Kelven Yang 4be13ee8a4 Add sanity check to allow only adding the right hypervisor hosts to the matched cluster 2011-01-04 22:10:55 -08:00
Kelven Yang 6ebdafd4c3 Add vmware cluster will automatically bring in all hosts under the cluster 2011-01-04 04:12:47 -08:00
kishan bf2b28a70f bug 7544: check for null host before getting its status
status 7544: resolved fixed
2011-01-03 14:26:35 +05:30
Edison Su 345d2ab81f remove the unused use.new.networking configuration 2010-12-31 13:26:39 -05:00
Kelven Yang 9e2cbbe0dd Make AddCluster Command return standard json object format 2010-12-30 16:38:31 -08:00
anthony 951d86f41f bug 7782: check if hypervisor type is specified before creating cluster
status 7782: resolved fixed
2010-12-30 15:46:12 -08:00
anthony 65a55ff7b1 bug 7215:
it may be caused by following result
1. there is no hosts up in this cluster, then there is no host we can send remove from pool command.
2. pool-eject failed

in above cases, the host is still removed from cloudstack, and alert is sent out to require run pool-eject manually

status 7215: resolved fixed

Conflicts:

	server/src/com/cloud/agent/manager/AgentManagerImpl.java
2010-12-30 11:50:28 -08:00
anthony 466dff8757 bug 7751: if discover is not found for a hypervisor type, print meaningful message here
status 7751: resolved fixed
2010-12-29 18:40:47 -08:00
root c6847f001a bug 7760: fix a regression when adding host
status 7760: resolved fixed
2010-12-29 19:38:20 -05:00
Kelven Yang bce5dfb0d4 add deleteCluster API command 2010-12-29 11:05:01 -08:00
edison 920c7b3dd7 bug 7503: set hypervisor type when we create the cluster, as we already know the hypervisor type in adavnce when adding host.
status 7503: resolved fixed
2010-12-28 17:20:50 -08:00
anthony a4e791a10c now, you can remove the last host in a cluster 2010-12-23 20:42:31 -08:00
anthony bcc327cad1 correct path in patch file 2010-12-21 13:38:40 -08:00
Alex Huang 0ecb0118ec renamed the domainrouter services 2010-12-21 03:56:01 -08:00
Kelven Yang 626a03ad78 Make a Xen specific requirement for guid on cluster really Xen specific, so that it won't affect KVM/VMware 2010-12-20 14:53:14 -08:00
Kelven Yang e03693f0aa Make AddClusterCmd API generic to all hypervisors, change UI accordingly also 2010-12-17 16:30:27 -08:00
anthony 7faf41e04e pass pooluuid to xen.configure 2010-12-16 18:55:40 -08:00
Kelven Yang 294332c6e0 fix issues in addExternalCluster command 2010-12-16 17:24:54 -08:00
Kelven Yang 65c094a2c0 Add a API to allow adding external hypervisor cluster 2010-12-16 10:00:42 -08:00
alena b383aaceec bug 7517: Added an ability to specify vm's host name during vm Deploy using "name" parameter. The parameter is optional.
status 7517: resolved fixed

Name should follow these rules:
* must be between 1 and 63 characters long and may contain only the ASCII letters 'a' through 'z', the digits '0' through '9', and the hyphen ('-').
* can not start  with a hyphen, and must not end with a hyphen

Once name is set (during vm deploy), it can't be modified.
2010-12-15 15:52:16 -08:00
Kelven Yang 2719972cf6 Let discovers be able to identify itself 2010-12-15 14:15:13 -08:00
edison 712953156b fix boot from iso/attach iso/disks issue 2010-12-09 14:25:44 -08:00
keshav 198cab4dee Added support code for external firewalls and loadbalancers. Added new host types and startup commands, and enabled NicVO to reserve IPs for external network resources. 2010-12-09 11:40:02 -08:00
Alex Huang 2c42ebbf71 ip assoc working 2010-12-08 09:03:34 -08:00
anthony 6cbe5208cf don't need to handle ReadyAnswer in AgentHandler 2010-12-06 13:08:29 -08:00
edison 525cb3dd5d don't break old code 2010-12-04 16:39:10 -08:00
edison e591f56b25 add logs, and don't break old code 2010-12-04 15:02:03 -08:00
edison b7cdae2688 fix for migration 2010-12-04 15:02:03 -08:00
edison d17beeb348 move all the vm's state machine to itmgr->statetransitTO 2010-12-04 15:02:02 -08:00
edison 2e3ef1408c refactor 2010-12-04 14:59:40 -08:00
Kelven Yang 83736a1af5 Add URI component encoding to URI util class to help utilize URL info in hypervisor host address 2010-11-30 16:23:15 -08:00
anthony c39d211a48 merge from 2.1.x 2010-11-23 18:55:23 -08:00
Alex Huang 1e44925564 api refactoring 2010-11-21 12:00:21 -08:00
alena c5d78a726e Modified exception handing in API. Following exceptions are supported now (location - BaseCmd.java):
* MALFORMED_PARAMETER_ERROR - when type of the request parameter is invalid (String instead of Long for id for example)
* PARAM_ERROR - when invalid parameter value is specified in api request. For example, id of non existing vm for StartVmCmd
* ACCOUNT_RESOURCE_LIMIT_ERROR - when user tries to exceed his resource limits by executing the api command.
* INSUFFICIENT_CAPACITY_ERROR - when resource fails to create/start due to insufficient capacity.
* RESOURCE_UNAVAILABLE_ERROR - when user tries to create a vm when storage is not available.
* RESOURCE_IN_USE_ERROR - when user tries to delete/modify resource while it's in use. For example, when we try to delete a network group when it contains ingress rules.
* NETWORK_RULE_CONFLICT_ERROR - when LB/PF rule to add conflicts with existing rule
* ACCOUNT_ERROR - when user is not authorized to execute operation on the resource.
* INTERNAL_ERROR
2010-11-16 11:56:34 -08:00
Alex Huang 5f90a8adb0 Checking in to do git pull...stupid git 2010-11-05 16:10:22 -07:00
edison 1c8f42a001 add hypervisor type for iso, enforcement kvm hosts in the cluster that must have the same os type 2010-11-04 21:29:24 -07:00
anthony bd4f3bfaa0 set guid to null when delete secondary storage 2010-11-04 20:41:40 -07:00
Alex Huang e27bb550fe Harmony among gurus 2010-11-03 21:18:31 -07:00
alena ebdc1f069d 1) Return embedded Host object in PrepareForMaintenance command.
2) Build HostResonse object in ApiResponseHelper for add/reconnect/update/prepareForMaintenance/cancelMaintenance commands
2010-11-02 20:30:41 -07:00
edison 5c88bb936b Oops, == doesn't work... 2010-10-29 19:51:24 -07:00
edison d0c68cd4a7 add a timeout (5 minutes) to wait for KVM agent host connecting to mgt svr, during adding host->discover 2010-10-29 19:18:07 -07:00
Alex Huang 4f9f249218 make console proxy work again with the new network configuration 2010-10-26 17:37:29 -07:00
Alex Huang 2bc938c3f8 checkins for problems. 2010-10-26 09:35:24 -07:00
anthony da58ade720 fixed addding the secondary storage 2010-10-22 11:06:00 -07:00
anthony 141250714e fixed the break of adding standalone host 2010-10-21 19:00:11 -07:00
Alex Huang d5d8f27cad Added more changes to the api 2010-10-21 15:11:49 -07:00
anthony 3260001b65 bug 6665: don't need to send poolEject command for the last host, and mark it as success
status 6665: resolved fixed
2010-10-21 10:21:32 -07:00
Alex Huang b3da4cea1b Forcing me to commit because of stupid git 2010-10-15 06:22:59 -07:00
Kris McQueen 80090990a6 Fix configuration in light of new API framework. Move code from ConfigurationManager into ConfigurationServer for creating disk/service offerings, pods, and zones. This prevents the ComponentLocator from pulling in a lot of extra DAOs and Managers now that ConfigurationManager has a lot more dependencies due to API changes. Without making this change, there would be a dependency on ClusteredAgentManager in both config-server and mgmt-server, which would try to start two listeners on port 8250, which is bad. Now that the configuration happens in ConfigurationServer, things should be kept simple. 2010-10-14 19:11:22 -07:00
Kelven Yang f6e0d2dd41 Make system VM work on vmware 2010-10-14 17:23:13 -07:00
anthony 39d30b9bf1 only send commands to host which is Up and Connecting 2010-10-14 11:35:48 -07:00
anthony 7115aa06bd send commands to host which is UP and connecting 2010-10-14 11:08:35 -07:00
anthony 9b839d749b only send command to host which is UP 2010-10-14 10:24:52 -07:00
anthony f7ec2ebc48 bug 6521: for add host, return api response, even if the host is in disconnected state
status 6521: resolved fixed
2010-10-14 10:20:48 -07:00
Kris McQueen 8e086d7a21 resolving merge conflicts between 2.1.refactor and master 2010-10-12 16:28:16 -07:00
Kris McQueen 2740ba6c40 final merge of master->2.1.refactor preparing for merge back into master 2010-10-12 14:46:24 -07:00
Alex Huang ce091de3d2 more changes for refactor 2010-10-12 07:17:47 -07:00
anthony 09cefaf3e9 bug 6500: add back the special handle for secodary storage host, it is in the same path of handling xenserver host, it is easy to break that, so I add some comments there
status 6500: resolved fixed
2010-10-11 12:05:13 -07:00
anthony 0c750aa8fa bug 6462: notifyMonitorsOfConnection of handleDirectConnect may fail, but it still returns the removed attach, and lauch ping task
status 6462: resolved fixed
2010-10-09 17:34:36 -07:00
anthony 48f1264a80 bug 6446: do not pass private, guest, public network in host_detail to CitrixResourceBase.configure
status 6446: resolved fixed
2010-10-06 18:16:19 -07:00
anthony f433a4d360 bug 6363:
1. delete local storage when delete host
    2. delete host detail when delete host
    3. allow one host in maintance mode in a cluster instead of in a pod

    status 6363: resolved fixed
2010-10-01 10:40:08 -07:00
anthony f6bd092327 private.network.device may change, always try to find out the real private.network.device 2010-09-29 19:23:37 -07:00
edison 9e0f57bc0e change code for new UI 2010-09-29 18:40:52 -07:00
Kris McQueen 848ce60097 Merging master into 2.1.refactor, resolve the merge conflicts as best I can. New commands related to extracting template/iso/volume and related to instance groups were refactored to the new API framework. 2010-09-28 15:47:14 -07:00
Kris McQueen 2a4ddac41a Change getResponse() to return a ResponseObject so that the caller can choose how to serialize. This in in preparation for serializing the async commands to the database with class information and deserializing them into the ResponseObject itself when queryAsyncJobResult is called. Once the ResponseObject is deserialized, the proper string can be returned to the caller.
The previous behavior had the JSON response from the command embedded into the queryAsyncJobResult response as a string rather than a JSON object which prevented the client from being able to read the response.  With this new behavior an actual JSON object should be returned which can then be parsed on the client side.
2010-09-23 17:34:28 -07:00
Kris McQueen 5a3f4af638 AddHost and AddSecondaryStorage have different required parameters, so avoid subclassing these commands and just call a common method in the agent manager. Fix the response name for listAccounts. CreateUser returns one user, so don't always get response.user[0] since that's pointless. A secondary storage host does not have a pod id (NfsSecondaryStorageResource) so make sure not to dereference variables that will be null. 2010-09-21 16:28:31 -07:00
Kris McQueen 12ef5106b6 Fixing serialization of JSON responses to handle both regular objects and list-style responses. Add missing managers to API dispatcher. Fix a typo in listAlerts command implementation method. Add signatures for various add host/storage APIs. 2010-09-20 15:20:32 -07:00
alena 091b28a6b3 Modified addSecondaryStorage/addHost/updateHost/associateIpAddress/attachIso/copyIso/copyTemplate/deletePortForwardingService/startRouter/stopRouter/rebootRouter commands to new API framework. 2010-09-16 18:54:15 -07:00
alena 6fef440732 Updated DeleteHost/DeleteIso/deletePool/UpdateDiskOffering/updateIso/updateTemplate/updateDomain to new api framework 2010-09-15 20:07:01 -07:00
Alex Huang 327924a9ad More changes for refactoring 2010-09-15 18:00:54 -07:00
anthony 05499fa5f6 execute only emergency command with slaveconn. othersiwe api call hands 2010-09-14 19:22:24 -07:00
Kris McQueen df10af0688 cleaning up imports, fixing up some compilation problems related to API refactoring 2010-09-13 15:25:46 -07:00
root 76e5cf3321 renamed dao methods to correctly reflect what they do 2010-09-09 18:01:50 -07:00
anthony 7f991f7e25 In hostAllocator, input clusterId instead of storagepool 2010-09-09 17:08:08 -07:00
Alex Huang 5d185ad82f removed network profile creation 2010-09-09 14:45:16 -07:00
Alex Huang 7249f168d5 more file changes 2010-09-09 13:27:20 -07:00
Alex Huang 6134f7dfd2 more file changes 2010-09-09 11:52:12 -07:00
alena c0185e713a Refactored AttachVolume/PrepareForMaintenance/CancelMaintenance/PreparePrimaryStorageForMaintenance/CancelPrimaryStorageMaintenance commands. 2010-09-08 12:18:46 -07:00
edison ea2828ee03 fix adding host bugs 2010-08-31 19:46:03 -07:00
alena 53892037c4 Refactored associateIPAddress and updateHost commands. 2010-08-30 15:22:42 -07:00
abhishek 1c87879e21 bug 4898: removing the upgrade.url param
status 4898: resolved fixed
2010-08-30 14:49:22 -07:00
abhishek 27b038efcb Correcting hypervisor type enum 2010-08-23 14:07:35 -07:00
Kelven Yang 7bcff5acf3 Vmware incremental check-in 2010-08-20 18:50:33 -07:00
abhishek be75946b1f Refactored the reconnectHost command 2010-08-20 11:14:48 -07:00
alena f1b95641cb Refactor api deletePool, addHost, addSecondaryStorage 2010-08-18 15:41:16 -07:00
Alex Huang b250b985ec changes 2010-08-18 12:19:22 -07:00
alena 3d85fdf687 API refactor 2010-08-18 11:24:29 -07:00
Alex Huang c5f822ca7a Merge branch 'master' of ssh://git.cloud.com/var/lib/git/cloudstack-oss 2010-08-16 11:30:22 -07:00
Alex Huang c21bc7072c more changes 2010-08-16 11:30:04 -07:00
Alex Huang 867b43dcf9 more changes for the rewrite. 2010-08-16 11:28:11 -07:00
edison 53df26daaa "Add host" for kvm:
The sequence:
1. add host in UI
2. scp setup_agent.sh to agent host, and execute it. This script receives hostip,zoneid, podid and guid, then runs "cloud-setup-agent" and "cloud-setup-console-proxy". Here, we assume that network/hostname and cloud-agent are already configed and installed.
3. Write a dummy kvm resource into the database, then wait for agent connects to server, by polling the database for every 1 minutes. If it finds the agent is in UP state in database, then return, or wait for at least 10 minutes.
2010-08-13 23:19:36 -07:00
Manuel Amador (Rudd-O) 05c020e1f6 Source code committed 2010-08-11 09:13:29 -07:00