You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2013/04/30 02:47:48 UTC

[49/50] [abbrv] git commit: updated refs/heads/internallb to 4c22c91

Merge branch 'master' into internallb1

Conflicts:
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/firewall/FirewallManagerImpl.java
	setup/db/db/schema-410to420.sql


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7b24a764
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7b24a764
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7b24a764

Branch: refs/heads/internallb
Commit: 7b24a7640c53e5b5ab4493de309b43714f4646c6
Parents: 440e848 a0dbf89
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Apr 29 15:49:48 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Apr 29 16:12:10 2013 -0700

----------------------------------------------------------------------
 agent/conf/agent.properties                        |    2 +-
 .../com/cloud/agent/api/UnregisterVMCommand.java   |   34 +
 .../cloud/configuration/ConfigurationService.java  |   15 +-
 api/src/com/cloud/hypervisor/HypervisorGuru.java   |    9 +
 api/src/com/cloud/network/NetworkModel.java        |    2 +-
 api/src/com/cloud/network/NetworkService.java      |    2 +-
 .../region/ha/GlobalLoadBalancingRulesService.java |    3 +
 api/src/com/cloud/vm/UserVmService.java            |   27 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 api/src/org/apache/cloudstack/api/BaseCmd.java     |   24 +
 .../apache/cloudstack/api/ResponseGenerator.java   |    4 +-
 .../api/command/admin/cluster/ListClustersCmd.java |    8 +-
 .../api/command/admin/config/ListCfgsByCmd.java    |   44 +-
 .../api/command/admin/config/UpdateCfgCmd.java     |   47 +-
 .../api/command/admin/host/ListHostsCmd.java       |    7 +
 .../admin/internallb/ListInternalLBVMsCmd.java     |    7 +
 .../api/command/admin/pod/ListPodsByCmd.java       |    7 +
 .../api/command/admin/router/ListRoutersCmd.java   |    7 +
 .../command/admin/storage/ListStoragePoolsCmd.java |    7 +
 .../command/admin/systemvm/ListSystemVMsCmd.java   |    7 +
 .../api/command/user/iso/ListIsosCmd.java          |    7 +
 .../api/command/user/network/ListNetworksCmd.java  |    7 +
 .../command/user/snapshot/ListSnapshotsCmd.java    |    7 +
 .../command/user/template/ListTemplatesCmd.java    |    8 +
 .../api/command/user/vm/AddIpToVmNicCmd.java       |    9 +-
 .../api/command/user/vm/DeployVMCmd.java           |   12 +-
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |   10 +-
 .../api/command/user/vm/UpdateVMCmd.java           |    2 +-
 .../api/command/user/volume/ListVolumesCmd.java    |    7 +
 .../api/command/user/zone/ListZonesByCmd.java      |    8 +
 .../api/response/ConfigurationResponse.java        |    3 +
 .../api/response/GlobalLoadBalancerResponse.java   |   10 +
 .../api/command/test/AddIpToVmNicTest.java         |    6 +-
 .../com/cloud/bridge/service/core/s3/S3Engine.java |    2 +-
 .../WEB-INF/classes/resources/messages.properties  |  561 ++--
 .../classes/resources/messages_ar.properties       |  285 ++
 .../classes/resources/messages_ca.properties       |  307 ++
 .../classes/resources/messages_de_DE.properties    |  748 ++++
 .../classes/resources/messages_es.properties       |  862 +++++
 .../classes/resources/messages_fr_FR.properties    | 1842 +++++-----
 .../classes/resources/messages_it_IT.properties    |  618 +++
 .../classes/resources/messages_ja.properties       | 2904 +++++++-------
 .../classes/resources/messages_ko_KR.properties    | 2883 +++++++-------
 .../classes/resources/messages_nb_NO.properties    |  366 ++
 .../classes/resources/messages_pt_BR.properties    | 2092 +++++------
 .../classes/resources/messages_ru_RU.properties    | 2890 +++++++--------
 .../classes/resources/messages_zh_CN.properties    | 2986 +++++++--------
 client/pom.xml                                     |   11 +-
 client/tomcatconf/applicationContext.xml.in        |    4 +
 core/src/com/cloud/async/AsyncJobVO.java           |    1 +
 core/src/com/cloud/vm/UserVmVO.java                |    6 +-
 docs/en-US/about-working-with-vms.xml              |   85 +-
 docs/en-US/added-API-commands-4.2.xml              |   24 +
 docs/en-US/append-displayname-vms.xml              |   84 +
 docs/en-US/changed-API-commands-4.2.xml            |   27 +
 docs/en-US/creating-network-offerings.xml          |   45 +
 docs/en-US/delete-event-alerts.xml                 |   59 +
 docs/en-US/elastic-ip.xml                          |   90 +
 docs/en-US/events.xml                              |    5 +-
 docs/en-US/guest-ip-ranges.xml                     |   10 +-
 docs/en-US/images/add-vlan-icon.png                |  Bin 0 -> 860 bytes
 docs/en-US/images/eip-ns-basiczone.png             |  Bin 0 -> 55568 bytes
 docs/en-US/network-offerings.xml                   |   83 +-
 docs/en-US/networks.xml                            |    1 +
 docs/en-US/non-contiguous-vlan.xml                 |   68 +
 docs/en-US/set-up-network-for-users.xml            |   13 +-
 docs/en-US/using-netscaler-load-balancers.xml      |  132 +-
 docs/en-US/virtual-machines.xml                    |    1 +
 docs/en-US/vlan-provisioning.xml                   |    2 +
 packaging/centos63/package.sh                      |    4 +-
 .../debian/config/etc/init.d/cloud-early-config    |    8 +
 .../hypervisor/kvm/resource/KVMHAMonitor.java      |    7 +-
 .../hypervisor/kvm/resource/LibvirtConnection.java |   14 +-
 .../kvm/storage/KVMStoragePoolManager.java         |   12 +-
 .../src/com/cloud/hypervisor/guru/VMwareGuru.java  |    9 +
 .../hypervisor/vmware/resource/VmwareResource.java |   44 +-
 scripts/vm/network/security_group.py               |    2 +-
 server/src/com/cloud/alert/AlertManagerImpl.java   |   27 +-
 server/src/com/cloud/api/ApiDBUtils.java           |   11 +-
 server/src/com/cloud/api/ApiDispatcher.java        |    9 -
 server/src/com/cloud/api/ApiResponseHelper.java    |   69 +-
 server/src/com/cloud/api/ApiServer.java            |  155 +-
 server/src/com/cloud/api/ApiServerService.java     |    1 +
 server/src/com/cloud/api/ApiServlet.java           |    6 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   45 +-
 .../cloud/api/query/dao/AccountJoinDaoImpl.java    |    6 +-
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |    6 +-
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |    6 +-
 .../api/query/dao/SecurityGroupJoinDaoImpl.java    |    6 +-
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |    6 +-
 .../api/query/dao/UserAccountJoinDaoImpl.java      |    6 +-
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |    6 +-
 .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java |    6 +-
 .../src/com/cloud/api/query/vo/AccountJoinVO.java  |    6 +-
 .../com/cloud/api/query/vo/DomainRouterJoinVO.java |    6 +-
 server/src/com/cloud/api/query/vo/HostJoinVO.java  |    6 +-
 .../cloud/api/query/vo/SecurityGroupJoinVO.java    |    6 +-
 .../com/cloud/api/query/vo/StoragePoolJoinVO.java  |    6 +-
 .../com/cloud/api/query/vo/UserAccountJoinVO.java  |    6 +-
 .../src/com/cloud/api/query/vo/UserVmJoinVO.java   |    6 +-
 .../src/com/cloud/api/query/vo/VolumeJoinVO.java   |    6 +-
 server/src/com/cloud/capacity/dao/CapacityDao.java |    2 +-
 .../com/cloud/capacity/dao/CapacityDaoImpl.java    |   35 +-
 server/src/com/cloud/configuration/Config.java     |   20 +-
 .../cloud/configuration/ConfigurationManager.java  |    2 +-
 .../configuration/ConfigurationManagerImpl.java    |  175 +-
 server/src/com/cloud/deploy/FirstFitPlanner.java   |   25 +-
 .../com/cloud/hypervisor/HypervisorGuruBase.java   |    5 +
 .../network/ExternalFirewallDeviceManagerImpl.java |    2 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |    8 +-
 server/src/com/cloud/network/NetworkModelImpl.java |   11 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |   39 +-
 .../network/firewall/FirewallManagerImpl.java      |   12 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |    2 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |    2 +-
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |    6 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |   11 +-
 server/src/com/cloud/server/Criteria.java          |    1 +
 .../src/com/cloud/server/ManagementServerImpl.java |  153 +-
 .../storage/dao/StoragePoolDetailsDaoImpl.java     |    1 +
 .../src/com/cloud/storage/dao/VMTemplateDao.java   |    2 +-
 .../com/cloud/storage/dao/VMTemplateDaoImpl.java   |   11 +-
 .../storage/snapshot/SnapshotManagerImpl.java      |   32 +-
 .../com/cloud/template/TemplateAdapterBase.java    |    7 +-
 .../com/cloud/template/TemplateManagerImpl.java    |   10 +-
 .../upgrade/PremiumDatabaseUpgradeChecker.java     |   75 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |  111 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |   26 +
 .../gslb/GlobalLoadBalancingRulesServiceImpl.java  |   14 +
 .../com/cloud/network/MockNetworkManagerImpl.java  |    3 +-
 .../com/cloud/network/MockNetworkModelImpl.java    |    2 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |   48 +-
 server/test/com/cloud/vm/UserVmManagerTest.java    |   45 +-
 .../test/com/cloud/vm/dao/UserVmDaoImplTest.java   |   43 +-
 .../cloud/vm/dao/UserVmDaoTestConfiguration.java   |   50 +
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    8 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |    3 +-
 .../test/com/cloud/vpc/MockNetworkModelImpl.java   |    2 +-
 .../affinity/AffinityApiTestConfiguration.java     |   29 +-
 .../networkoffering/ChildTestConfiguration.java    |   38 +-
 server/test/resources/UserVMDaoTestContext.xml     |   44 +
 .../resource/NfsSecondaryStorageResource.java      |   22 +
 setup/db/db/schema-410to420.sql                    |  116 +-
 .../component/test_multiple_ip_ranges.py           |  238 ++
 test/integration/component/test_vpn_users.py       |  447 +++
 test/integration/smoke/test_affinity_groups.py     |   10 +-
 .../smoke/test_deploy_vm_with_userdata.py          |  144 +
 test/integration/smoke/test_global_settings.py     |   14 +-
 test/integration/smoke/test_public_ip_range.py     |    6 +-
 test/integration/smoke/test_vm_life_cycle.py       |   28 +-
 tools/marvin/marvin/asyncJobMgr.py                 |   70 +-
 tools/marvin/marvin/cloudstackConnection.py        |   49 +-
 tools/marvin/marvin/cloudstackTestClient.py        |   53 +-
 tools/marvin/marvin/codegenerator.py               |    4 +-
 tools/marvin/marvin/dbConnection.py                |    6 +-
 tools/marvin/marvin/deployDataCenter.py            |    7 +
 tools/marvin/marvin/integration/lib/base.py        |  607 +++-
 tools/marvin/marvin/integration/lib/utils.py       |   17 +-
 tools/marvin/marvin/remoteSSHClient.py             |   18 +-
 tools/transifex/.tx/config                         |   32 +
 tools/transifex/README-transifex.txt               |   71 +
 tools/transifex/sync-transifex-ui.sh               |  160 +
 ui/css/cloudstack3.css                             |   83 +-
 ui/dictionary.jsp                                  | 1710 +++++-----
 ui/images/icons.png                                |  Bin 50745 -> 50052 bytes
 ui/images/sprites.png                              |  Bin 188552 -> 192407 bytes
 ui/index.jsp                                       |   27 +-
 ui/scripts/affinity.js                             |  183 +
 ui/scripts/cloudStack.js                           |    9 +-
 ui/scripts/domains.js                              |    2 +-
 ui/scripts/events.js                               |    8 +-
 ui/scripts/instanceWizard.js                       |  941 +++---
 ui/scripts/instances.js                            |  165 +-
 ui/scripts/regions.js                              |  112 +-
 ui/scripts/sharedFunctions.js                      |    4 +
 ui/scripts/storage.js                              |   14 +-
 ui/scripts/system.js                               |  450 ++-
 ui/scripts/ui-custom/affinity.js                   |  173 +
 ui/scripts/ui-custom/instanceWizard.js             |   19 +
 ui/scripts/ui/widgets/detailView.js                |   29 +-
 ui/scripts/ui/widgets/listView.js                  |   10 +-
 181 files changed, 17443 insertions(+), 10706 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/com/cloud/network/NetworkModel.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/org/apache/cloudstack/api/ResponseGenerator.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/ResponseGenerator.java
index 6512516,cbf8bb2..571901d
--- a/api/src/org/apache/cloudstack/api/ResponseGenerator.java
+++ b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
@@@ -19,8 -19,8 +19,9 @@@ package org.apache.cloudstack.api
  import java.text.DecimalFormat;
  import java.util.EnumSet;
  import java.util.List;
 +import java.util.Map;
  
+ import com.cloud.vm.NicSecondaryIp;
  import org.apache.cloudstack.affinity.AffinityGroup;
  import org.apache.cloudstack.affinity.AffinityGroupResponse;
  import org.apache.cloudstack.api.ApiConstants.HostDetails;
@@@ -415,12 -390,9 +416,11 @@@ public interface ResponseGenerator 
      TrafficMonitorResponse createTrafficMonitorResponse(Host trafficMonitor);
      VMSnapshotResponse createVMSnapshotResponse(VMSnapshot vmSnapshot);
  
-     NicSecondaryIpResponse createSecondaryIPToNicResponse(String ip,
-             Long nicId, Long networkId);
+     NicSecondaryIpResponse createSecondaryIPToNicResponse(NicSecondaryIp result);
      public NicResponse createNicResponse(Nic result);
  
 +    ApplicationLoadBalancerResponse createLoadBalancerContainerReponse(ApplicationLoadBalancerRule lb, Map<Ip, UserVm> lbInstances);
 +    
      AffinityGroupResponse createAffinityGroupResponse(AffinityGroup group);
  
      Long getAffinityGroupId(String name, long entityOwnerId);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
