From 7597a38f7a255e49b73c833918f30b51504e0c53 Mon Sep 17 00:00:00 2001 From: Min Chen Date: Wed, 12 Dec 2012 18:05:04 -0800 Subject: [PATCH] Move all the DB view DAOs from cloud-server to cloud-api for future api-server package. BUG-ID: CLOUDSTACK-527 Signed-off-by: Rohit Yadav --- .../cloudstack/api/view/DBViewUtils.java | 225 ++++++++++++++++++ .../api/view/ViewResponseHelper.java | 43 ++++ .../api/view}/dao/DomainRouterJoinDao.java | 2 +- .../view}/dao/DomainRouterJoinDaoImpl.java | 7 +- .../api/view}/dao/EventJoinDao.java | 2 +- .../api/view}/dao/EventJoinDaoImpl.java | 8 +- .../api/view}/dao/InstanceGroupJoinDao.java | 2 +- .../view}/dao/InstanceGroupJoinDaoImpl.java | 6 +- .../api/view}/dao/ProjectAccountJoinDao.java | 2 +- .../view}/dao/ProjectAccountJoinDaoImpl.java | 2 +- .../view}/dao/ProjectInvitationJoinDao.java | 2 +- .../dao/ProjectInvitationJoinDaoImpl.java | 5 +- .../api/view}/dao/ProjectJoinDao.java | 2 +- .../api/view}/dao/ProjectJoinDaoImpl.java | 13 +- .../api/view}/dao/ResourceTagJoinDao.java | 2 +- .../api/view}/dao/ResourceTagJoinDaoImpl.java | 8 +- .../api/view}/dao/SecurityGroupJoinDao.java | 3 +- .../view}/dao/SecurityGroupJoinDaoImpl.java | 17 +- .../api/view}/dao/UserAccountJoinDao.java | 2 +- .../api/view}/dao/UserAccountJoinDaoImpl.java | 9 +- .../api/view}/dao/UserVmJoinDao.java | 2 +- .../api/view}/dao/UserVmJoinDaoImpl.java | 16 +- server/src/com/cloud/api/ApiDBUtils.java | 141 +---------- .../src/com/cloud/api/ApiResponseHelper.java | 71 +++--- .../DefaultComponentLibrary.java | 21 +- .../security/SecurityGroupManagerImpl.java | 2 +- .../cloud/projects/ProjectManagerImpl.java | 6 +- .../cloud/server/ManagementServerImpl.java | 6 +- .../cloud/tags/TaggedResourceManagerImpl.java | 2 +- .../com/cloud/user/AccountManagerImpl.java | 3 +- .../src/com/cloud/vm/UserVmManagerImpl.java | 2 +- .../SecurityGroupManagerImpl2Test.java | 2 +- 32 files changed, 392 insertions(+), 244 deletions(-) create mode 100644 api/src/org/apache/cloudstack/api/view/DBViewUtils.java create mode 100644 api/src/org/apache/cloudstack/api/view/ViewResponseHelper.java rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/DomainRouterJoinDao.java (97%) rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/DomainRouterJoinDaoImpl.java (98%) rename {server/src/com/cloud/event => api/src/org/apache/cloudstack/api/view}/dao/EventJoinDao.java (97%) rename {server/src/com/cloud/event => api/src/org/apache/cloudstack/api/view}/dao/EventJoinDaoImpl.java (96%) rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/InstanceGroupJoinDao.java (96%) rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/InstanceGroupJoinDaoImpl.java (94%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectAccountJoinDao.java (96%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectAccountJoinDaoImpl.java (98%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectInvitationJoinDao.java (96%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectInvitationJoinDaoImpl.java (96%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectJoinDao.java (96%) rename {server/src/com/cloud/projects => api/src/org/apache/cloudstack/api/view}/dao/ProjectJoinDaoImpl.java (89%) rename {server/src/com/cloud/tags => api/src/org/apache/cloudstack/api/view}/dao/ResourceTagJoinDao.java (96%) rename {server/src/com/cloud/tags => api/src/org/apache/cloudstack/api/view}/dao/ResourceTagJoinDaoImpl.java (95%) rename {server/src/com/cloud/network/security => api/src/org/apache/cloudstack/api/view}/dao/SecurityGroupJoinDao.java (97%) rename {server/src/com/cloud/network/security => api/src/org/apache/cloudstack/api/view}/dao/SecurityGroupJoinDaoImpl.java (92%) rename {server/src/com/cloud/user => api/src/org/apache/cloudstack/api/view}/dao/UserAccountJoinDao.java (96%) rename {server/src/com/cloud/user => api/src/org/apache/cloudstack/api/view}/dao/UserAccountJoinDaoImpl.java (93%) rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/UserVmJoinDao.java (97%) rename {server/src/com/cloud/vm => api/src/org/apache/cloudstack/api/view}/dao/UserVmJoinDaoImpl.java (95%) diff --git a/api/src/org/apache/cloudstack/api/view/DBViewUtils.java b/api/src/org/apache/cloudstack/api/view/DBViewUtils.java new file mode 100644 index 00000000000..5ea7eb7dab0 --- /dev/null +++ b/api/src/org/apache/cloudstack/api/view/DBViewUtils.java @@ -0,0 +1,225 @@ +// 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.view; + +import java.util.EnumSet; +import java.util.List; + +import org.apache.cloudstack.api.ApiConstants.VMDetails; +import org.apache.cloudstack.api.response.DomainRouterResponse; +import org.apache.cloudstack.api.response.EventResponse; +import org.apache.cloudstack.api.response.InstanceGroupResponse; +import org.apache.cloudstack.api.response.ProjectAccountResponse; +import org.apache.cloudstack.api.response.ProjectInvitationResponse; +import org.apache.cloudstack.api.response.ProjectResponse; +import org.apache.cloudstack.api.response.ResourceTagResponse; +import org.apache.cloudstack.api.response.SecurityGroupResponse; +import org.apache.cloudstack.api.response.UserResponse; +import org.apache.cloudstack.api.response.UserVmResponse; +import org.apache.cloudstack.api.view.dao.DomainRouterJoinDao; +import org.apache.cloudstack.api.view.dao.EventJoinDao; +import org.apache.cloudstack.api.view.dao.InstanceGroupJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectAccountJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectInvitationJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectJoinDao; +import org.apache.cloudstack.api.view.dao.ResourceTagJoinDao; +import org.apache.cloudstack.api.view.dao.SecurityGroupJoinDao; +import org.apache.cloudstack.api.view.dao.UserAccountJoinDao; +import org.apache.cloudstack.api.view.dao.UserVmJoinDao; +import org.apache.cloudstack.api.view.vo.DomainRouterJoinVO; +import org.apache.cloudstack.api.view.vo.EventJoinVO; +import org.apache.cloudstack.api.view.vo.InstanceGroupJoinVO; +import org.apache.cloudstack.api.view.vo.ProjectAccountJoinVO; +import org.apache.cloudstack.api.view.vo.ProjectInvitationJoinVO; +import org.apache.cloudstack.api.view.vo.ProjectJoinVO; +import org.apache.cloudstack.api.view.vo.ResourceTagJoinVO; +import org.apache.cloudstack.api.view.vo.SecurityGroupJoinVO; +import org.apache.cloudstack.api.view.vo.UserAccountJoinVO; +import org.apache.cloudstack.api.view.vo.UserVmJoinVO; + + +import com.cloud.configuration.ConfigurationService; +import com.cloud.event.Event; +import com.cloud.network.router.VirtualRouter; +import com.cloud.network.security.SecurityGroup; +import com.cloud.projects.Project; +import com.cloud.projects.ProjectAccount; +import com.cloud.projects.ProjectInvitation; +import com.cloud.projects.ProjectService; +import com.cloud.server.ResourceTag; +import com.cloud.server.TaggedResourceService; +import com.cloud.user.Account; +import com.cloud.user.ResourceLimitService; +import com.cloud.user.User; +import com.cloud.user.UserAccount; + +import com.cloud.uservm.UserVm; +import com.cloud.utils.component.ComponentLocator; +import com.cloud.vm.InstanceGroup; + + +/** + * @author minc + * + */ +public class DBViewUtils { + + private static DomainRouterJoinDao _domainRouterJoinDao; + private static SecurityGroupJoinDao _securityGroupJoinDao; + private static UserVmJoinDao _userVmJoinDao; + private static ResourceTagJoinDao _tagJoinDao; + private static EventJoinDao _eventJoinDao; + private static InstanceGroupJoinDao _vmGroupJoinDao; + private static UserAccountJoinDao _userAccountJoinDao; + private static ProjectJoinDao _projectJoinDao; + private static ProjectAccountJoinDao _projectAccountJoinDao; + private static ProjectInvitationJoinDao _projectInvitationJoinDao; + + static { + ComponentLocator locator = ComponentLocator.getLocator("management-server"); + _domainRouterJoinDao = locator.getDao(DomainRouterJoinDao.class); + _userVmJoinDao = locator.getDao(UserVmJoinDao.class); + _securityGroupJoinDao = locator.getDao(SecurityGroupJoinDao.class); + _tagJoinDao = locator.getDao(ResourceTagJoinDao.class); + _vmGroupJoinDao = locator.getDao(InstanceGroupJoinDao.class); + _eventJoinDao = locator.getDao(EventJoinDao.class); + _userAccountJoinDao = locator.getDao(UserAccountJoinDao.class); + _projectJoinDao = locator.getDao(ProjectJoinDao.class); + _projectAccountJoinDao = locator.getDao(ProjectAccountJoinDao.class); + _projectInvitationJoinDao = locator.getDao(ProjectInvitationJoinDao.class); + } + + + public static DomainRouterResponse newDomainRouterResponse(DomainRouterJoinVO vr, Account caller) { + return _domainRouterJoinDao.newDomainRouterResponse(vr, caller); + } + + public static DomainRouterResponse fillRouterDetails(DomainRouterResponse vrData, DomainRouterJoinVO vr){ + return _domainRouterJoinDao.setDomainRouterResponse(vrData, vr); + } + + public static List newDomainRouterView(VirtualRouter vr){ + return _domainRouterJoinDao.newDomainRouterView(vr); + } + + public static UserVmResponse newUserVmResponse(String objectName, UserVmJoinVO userVm, EnumSet details, Account caller) { + return _userVmJoinDao.newUserVmResponse(objectName, userVm, details, caller); + } + + public static UserVmResponse fillVmDetails(UserVmResponse vmData, UserVmJoinVO vm){ + return _userVmJoinDao.setUserVmResponse(vmData, vm); + } + + public static List newUserVmView(UserVm... userVms){ + return _userVmJoinDao.newUserVmView(userVms); + } + + public static SecurityGroupResponse newSecurityGroupResponse(SecurityGroupJoinVO vsg, Account caller) { + return _securityGroupJoinDao.newSecurityGroupResponse(vsg, caller); + } + + public static SecurityGroupResponse fillSecurityGroupDetails(SecurityGroupResponse vsgData, SecurityGroupJoinVO sg){ + return _securityGroupJoinDao.setSecurityGroupResponse(vsgData, sg); + } + + public static List newSecurityGroupView(SecurityGroup sg){ + return _securityGroupJoinDao.newSecurityGroupView(sg); + } + + public static List findSecurityGroupViewById(Long sgId){ + return _securityGroupJoinDao.searchByIds(sgId); + } + + public static ResourceTagResponse newResourceTagResponse(ResourceTagJoinVO vsg, boolean keyValueOnly) { + return _tagJoinDao.newResourceTagResponse(vsg, keyValueOnly); + } + + public static ResourceTagJoinVO newResourceTagView(ResourceTag sg){ + return _tagJoinDao.newResourceTagView(sg); + } + + public static ResourceTagJoinVO findResourceTagViewById(Long tagId){ + List tags = _tagJoinDao.searchByIds(tagId); + if ( tags != null && tags.size() > 0 ){ + return tags.get(0); + } + else{ + return null; + } + } + + public static EventResponse newEventResponse(EventJoinVO ve) { + return _eventJoinDao.newEventResponse(ve); + } + + public static EventJoinVO newEventView(Event e){ + return _eventJoinDao.newEventView(e); + } + + public static InstanceGroupResponse newInstanceGroupResponse(InstanceGroupJoinVO ve) { + return _vmGroupJoinDao.newInstanceGroupResponse(ve); + } + + public static InstanceGroupJoinVO newInstanceGroupView(InstanceGroup e){ + return _vmGroupJoinDao.newInstanceGroupView(e); + } + + public static UserResponse newUserResponse(UserAccountJoinVO usr) { + return _userAccountJoinDao.newUserResponse(usr); + } + + public static UserAccountJoinVO newUserView(User usr){ + return _userAccountJoinDao.newUserView(usr); + } + + public static UserAccountJoinVO newUserView(UserAccount usr){ + return _userAccountJoinDao.newUserView(usr); + } + + public static ProjectResponse newProjectResponse(ProjectJoinVO proj) { + return _projectJoinDao.newProjectResponse(proj); + } + + public static ProjectResponse fillProjectDetails(ProjectResponse rsp, ProjectJoinVO proj){ + return _projectJoinDao.setProjectResponse(rsp,proj); + } + + public static List newProjectView(Project proj){ + return _projectJoinDao.newProjectView(proj); + } + + public static List findUserViewByAccountId(Long accountId){ + return _userAccountJoinDao.searchByAccountId(accountId); + } + + public static ProjectAccountResponse newProjectAccountResponse(ProjectAccountJoinVO proj) { + return _projectAccountJoinDao.newProjectAccountResponse(proj); + } + + public static ProjectAccountJoinVO newProjectAccountView(ProjectAccount proj) { + return _projectAccountJoinDao.newProjectAccountView(proj); + } + + public static ProjectInvitationResponse newProjectInvitationResponse(ProjectInvitationJoinVO proj) { + return _projectInvitationJoinDao.newProjectInvitationResponse(proj); + } + + public static ProjectInvitationJoinVO newProjectInvitationView(ProjectInvitation proj) { + return _projectInvitationJoinDao.newProjectInvitationView(proj); + } + +} diff --git a/api/src/org/apache/cloudstack/api/view/ViewResponseHelper.java b/api/src/org/apache/cloudstack/api/view/ViewResponseHelper.java new file mode 100644 index 00000000000..39c0429047c --- /dev/null +++ b/api/src/org/apache/cloudstack/api/view/ViewResponseHelper.java @@ -0,0 +1,43 @@ +// 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.view; + +import org.apache.cloudstack.api.response.ControlledViewEntityResponse; +import org.apache.cloudstack.api.view.vo.ControlledViewEntity; + +import com.cloud.user.Account; + +/** + * Some helper routine in generating response from db view. + * @author minc + * + */ +public class ViewResponseHelper { + + public static void populateOwner(ControlledViewEntityResponse response, ControlledViewEntity object) { + + if (object.getAccountType() == Account.ACCOUNT_TYPE_PROJECT) { + response.setProjectId(object.getProjectUuid()); + response.setProjectName(object.getProjectName()); + } else { + response.setAccountName(object.getAccountName()); + } + + response.setDomainId(object.getDomainUuid()); + response.setDomainName(object.getDomainName()); + } +} diff --git a/server/src/com/cloud/vm/dao/DomainRouterJoinDao.java b/api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDao.java similarity index 97% rename from server/src/com/cloud/vm/dao/DomainRouterJoinDao.java rename to api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDao.java index 9bb03be7539..54390c17f37 100644 --- a/server/src/com/cloud/vm/dao/DomainRouterJoinDao.java +++ b/api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDao.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; diff --git a/server/src/com/cloud/vm/dao/DomainRouterJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDaoImpl.java similarity index 98% rename from server/src/com/cloud/vm/dao/DomainRouterJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDaoImpl.java index 38839e3255c..0f3a96c7026 100644 --- a/server/src/com/cloud/vm/dao/DomainRouterJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/DomainRouterJoinDaoImpl.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.util.ArrayList; import java.util.List; @@ -23,9 +23,10 @@ import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiResponseHelper; + import org.apache.cloudstack.api.response.DomainRouterResponse; import org.apache.cloudstack.api.response.NicResponse; +import org.apache.cloudstack.api.view.ViewResponseHelper; import org.apache.cloudstack.api.view.vo.DomainRouterJoinVO; import com.cloud.network.Networks.TrafficType; import com.cloud.network.router.VirtualRouter; @@ -132,7 +133,7 @@ public class DomainRouterJoinDaoImpl extends GenericDaoBase implemen responseEvent.setState(event.getState()); responseEvent.setUsername(event.getUserName()); - ApiResponseHelper.populateOwner(responseEvent, event); + ViewResponseHelper.populateOwner(responseEvent, event); responseEvent.setObjectName("event"); return responseEvent; } diff --git a/server/src/com/cloud/vm/dao/InstanceGroupJoinDao.java b/api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDao.java similarity index 96% rename from server/src/com/cloud/vm/dao/InstanceGroupJoinDao.java rename to api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDao.java index 64599be010e..1d067fc3519 100644 --- a/server/src/com/cloud/vm/dao/InstanceGroupJoinDao.java +++ b/api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDao.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; diff --git a/server/src/com/cloud/vm/dao/InstanceGroupJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDaoImpl.java similarity index 94% rename from server/src/com/cloud/vm/dao/InstanceGroupJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDaoImpl.java index aa20b770dc3..cdc65915eb8 100644 --- a/server/src/com/cloud/vm/dao/InstanceGroupJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/InstanceGroupJoinDaoImpl.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; @@ -22,8 +22,8 @@ import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiResponseHelper; import org.apache.cloudstack.api.response.InstanceGroupResponse; +import org.apache.cloudstack.api.view.ViewResponseHelper; import org.apache.cloudstack.api.view.vo.InstanceGroupJoinVO; import com.cloud.utils.db.GenericDaoBase; @@ -63,7 +63,7 @@ public class InstanceGroupJoinDaoImpl extends GenericDaoBase impl // update tag information Long tag_id = proj.getTagId(); if (tag_id != null && tag_id.longValue() > 0) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - response.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + response.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } @@ -83,9 +84,9 @@ public class ProjectJoinDaoImpl extends GenericDaoBase impl // update tag information Long tag_id = proj.getTagId(); if (tag_id != null && tag_id.longValue() > 0) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - rsp.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + rsp.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } return rsp; diff --git a/server/src/com/cloud/tags/dao/ResourceTagJoinDao.java b/api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDao.java similarity index 96% rename from server/src/com/cloud/tags/dao/ResourceTagJoinDao.java rename to api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDao.java index 8dd3d82d02e..38f3e0d7b92 100644 --- a/server/src/com/cloud/tags/dao/ResourceTagJoinDao.java +++ b/api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDao.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.tags.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; diff --git a/server/src/com/cloud/tags/dao/ResourceTagJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDaoImpl.java similarity index 95% rename from server/src/com/cloud/tags/dao/ResourceTagJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDaoImpl.java index 3c2dafa03e4..519ef3d0194 100644 --- a/server/src/com/cloud/tags/dao/ResourceTagJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/ResourceTagJoinDaoImpl.java @@ -14,17 +14,17 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.tags.dao; +package org.apache.cloudstack.api.view.dao; -import java.util.ArrayList; import java.util.List; import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiResponseHelper; + import org.apache.cloudstack.api.response.ResourceTagResponse; +import org.apache.cloudstack.api.view.ViewResponseHelper; import org.apache.cloudstack.api.view.vo.ResourceTagJoinVO; import com.cloud.server.ResourceTag; import com.cloud.utils.db.GenericDaoBase; @@ -67,7 +67,7 @@ public class ResourceTagJoinDaoImpl extends GenericDaoBase searchByIds(Long... ids); } - diff --git a/server/src/com/cloud/network/security/dao/SecurityGroupJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/SecurityGroupJoinDaoImpl.java similarity index 92% rename from server/src/com/cloud/network/security/dao/SecurityGroupJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/SecurityGroupJoinDaoImpl.java index 6ecb258b39a..95256c5c77b 100644 --- a/server/src/com/cloud/network/security/dao/SecurityGroupJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/SecurityGroupJoinDaoImpl.java @@ -14,19 +14,18 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.network.security.dao; +package org.apache.cloudstack.api.view.dao; -import java.util.ArrayList; import java.util.List; import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiDBUtils; -import com.cloud.api.ApiResponseHelper; import org.apache.cloudstack.api.response.SecurityGroupResponse; import org.apache.cloudstack.api.response.SecurityGroupRuleResponse; +import org.apache.cloudstack.api.view.DBViewUtils; +import org.apache.cloudstack.api.view.ViewResponseHelper; import org.apache.cloudstack.api.view.vo.ResourceTagJoinVO; import org.apache.cloudstack.api.view.vo.SecurityGroupJoinVO; import com.cloud.network.security.SecurityGroup; @@ -64,7 +63,7 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase 0) { @@ -103,9 +102,9 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase 0) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - sgResponse.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + sgResponse.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } sgResponse.setObjectName("securitygroup"); @@ -152,9 +151,9 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase 0 ) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - vsgData.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + vsgData.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } return vsgData; diff --git a/server/src/com/cloud/user/dao/UserAccountJoinDao.java b/api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDao.java similarity index 96% rename from server/src/com/cloud/user/dao/UserAccountJoinDao.java rename to api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDao.java index 39a82d05c74..d13d932c0f4 100644 --- a/server/src/com/cloud/user/dao/UserAccountJoinDao.java +++ b/api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDao.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.user.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; diff --git a/server/src/com/cloud/user/dao/UserAccountJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDaoImpl.java similarity index 93% rename from server/src/com/cloud/user/dao/UserAccountJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDaoImpl.java index e854ae5c493..556da8c87bc 100644 --- a/server/src/com/cloud/user/dao/UserAccountJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/UserAccountJoinDaoImpl.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.user.dao; +package org.apache.cloudstack.api.view.dao; import java.util.List; @@ -22,20 +22,15 @@ import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiDBUtils; -import com.cloud.api.ApiResponseHelper; -import org.apache.cloudstack.api.response.InstanceGroupResponse; + import org.apache.cloudstack.api.response.UserResponse; -import org.apache.cloudstack.api.view.vo.InstanceGroupJoinVO; import org.apache.cloudstack.api.view.vo.UserAccountJoinVO; -import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.user.UserAccount; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; -import com.cloud.vm.InstanceGroup; @Local(value={UserAccountJoinDao.class}) diff --git a/server/src/com/cloud/vm/dao/UserVmJoinDao.java b/api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDao.java similarity index 97% rename from server/src/com/cloud/vm/dao/UserVmJoinDao.java rename to api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDao.java index 7788a62dca7..9f8618c98ee 100644 --- a/server/src/com/cloud/vm/dao/UserVmJoinDao.java +++ b/api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDao.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.util.EnumSet; import java.util.List; diff --git a/server/src/com/cloud/vm/dao/UserVmJoinDaoImpl.java b/api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDaoImpl.java similarity index 95% rename from server/src/com/cloud/vm/dao/UserVmJoinDaoImpl.java rename to api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDaoImpl.java index b20e53f10ea..b7821cc01a4 100644 --- a/server/src/com/cloud/vm/dao/UserVmJoinDaoImpl.java +++ b/api/src/org/apache/cloudstack/api/view/dao/UserVmJoinDaoImpl.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package com.cloud.vm.dao; +package org.apache.cloudstack.api.view.dao; import java.text.DecimalFormat; import java.util.ArrayList; @@ -26,11 +26,12 @@ import javax.ejb.Local; import org.apache.log4j.Logger; -import com.cloud.api.ApiDBUtils; +//import com.cloud.api.ApiDBUtils; import org.apache.cloudstack.api.ApiConstants.VMDetails; import org.apache.cloudstack.api.response.NicResponse; import org.apache.cloudstack.api.response.SecurityGroupResponse; import org.apache.cloudstack.api.response.UserVmResponse; +import org.apache.cloudstack.api.view.DBViewUtils; import org.apache.cloudstack.api.view.vo.ResourceTagJoinVO; import org.apache.cloudstack.api.view.vo.UserVmJoinVO; import com.cloud.user.Account; @@ -131,6 +132,8 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem userVmResponse.setPublicIp(userVm.getPublicIpAddress()); userVmResponse.setKeyPairName(userVm.getKeypairName()); + /*TODO: we need to invoke cloud-engine API to get Vm statistics or StatsConnector needs + * to put them into DB tables if (details.contains(VMDetails.all) || details.contains(VMDetails.stats)) { DecimalFormat decimalFormat = new DecimalFormat("#.##"); // stats calculation @@ -148,6 +151,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem userVmResponse.setNetworkKbsWrite(networkKbWrite.longValue()); } } + */ if (details.contains(VMDetails.all) || details.contains(VMDetails.secgrp)) { Long securityGroupId = userVm.getSecurityGroupId(); @@ -198,9 +202,9 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem // update tag information long tag_id = userVm.getTagId(); if (tag_id > 0) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - userVmResponse.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + userVmResponse.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } userVmResponse.setObjectName(objectName); @@ -253,9 +257,9 @@ public class UserVmJoinDaoImpl extends GenericDaoBase implem long tag_id = uvo.getTagId(); if (tag_id > 0) { - ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id); + ResourceTagJoinVO vtag = DBViewUtils.findResourceTagViewById(tag_id); if ( vtag != null ){ - userVmData.addTag(ApiDBUtils.newResourceTagResponse(vtag, false)); + userVmData.addTag(DBViewUtils.newResourceTagResponse(vtag, false)); } } return userVmData; diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index d5cce52e5f9..ae4260929a3 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -33,6 +33,16 @@ import org.apache.cloudstack.api.response.ResourceTagResponse; import org.apache.cloudstack.api.response.SecurityGroupResponse; import org.apache.cloudstack.api.response.UserResponse; import org.apache.cloudstack.api.response.UserVmResponse; +import org.apache.cloudstack.api.view.dao.DomainRouterJoinDao; +import org.apache.cloudstack.api.view.dao.EventJoinDao; +import org.apache.cloudstack.api.view.dao.InstanceGroupJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectAccountJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectInvitationJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectJoinDao; +import org.apache.cloudstack.api.view.dao.ResourceTagJoinDao; +import org.apache.cloudstack.api.view.dao.SecurityGroupJoinDao; +import org.apache.cloudstack.api.view.dao.UserAccountJoinDao; +import org.apache.cloudstack.api.view.dao.UserVmJoinDao; import org.apache.cloudstack.api.view.vo.DomainRouterJoinVO; import org.apache.cloudstack.api.view.vo.EventJoinVO; import org.apache.cloudstack.api.view.vo.InstanceGroupJoinVO; @@ -66,7 +76,6 @@ import com.cloud.dc.dao.VlanDao; import com.cloud.domain.DomainVO; import com.cloud.domain.dao.DomainDao; import com.cloud.event.Event; -import com.cloud.event.dao.EventJoinDao; import com.cloud.exception.InvalidParameterValueException; import com.cloud.ha.HighAvailabilityManager; import com.cloud.host.Host; @@ -112,7 +121,6 @@ import com.cloud.network.security.SecurityGroup; import com.cloud.network.security.SecurityGroupManager; import com.cloud.network.security.SecurityGroupVO; import com.cloud.network.security.dao.SecurityGroupDao; -import com.cloud.network.security.dao.SecurityGroupJoinDao; import com.cloud.network.vpc.VpcManager; import com.cloud.offering.NetworkOffering; import com.cloud.offering.ServiceOffering; @@ -122,9 +130,6 @@ import com.cloud.projects.Project; import com.cloud.projects.ProjectAccount; import com.cloud.projects.ProjectInvitation; import com.cloud.projects.ProjectService; -import com.cloud.projects.dao.ProjectAccountJoinDao; -import com.cloud.projects.dao.ProjectInvitationJoinDao; -import com.cloud.projects.dao.ProjectJoinDao; import com.cloud.resource.ResourceManager; import com.cloud.server.Criteria; import com.cloud.server.ManagementServer; @@ -162,7 +167,6 @@ import com.cloud.storage.dao.VMTemplateHostDao; import com.cloud.storage.dao.VMTemplateSwiftDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeHostDao; -import com.cloud.tags.dao.ResourceTagJoinDao; import com.cloud.user.Account; import com.cloud.user.AccountDetailsDao; import com.cloud.user.AccountVO; @@ -174,7 +178,6 @@ import com.cloud.user.UserStatisticsVO; import com.cloud.user.UserVO; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.SSHKeyPairDao; -import com.cloud.user.dao.UserAccountJoinDao; import com.cloud.user.dao.UserDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.uservm.UserVm; @@ -194,11 +197,8 @@ import com.cloud.vm.VirtualMachine; import com.cloud.vm.VmStats; import com.cloud.vm.dao.ConsoleProxyDao; import com.cloud.vm.dao.DomainRouterDao; -import com.cloud.vm.dao.DomainRouterJoinDao; -import com.cloud.vm.dao.InstanceGroupJoinDao; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDetailsDao; -import com.cloud.vm.dao.UserVmJoinDao; import com.cloud.vm.dao.VMInstanceDao; public class ApiDBUtils { @@ -944,127 +944,6 @@ public class ApiDBUtils { return _counterDao.findById(counterId); } - /////////////////////////////////////////////////////////////////////// - // Newly Added Utility Methods for List API refactoring // - /////////////////////////////////////////////////////////////////////// - - public static DomainRouterResponse newDomainRouterResponse(DomainRouterJoinVO vr, Account caller) { - return _domainRouterJoinDao.newDomainRouterResponse(vr, caller); - } - - public static DomainRouterResponse fillRouterDetails(DomainRouterResponse vrData, DomainRouterJoinVO vr){ - return _domainRouterJoinDao.setDomainRouterResponse(vrData, vr); - } - - public static List newDomainRouterView(VirtualRouter vr){ - return _domainRouterJoinDao.newDomainRouterView(vr); - } - - public static UserVmResponse newUserVmResponse(String objectName, UserVmJoinVO userVm, EnumSet details, Account caller) { - return _userVmJoinDao.newUserVmResponse(objectName, userVm, details, caller); - } - - public static UserVmResponse fillVmDetails(UserVmResponse vmData, UserVmJoinVO vm){ - return _userVmJoinDao.setUserVmResponse(vmData, vm); - } - - public static List newUserVmView(UserVm... userVms){ - return _userVmJoinDao.newUserVmView(userVms); - } - - public static SecurityGroupResponse newSecurityGroupResponse(SecurityGroupJoinVO vsg, Account caller) { - return _securityGroupJoinDao.newSecurityGroupResponse(vsg, caller); - } - - public static SecurityGroupResponse fillSecurityGroupDetails(SecurityGroupResponse vsgData, SecurityGroupJoinVO sg){ - return _securityGroupJoinDao.setSecurityGroupResponse(vsgData, sg); - } - - public static List newSecurityGroupView(SecurityGroup sg){ - return _securityGroupJoinDao.newSecurityGroupView(sg); - } - - public static List findSecurityGroupViewById(Long sgId){ - return _securityGroupJoinDao.searchByIds(sgId); - } - - public static ResourceTagResponse newResourceTagResponse(ResourceTagJoinVO vsg, boolean keyValueOnly) { - return _tagJoinDao.newResourceTagResponse(vsg, keyValueOnly); - } - - public static ResourceTagJoinVO newResourceTagView(ResourceTag sg){ - return _tagJoinDao.newResourceTagView(sg); - } - - public static ResourceTagJoinVO findResourceTagViewById(Long tagId){ - List tags = _tagJoinDao.searchByIds(tagId); - if ( tags != null && tags.size() > 0 ){ - return tags.get(0); - } - else{ - return null; - } - } - - public static EventResponse newEventResponse(EventJoinVO ve) { - return _eventJoinDao.newEventResponse(ve); - } - - public static EventJoinVO newEventView(Event e){ - return _eventJoinDao.newEventView(e); - } - - public static InstanceGroupResponse newInstanceGroupResponse(InstanceGroupJoinVO ve) { - return _vmGroupJoinDao.newInstanceGroupResponse(ve); - } - - public static InstanceGroupJoinVO newInstanceGroupView(InstanceGroup e){ - return _vmGroupJoinDao.newInstanceGroupView(e); - } - - public static UserResponse newUserResponse(UserAccountJoinVO usr) { - return _userAccountJoinDao.newUserResponse(usr); - } - - public static UserAccountJoinVO newUserView(User usr){ - return _userAccountJoinDao.newUserView(usr); - } - - public static UserAccountJoinVO newUserView(UserAccount usr){ - return _userAccountJoinDao.newUserView(usr); - } - - public static ProjectResponse newProjectResponse(ProjectJoinVO proj) { - return _projectJoinDao.newProjectResponse(proj); - } - - public static ProjectResponse fillProjectDetails(ProjectResponse rsp, ProjectJoinVO proj){ - return _projectJoinDao.setProjectResponse(rsp,proj); - } - - public static List newProjectView(Project proj){ - return _projectJoinDao.newProjectView(proj); - } - - public static List findUserViewByAccountId(Long accountId){ - return _userAccountJoinDao.searchByAccountId(accountId); - } - - public static ProjectAccountResponse newProjectAccountResponse(ProjectAccountJoinVO proj) { - return _projectAccountJoinDao.newProjectAccountResponse(proj); - } - - public static ProjectAccountJoinVO newProjectAccountView(ProjectAccount proj) { - return _projectAccountJoinDao.newProjectAccountView(proj); - } - - public static ProjectInvitationResponse newProjectInvitationResponse(ProjectInvitationJoinVO proj) { - return _projectInvitationJoinDao.newProjectInvitationResponse(proj); - } - - public static ProjectInvitationJoinVO newProjectInvitationView(ProjectInvitation proj) { - return _projectInvitationJoinDao.newProjectInvitationView(proj); - } } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 1e2b87d0941..72c3bc8d85a 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -112,6 +112,7 @@ import org.apache.cloudstack.api.response.VpcOfferingResponse; import org.apache.cloudstack.api.response.VpcResponse; import org.apache.cloudstack.api.response.VpnUsersResponse; import org.apache.cloudstack.api.response.ZoneResponse; +import org.apache.cloudstack.api.view.DBViewUtils; import org.apache.cloudstack.api.view.vo.DomainRouterJoinVO; import org.apache.cloudstack.api.view.vo.ControlledViewEntity; import org.apache.cloudstack.api.view.vo.EventJoinVO; @@ -242,8 +243,8 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public UserResponse createUserResponse(User user) { - UserAccountJoinVO vUser = ApiDBUtils.newUserView(user); - return ApiDBUtils.newUserResponse(vUser); + UserAccountJoinVO vUser = DBViewUtils.newUserView(user); + return DBViewUtils.newUserResponse(vUser); } @@ -251,7 +252,7 @@ public class ApiResponseHelper implements ResponseGenerator { public List createUserResponse(UserAccountJoinVO... users) { List respList = new ArrayList(); for (UserAccountJoinVO vt : users){ - respList.add(ApiDBUtils.newUserResponse(vt)); + respList.add(DBViewUtils.newUserResponse(vt)); } return respList; } @@ -415,8 +416,8 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public UserResponse createUserResponse(UserAccount user) { - UserAccountJoinVO vUser = ApiDBUtils.newUserView(user); - return ApiDBUtils.newUserResponse(vUser); + UserAccountJoinVO vUser = DBViewUtils.newUserView(user); + return DBViewUtils.newUserResponse(vUser); } @Override @@ -1170,8 +1171,8 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public InstanceGroupResponse createInstanceGroupResponse(InstanceGroup group) { - InstanceGroupJoinVO vgroup = ApiDBUtils.newInstanceGroupView(group); - return ApiDBUtils.newInstanceGroupResponse(vgroup); + InstanceGroupJoinVO vgroup = DBViewUtils.newInstanceGroupView(group); + return DBViewUtils.newInstanceGroupResponse(vgroup); } @@ -1181,7 +1182,7 @@ public class ApiResponseHelper implements ResponseGenerator { public List createInstanceGroupResponse(InstanceGroupJoinVO... groups) { List respList = new ArrayList(); for (InstanceGroupJoinVO vt : groups){ - respList.add(ApiDBUtils.newInstanceGroupResponse(vt)); + respList.add(DBViewUtils.newInstanceGroupResponse(vt)); } return respList; } @@ -1368,14 +1369,14 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public List createUserVmResponse(String objectName, EnumSet details, UserVm... userVms) { - List viewVms = ApiDBUtils.newUserVmView(userVms); + List viewVms = DBViewUtils.newUserVmView(userVms); return createUserVmResponse(objectName, details, viewVms.toArray(new UserVmJoinVO[viewVms.size()])); } @Override public List createUserVmResponse(String objectName, UserVm... userVms) { - List viewVms = ApiDBUtils.newUserVmView(userVms); + List viewVms = DBViewUtils.newUserVmView(userVms); return createUserVmResponse(objectName, viewVms.toArray(new UserVmJoinVO[viewVms.size()])); } @@ -1397,10 +1398,10 @@ public class ApiResponseHelper implements ResponseGenerator { UserVmResponse userVmData = vmDataList.get(userVm.getId()); if ( userVmData == null ){ // first time encountering this vm - userVmData = ApiDBUtils.newUserVmResponse(objectName, userVm, details, caller); + userVmData = DBViewUtils.newUserVmResponse(objectName, userVm, details, caller); } else{ // update nics, securitygroups, tags for 1 to many mapping fields - userVmData = ApiDBUtils.fillVmDetails(userVmData, userVm); + userVmData = DBViewUtils.fillVmDetails(userVmData, userVm); } vmDataList.put(userVm.getId(), userVmData); } @@ -1410,7 +1411,7 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public DomainRouterResponse createDomainRouterResponse(VirtualRouter router) { - List viewVrs = ApiDBUtils.newDomainRouterView(router); + List viewVrs = DBViewUtils.newDomainRouterView(router); List listVrs = createDomainRouterResponse(viewVrs.toArray(new DomainRouterJoinVO[viewVrs.size()])); assert listVrs != null && listVrs.size() == 1 : "There should be one virtual router returned"; return listVrs.get(0); @@ -1425,11 +1426,11 @@ public class ApiResponseHelper implements ResponseGenerator { DomainRouterResponse vrData = vrDataList.get(vr.getId()); if ( vrData == null ){ // first time encountering this vm - vrData = ApiDBUtils.newDomainRouterResponse(vr, caller); + vrData = DBViewUtils.newDomainRouterResponse(vr, caller); } else{ // update nics for 1 to many mapping fields - vrData = ApiDBUtils.fillRouterDetails(vrData, vr); + vrData = DBViewUtils.fillRouterDetails(vrData, vr); } vrDataList.put(vr.getId(), vrData); } @@ -2015,11 +2016,11 @@ public class ApiResponseHelper implements ResponseGenerator { SecurityGroupResponse vrData = vrDataList.get(vr.getId()); if ( vrData == null ) { // first time encountering this sg - vrData = ApiDBUtils.newSecurityGroupResponse(vr, caller); + vrData = DBViewUtils.newSecurityGroupResponse(vr, caller); } else { // update rules for 1 to many mapping fields - vrData = ApiDBUtils.fillSecurityGroupDetails(vrData, vr); + vrData = DBViewUtils.fillSecurityGroupDetails(vrData, vr); } vrDataList.put(vr.getId(), vrData); } @@ -2028,7 +2029,7 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public SecurityGroupResponse createSecurityGroupResponse(SecurityGroup group) { - List viewSgs = ApiDBUtils.newSecurityGroupView(group); + List viewSgs = DBViewUtils.newSecurityGroupView(group); List listSgs = createSecurityGroupResponses(viewSgs); assert listSgs != null && listSgs.size() == 1 : "There should be one security group returned"; return listSgs.get(0); @@ -2121,15 +2122,15 @@ public class ApiResponseHelper implements ResponseGenerator { public List createEventResponse(EventJoinVO... events) { List respList = new ArrayList(); for (EventJoinVO vt : events){ - respList.add(ApiDBUtils.newEventResponse(vt)); + respList.add(DBViewUtils.newEventResponse(vt)); } return respList; } @Override public EventResponse createEventResponse(Event event) { - EventJoinVO vEvent = ApiDBUtils.newEventView(event); - return ApiDBUtils.newEventResponse(vEvent); + EventJoinVO vEvent = DBViewUtils.newEventView(event); + return DBViewUtils.newEventResponse(vEvent); } private List sumCapacities(List hostCapacities) { @@ -2383,7 +2384,7 @@ public class ApiResponseHelper implements ResponseGenerator { Map allowedSecuriytGroupAccounts = new HashMap(); if ((securityRules != null) && !securityRules.isEmpty()) { - SecurityGroupJoinVO securityGroup = ApiDBUtils.findSecurityGroupViewById(securityRules.get(0).getSecurityGroupId()).get(0); + SecurityGroupJoinVO securityGroup = DBViewUtils.findSecurityGroupViewById(securityRules.get(0).getSecurityGroupId()).get(0); response.setId(securityGroup.getUuid()); response.setName(securityGroup.getName()); response.setDescription(securityGroup.getDescription()); @@ -2415,7 +2416,7 @@ public class ApiResponseHelper implements ResponseGenerator { Long allowedSecurityGroupId = securityRule.getAllowedNetworkId(); if (allowedSecurityGroupId != null) { - List sgs = ApiDBUtils.findSecurityGroupViewById(allowedSecurityGroupId); + List sgs = DBViewUtils.findSecurityGroupViewById(allowedSecurityGroupId); if (sgs != null && sgs.size() > 0) { SecurityGroupJoinVO sg = sgs.get(0); securityGroupData.setSecurityGroupName(sg.getName()); @@ -2674,7 +2675,7 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public ProjectResponse createProjectResponse(Project project) { - List viewPrjs = ApiDBUtils.newProjectView(project); + List viewPrjs = DBViewUtils.newProjectView(project); List listPrjs = createProjectResponse(viewPrjs.toArray(new ProjectJoinVO[viewPrjs.size()])); assert listPrjs != null && listPrjs.size() == 1 : "There should be one project returned"; return listPrjs.get(0); @@ -2689,11 +2690,11 @@ public class ApiResponseHelper implements ResponseGenerator { ProjectResponse pData = prjDataList.get(p.getId()); if ( pData == null ){ // first time encountering this vm - pData = ApiDBUtils.newProjectResponse(p); + pData = DBViewUtils.newProjectResponse(p); } else{ // update those 1 to many mapping fields - pData = ApiDBUtils.fillProjectDetails(pData, p); + pData = DBViewUtils.fillProjectDetails(pData, p); } prjDataList.put(p.getId(), pData); } @@ -2852,7 +2853,7 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public ProjectAccountResponse createProjectAccountResponse(ProjectAccount projectAccount) { - ProjectAccountJoinVO vProj = ApiDBUtils.newProjectAccountView(projectAccount); + ProjectAccountJoinVO vProj = DBViewUtils.newProjectAccountView(projectAccount); List listProjs = createProjectAccountResponse(vProj); assert listProjs != null && listProjs.size() == 1 : "There should be one project account returned"; return listProjs.get(0); @@ -2863,9 +2864,9 @@ public class ApiResponseHelper implements ResponseGenerator { public List createProjectAccountResponse(ProjectAccountJoinVO... projectAccounts) { List responseList = new ArrayList(); for (ProjectAccountJoinVO proj : projectAccounts){ - ProjectAccountResponse resp = ApiDBUtils.newProjectAccountResponse(proj); + ProjectAccountResponse resp = DBViewUtils.newProjectAccountResponse(proj); // update user list - List users = ApiDBUtils.findUserViewByAccountId(proj.getAccountId()); + List users = DBViewUtils.findUserViewByAccountId(proj.getAccountId()); resp.setUsers(createUserResponse(users.toArray(new UserAccountJoinVO[users.size()]))); responseList.add(resp); } @@ -2874,8 +2875,8 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public ProjectInvitationResponse createProjectInvitationResponse(ProjectInvitation invite) { - ProjectInvitationJoinVO vInvite = ApiDBUtils.newProjectInvitationView(invite); - return ApiDBUtils.newProjectInvitationResponse(vInvite); + ProjectInvitationJoinVO vInvite = DBViewUtils.newProjectInvitationView(invite); + return DBViewUtils.newProjectInvitationResponse(vInvite); } @@ -2884,7 +2885,7 @@ public class ApiResponseHelper implements ResponseGenerator { public List createProjectInvitationResponse(ProjectInvitationJoinVO... invites) { List respList = new ArrayList(); for (ProjectInvitationJoinVO v : invites){ - respList.add(ApiDBUtils.newProjectInvitationResponse(v)); + respList.add(DBViewUtils.newProjectInvitationResponse(v)); } return respList; } @@ -3121,8 +3122,8 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public ResourceTagResponse createResourceTagResponse(ResourceTag resourceTag, boolean keyValueOnly) { - ResourceTagJoinVO rto = ApiDBUtils.newResourceTagView(resourceTag); - return ApiDBUtils.newResourceTagResponse(rto, keyValueOnly); + ResourceTagJoinVO rto = DBViewUtils.newResourceTagView(resourceTag); + return DBViewUtils.newResourceTagResponse(rto, keyValueOnly); } @@ -3130,7 +3131,7 @@ public class ApiResponseHelper implements ResponseGenerator { public List createResourceTagResponse(boolean keyValueOnly, ResourceTagJoinVO... tags) { List respList = new ArrayList(); for (ResourceTagJoinVO vt : tags){ - respList.add(ApiDBUtils.newResourceTagResponse(vt, keyValueOnly)); + respList.add(DBViewUtils.newResourceTagResponse(vt, keyValueOnly)); } return respList; } diff --git a/server/src/com/cloud/configuration/DefaultComponentLibrary.java b/server/src/com/cloud/configuration/DefaultComponentLibrary.java index 2dd46fd9ad9..e49425eca83 100755 --- a/server/src/com/cloud/configuration/DefaultComponentLibrary.java +++ b/server/src/com/cloud/configuration/DefaultComponentLibrary.java @@ -21,6 +21,17 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.cloudstack.api.view.dao.DomainRouterJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.EventJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.InstanceGroupJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.ProjectAccountJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.ProjectInvitationJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.ProjectJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.ResourceTagJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.SecurityGroupJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.UserAccountJoinDaoImpl; +import org.apache.cloudstack.api.view.dao.UserVmJoinDaoImpl; + import com.cloud.agent.manager.ClusteredAgentManagerImpl; import com.cloud.alert.AlertManagerImpl; import com.cloud.alert.dao.AlertDaoImpl; @@ -117,7 +128,6 @@ import com.cloud.network.rules.RulesManagerImpl; import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl; import com.cloud.network.security.SecurityGroupManagerImpl2; import com.cloud.network.security.dao.SecurityGroupDaoImpl; -import com.cloud.network.security.dao.SecurityGroupJoinDaoImpl; import com.cloud.network.security.dao.SecurityGroupRuleDaoImpl; import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl; import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl; @@ -139,8 +149,6 @@ import com.cloud.projects.ProjectManagerImpl; import com.cloud.projects.dao.ProjectAccountDaoImpl; import com.cloud.projects.dao.ProjectDaoImpl; import com.cloud.projects.dao.ProjectInvitationDaoImpl; -import com.cloud.projects.dao.ProjectInvitationJoinDaoImpl; -import com.cloud.projects.dao.ProjectJoinDaoImpl; import com.cloud.resource.ResourceManagerImpl; import com.cloud.resourcelimit.ResourceLimitManagerImpl; import com.cloud.service.dao.ServiceOfferingDaoImpl; @@ -173,7 +181,6 @@ import com.cloud.storage.snapshot.SnapshotSchedulerImpl; import com.cloud.storage.swift.SwiftManagerImpl; import com.cloud.storage.upload.UploadMonitorImpl; import com.cloud.tags.TaggedResourceManagerImpl; -import com.cloud.tags.dao.ResourceTagJoinDaoImpl; import com.cloud.tags.dao.ResourceTagsDaoImpl; import com.cloud.template.HyervisorTemplateAdapter; import com.cloud.template.TemplateAdapter; @@ -185,7 +192,6 @@ import com.cloud.user.DomainManagerImpl; import com.cloud.user.dao.AccountDaoImpl; import com.cloud.user.dao.SSHKeyPairDaoImpl; import com.cloud.user.dao.UserAccountDaoImpl; -import com.cloud.user.dao.UserAccountJoinDaoImpl; import com.cloud.user.dao.UserDaoImpl; import com.cloud.user.dao.UserStatisticsDaoImpl; import com.cloud.user.dao.UserStatsLogDaoImpl; @@ -203,18 +209,13 @@ import com.cloud.vm.ItWorkDaoImpl; import com.cloud.vm.UserVmManagerImpl; import com.cloud.vm.dao.ConsoleProxyDaoImpl; import com.cloud.vm.dao.DomainRouterDaoImpl; -import com.cloud.vm.dao.DomainRouterJoinDaoImpl; import com.cloud.vm.dao.InstanceGroupDaoImpl; -import com.cloud.vm.dao.InstanceGroupJoinDaoImpl; import com.cloud.vm.dao.InstanceGroupVMMapDaoImpl; import com.cloud.vm.dao.NicDaoImpl; import com.cloud.vm.dao.SecondaryStorageVmDaoImpl; import com.cloud.vm.dao.UserVmDaoImpl; -import com.cloud.vm.dao.UserVmJoinDaoImpl; import com.cloud.vm.dao.UserVmDetailsDaoImpl; import com.cloud.vm.dao.VMInstanceDaoImpl; -import com.cloud.event.dao.EventJoinDaoImpl; -import com.cloud.projects.dao.ProjectAccountJoinDaoImpl; public class DefaultComponentLibrary extends ComponentLibraryBase implements ComponentLibrary { diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java index a9d1f0bd7a3..a017f536395 100755 --- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java +++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java @@ -46,6 +46,7 @@ import com.cloud.agent.api.SecurityGroupRulesCmd; import com.cloud.agent.api.SecurityGroupRulesCmd.IpPortAndProto; import com.cloud.agent.manager.Commands; import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd; +import org.apache.cloudstack.api.view.dao.SecurityGroupJoinDao; import org.apache.cloudstack.api.view.vo.SecurityGroupJoinVO; import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; @@ -65,7 +66,6 @@ import com.cloud.network.NetworkManager; import com.cloud.network.security.SecurityGroupWork.Step; import com.cloud.network.security.SecurityRule.SecurityRuleType; import com.cloud.network.security.dao.SecurityGroupDao; -import com.cloud.network.security.dao.SecurityGroupJoinDao; import com.cloud.network.security.dao.SecurityGroupRuleDao; import com.cloud.network.security.dao.SecurityGroupRulesDao; import com.cloud.network.security.dao.SecurityGroupVMMapDao; diff --git a/server/src/com/cloud/projects/ProjectManagerImpl.java b/server/src/com/cloud/projects/ProjectManagerImpl.java index 7c97af2699d..51a98ae1481 100755 --- a/server/src/com/cloud/projects/ProjectManagerImpl.java +++ b/server/src/com/cloud/projects/ProjectManagerImpl.java @@ -38,6 +38,9 @@ import javax.mail.URLName; import javax.mail.internet.InternetAddress; import javax.naming.ConfigurationException; +import org.apache.cloudstack.api.view.dao.ProjectAccountJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectInvitationJoinDao; +import org.apache.cloudstack.api.view.dao.ProjectJoinDao; import org.apache.cloudstack.api.view.vo.ProjectAccountJoinVO; import org.apache.cloudstack.api.view.vo.ProjectInvitationJoinVO; import org.apache.cloudstack.api.view.vo.ProjectJoinVO; @@ -62,11 +65,8 @@ import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.projects.Project.State; import com.cloud.projects.ProjectAccount.Role; import com.cloud.projects.dao.ProjectAccountDao; -import com.cloud.projects.dao.ProjectAccountJoinDao; import com.cloud.projects.dao.ProjectDao; import com.cloud.projects.dao.ProjectInvitationDao; -import com.cloud.projects.dao.ProjectInvitationJoinDao; -import com.cloud.projects.dao.ProjectJoinDao; import com.cloud.server.ResourceTag.TaggedResourceType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index a196cd35769..a608a79020b 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -98,6 +98,9 @@ import com.cloud.api.commands.UpdateTemplateOrIsoCmd; import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd; import org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd; import org.apache.cloudstack.api.response.ExtractResponse; +import org.apache.cloudstack.api.view.dao.DomainRouterJoinDao; +import org.apache.cloudstack.api.view.dao.EventJoinDao; +import org.apache.cloudstack.api.view.dao.InstanceGroupJoinDao; import org.apache.cloudstack.api.view.vo.DomainRouterJoinVO; import org.apache.cloudstack.api.view.vo.EventJoinVO; import org.apache.cloudstack.api.view.vo.InstanceGroupJoinVO; @@ -144,7 +147,6 @@ import com.cloud.event.EventTypes; import com.cloud.event.EventUtils; import com.cloud.event.EventVO; import com.cloud.event.dao.EventDao; -import com.cloud.event.dao.EventJoinDao; import com.cloud.exception.CloudAuthenticationException; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InvalidParameterValueException; @@ -262,9 +264,7 @@ import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.dao.ConsoleProxyDao; import com.cloud.vm.dao.DomainRouterDao; -import com.cloud.vm.dao.DomainRouterJoinDao; import com.cloud.vm.dao.InstanceGroupDao; -import com.cloud.vm.dao.InstanceGroupJoinDao; import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.SecondaryStorageVmDao; import com.cloud.vm.dao.UserVmDao; diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java index 0f82142d6b5..6e69bd467da 100644 --- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java +++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java @@ -27,6 +27,7 @@ import javax.naming.ConfigurationException; import org.apache.cloudstack.api.command.user.tag.ListTagsCmd; import org.apache.log4j.Logger; +import org.apache.cloudstack.api.view.dao.ResourceTagJoinDao; import org.apache.cloudstack.api.view.vo.ResourceTagJoinVO; import com.cloud.domain.Domain; import com.cloud.event.ActionEvent; @@ -51,7 +52,6 @@ import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.tags.dao.ResourceTagDao; -import com.cloud.tags.dao.ResourceTagJoinDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.DomainManager; diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index e1b806dc603..9bf0de66e1c 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -43,6 +43,8 @@ import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; import com.cloud.acl.ControlledEntity; + +import org.apache.cloudstack.api.view.dao.UserAccountJoinDao; import org.apache.cloudstack.api.view.vo.ControlledViewEntity; import org.apache.cloudstack.api.view.vo.UserAccountJoinVO; @@ -110,7 +112,6 @@ import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.Account.State; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserAccountDao; -import com.cloud.user.dao.UserAccountJoinDao; import com.cloud.user.dao.UserDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index a8241d02ea7..2e1465533da 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -74,6 +74,7 @@ import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd; import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd; import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd; import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd; +import org.apache.cloudstack.api.view.dao.UserVmJoinDao; import org.apache.cloudstack.api.view.vo.UserVmJoinVO; import com.cloud.async.AsyncJobExecutor; import com.cloud.async.AsyncJobManager; @@ -230,7 +231,6 @@ import com.cloud.vm.dao.InstanceGroupVMMapDao; import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDetailsDao; -import com.cloud.vm.dao.UserVmJoinDao; import com.cloud.vm.dao.VMInstanceDao; @Local(value = { UserVmManager.class, UserVmService.class }) diff --git a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java index 46b7018f4d2..93bccf481dc 100644 --- a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java +++ b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java @@ -23,6 +23,7 @@ import javax.naming.ConfigurationException; import junit.framework.TestCase; +import org.apache.cloudstack.api.view.dao.SecurityGroupJoinDaoImpl; import org.junit.After; import org.junit.Before; import org.junit.Ignore; @@ -34,7 +35,6 @@ import com.cloud.domain.dao.DomainDaoImpl; import com.cloud.event.dao.UsageEventDaoImpl; import com.cloud.network.MockNetworkManagerImpl; import com.cloud.network.security.dao.SecurityGroupDaoImpl; -import com.cloud.network.security.dao.SecurityGroupJoinDaoImpl; import com.cloud.network.security.dao.SecurityGroupRuleDaoImpl; import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl; import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl;