cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kis...@apache.org
Subject git commit: updated refs/heads/master to a941370
Date Mon, 18 Nov 2013 07:51:32 GMT
Updated Branches:
  refs/heads/master 065e5afa0 -> a9413707c


Fix listRouter by clusterId and upgradeRouterTemplate by clusterId


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

Branch: refs/heads/master
Commit: a9413707c9d3ade2b0244bd287353693991494fa
Parents: 065e5af
Author: Kishan Kavala <kishan@cloud.com>
Authored: Mon Nov 18 13:04:49 2013 +0530
Committer: Kishan Kavala <kishan@cloud.com>
Committed: Mon Nov 18 13:05:34 2013 +0530

----------------------------------------------------------------------
 .../command/admin/router/ListRoutersCmd.java    |   9 ++
 .../com/cloud/vm/dao/DomainRouterDaoImpl.java   |  17 +--
 .../com/cloud/api/query/QueryManagerImpl.java   |  13 ++-
 .../cloud/api/query/vo/DomainRouterJoinVO.java  |   7 ++
 setup/db/db/schema-421to430.sql                 | 103 +++++++++++++++++++
 5 files changed, 137 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a9413707/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java b/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
index 2752a13..528d1a9 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
@@ -21,6 +21,7 @@ import org.apache.cloudstack.api.ApiCommandJobType;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
 import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.ClusterResponse;
 import org.apache.cloudstack.api.response.DomainRouterResponse;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.ListResponse;
@@ -65,6 +66,10 @@ public class ListRoutersCmd extends BaseListProjectAndAccountResourcesCmd
{
             description="the Zone ID of the router")
     private Long zoneId;
 
+    @Parameter(name=ApiConstants.CLUSTER_ID, type=CommandType.UUID, entityType=ClusterResponse.class,
+            description="the cluster ID of the router")
+    private Long clusterId;
+
     @Parameter(name=ApiConstants.NETWORK_ID, type=CommandType.UUID, entityType=NetworkResponse.class,
             description="list by network id")
     private Long networkId;
@@ -107,6 +112,10 @@ public class ListRoutersCmd extends BaseListProjectAndAccountResourcesCmd
{
         return zoneId;
     }
 
+    public Long getClusterId() {
+        return clusterId;
+    }
+
     public Long getNetworkId() {
         return networkId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a9413707/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
index 5158e98..1e5dc94 100755
--- a/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
@@ -27,19 +27,15 @@ import org.springframework.stereotype.Component;
 
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
-import com.cloud.host.dao.HostDaoImpl;
 import com.cloud.network.Network;
 import com.cloud.network.dao.RouterNetworkDao;
-import com.cloud.network.dao.RouterNetworkDaoImpl;
 import com.cloud.network.dao.RouterNetworkVO;
 import com.cloud.network.router.VirtualRouter;
 import com.cloud.network.router.VirtualRouter.Role;
 import com.cloud.offering.NetworkOffering;
 import com.cloud.offerings.dao.NetworkOfferingDao;
-import com.cloud.offerings.dao.NetworkOfferingDaoImpl;
 import com.cloud.user.UserStatisticsVO;
 import com.cloud.user.dao.UserStatisticsDao;
-import com.cloud.user.dao.UserStatisticsDaoImpl;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.GenericDaoBase;
 import com.cloud.utils.db.JoinBuilder.JoinType;
@@ -50,7 +46,6 @@ import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.TransactionLegacy;
 import com.cloud.utils.db.UpdateBuilder;
 import com.cloud.vm.DomainRouterVO;
-import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.State;
 
 @Component
@@ -63,6 +58,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO,
Long> im
     protected SearchBuilder<DomainRouterVO> HostUpSearch;
     protected SearchBuilder<DomainRouterVO> StateNetworkTypeSearch;
     protected SearchBuilder<DomainRouterVO> OutsidePodSearch;
+    protected SearchBuilder<DomainRouterVO> clusterSearch;
     @Inject HostDao _hostsDao;
     @Inject RouterNetworkDao _routerNetworkDao;
     @Inject UserStatisticsDao _userStatsDao;
@@ -117,7 +113,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO,
Long> im
         StateNetworkTypeSearch = createSearchBuilder();
         StateNetworkTypeSearch.select(null, Func.DISTINCT, StateNetworkTypeSearch.entity().getId());
         StateNetworkTypeSearch.and("state", StateNetworkTypeSearch.entity().getState(), Op.EQ);
-        SearchBuilder<RouterNetworkVO> joinRouterNetwork4 = _routerNetworkDao.createSearchBuilder();
+        SearchBuilder<RouterNetworkVO> joinRouterNetwork4 =_routerNetworkDao.createSearchBuilder();
         joinRouterNetwork4.and("networkId", joinRouterNetwork4.entity().getNetworkId(), Op.EQ);
         joinRouterNetwork4.and("type", joinRouterNetwork4.entity().getGuestType(), Op.EQ);
         StateNetworkTypeSearch.join("networkRouter", joinRouterNetwork4, joinRouterNetwork4.entity().getRouterId(),
StateNetworkTypeSearch.entity().getId(), JoinType.INNER);
@@ -139,6 +135,11 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO,
Long> im
         OutsidePodSearch.and("role", OutsidePodSearch.entity().getRole(), Op.EQ);
         OutsidePodSearch.done();
 
+        clusterSearch = createSearchBuilder();
+        SearchBuilder<HostVO> clusterHost = _hostsDao.createSearchBuilder();
+        clusterHost.and("clusterId", clusterHost.entity().getClusterId(), Op.EQ);
+        clusterSearch.join("host", clusterHost, clusterSearch.entity().getHostId(), clusterHost.entity().getId(),JoinType.INNER);
+        clusterSearch.done();
     }
 
     @Override