index 5c80e58,0000000..e314b32
mode 100644,000000..100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
@@@ -1,144 -1,0 +1,151 @@@
 +// Licensed to the Apache Software Foundation (ASF) under one
 +// or more contributor license agreements.  See the NOTICE file
 +// distributed with this work for additional information
 +// regarding copyright ownership.  The ASF licenses this file
 +// to you under the Apache License, Version 2.0 (the
 +// "License"); you may not use this file except in compliance
 +// with the License.  You may obtain a copy of the License at
 +//
 +//   http://www.apache.org/licenses/LICENSE-2.0
 +//
 +// Unless required by applicable law or agreed to in writing,
 +// software distributed under the License is distributed on an
 +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 +// KIND, either express or implied.  See the License for the
 +// specific language governing permissions and limitations
 +// under the License.
 +package org.apache.cloudstack.api.command.admin.internallb;
 +
 +import org.apache.cloudstack.api.APICommand;
 +import org.apache.cloudstack.api.ApiConstants;
 +import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
 +import org.apache.cloudstack.api.Parameter;
 +import org.apache.cloudstack.api.response.DomainRouterResponse;
 +import org.apache.cloudstack.api.response.HostResponse;
 +import org.apache.cloudstack.api.response.ListResponse;
 +import org.apache.cloudstack.api.response.NetworkResponse;
 +import org.apache.cloudstack.api.response.PodResponse;
 +import org.apache.cloudstack.api.response.UserVmResponse;
 +import org.apache.cloudstack.api.response.VpcResponse;
 +import org.apache.cloudstack.api.response.ZoneResponse;
 +import org.apache.log4j.Logger;
 +
 +import com.cloud.async.AsyncJob;
 +import com.cloud.network.router.VirtualRouter.Role;
 +
 +@APICommand(name = "listInternalLoadBalancerVMs", description="List internal LB VMs.", responseObject=DomainRouterResponse.class)
 +public class ListInternalLBVMsCmd extends BaseListProjectAndAccountResourcesCmd {
 +    public static final Logger s_logger = Logger.getLogger(ListInternalLBVMsCmd.class.getName());
 +
 +    private static final String s_name = "listinternallbvmssresponse";
 +
 +    /////////////////////////////////////////////////////
 +    //////////////// API parameters /////////////////////
 +    /////////////////////////////////////////////////////
 +
 +    @Parameter(name=ApiConstants.HOST_ID, type=CommandType.UUID, entityType=HostResponse.class,
 +            description="the host ID of the Internal LB VM")
 +    private Long hostId;
 +
 +    @Parameter(name=ApiConstants.ID, type=CommandType.UUID, entityType=UserVmResponse.class,
 +            description="the ID of the Internal LB VM")
 +    private Long id;
 +
 +    @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="the name of the Internal LB VM")
 +    private String routerName;
 +
 +    @Parameter(name=ApiConstants.POD_ID, type=CommandType.UUID, entityType=PodResponse.class,
 +            description="the Pod ID of the Internal LB VM")
 +    private Long podId;
 +
 +    @Parameter(name=ApiConstants.STATE, type=CommandType.STRING, description="the state of the Internal LB VM")
 +    private String state;
 +
 +    @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, entityType=ZoneResponse.class,
 +            description="the Zone ID of the Internal LB VM")
 +    private Long zoneId;
 +
 +    @Parameter(name=ApiConstants.NETWORK_ID, type=CommandType.UUID, entityType=NetworkResponse.class,
 +            description="list by network id")
 +    private Long networkId;
 +
 +    @Parameter(name=ApiConstants.VPC_ID, type=CommandType.UUID, entityType=VpcResponse.class,
 +            description="List Internal LB VMs by VPC")
 +    private Long vpcId;
 +
 +    @Parameter(name=ApiConstants.FOR_VPC, type=CommandType.BOOLEAN, description="if true is passed for this parameter, list only VPC Internal LB VMs")
 +    private Boolean forVpc;
 +    
++    @Parameter(name=ApiConstants.ZONE_TYPE, type=CommandType.STRING, description="the network type of the zone that the virtual machine belongs to")
++    private String zoneType;
++    
 +
 +    /////////////////////////////////////////////////////
 +    /////////////////// Accessors ///////////////////////
 +    /////////////////////////////////////////////////////
 +
 +    public Long getHostId() {
 +        return hostId;
 +    }
 +
 +    public Long getId() {
 +        return id;
 +    }
 +
 +    public String getRouterName() {
 +        return routerName;
 +    }
 +
 +    public Long getPodId() {
 +        return podId;
 +    }
 +
 +    public String getState() {
 +        return state;
 +    }
 +
 +    public Long getZoneId() {
 +        return zoneId;
 +    }
 +
 +    public Long getNetworkId() {
 +        return networkId;
 +    }
 +
 +    public Long getVpcId() {
 +        return vpcId;
 +    }
 +
 +    public Boolean getForVpc() {
 +        return forVpc;
 +    }
 +    
 +    public String getRole() {
 +        return Role.INTERNAL_LB_VM.toString();
 +    }
++    
++    public String getZoneType() {
++        return zoneType;
++    }
 +
 +    /////////////////////////////////////////////////////
 +    /////////////// API Implementation///////////////////
 +    /////////////////////////////////////////////////////
 +
 +    @Override
 +    public String getCommandName() {
 +        return s_name;
 +    }
 +
 +    @Override
 +    public AsyncJob.Type getInstanceType() {
 +        return AsyncJob.Type.DomainRouter;
 +    }
 +
 +    @Override
 +    public void execute(){
 +        ListResponse<DomainRouterResponse> response = _queryService.searchForInternalLbVms(this);
 +        response.setResponseName(getCommandName());
 +        this.setResponseObject(response);
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/client/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/api/ApiDBUtils.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/ApiDBUtils.java
index 9c8fd68,e291c84..f071ffd
--- a/server/src/com/cloud/api/ApiDBUtils.java
+++ b/server/src/com/cloud/api/ApiDBUtils.java
@@@ -493,9 -495,9 +496,10 @@@ public class ApiDBUtils 
      @Inject private VMSnapshotDao vmSnapshotDao;
      @Inject private NicSecondaryIpDao nicSecondaryIpDao;
      @Inject private VpcProvisioningService vpcProvSvc;
 +    @Inject private ApplicationLoadBalancerRuleDao _appLbDao;
      @Inject private AffinityGroupDao affinityGroupDao;
      @Inject private AffinityGroupJoinDao affinityGroupJoinDao;
+     @Inject private GlobalLoadBalancingRulesService gslbService;
  
      @PostConstruct
      void init() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/ApiResponseHelper.java
index 2162fda,6090ff0..f88f7c8
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@@ -34,10 -34,9 +34,11 @@@ import java.util.TimeZone
  
  import javax.inject.Inject;
  
+ import com.cloud.vm.*;
  import org.apache.cloudstack.acl.ControlledEntity;
  import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 +import org.apache.cloudstack.affinity.AffinityGroup;
 +import org.apache.cloudstack.affinity.AffinityGroupResponse;
  import org.apache.cloudstack.api.ApiConstants.HostDetails;
  import org.apache.cloudstack.api.ApiConstants.VMDetails;
  import org.apache.cloudstack.api.BaseCmd;
@@@ -273,19 -264,40 +274,42 @@@ import com.cloud.user.UserContext
  import com.cloud.uservm.UserVm;
  import com.cloud.utils.Pair;
  import com.cloud.utils.StringUtils;
 +import com.cloud.utils.net.Ip;
  import com.cloud.utils.net.NetUtils;
  import com.cloud.vm.VirtualMachine.Type;
  import com.cloud.vm.dao.NicSecondaryIpVO;
  import com.cloud.vm.snapshot.VMSnapshot;
 +
+ import org.apache.cloudstack.acl.ControlledEntity;
+ import org.apache.cloudstack.acl.ControlledEntity.ACLType;
+ import org.apache.cloudstack.affinity.AffinityGroup;
+ import org.apache.cloudstack.affinity.AffinityGroupResponse;
+ import org.apache.cloudstack.api.ApiConstants.HostDetails;
+ import org.apache.cloudstack.api.ApiConstants.VMDetails;
+ import org.apache.cloudstack.api.BaseCmd;
+ import org.apache.cloudstack.api.ResponseGenerator;
+ import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
+ import org.apache.cloudstack.api.response.*;
+ import org.apache.cloudstack.region.Region;
+ import org.apache.cloudstack.usage.Usage;
+ import org.apache.cloudstack.usage.UsageService;
+ import org.apache.cloudstack.usage.UsageTypes;
+ import com.cloud.vm.dao.UserVmData;
+ import com.cloud.vm.dao.UserVmData.NicData;
+ import com.cloud.vm.dao.UserVmData.SecurityGroupData;
+ import com.cloud.vm.snapshot.VMSnapshot;
+ import org.apache.cloudstack.api.ResponseGenerator;
+ import org.apache.cloudstack.api.response.VMSnapshotResponse;
+ import org.apache.log4j.Logger;
+ 
+ import java.text.DecimalFormat;
+ import java.util.*;
+ 
+ import javax.inject.Inject;
+ 
+ import static java.util.Collections.emptyList;
+ import static java.util.Collections.singletonList;
+ 
  @Component
  public class ApiResponseHelper implements ResponseGenerator {
  

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/query/QueryManagerImpl.java
index 3edbc94,50018e5..808b1ef
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@@ -975,32 -981,27 +983,32 @@@ public class QueryManagerImpl extends M
  
      @Override
      public ListResponse<DomainRouterResponse> searchForRouters(ListRoutersCmd cmd) {
 -        Pair<List<DomainRouterJoinVO>, Integer> result = searchForRoutersInternal(cmd);
 +        Pair<List<DomainRouterJoinVO>, Integer> result = searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(),
 +                cmd.getState(), cmd.getZoneId(), cmd.getPodId(), cmd.getHostId(), cmd.getKeyword(), cmd.getNetworkId(),
-                 cmd.getVpcId(), cmd.getForVpc(), cmd.getRole());
++                cmd.getVpcId(), cmd.getForVpc(), cmd.getRole(), cmd.getZoneType());
          ListResponse<DomainRouterResponse> response = new ListResponse<DomainRouterResponse>();
  
          List<DomainRouterResponse> routerResponses = ViewResponseHelper.createDomainRouterResponse(result.first().toArray(new DomainRouterJoinVO[result.first().size()]));
          response.setResponses(routerResponses, result.second());
          return response;
      }
 +    
 +    @Override
 +    public ListResponse<DomainRouterResponse> searchForInternalLbVms(ListInternalLBVMsCmd cmd) {
 +        Pair<List<DomainRouterJoinVO>, Integer> result = searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(),
 +                cmd.getState(), cmd.getZoneId(), cmd.getPodId(), cmd.getHostId(), cmd.getKeyword(), cmd.getNetworkId(),
-                 cmd.getVpcId(), cmd.getForVpc(), cmd.getRole());
++                cmd.getVpcId(), cmd.getForVpc(), cmd.getRole(), cmd.getZoneType());
 +        ListResponse<DomainRouterResponse> response = new ListResponse<DomainRouterResponse>();
  
 +        List<DomainRouterResponse> routerResponses = ViewResponseHelper.createDomainRouterResponse(result.first().toArray(new DomainRouterJoinVO[result.first().size()]));
 +        response.setResponses(routerResponses, result.second());
 +        return response;
 +    }
  
 -    private Pair<List<DomainRouterJoinVO>, Integer> searchForRoutersInternal(ListRoutersCmd cmd) {
 -        Long id = cmd.getId();
 -        String name = cmd.getRouterName();
 -        String state = cmd.getState();
 -        Long zoneId = cmd.getZoneId();
 -        String zoneType = cmd.getZoneType();
 -        Long pod = cmd.getPodId();
 -        Long hostId = cmd.getHostId();
 -        String keyword = cmd.getKeyword();
 -        Long networkId = cmd.getNetworkId();
 -        Long vpcId = cmd.getVpcId();
 -        Boolean forVpc = cmd.getForVpc();
 +
 +    private Pair<List<DomainRouterJoinVO>, Integer> searchForRoutersInternal(BaseListProjectAndAccountResourcesCmd cmd, Long id,
-             String name, String state, Long zoneId, Long podId, Long hostId, String keyword, Long networkId, Long vpcId, Boolean forVpc, String role) {
++            String name, String state, Long zoneId, Long podId, Long hostId, String keyword, Long networkId, Long vpcId, Boolean forVpc, String role, String zoneType) {
 +       
  
          Account caller = UserContext.current().getCaller();
          List<Long> permittedAccounts = new ArrayList<Long>();
@@@ -1072,10 -1073,14 +1081,15 @@@
              sc.setParameters("dataCenterId", zoneId);
          }
  
 +        if (podId != null) {
 +            sc.setParameters("podId", podId);
 +        }
 +
+         if (zoneType != null) {
+             sc.setParameters("dataCenterType", zoneType);
+         }
+         
 -        if (pod != null) {
 -            sc.setParameters("podId", pod);
 -        }
+ 
          if (hostId != null) {
              sc.setParameters("hostId", hostId);
          }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
index 80398f4,125db17..a7a83de
--- a/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
@@@ -157,18 -156,14 +157,20 @@@ public class DomainRouterJoinDaoImpl ex
          routerResponse.setIp6Dns2(router.getIp6Dns2());
  
          routerResponse.setVpcId(router.getVpcUuid());
 +        
 +        routerResponse.setRole(router.getRole().toString());
  
          // set async job
-         routerResponse.setJobId(router.getJobUuid());
-         routerResponse.setJobStatus(router.getJobStatus());
+         if (router.getJobId() != null) {
+             routerResponse.setJobId(router.getJobUuid());
+             routerResponse.setJobStatus(router.getJobStatus());
+         }
  
 -        routerResponse.setObjectName("router");
 +        if (router.getRole() == Role.INTERNAL_LB_VM) {
 +            routerResponse.setObjectName("internalloadbalancervm");
 +        } else {
 +            routerResponse.setObjectName("router");
 +        }
  
          return routerResponse;
      }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/configuration/Config.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/configuration/ConfigurationManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index f281b14,068a586..4425f28
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@@ -39,6 -39,9 +39,10 @@@ import javax.naming.NamingException
  import javax.naming.directory.DirContext;
  import javax.naming.directory.InitialDirContext;
  
++
+ import com.cloud.dc.*;
+ import com.cloud.dc.dao.*;
+ import com.cloud.user.*;
  import org.apache.cloudstack.acl.SecurityChecker;
  import org.apache.cloudstack.api.ApiConstants.LDAPParams;
  import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
@@@ -71,29 -78,8 +79,19 @@@ import com.cloud.api.ApiDBUtils
  import com.cloud.capacity.dao.CapacityDao;
  import com.cloud.configuration.Resource.ResourceType;
  import com.cloud.configuration.dao.ConfigurationDao;
- import com.cloud.dc.AccountVlanMapVO;
- import com.cloud.dc.ClusterVO;
- import com.cloud.dc.DataCenter;
  import com.cloud.dc.DataCenter.NetworkType;
- import com.cloud.dc.DataCenterIpAddressVO;
- import com.cloud.dc.DataCenterLinkLocalIpAddressVO;
- import com.cloud.dc.DataCenterVO;
- import com.cloud.dc.DcDetailVO;
- import com.cloud.dc.HostPodVO;
- import com.cloud.dc.Pod;
- import com.cloud.dc.PodVlanMapVO;
- import com.cloud.dc.Vlan;
  import com.cloud.dc.Vlan.VlanType;
 +import com.cloud.dc.VlanVO;
 +import com.cloud.dc.dao.AccountVlanMapDao;
 +import com.cloud.dc.dao.ClusterDao;
 +import com.cloud.dc.dao.DataCenterDao;
 +import com.cloud.dc.dao.DataCenterIpAddressDao;
 +import com.cloud.dc.dao.DataCenterLinkLocalIpAddressDao;
 +import com.cloud.dc.dao.DcDetailsDao;
 +import com.cloud.dc.dao.HostPodDao;
 +import com.cloud.dc.dao.PodVlanMapDao;
 +import com.cloud.dc.dao.VlanDao;
