Commit Graph

7256 Commits

Author SHA1 Message Date
Alex Huang 8f556e6d88 Made changes to configuration. Eliminated ConfigValue and only use ConfigKey 2013-09-06 15:40:38 -07:00
Alex Huang b8e79c30a8 Compile complete 2013-09-06 15:40:37 -07:00
Alex Huang 6e8ca99466 Got all of the config stuff out of the way 2013-09-06 15:40:36 -07:00
Alex Huang 47afae8112 Merged conflicts resolved 2013-09-06 15:40:36 -07:00
Alex Huang 5b439f0748 Revert "Revert "Added missing files""
This reverts commit 48053001fb2303d4acfb77d23fe3733941e83781.
2013-09-06 15:40:35 -07:00
Alex Huang 06493d5b5c Revert "Added missing files"
This reverts commit a1dfc227e895d724f68c0206643825b3ba43116c.
2013-09-06 15:40:35 -07:00
Alex Huang 375eadd3d3 Added missing files 2013-09-06 15:40:34 -07:00
Alex Huang 435e74e914 Commit to try something on removing getZone 2013-09-06 15:40:33 -07:00
Alex Huang 2e5bb63f77 Moved NetworkManagerImpl to NetworkOrchestrator 2013-09-06 15:40:32 -07:00
Alex Huang 8e5249df62 Moved NetworkManager to NetworkOrchestrationService 2013-09-06 15:40:31 -07:00
Sheng Yang ebb9a0c619 Revert "CLOUDSTACK-2792: Send "saved_password" to BACKUP router when reset password for user VM"
This reverts commit 5a8a2a259e.

We would fix it in another way, since mgmt server may get state updated in
time.

Conflicts:
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2013-09-05 14:26:52 -07:00
Kelven Yang 71b8f6061f CLOUDSTACK-4376: fix cloud-early-config to workaround vSwitch stall in VPC mode. fix potential NPE in DirectAgentAttache in processing answers from resource 2013-09-04 14:49:45 -07:00
Kelven Yang c528e71fec CLOUDSTACK-4390, CLOUDSTACK-4358: Enable full-clone deployment by default for VMware. Apply keep-alive kick for all outstanding vCenter sessions 2013-09-04 14:49:45 -07:00
Kelven Yang 9a2148ffc3 CLOUDSTACK-3886: check in for review request https://reviews.apache.org/r/13008/ 2013-09-04 14:49:45 -07:00
Kelven Yang f383656b21 Fix problems found in local test when JVM assertion is turned on 2013-09-04 14:49:44 -07:00
Kelven Yang 249e2e8f59 Correct DAO usage in VmwareDatacenterVO, relax assertion conditions to work with stack calling frame that is not wrapped with @DB injection 2013-09-04 14:49:44 -07:00
Prachi Damle f31c318158 Changes required to merge to master:
- Replace UserContext by CallContext
2013-09-03 20:03:11 -07:00
Prachi Damle 6a0bda0280 CLOUDSTACK-4337 Dedicated Resources: Zone dedicated to an account should only be visible and accessible to that account
Changes:
- When listing a zone, add clause in the search to check the account_id for a dedicated zone
- When listsing a zone with a domainid, add a similar clause.
- DomainCheck:: checkAccess() for a zone should consider that zone can now be dediacted to a specific account and check access accordingly.

Conflicts:

	server/src/com/cloud/api/query/vo/DataCenterJoinVO.java
	setup/db/db/schema-410to420.sql
2013-09-03 20:02:59 -07:00
Prachi Damle 012afceed2 CLOUDSTACK-4276 Dedicated Resources: Private Zone functionality issues
Changes:
createZone API:
- This API takes in domainid, set it to the zone record in the data_center table

updateZone API:
- This API uses 'isPublic' flag to set a private zone to public - if this flag is set and the zone is dedicated, release the dedication and remove the domainid from the data_center table

listZone API:
- This API already has 'domainid' parameter. We should allow list zones by domain for Root admin.

DedicateZone API:
- set domainid in the data_center table

ReleaseDedicatedZone API:
- remove zoneid from the data_center table
2013-09-03 20:02:56 -07:00
Prachi Damle 96ca70e2da CLOUDSTACK-4259 Dedicated Resources: createAffinityGroup API should not allow admin to create the group of this type through API
Changes:
- Block API from creating this type of group
2013-09-03 20:02:53 -07:00
Prachi Damle 2ce2552132 CLOUDSTACK-4234 Dedicated Resources: When multiple dedication groups are chosen for VM deployment, dedicated resources belonging to both groups should be considered
- Override the equals method
2013-09-03 20:02:47 -07:00
Prachi Damle ef22b42b38 CLOUDSTACK-4221: Dedicated Resources: changes to associate the dedicated resource with the 'ExplicitDedication' affinity group
Changes:
- Implict creation of the 'ExplicitDedication' Affinity group during resource dedication
- Only one group per account or per domain will be present
- ListDedicatedResources by affinityGroup
- Deployment should consider dedicated resources associated to the group only
- Deleting affinity group should release the dedicated resouces
- Releasing the dedicated resources should remove the group associated if there are no more resources.

Conflicts:

	plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
	plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/manager/DedicatedApiUnitTest.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
2013-09-03 20:02:38 -07:00
Prachi Damle a06bd9fa2b CLOUDSTACK-4168 Root Admin should be able to create 'ExplicitDedication' affinity group at domain level and make it available for all accounts in the domain
Changes:
- 'ExcplicitDedication' type of group can be created/deleted by Root admin only
- Users can no longer create this type of affinity group
- RootAdmin can create this type of affinitygroup at domain level. Such a domain level group is available for all accounts in that domain for listing and for use during deployVM.
- The domain level affinitygroup should be visible to the users in that domain, domain admins and Root admin.

Conflicts:

	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
	server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java
2013-09-03 20:02:34 -07:00
Min Chen e92d46bfd4 CLOUDSTACK-4600:Registered Cross-zone template does not populate
template_zone_ref for later added zones.
2013-09-03 16:39:23 -07:00
Chip Childers bf967eb622 Updating datetime format of events to include the timezone 2013-09-03 12:45:01 -04:00
Chip Childers ee13e19a03 Passing description string through to the EventBus for ActionEvents 2013-09-03 12:34:36 -04:00
Chip Childers c86f3bc969 Adding body and subject to the AlertGenerator's Event description hash 2013-09-03 12:28:26 -04:00
Chip Childers 14ee684ce3 Adding eventDateTime to all event generation locations 2013-09-03 11:34:56 -04:00
Wei Zhou 65c1c986da CLOUDSTACK-1192: fix collectVmDiskStatistics issue when stopping a vm 2013-09-03 11:45:34 +02:00
Jayapal 7aea599eb4 CLOUDSTACK-4586 Added CIDR validation for SG Egress rules 2013-09-03 14:18:18 +05:30
Wei Zhou a16fd4781c CLOUDSTACK-4566: fix incorrect values in resource_count table for resource limitation
There are three issues in resource_count table
(1) expunge a vm, the public_ip decreases and becomes -1 in basic zone.
(2) recover a vm, the volume increase.
(3) restore a vm, the volume decrease.
2013-09-02 16:56:34 +02:00
Daan Hoogland d9c06e538b CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods 2013-09-01 22:53:23 +02:00
Ian Duffy bdba0ddeed Bring up to date with master 2013-08-31 00:25:48 +01:00
Prachi Damle af175d8c65 CLOUDSTACK-4528 [Vmware] new mapping vmware datacenter cloudstack zone - Virtual Router host migration across cluster FAIL
Change:
- Also add a check in migrateSystemVM API to check that source and destination host are in the same cluster
2013-08-28 17:03:24 -07:00
Prachi Damle 92eb84c3e0 CLOUDSTACK-4528: [Vmware] new mapping vmware datacenter cloudstack zone - Virtual Router host migration across cluster FAIL
Changes:
- listHosts within same cluster for migration of system and router VMs
2013-08-28 17:03:21 -07:00
Chiradeep Vittal 4a9b2fb584 Since some config values moved to individual ConfigKey<T> from Config.java, validation is broken for those keys. Workaround the issue so that updateConfiguration API still works 2013-08-27 18:04:30 -07:00
Min Chen b67a832f77 CLOUDSTACK-4530:Create Template from a Snapshot fails with unable to
find any snapshot ova/ovf when we have multiple secondary storage for a
zone.
2013-08-27 17:15:11 -07:00
Murali Reddy 5f42e2937d CLOUDSTACK-3010: [VMWare] [SharedNetworkWithServices] router VM
deployment fails with error "Message: Invalid configuration for device
'2'."