@@ -205,8 +206,8 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO,
Long> im
 
     @Override
     public List<DomainRouterVO> listByClusterId(Long clusterId) {
-        SearchCriteria<DomainRouterVO> sc = AllFieldsSearch.create();
-        //ToDo: Add cluster criteria
+        SearchCriteria<DomainRouterVO> sc = clusterSearch.create();
+        sc.setJoinParameters("host", "clusterId", clusterId);
         return listBy(sc);
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a9413707/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 35a539a..036b9bb 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -1095,7 +1095,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService
{
     @Override
     public ListResponse<DomainRouterResponse> searchForRouters(ListRoutersCmd 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.getState(), cmd.getZoneId(), cmd.getPodId(), cmd.getClusterId(), cmd.getHostId(),
cmd.getKeyword(), cmd.getNetworkId(),
                 cmd.getVpcId(), cmd.getForVpc(), cmd.getRole(), cmd.getVersion());
         ListResponse<DomainRouterResponse> response = new ListResponse<DomainRouterResponse>();
 
@@ -1108,7 +1108,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService
{
     @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.getState(), cmd.getZoneId(), cmd.getPodId(), null, cmd.getHostId(), cmd.getKeyword(),
cmd.getNetworkId(),
                 cmd.getVpcId(), cmd.getForVpc(), cmd.getRole(), null);
         ListResponse<DomainRouterResponse> response = new ListResponse<DomainRouterResponse>();
 
@@ -1119,7 +1119,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService
{
     }
 
     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 name, String state, Long zoneId, Long podId, Long clusterId, Long hostId,
String keyword, Long networkId, Long vpcId, Boolean forVpc,
             String role, String version) {
 
         Account caller = CallContext.current().getCallingAccount();
@@ -1151,10 +1151,11 @@ public class QueryManagerImpl extends ManagerBase implements QueryService
{
         sb.and("state", sb.entity().getState(), SearchCriteria.Op.EQ);
         sb.and("dataCenterId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ);
         sb.and("podId", sb.entity().getPodId(), SearchCriteria.Op.EQ);
+        sb.and("clusterId", sb.entity().getClusterId(), SearchCriteria.Op.EQ);
         sb.and("hostId", sb.entity().getHostId(), SearchCriteria.Op.EQ);
         sb.and("vpcId", sb.entity().getVpcId(), SearchCriteria.Op.EQ);
         sb.and("role", sb.entity().getRole(), SearchCriteria.Op.EQ);
-        sb.and("version", sb.entity().getTemplateVersion(), SearchCriteria.Op.EQ);
+        sb.and("version", sb.entity().getTemplateVersion(), SearchCriteria.Op.LIKE);
 
         if (forVpc != null) {
             if (forVpc) {
@@ -1202,6 +1203,10 @@ public class QueryManagerImpl extends ManagerBase implements QueryService
{
             sc.setParameters("podId", podId);
         }
 
+        if (clusterId != null) {
+            sc.setParameters("clusterId", clusterId);
+        }
+
         if (hostId != null) {
             sc.setParameters("hostId", hostId);
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a9413707/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java b/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
index 33865e2..bba8943 100644
--- a/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
@@ -101,6 +101,9 @@ public class DomainRouterJoinVO extends BaseViewVO implements ControlledViewEnti
     @Column(name="data_center_name")
     private String dataCenterName = null;
 
+    @Column(name="cluster_id")
+    private long clusterId;
+
     @Column(name="dns1")
     private String dns1 = null;
 
@@ -334,6 +337,10 @@ public class DomainRouterJoinVO extends BaseViewVO implements ControlledViewEnti
         return hostName;
     }
 
+    public Long getClusterId() {
+        return clusterId;
+    }
+
     public long getTemplateId() {
         return templateId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a9413707/setup/db/db/schema-421to430.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-421to430.sql b/setup/db/db/schema-421to430.sql
index 1c305f9..7191274 100644
--- a/setup/db/db/schema-421to430.sql
+++ b/setup/db/db/schema-421to430.sql
@@ -648,3 +648,106 @@ CREATE TABLE `cloud`.`remote_access_vpn_details` (
   PRIMARY KEY (`id`),
   CONSTRAINT `fk_remote_access_vpn_details__remote_access_vpn_id` FOREIGN KEY `fk_remote_access_vpn_details__remote_access_vpn_id`(`remote_access_vpn_id`)
REFERENCES `remote_access_vpn`(`id`) ON DELETE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP VIEW IF EXISTS `cloud`.`domain_router_view`;
+CREATE 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.networktype data_center_type,
+        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,
+        host.cluster_id cluster_id,
+        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`.`nics` ON vm_instance.id = nics.instance_id and nics.removed is null
+            left join
+        `cloud`.`networks` ON nics.network_id = networks.id
+            left join
+        `cloud`.`vpc` ON domain_router.vpc_id = vpc.id and vpc.removed is null
+            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;


Mime
View raw message