++
  import com.cloud.deploy.DataCenterDeployment;
  import com.cloud.domain.Domain;
  import com.cloud.domain.DomainVO;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkManagerImpl.java
index 3b644b7,4a8b38f..175974a
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@@ -162,7 -155,7 +163,8 @@@ public class NetworkManagerImpl extend
      @Inject
      PodVlanMapDao _podVlanMapDao;
      @Inject
 +    NetworkOfferingDetailsDao _ntwkOffDetailsDao;
+     ConfigurationServer _configServer;
  
      List<NetworkGuru> _networkGurus;
      public List<NetworkGuru> getNetworkGurus() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkServiceImpl.java
index 9f222a3,2dcb47d..8b77528
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@@ -143,28 -76,34 +143,29 @@@ import com.cloud.utils.Journal
  import com.cloud.utils.NumbersUtil;
  import com.cloud.utils.Pair;
  import com.cloud.utils.component.ManagerBase;
 -import com.cloud.utils.db.*;
 +import com.cloud.utils.db.DB;
 +import com.cloud.utils.db.Filter;
 +import com.cloud.utils.db.JoinBuilder;
 +import com.cloud.utils.db.SearchBuilder;
 +import com.cloud.utils.db.SearchCriteria;
  import com.cloud.utils.db.SearchCriteria.Op;
 +import com.cloud.utils.db.Transaction;
  import com.cloud.utils.exception.CloudRuntimeException;
  import com.cloud.utils.net.NetUtils;
 -import com.cloud.vm.*;
 -import com.cloud.vm.dao.*;
 -import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 -import org.apache.cloudstack.acl.SecurityChecker;
 -import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 -import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
 -import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
 -import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
 -import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
 -import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
 -import org.apache.log4j.Logger;
 -import org.springframework.stereotype.Component;
 -
 -import javax.ejb.Local;
 -import javax.inject.Inject;
 -import javax.naming.ConfigurationException;
 -import java.net.Inet6Address;
 -import java.net.InetAddress;
 -import java.net.UnknownHostException;
 -import java.security.InvalidParameterException;
 -import java.sql.PreparedStatement;
 -import java.sql.ResultSet;
 -import java.sql.SQLException;
 -import java.util.*;
 +import com.cloud.vm.Nic;
