Commit Graph

1540 Commits

Author SHA1 Message Date
Sateesh Chodapuneedi 9ca34f14a2 CLOUDSTACK-5666 Cant remove a nic when a vm is in the Stopped state
When VM is not running, existing code is unable to retrieve associated cluster's Id. Now we will try to get this information using previous host where the VM was running.

Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>

Conflicts:

	plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
2013-12-28 09:13:58 +05:30
Sateesh Chodapuneedi db99146187 CLOUDSTACK-5661 [VMware] DetachIsoCmd succeeds even though cdrom is locked by VM as cdrom is mounted
DetachISO is succeeding even though detach opeartion is failing as cdrom is locked by VM as it was mounted inside VM.
Detect if cdrom is locked or not. If locked fail detach operation and warn user to unmount before detaching the iso/cdrom device.

Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>

Conflicts:

	plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
	plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
	vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
2013-12-28 02:36:53 +05:30
Sanjay Tripathi 46c6b91832 CLOUDSTACK-4402: [deleteStoragePool] There is no way to delete Primary storage if the last host with which it was associated is already removed. 2013-12-27 17:12:38 +05:30
Devdeep Singh 865330d440 CLOUDSTACK-5610: Host doesn't go to Down/Alert state even though it is powered off. VM
deployment fails because of that as cloudstack tries to deploy it on a host which is
ctually down. An investigator wasn't present for hyper-v; so cloudstack wasn't able to
determine the status of the host. Wrote an investigator for hyper-v which checks with
other hosts in the cluster for the status of the host being investigated.
2013-12-27 16:35:23 +05:30
Devdeep Singh cdf2a1161b CLOUDSTACK-5649: Vms are stopped and not migrated from a host when the
host is put in maintenance mode. The migrate flag wasn't set to true in
the maintain answer. This caused cloudstack to not to schedule a migration
work item for vms on the host. Made a change to set the migrate flag to
true in migrate answer.
2013-12-27 15:21:14 +05:30
Rajesh Battala ea09c0435f CLOUDSTACK-5193 [Hyper-V] VHDs not deleted post VM destroy and expunge 2013-12-27 14:59:57 +05:30
Rajesh Battala 31969e993e CLOUDSTACK-5595 add vlan to storage nic to vnic for ssvm 2013-12-27 14:59:31 +05:30
Rajesh Battala 3f59780e91 CLOUDSTACK-5584 fix the issue to configure the systemvm's in hyperv consistently 2013-12-27 14:58:56 +05:30
Rajesh Battala 67d1a88880 CLOUDSTACK-5603 support Monitoring VR services when VR running on Hyper-V 2013-12-27 14:55:16 +05:30
Rajesh Battala 84bf5b3e55 added support to run hyperv agent on 0.0.0.0 and startuprouting command will discover the ip details and send in response 2013-12-27 14:43:25 +05:30
Marcus Sorensen bb8b2805b6 CLOUDSTACK-5432: KVM - LibvirtStorageAdaptor only needs to disconnectPhysicalDiskByPath
for ISO-based disks. At least, that's how it was in 4.2, so restoring to that functionality.
2013-12-26 23:14:23 -07:00
Marcus Sorensen 8455a0677a CLOUDSTACK-5654: Don't pass empty string to BroadcastDomainType.Vlan.toUri
when attempting to parse VLAN/VNI from bridge's physical ethernet device
2013-12-26 16:52:33 -07:00
Koushik Das ad33f0ad66 CLOUDSTACK-2560: Adding duplicate ASA device entity failure should be handled with API
Handling duplicate ASA appliance addition gracefully
2013-12-26 17:21:58 +05:30
Devdeep Singh 1a033eddae CLOUDSTACK-5308, CLOUDSTACK-5542: Copy command didn't handle the scenario
when a volume is copied to secondary storage for template creation.
Updated the command to handle it.
2013-12-26 15:32:41 +05:30
Devdeep Singh 38d6c2ea60 CLOUDSTACK-5639: Cold storage migration doesn't work for hyper-v. Made
changes to make sure CopyCommand honours requests for volume copy from
primary to secondary storage and vice versa.
2013-12-25 15:23:48 +05:30
Antonio Fornie dad4249498 SecurityProfile and ACL for NiciraNvpApi, including Unit and Integration tests
Signed-off-by: Daan Hoogland <dhoogland@schubergphilis.com>
2013-12-23 14:30:03 +01:00
Devdeep Singh 216554d574 CLOUDSTACK-5210: Fix the sockets reported by the hyperv agent. 2013-12-23 13:25:22 +05:30
Alex Huang c2baed665b Moved the check-style.xml into the tools directory given that we're not using the project to reference the style any longer. Fixed problems with eclipse complaining about copy-dependencies 2013-12-20 17:21:34 -08:00
Devdeep Singh 74cb4b1c5a CLOUDSTACK-5555: Fixing booting a vm on hyperv with data disk. Made
changes to attach a data disk on scsi controller when a vm is being
created.
2013-12-20 17:12:59 +05:30
Marcus Sorensen 7644b92a8b account for vxlan interfaces named vx<vni> 2013-12-19 17:42:42 -07:00
Edison Su 62bb5d8848 fix checkstyle 2013-12-19 15:05:58 -08:00
Edison Su 0824c78761 CLOUDSTACK-4939 - Failed to create snapshot (KVM, Multiple hosts, Sharedstorage)
Conflicts:

	engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
	engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java
	plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java