ensuring that direct network guru assigns a mac address for the nic that
it designs
2013-08-28 00:49:38 +05:30
Harikrishna Patnala 81938c68ac CLOUDSTACK-4482: getVMPassword() API call does not return password for Vms that are deployed with password enabled templates.
Improving the error message saying ssh key pair should be assinged to VM to get the encrypted password.

Signed-off-by: Koushik Das <koushik@apache.org>
2013-08-27 16:41:07 +05:30
Alex Huang 8113ebb08f Moved the csvtotags into StringUtils. It was there to begin with. No idea who copied it to ConfigurationManager 2013-08-26 20:27:27 -07:00
frank 64f9f0cee6 CloudStack CLOUDSTACK-4484
Vmware - Not able to fetch userdata from guest Vms using http://<router-address>/latest/user-data
2013-08-26 17:54:39 -07:00
Alex Huang abbae2aa87 Fixed the problem with offerings and templates. These two items due to a previous patch all the way back in 2.1.x versions uses the removed column incorrectly. No one fixed since then. Hence, there's a bunch of findbyidincludingremoved calls in the cloudstack code around these two items. 2013-08-26 17:31:10 -07:00
Alex Huang 2d05fe40c0 Removed getPod, getCluster from ConfigurationManager 2013-08-26 17:31:09 -07:00
Alex Huang ff6b3fd11a Removed getzone 2013-08-26 17:31:08 -07:00
Koushik Das eeac80eaa2 CLOUDSTACK-4350: [Performance Testing] Adding hosts take much longer time than baselines
During host connect multiple listeners gets invoked, one of them is the download listener.
As part of processConnect() method, it checks if templates needs to be downloaded to secondary
store for a particular HV type. As part of that check it computes list of HVs present in the
zone. The earlier logic was to query all hosts (excluding current one) and iterate over them to
make the list. This is not optimal and is bound to have some latency as the number of hosts
increases.
Optimized the logic by querying the list of HVs from the db. directly instead of iterating over
all hosts in the zone.

Conflicts:
	server/src/com/cloud/resource/ResourceManagerImpl.java
2013-08-26 16:18:54 +05:30
Toshiaki Hatano 914e7c4542 Revert "CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor"
This reverts commit 34ae32e0c2.
2013-08-24 07:12:23 +00:00
Toshiaki Hatano 34ae32e0c2 CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor
Initial patch for VXLAN support.
Fully functional, hopefully, for GuestNetwork - AdvancedZone.

Patch Note:
 in cloudstack-server
- Add isolation method VXLAN
- Add VxlanGuestNetworkGuru as plugin for VXLAN isolation
- Modify NetworkServiceImpl to handle extended vNet range for VXLAN isolation
- Add VXLAN isolation option in zoneWizard UI

 in cloudstack-agent (kvm)
- Add modifyvxlan.sh script that handle bridge/vxlan interface manipulation script
-- Usage is exactly same to modifyvlan.sh
- BridgeVifDriver will call modifyvxlan.sh instead of modifyvlan.sh when VXLAN is used for isolation

Database changes:
- No change in database structure.
- VXLAN isolation uses same tables that VLAN uses to store vNet allocation status.

Known Issue:
- Some resource still says 'VLAN' in log even if VXLAN is used
- in UI, "Network - GuestNetworks" dosen't display VNI
-- VLAN ID field displays "N/A"
2013-08-24 01:39:11 +00:00
Min Chen c6e569755f CLOUDSTACK-4481:API: listEventTypes returns nothing; raises ERROR in MS
logs.
2013-08-23 15:26:57 -07:00
Min Chen 4218ce48f1 CLOUDSTACK-4478:API: ListSwiftsCmd API missing. 2013-08-23 15:26:25 -07:00
Marcus Sorensen 62072514f0 CLOUDSTACK-4661: fix vpcid field in response of creating vpn gateway 2013-08-22 15:17:12 -06:00
Alena Prokharchyk 96a17cc036 CLOUDSTACK-4428: "kvm.snapshot.enabled" flag shouldn't affect detached volumes, or volumes attached to the vm in Stopped/Destroyed state 2013-08-21 16:27:16 -07:00
Alena Prokharchyk d5379b8704 CLOUDSTACK-4392: API volumeresponse - return primary storage information to ROOT and resource domain admin only. 2013-08-21 15:43:06 -07:00
Koushik Das 502c1db103 CLOUDSTACK-3441: [Load Test] High delays between VM being allocated to Pod and network implementation causing delays in VM deployment
The locking code in implement/shutdown network code was not efficient. Even in order to check the current state of the network lock was getting acquired which is not required. This resulted in delays in deploy VM as can be seen from attached logs where the code waited on the lock just to check if network is implemented.
As part of the fix moved out code that is checking if the network is already implemented or shutdowned outside the lock.
2013-08-21 15:25:45 +05:30
Koushik Das 534e0977c3 CLOUDSTACK-2131: [Performance][Enhancement] Avoid checking for providers that are not enabled while creating network.
For some scenarios like prepare nic, all network service providers are checked which is not efficient and also introduces unnecessary dependencies.
The check to use only the required providers is already there for implement, shutdown operation on network. Put the same check for all missing cases.
2013-08-21 12:48:51 +05:30
Min Chen 3bd2bbf59d CLOUDSTACK-3950:Set cross-zone flag in registerTemplate/registerIso in
case of region-wide secondary is enabled.
2013-08-20 14:13:49 -07:00
Alena Prokharchyk d7216a776e CLOUDSTACK-4410: Parallel vm execution - turn on and off based on the global configuration variable. Before the fix, was hard coded to on 2013-08-20 11:04:50 -07:00
Alex Huang 494ea5052f Made IpAddressManager a manager 2013-08-19 14:13:31 -07:00
Alex Huang f23f1530e7 Removed missing class from application context 2013-08-19 14:13:31 -07:00
Alex Huang 45d239882b Added missing files 2013-08-19 14:13:30 -07:00
Alex Huang 092e20204a Divided NetworkManagerImpl into two files: NetworkManagerImpl and IpAddressManagerImpl 2013-08-19 14:13:29 -07:00
Alex Huang 564502abd7 Moved the virtualmachine implementation into engine/orchestration 2013-08-19 14:13:28 -07:00
Alex Huang 4ba359c3fe Moved VirtualMachineManager into engine 2013-08-19 14:13:28 -07:00
Marcus Sorensen 1b52a298e8 CLOUDSTACK-4379: Reset VM states when host is removed from cluster
If you shut down the agent while VMs are running, the management
server assumes that the VMs are continuing to run. You can then
delete the host while it is in 'disconnected' state, and those VMs
will be unusable, forever in running state. They can't change state
because the host no longer exists. This patch checks for any VMs
that may have been tied to the removed host and resets their state
so that cloudstack can continue to manage them.
2013-08-17 00:25:14 -06:00
Min Chen 97ff4981c5 CLOUDSTACK-3274: Remove duplicate cleanString calls in logging api for
performance improvement.
2013-08-16 11:10:25 -07:00
Bharat Kumar 15c93ba9b7 =CLOUDSTACK-4068 scaling up user vm and system vm is failing with NPE if current service offering is deleted
Nitin Mehta <nitin.mehta@citrix.com>
2013-08-16 17:27:00 +05:30
Nitin Mehta 088ce975c6 CLOUDSTACK-4313
Wrong error message is throwing on failure of dynamic scale up operation. Fix it.
Signed off by : nitin mehta<nitin.mehta@citrix.com>
2013-08-16 13:03:42 +05:30
Min Chen 081cfa7b6b CLOUDSTACK-4277:listTemplate should return empty list without any zone
configuration.
2013-08-15 16:47:35 -07:00
Min Chen c675f826e5 CLOUDSTACK-4318:[Object_Store_Refactor] Failed to delete snapshot copied
to Staging storage during snapshot creation.
2013-08-14 18:12:53 -07:00
Alena Prokharchyk ae617b6a35 Revert "fix CLOUDSTACK-2989, do not list network offering with specifyvlan=true for non-root-admin user"
This reverts commit 94254e3c2b.