++import com.cloud.vm.NicSecondaryIp;
 +import com.cloud.vm.NicVO;
 +import com.cloud.vm.ReservationContext;
 +import com.cloud.vm.ReservationContextImpl;
 +import com.cloud.vm.SecondaryStorageVmVO;
 +import com.cloud.vm.UserVmVO;
 +import com.cloud.vm.VMInstanceVO;
 +import com.cloud.vm.VirtualMachine;
 +import com.cloud.vm.dao.NicDao;
 +import com.cloud.vm.dao.NicSecondaryIpDao;
 +import com.cloud.vm.dao.NicSecondaryIpVO;
 +import com.cloud.vm.dao.UserVmDao;
 +import com.cloud.vm.dao.VMInstanceDao;
  
  /**
   * NetworkServiceImpl implements NetworkService.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/firewall/FirewallManagerImpl.java
index 9a425e1,4ad8868..def4c1e
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@@ -27,7 -27,7 +27,8 @@@ import javax.ejb.Local
  import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
 +import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
+ import com.cloud.network.dao.*;
  import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
  import org.apache.log4j.Logger;
  import org.springframework.stereotype.Component;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/guru/GuestNetworkGuru.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/test/com/cloud/network/MockNetworkModelImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/server/test/com/cloud/vpc/MockNetworkModelImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b24a764/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 2ba5165,a6913b6..c714dee
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -836,7 -838,7 +838,8 @@@ CREATE VIEW `cloud`.`domain_router_view
          domain_router.scripts_version scripts_version,
          domain_router.is_redundant_router is_redundant_router,
          domain_router.redundant_state redundant_state,
--        domain_router.stop_pending stop_pending
++        domain_router.stop_pending stop_pending,
++        domain_router.role role
      from
          `cloud`.`domain_router`
              inner join
@@@ -1107,143 -1109,8 +1110,42 @@@ CREATE VIEW `cloud`.`account_view` A
              and async_job.instance_type = 'Account'
              and async_job.job_status = 0;
  
 +
 +
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `source_ip_address` varchar(40) COMMENT 'source ip address for the load balancer rule';
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `source_ip_address_network_id` bigint unsigned COMMENT 'the id of the network where source ip belongs to';
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `scheme` varchar(40) NOT NULL COMMENT 'load balancer scheme; can be Internal or Public';
 +UPDATE `cloud`.`load_balancing_rules` SET `scheme`='Public';
 +
 +
- -- Add role to the domain router view
- ALTER VIEW `cloud`.`domain_router_view` AS
-     select 
-         vm_instance.id id,
-         vm_instance.name name,
-         account.id account_id,
-         account.uuid account_uuid,
-         account.account_name account_name,
-         account.type account_type,
-         domain.id domain_id,
-         domain.uuid domain_uuid,
-         domain.name domain_name,
-         domain.path domain_path,
-         projects.id project_id,
-         projects.uuid project_uuid,
-         projects.name project_name,
-         vm_instance.uuid uuid,
-         vm_instance.created created,
-         vm_instance.state state,
-         vm_instance.removed removed,
-         vm_instance.pod_id pod_id,
-         vm_instance.instance_name instance_name,
-         host_pod_ref.uuid pod_uuid,
-         data_center.id data_center_id,
-         data_center.uuid data_center_uuid,
-         data_center.name data_center_name,
-         data_center.dns1 dns1,
-         data_center.dns2 dns2,
-         data_center.ip6_dns1 ip6_dns1,
-         data_center.ip6_dns2 ip6_dns2,
-         host.id host_id,
-         host.uuid host_uuid,
-         host.name host_name,
-         vm_template.id template_id,
-         vm_template.uuid template_uuid,
-         service_offering.id service_offering_id,
-         disk_offering.uuid service_offering_uuid,
-         disk_offering.name service_offering_name,
-         nics.id nic_id,
-         nics.uuid nic_uuid,
-         nics.network_id network_id,
-         nics.ip4_address ip_address,
-         nics.ip6_address ip6_address,
-         nics.ip6_gateway ip6_gateway,
-         nics.ip6_cidr ip6_cidr,
-         nics.default_nic is_default_nic,
-         nics.gateway gateway,
-         nics.netmask netmask,
-         nics.mac_address mac_address,
-         nics.broadcast_uri broadcast_uri,
-         nics.isolation_uri isolation_uri,
-         vpc.id vpc_id,
-         vpc.uuid vpc_uuid,
-         networks.uuid network_uuid,
-         networks.name network_name,
-         networks.network_domain network_domain,
-         networks.traffic_type traffic_type,
-         networks.guest_type guest_type,
-         async_job.id job_id,
-         async_job.uuid job_uuid,
-         async_job.job_status job_status,
-         async_job.account_id job_account_id,
-         domain_router.template_version template_version,
-         domain_router.scripts_version scripts_version,
-         domain_router.is_redundant_router is_redundant_router,
-         domain_router.redundant_state redundant_state,
-         domain_router.stop_pending stop_pending,
-         domain_router.role role
-     from
-         `cloud`.`domain_router`
-             inner join
-         `cloud`.`vm_instance` ON vm_instance.id = domain_router.id
-             inner join
-         `cloud`.`account` ON vm_instance.account_id = account.id
-             inner join
-         `cloud`.`domain` ON vm_instance.domain_id = domain.id
-             left join
-         `cloud`.`host_pod_ref` ON vm_instance.pod_id = host_pod_ref.id
-             left join
-         `cloud`.`projects` ON projects.project_account_id = account.id
-             left join
-         `cloud`.`data_center` ON vm_instance.data_center_id = data_center.id
-             left join
-         `cloud`.`host` ON vm_instance.host_id = host.id
-             left join
-         `cloud`.`vm_template` ON vm_instance.vm_template_id = vm_template.id
-             left join
-         `cloud`.`service_offering` ON vm_instance.service_offering_id = service_offering.id
-             left join
-         `cloud`.`disk_offering` ON vm_instance.service_offering_id = disk_offering.id
-             left join
-         `cloud`.`volumes` ON vm_instance.id = volumes.instance_id
-             left join
-         `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
-             left join
-         `cloud`.`nics` ON vm_instance.id = nics.instance_id
-             left join
-         `cloud`.`networks` ON nics.network_id = networks.id
-             left join
-         `cloud`.`vpc` ON domain_router.vpc_id = vpc.id
-             left join
-         `cloud`.`async_job` ON async_job.instance_id = vm_instance.id
-             and async_job.instance_type = 'DomainRouter'
-             and async_job.job_status = 0;
- 
 +
 +-- Add details talbe for the network offering
 +CREATE TABLE `cloud`.`network_offering_details` (
 +  `id` bigint unsigned NOT NULL auto_increment,
 +  `network_offering_id` bigint unsigned NOT NULL COMMENT 'network offering id',
 +  `name` varchar(255) NOT NULL,
 +  `value` varchar(1024) NOT NULL,
 +  PRIMARY KEY (`id`),
 +  CONSTRAINT `fk_network_offering_details__network_offering_id` FOREIGN KEY `fk_network_offering_details__network_offering_id`(`network_offering_id`) REFERENCES `network_offerings`(`id`) ON DELETE CASCADE
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 +
 +-- Change the constraint for the network service map table. Now we support multiple provider for the same service
 +ALTER TABLE `cloud`.`ntwk_service_map` DROP FOREIGN KEY `fk_ntwk_service_map__network_id`;
 +ALTER TABLE `cloud`.`ntwk_service_map` DROP INDEX `network_id`;
 +
 +ALTER TABLE `cloud`.`ntwk_service_map` ADD UNIQUE `network_id` (`network_id`,`service`,`provider`);
 +ALTER TABLE `cloud`.`ntwk_service_map` ADD  CONSTRAINT `fk_ntwk_service_map__network_id` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`) ON DELETE CASCADE;
 +
 +
 +ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `internal_lb` int(1) unsigned NOT NULL DEFAULT '0' COMMENT 'true if the network offering supports Internal lb service';
 +ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `public_lb` int(1) unsigned NOT NULL DEFAULT '0' COMMENT 'true if the network offering supports Public lb service';
 +UPDATE `cloud`.`network_offerings` SET public_lb=1 where id IN (SELECT DISTINCT network_offering_id FROM `cloud`.`ntwk_offering_service_map` WHERE service='Lb');
 +
- alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL;
 +
 +INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'NetworkManager', 'internallbvm.service.offering', null, 'Uuid of the service offering used by internal lb vm; if NULL - default system internal lb offering will be used');
 +
+ alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL;
+ ALTER TABLE `cloud`.`data_center_details` MODIFY value varchar(1024);
+ ALTER TABLE `cloud`.`cluster_details` MODIFY value varchar(255);
+ ALTER TABLE `cloud`.`storage_pool_details` MODIFY value varchar(255);
+ ALTER TABLE `cloud`.`account_details` MODIFY value varchar(255);