Conflicts:

	engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
	plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
2013-12-19 14:17:30 -08:00
Edison Su 8caf52c6bc add xenserver 6.2.0 hotfix support, to optimize vdi copy
add xenserver hot fix

Conflicts:

	api/src/com/cloud/vm/VirtualMachineName.java
	core/src/com/cloud/host/HostInfo.java
	core/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java
	deps/XenServerJava/src/com/xensource/xenapi/VDI.java
	engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java
	engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java
	engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/XenServerGuru.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerPoolVms.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
	server/src/com/cloud/configuration/Config.java
2013-12-19 14:15:41 -08:00
Nitin Mehta 1c0b8db01b CLOUDSTACK-4941:
Adding the missing file
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 16:27:20 -08:00
Min Chen afcf967d24 Revert "CLOUDSTACK-4941:"
This reverts commit 231e7c01f2.
2013-12-18 16:01:37 -08:00
Nitin Mehta 231e7c01f2 CLOUDSTACK-4941:
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 14:58:37 -08:00
Marcus Sorensen 95364a4022 CLOUDSTACK-5531
Initial support for vhd, raw, vmdk image formats on KVM. Tested all formats with local and CLVM.
2013-12-16 14:32:51 -07:00
Likitha Shetty fa2f18d2a2 CLOUDSTACK-4875. Vmware vCenter 5.5 - System VM deployment fails During VM deployment.
When base template is being cloned to create VM ROOT disk, get the disk path i.e. base file name
of the VM's ROOT disk from vCenter
2013-12-17 18:31:15 +05:30
Devdeep Singh 3604f87c8d CLOUDSTACK-5217: Attach volume fails with NPE. Made changes to make sure
the hypervisor product version is reported on startup. Also made changes
to fix attach and detach volume on scsi controller.
2013-12-17 16:28:08 +05:30
Devdeep Singh 759d484d9a CLOUDSTACK-5489: Query the user name and add it to the command while mounting a cifs share. 2013-12-17 14:19:32 +05:30
Marcus Sorensen 2f53295151 CLOUDSTACK-5521: Create multi-core topology when deploying KVM virtual machines with many cores 2013-12-16 16:12:43 -07:00
Min Chen 46d1e1afb2 CLOUDSTACK-5446:KVM-Secondary Store down-Even after secondary store is
brought back up after being down for few hours,snapshot jobs do not get
triggered with reason "there is other active snapshot tasks on the
instance to which the volume is attached".
2013-12-13 22:04:29 -08:00
Rajani Karuturi 1d5051f60e CLOUDSTACK-5435 enabled encryption for ldap params 2013-12-13 17:44:24 +05:30
Devdeep Singh 86dadaaec4 CLOUDSTACK-5489: Cloud user doesn't have permissions to copy systemvm.iso to secondary.
Make sure when a cifs (secondary) is mounted, uid is set for the user who owns the files
and directories on the filesystem.
2013-12-13 17:32:34 +05:30
Devdeep Singh db2b8d9b0d CLOUDSTACK-5311: Fix the host version reported by the hyper-v agent. Also updated the hypervisor
capabilities for hyper-v.
2013-12-13 10:28:17 +05:30
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
Alex Huang f33b247fc3 Moved the checkstyle project from parents to build to store all build tools in one location. Modified the config file to use 1024 for now. 2013-12-12 12:23:49 -08:00
Donal Lafferty ffd1a078d4 CLOUDSTACK-5462: Hyperv agent confused by existing volume of different
image type. Works by avoiding volume image format inference errors and
removing existing files with same name, but different format.
2013-12-12 14:56:37 +05:30
Devdeep Singh bdbc5f2ae3 CLOUDSTACK-5473: Fixed the name with which the hyper-v agent gets
installed as a service.
2013-12-12 14:56:29 +05:30
Devdeep Singh 78b39bbe12 CLOUDSTACK-5455: Fix detach iso on hyperv. Made sure normalized path is
used while attaching and detaching iso. Also made normalization of path
across the agent code.
2013-12-11 19:42:36 +05:30
Devdeep Singh 2b1d997728 CLOUDSTACK-5248: Fixed creation of mount point when running as non root (cloud) user.
The systemvm iso file is copied only when a systemvm or router vm is to be started on
a host. The file gets copied to the secondary storage. The mount point used is the one
that has permissions for regular user to mount a share.
CLOUDSTACK-5275: The failure was because a secondary storage wasn't available when the
host was added. When a setup is done through wizard the hosts get added before the
secondary storage. CS was tying to copy yhe systemvm iso to secondary and it used to
fail if it wasn't available. Made a change to copy the iso only when a systemvm is
being started on a host.
CLOUDSTACK-5202: Made changes to clean up mount points on stop and start.

All the three are related fixes; so putting a fix in one commit.
2013-12-11 17:50:13 +05:30
Rajani Karuturi db8f83d71b CLOUDSTACK-5375 :ldapconfig and ldapRemove api's are not working Added support for 4.2 ldap apis
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-12-11 15:30:03 +05:30
Bharat Kumar 36cbc2dfbf CLOUDSTACK-4498 we should not reserve memory and cpu for vmware VMs if the
vmware.reserve.cpu and vmware.reserve.mem are set to false while not overcommiting

Signed-off-by: Jayapal <jayapal@apache.org>
2013-12-11 13:07:56 +05:30
Anthony Xu 1ddc0b99fe put CS/XS plugin log into seperate directory 2013-12-10 01:23:46 -08:00
Jayapal 5c12250dea CLOUDSTACK-5278 Fixed cleaning up egress default rules on VR and SRX
1. Egress default policy rules is send to the firewall provider. It is up to the
    provider to configure the rules.
   2. The default policy rules are send for both allow and deny default policy.
   3. On network shutdown rules for delete are send.
   4. For VR and SRX, by default deny the traffic. So no default rule to deny traffic is required.
2013-12-10 14:19:03 +05:30
tuna dc151115be AutoScaling without NetScaler 2013-12-10 10:35:55 +07:00
Will Stevens c60a256ebd fixed egress rules for palo alto plugin and cleaned up extra api calls on master
Signed-off-by: Sheng Yang <sheng.yang@citrix.com>
2013-12-09 18:26:57 -08:00
tuna 4de09ee654 add Apache Licensed 2013-12-10 08:37:37 +07:00
Murali Reddy be67f5d17a CLOUDSTACK-5428: support NetScaler to be configured exclusively for GSLB
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.
2013-12-10 06:20:58 +05:30
tuna 267ff79bfb post-rebasing 2013-12-09 23:33:15 +07:00
tuna 61e80f030a remove unused code 2013-12-09 23:33:15 +07:00
tuna 7efab20300 fix staticNat after rebase 2013-12-09 23:33:15 +07:00
tuna 4d0602175c refactor ovsProvider to new resource 2013-12-09 23:33:15 +07:00
tuna 0624fe5d03 remove unused table: ovs_nic_map 2013-12-09 23:33:15 +07:00
tuna c7dab82dc4 move cloudstack_pluginlib 2013-12-09 23:33:15 +07:00
tuna 015ab6af8a fix rebase master 2013-12-09 23:33:14 +07:00
tuna 9f82757eb9 tuna 2013-12-09 23:33:14 +07:00
tuna 3df8b912fc add kvm support & LB service 2013-12-09 23:33:14 +07:00
tuna 9c702ff388 tuna add port forwarding support 2013-12-09 23:33:14 +07:00
tuna d935d3865a tuna 2013-12-09 23:33:14 +07:00
Tuna 4e914b7087 re-factor gre controller
Signed-off-by: tuna <ng.tuna@gmail.com>
2013-12-09 23:33:14 +07:00
tuna 96188a3730 re-factor gre controller prototype 2013-12-09 23:33:14 +07:00
tuna 12a4d30007 add two tables for gre controller 2013-12-09 23:33:14 +07:00
tuna 3a9c9bd717 fix white-space 2013-12-09 23:33:14 +07:00
tuna 79a7ce871e make SDN GRE work with XCP 1.6 2013-12-09 23:33:14 +07:00
Wido den Hollander 088247b61b kvm: Force the default disk cache mode to none.
Not doing this caused the cache mode to be null for SystemVMs for their CDROM/ISO.
2013-12-09 16:49:17 +01:00
Anshul Gangwar 1f67ebc297 Fix nuget package path error. 2013-12-09 13:23:20 +05:30
Anshul Gangwar 462e6d91c1 Fix the directory path of where the nuget packages get downloaded. 2013-12-09 11:10:51 +05:30
Likitha Shetty e6127a7c00 CLOUDSTACK-5216. delete volume failed due to Exception: java.lang.Exception" while destroying Vms 2013-12-06 12:04:02 +05:30
Syed Ahmed ee7380ace2 CLOUDSTACK-5296: Add certificate chain support for netscaler
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.
2013-12-05 15:35:28 +05:30
Anthony Xu 04b48ae04e XS VMmetadata platform contains virtual platform related info, CS should save platform info in DB to migrate the VM to other Cluster 2013-12-05 01:41:14 -08:00
Rajesh Battala 0b16a45ceb Modified savepassword.sh path in Hyperv Resource according to the new template 2013-12-05 11:45:54 +05:30
Nitin Mehta fd195433ae fixing the test 2013-12-04 16:14:27 -08:00
Nitin Mehta 71323f15c6 CLOUDSTACK-5352:
CPU cap calculated incorrectly for VMs on XenServer hosts. It should not be limited by the overprovisioning and should set the cap as service offering
2013-12-04 14:59:24 -08:00
Nitin Mehta 71d547ba87 CLOUDSTACK-5352:
CPU cap calculated incorrectly for VMs on XenServer hosts. It should not be limited by the overprovisioning and should set the cap as service offering
2013-12-04 14:53:28 -08:00
Alena Prokharchyk bd6f706b72 CLOUDSTACK-5261: added support for Alert publishing via ROOT Admin API
Conflicts:
	engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
	engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
	engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultHostListener.java
	engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
	plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java
	plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java
	server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java
	usage/src/com/cloud/usage/UsageManagerImpl.java