Conflicts:
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java

Regular user should be able to list the network offering with specifyVlan=true. He just can't use when create the network as he is unaware of the physical network topology. But as the admin can create the network on the user's behalf using this kind of offering, so the user should be able to see the offering's details
2013-08-14 15:22:36 -07:00
Mike Tutkowski 0f60b5d41c CLOUDSTACK-4331 - Enable more capacity from a managed storage device to be given to CloudStack 2013-08-14 15:02:57 -06:00
Alena Prokharchyk b727001f48 CLOUDSTACK-4315: VPC - when fail to add nic to the VR, a) remove the nic b) remove the reference to nic from router_network_ref table. Before the fix b) was missing, and it caused NPEs when tried to apply the rules on the routers not having nic in the network
Conflicts:
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
2013-08-14 11:44:34 -07:00
Edison Su f87eed5b79 fix compile 2013-08-13 15:16:46 -07:00
Edison Su 3eb34d082d CLOUDSTACK-4298: in case both xenserver/vmware mixed in one zone, need to make sure, ssvm is loaded with premiumsecondaryresource 2013-08-13 15:16:46 -07:00
Edison Su c58f15d867 CLOUDSTACK-4222: use new volume object in case of migrate volume 2013-08-13 15:16:45 -07:00
Wei Zhou 3ab1abc6ba CLOUDSTACK-4296: fix a similar issue
(cherry picked from commit e2f47871d1)
2013-08-13 21:56:21 +02:00
Wei Zhou da7f924cc5 CLOUDSTACK-4296: fix parameter setting error in listVirtualMachines command
(cherry picked from commit 72f013f780)
2013-08-13 21:39:24 +02:00
Wido den Hollander 227509be46 Remove .java.orig file
Left over from somebodies editor?
2013-08-13 16:25:09 +02:00
Likitha Shetty 4d48d9603d CLOUDSTACK-4286. Add one more check for validating vlanrange parameter with "dedicateGuestVlanRange" API 2013-08-13 18:54:10 +05:30
Kishan Kavala 29a399b9ae CLOUDSTACK-4289, CLOUDSTACK-4290, CLOUDSTACK-4291 : Check for null when populated UUID while listing usage records.
Filed CLOUDSTACK-4299 to make these entities always available.

Conflicts:
	server/src/com/cloud/api/ApiResponseHelper.java
2013-08-13 18:53:00 +05:30
Nitin Mehta 5b41be3567 CLOUDSTACK-4270
ASF 4.1 to 4.2 Upgrade: Missing Global Configuration parameters on the Upgraded Setup related to "storage.cache". Adding them
Signed off by : nitin mehta<nitin.mehta@citrix.com>
2013-08-13 12:16:31 +05:30
Alex Huang 3df5571d2e Resolved merge conflicts 2013-08-12 20:15:24 -07:00
Alex Huang de2bd96d98 Moved volume related code into cloud-engine-orchestration 2013-08-12 19:06:51 -07:00
Alex Huang ae8ed58228 Added missing file 2013-08-12 19:05:23 -07:00
Alex Huang 0e19e82fac Split up the volume manager into two. One part is for self-service. One part belongs in the engine. Removed old 2.1 upgrade code. In order to upgrade from 2.1, you must upgrade to 2.2. first. So therefore these files are no necessary in the newer versions of CloudStack 2013-08-12 19:05:22 -07:00
Jessica Wang 3c16adf6dc CLOUDSTACK-4142: listNetworkOfferings API has been changed to not return system-owned network offerings to regular-user. So, add networkofferingconservemode property to listNetworks API response. 2013-08-12 17:50:02 -07:00
Min Chen ebdc5786bf CLOUDSTACK-4250: [Object_store_refactor] Register ISO fails in multizone
environment if downloading to one of the zone fails.
2013-08-12 11:26:26 -07:00
Saksham Srivastava 5510bca9e5 CLOUDSTACK-4189: [UI] In multi zone setup, dedicating a single zone to a domain, shows other zones dedicated as well 2013-08-12 18:27:52 +05:30
Murali Reddy 5cff9bd2e6 CLOUDSTACK-4111: Prompt "Acquire New IP - Cross Zones - YES/NO" wizard
only when there is portable IP range added at region level.

