Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2BA3210C7D for ; Mon, 22 Apr 2013 21:03:34 +0000 (UTC) Received: (qmail 21086 invoked by uid 500); 22 Apr 2013 21:03:28 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 21031 invoked by uid 500); 22 Apr 2013 21:03:28 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 20783 invoked by uid 99); 22 Apr 2013 21:03:28 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Apr 2013 21:03:28 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 0C1C881DE2F; Mon, 22 Apr 2013 21:03:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bfederle@apache.org To: commits@cloudstack.apache.org Date: Mon, 22 Apr 2013 21:04:00 -0000 Message-Id: In-Reply-To: <306d8794d9fe4f4183fb19f935b342bc@git.apache.org> References: <306d8794d9fe4f4183fb19f935b342bc@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [35/50] [abbrv] git commit: updated refs/heads/ui-vm-affinity to 922b51c 1) fix CLOUDSTACK-2129 and CLOUDSTACK-2128 2) include nicId in network.offerings.assign/remove event 3) use publishUsageEvent instead of saveUsageEvent to track usageEvent Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5118e9e2 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5118e9e2 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5118e9e2 Branch: refs/heads/ui-vm-affinity Commit: 5118e9e29faeddd2408e925d43c2b8afdf170b6b Parents: 9ae29bb Author: Mice Xia Authored: Mon Apr 22 19:37:53 2013 +0800 Committer: Mice Xia Committed: Mon Apr 22 19:38:32 2013 +0800 ---------------------------------------------------------------------- .../src/com/cloud/network/NetworkServiceImpl.java | 7 +++- .../com/cloud/usage/UsageNetworkOfferingVO.java | 14 +++++++++- .../usage/dao/UsageNetworkOfferingDaoImpl.java | 9 +++--- server/src/com/cloud/vm/UserVmManagerImpl.java | 2 +- server/src/com/cloud/vm/UserVmStateListener.java | 21 +++++++++----- .../com/cloud/vm/VirtualMachineManagerImpl.java | 11 ++++++++ setup/db/db/schema-410to420.sql | 4 ++- usage/src/com/cloud/usage/UsageManagerImpl.java | 10 +++++- 8 files changed, 59 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/network/NetworkServiceImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index 878d2a8..ac2ac45 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -1988,8 +1988,11 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { continue; } long isDefault = (nic.isDefaultNic()) ? 1 : 0; - UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), null, oldNetworkOfferingId, null, 0L); - UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), vm.getHostName(), networkOfferingId, null, isDefault); + String nicIdString = Long.toString(nic.getId()); + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), + vm.getId(), nicIdString, oldNetworkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid()); + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(), + vm.getId(), nicIdString, networkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid()); } txn.commit(); } else { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/usage/UsageNetworkOfferingVO.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/usage/UsageNetworkOfferingVO.java b/server/src/com/cloud/usage/UsageNetworkOfferingVO.java index 7290334..fdf758b 100644 --- a/server/src/com/cloud/usage/UsageNetworkOfferingVO.java +++ b/server/src/com/cloud/usage/UsageNetworkOfferingVO.java @@ -53,11 +53,14 @@ public class UsageNetworkOfferingVO { @Column(name="deleted") @Temporal(value=TemporalType.TIMESTAMP) private Date deleted = null; + + @Column(name="nic_id") + private Long nicId; protected UsageNetworkOfferingVO() { } - public UsageNetworkOfferingVO(long zoneId, long accountId, long domainId, long vmInstanceId, long networkOfferingId, boolean isDefault, Date created, Date deleted) { + public UsageNetworkOfferingVO(long zoneId, long accountId, long domainId, long vmInstanceId, long networkOfferingId, long nicId, boolean isDefault, Date created, Date deleted) { this.zoneId = zoneId; this.accountId = accountId; this.domainId = domainId; @@ -66,6 +69,7 @@ public class UsageNetworkOfferingVO { this.isDefault = isDefault; this.created = created; this.deleted = deleted; + this.nicId = nicId; } public long getZoneId() { @@ -102,4 +106,12 @@ public class UsageNetworkOfferingVO { public void setDeleted(Date deleted) { this.deleted = deleted; } + + public Long getNicId() { + return nicId; + } + + public void setNicId(Long nicId) { + this.nicId = nicId; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java b/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java index a6539dd..c3fc5a6 100644 --- a/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java +++ b/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java @@ -39,15 +39,15 @@ public class UsageNetworkOfferingDaoImpl extends GenericDaoBase= ?)))"; - protected static final String GET_USAGE_RECORDS_BY_DOMAIN = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, is_default, created, deleted " + + protected static final String GET_USAGE_RECORDS_BY_DOMAIN = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, nic_id, is_default, created, deleted " + "FROM usage_network_offering " + "WHERE domain_id = ? AND ((deleted IS NULL) OR (created BETWEEN ? AND ?) OR " + " (deleted BETWEEN ? AND ?) OR ((created <= ?) AND (deleted >= ?)))"; - protected static final String GET_ALL_USAGE_RECORDS = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, is_default, created, deleted " + + protected static final String GET_ALL_USAGE_RECORDS = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, nic_id, is_default, created, deleted " + "FROM usage_network_offering " + "WHERE (deleted IS NULL) OR (created BETWEEN ? AND ?) OR " + " (deleted BETWEEN ? AND ?) OR ((created <= ?) AND (deleted >= ?))"; @@ -124,6 +124,7 @@ public class UsageNetworkOfferingDaoImpl extends GenericDaoBase nics = _nicDao.listByVmId(vo.getId()); for (NicVO nic : nics) { NetworkVO network = _networkDao.findById(nic.getNetworkId()); - UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), null, network.getNetworkOfferingId(), null, 0L); + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterId(), + vo.getId(), Long.toString(nic.getId()),network.getNetworkOfferingId(), null, 0L, vo.getClass().getName(), vo.getUuid()); } } else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) { - UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(), - vo.getTemplateId(), vo.getHypervisorType().toString()); + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), + vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(), + vo.getClass().getName(), vo.getUuid()); } return true; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/vm/VirtualMachineManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 2ecece2..b613917 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -78,6 +78,8 @@ import com.cloud.deploy.DeploymentPlanner; import com.cloud.deploy.DeploymentPlanner.ExcludeList; import com.cloud.deploy.DeploymentPlanningManager; import com.cloud.domain.dao.DomainDao; +import com.cloud.event.EventTypes; +import com.cloud.event.UsageEventUtils; import com.cloud.exception.AffinityConflictException; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.ConcurrentOperationException; @@ -2751,6 +2753,11 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac result = vmGuru.plugNic(network, nicTO, vmTO, context, dest); if (result) { s_logger.debug("Nic is plugged successfully for vm " + vm + " in network " + network + ". Vm is a part of network now"); + long isDefault = (nic.isDefaultNic()) ? 1 : 0; + // insert nic's Id into DB as resource_name + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vmVO.getAccountId(), + vmVO.getDataCenterId(), vmVO.getId(), Long.toString(nic.getId()), nic.getNetworkId(), + null, isDefault, VirtualMachine.class.getName(), vmVO.getUuid()); return nic; } else { s_logger.warn("Failed to plug nic to the vm " + vm + " in network " + network); @@ -2814,6 +2821,10 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac boolean result = vmGuru.unplugNic(network, nicTO, vmTO, context, dest); if (result) { s_logger.debug("Nic is unplugged successfully for vm " + vm + " in network " + network ); + long isDefault = (nic.isDefaultNic()) ? 1 : 0; + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), + vm.getId(), Long.toString(nic.getId()), network.getNetworkOfferingId(), null, + isDefault, VirtualMachine.class.getName(), vm.getUuid()); } else { s_logger.warn("Failed to unplug nic for the vm " + vm + " from network " + network); return false; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/setup/db/db/schema-410to420.sql ---------------------------------------------------------------------- diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql index 14aa2eb..93a685f 100644 --- a/setup/db/db/schema-410to420.sql +++ b/setup/db/db/schema-410to420.sql @@ -774,4 +774,6 @@ CREATE VIEW `cloud`.`account_view` AS left join `cloud`.`async_job` ON async_job.instance_id = account.id and async_job.instance_type = 'Account' - and async_job.job_status = 0; \ No newline at end of file + and async_job.job_status = 0; + +alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/usage/src/com/cloud/usage/UsageManagerImpl.java ---------------------------------------------------------------------- diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java index 85ea60b..16fe67b 100644 --- a/usage/src/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageManagerImpl.java @@ -78,7 +78,6 @@ import com.cloud.utils.db.Filter; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.Transaction; -import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value={UsageManager.class}) @@ -1298,6 +1297,12 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna long vmId = event.getResourceId(); long networkOfferingId = event.getOfferingId(); + long nicId = 0; + try{ + nicId = Long.parseLong(event.getResourceName()); + }catch (Exception e) { + s_logger.warn("failed to get nic id from resource name, resource name is: " + event.getResourceName()); + } if (EventTypes.EVENT_NETWORK_OFFERING_CREATE.equals(event.getType()) || EventTypes.EVENT_NETWORK_OFFERING_ASSIGN.equals(event.getType())) { if (s_logger.isDebugEnabled()) { @@ -1306,12 +1311,13 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna zoneId = event.getZoneId(); Account acct = m_accountDao.findByIdIncludingRemoved(event.getAccountId()); boolean isDefault = (event.getSize() == 1) ? true : false ; - UsageNetworkOfferingVO networkOffering = new UsageNetworkOfferingVO(zoneId, event.getAccountId(), acct.getDomainId(), vmId, networkOfferingId, isDefault, event.getCreateDate(), null); + UsageNetworkOfferingVO networkOffering = new UsageNetworkOfferingVO(zoneId, event.getAccountId(), acct.getDomainId(), vmId, networkOfferingId, nicId, isDefault, event.getCreateDate(), null); m_usageNetworkOfferingDao.persist(networkOffering); } else if (EventTypes.EVENT_NETWORK_OFFERING_DELETE.equals(event.getType()) || EventTypes.EVENT_NETWORK_OFFERING_REMOVE.equals(event.getType())) { SearchCriteria sc = m_usageNetworkOfferingDao.createSearchCriteria(); sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId()); sc.addAnd("vmInstanceId", SearchCriteria.Op.EQ, vmId); + sc.addAnd("nicId", SearchCriteria.Op.EQ, nicId); sc.addAnd("networkOfferingId", SearchCriteria.Op.EQ, networkOfferingId); sc.addAnd("deleted", SearchCriteria.Op.NULL); List noVOs = m_usageNetworkOfferingDao.search(sc, null);