listAlerts: introduced new parameter "name" to the alertResponse

Conflicts:
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

Added new Admin API - generateAlert. Available to ROOT admin only

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/BaseCmd.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

listAlerts: implemented search by alert name

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	engine/schema/src/com/cloud/alert/AlertVO.java
2013-12-04 10:05:46 -08:00
Devdeep Singh 13740ac135 CLOUDSTACK-5178: DeployVm from ISO fails. Fixed the creation of root
volume and made sure the iso is attached when a vm is deployed.
2013-12-04 20:36:49 +05:30
Jayapal f2c7db9947 Corrected parsing vlan tag in JuniperSrx resource 2013-12-04 16:17:05 +05:30
Donal Lafferty 3f8741a4ec Changes for fixing the hyperv agent build on windows using mono. 2013-12-04 12:21:36 +05:30
Devdeep Singh d26b9ac00e Fix for live migration of vm. Use the host name as the migration
destination. Also mapped the vm state corrected in check vm on host
answer.
2013-12-04 10:31:02 +05:30
Devdeep Singh 5a96307fbf Changes for allowing migration of a vm on hyperv. Migration was blocked in cloudstack for hyperv.
Enabled it. Also updated the agent code to allow hyperv migration.
2013-12-04 10:29:36 +05:30
Min Chen f420b74890 CLOUDSTACK-5355: addImageStore should not log password in clear text in
the log.
2013-12-03 16:55:26 -08:00
Anshul Gangwar cc86599c4d adding missing license headers for cs files 2013-12-03 15:53:39 +05:30
Anthony Xu 5a062e155c put shell scripts to a seperate directory in XS
use same scripts for both XS and XCP
2013-12-03 02:05:34 -08:00
Anshul Gangwar 30db5d648b code to install and uninstall agent as windows service 2013-12-03 12:17:56 +05:30
Rajesh Battala 1d3a4f4645 Fixed issues on HyperV Agent code for shared network VR issues 2013-12-03 12:17:32 +05:30
Rajesh Battala 4d187192b3 Fix VM stats collections in HyperV 2013-12-03 12:16:53 +05:30
Rajesh Battala 875e1ea281 Added contextMap data to all the command responses in HyperV 2013-12-03 12:14:56 +05:30
Wei Zhou d473d5a36a CLOUDSTACK-5293: get vm disk statistics only from DISK (not for ISO/FLOPPY) 2013-11-28 10:47:51 +01:00
wilderrodrigues 2774b62d64 Fixing bugs from Coverity related to Dereferenced Null after check and as return value.
Signed-off-by: Daan Hoogland <daan@onecht.net>
2013-11-27 11:18:00 +01:00
Devdeep Singh c781e3b668 Fixing creation of VM with virtual disks on a shared storage for hyperv. The shared storage
path wasn't getting interpreted correctly by the agent.
2013-11-27 13:04:16 +05:30
Wei Zhou 2145505d30 CLOUDSTACK-5280: fix issue in getBroadcastUriFromBridge
(cherry picked from commit 96842475d9)

Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-11-26 23:37:39 +01:00
Wei Zhou 9be402cb06 CLOUDSTACK-2940: Allowing Replacement of realhostip.com with a customized domain for SSVM
(cherry picked from commit e23b10319f)

    Conflicts:

        plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java
        server/src/com/cloud/storage/upload/UploadMonitorImpl.java
2013-11-26 15:01:23 +01:00
wilderrodrigues 7a6751aa77 Make sure that if the file does not exist an Exception is thrown and that once it exists it is also closed after the properties are loaded.
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-11-26 08:22:29 +01:00
Anthony Xu 84be2ab3be CLOUDSTACK-4913: Don't enable ebtables/iptables for non-security group zone 2013-11-25 16:06:48 -08:00
Darren Shepherd eb21239e3f CLOUDSTACK-5224: Add missing configuration for Netscaler, F5, SRX, and VNMC 2013-11-25 12:03:49 -07:00
Alex Huang 433a631916 Reformat of source code to set a stable base for the future. I couldn't get checkstyle enabled. There's still about a thousand errors from checkstyle. Most of it from length errors from comments and strings. Will attempt to remove those tonight. This change is so large I just want to get it in before any merge nightmares. The changes are fairly minor though and I did a full compile and start a server with the reformat code. 2013-11-21 07:56:47 -08:00
Hugo Trippaers cf715ff491 Bump 4.3.0 to 4.4.0 in master 2013-11-21 16:01:15 +01:00
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang eaa250fd3c Formatted again after all the tab expansions and eol removals 2013-11-21 04:47:01 -08:00