region response will now have details if portable IP service is enabled
or not. Portable IP service for a region is turned off by default. when
adming adds a portable ip range portable ip service is enabled for the
region.
2013-08-12 18:12:13 +05:30
Likitha Shetty cd2ea3b844 CLOUDSTACK-4244. Unable to attach a volume to a VM deployed in Stopped (startvm=false) state.
While attaching a volume to a VM, create volume on the hypervisor only if the VM has been started on the it.
2013-08-12 15:49:08 +05:30
Rajesh Battala be9dbcc2c5 CLOUDSTACK-3946 [KVM] [Zone Wide Primary Storages] migrateVolume is deleting the volume if the source and destination pool are same 2013-08-12 13:41:49 +05:30
Murali Reddy f1c611ac60 CLOUDSTACK-4206: [EIP/ELB] Failed to disableStaticNAT when the userVM is
in destroyed state.

ignore VM state when system is enabling static NAT on the system IP to
VM in EIP enable network
2013-08-12 04:49:03 +05:30
Harikrishna Patnala 2868d4b336 CLOUDSTACK-3228: system vms are not comming up in zone with two cluster xen and kvm; Zone host is ready, but secondary storage vm template: 3 is not ready on secondary storage: 2
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-08-11 20:34:39 +05:30
Mike Tutkowski d39408cd0c CLOUDSTACK-4227 2013-08-10 17:43:15 -06:00
Harikrishna Patnala 5404bf6063 CLOUDSTACK-4123: 3.0.6 to ASF 4.2 Upgrade: On Adding VMWare Cluster to the Setup, 3.0.6 System VM Template for VMWare is downloaded instead of 4.2
Updating the new system template URLs for the existing templates during upgrade to 4.2.
If new 4.2 system template is registered before upgrade then marking the old templates as removed during upgrade.
2013-08-10 18:02:49 +05:30
Anthony Xu 36d7b49d5f CLOUDSTACK-4210
delete templateVO entry when there is no image store having this template
2013-08-09 12:08:00 -07:00
Likitha Shetty ec669ff48e CLOUDSTACK-3786. Snapshots removed field is not set after successful deletion of the snapshot.
Set the removed field for snapshot when the storage gc removes the snapshot
2013-08-09 18:48:29 +05:30
Koushik Das 8cf48ed2ce CLOUDSTACK-4179: [Performance Testing] Time taken for Deploy VM async job to complete is considerably higher
The time increased due to the newly added dedicated resources feature. During regular VM deployment, all dedicated resources are put in avoid list so that they are not considered for deployment.
Now the way to compute the list of dedicated resources is not optimal and performance deteriorates in an environment having lot of pods, clusters and hosts as the logic is to query db. for each suc resource.

The fix is to optimize the logic not to loop through all resources but get the list of each resource type in a single query.

Conflicts:
	server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
2013-08-09 16:57:21 +05:30
Devdeep Singh 32701f027a CLOUDSTACK-2670. Migrate volume doesn't allow migration of volumes of a stopped vm.
The findStoragePoolsForMigration and migrateVolume api were explicitly blocking moving
a volume if the instance to which it was attached was stopped. Updated the check for
the same.
2013-08-09 14:28:01 +05:30
Min Chen 99c3e4f3f5 CLOUDSTACK-4190: Add endpoint selector implementation for ImageCache
data store and also delete object from staging area for volume copy from
primary to secondary or vice versa.
2013-08-08 16:17:00 -07:00
Alex Huang 5495f10bce Revert "Reverting the range of commits that broke the build"
This reverts commit b59e3aaefc.
2013-08-08 15:02:40 -07:00