| // 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 com.cloud.event; | |
| import java.util.Date; | |
| import javax.persistence.Column; | |
| import javax.persistence.Entity; | |
| import javax.persistence.GeneratedValue; | |
| import javax.persistence.GenerationType; | |
| import javax.persistence.Id; | |
| import javax.persistence.Table; | |
| import com.cloud.utils.db.GenericDao; | |
| @Entity | |
| @Table(name = "usage_event") | |
| public class UsageEventVO implements UsageEvent { | |
| public enum DynamicParameters { | |
| cpuSpeed, cpuNumber, memory, vmSnapshotId | |
| }; | |
| @Id | |
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |
| @Column(name = "id") | |
| private long id = -1; | |
| @Column(name = "type") | |
| private String type; | |
| @Column(name = GenericDao.CREATED_COLUMN) | |
| private Date createDate; | |
| @Column(name = "account_id") | |
| private long accountId; | |
| @Column(name = "zone_id") | |
| private long zoneId; | |
| @Column(name = "resource_id") | |
| private long resourceId; | |
| @Column(name = "resource_name") | |
| private String resourceName; | |
| @Column(name = "offering_id") | |
| private Long offeringId; | |
| @Column(name = "template_id") | |
| private Long templateId; | |
| @Column(name = "size") | |
| private Long size; | |
| @Column(name = "resource_type") | |
| private String resourceType; | |
| @Column(name = "processed") | |
| private boolean processed; | |
| @Column(name = "virtual_size") | |
| private Long virtualSize; | |
| @Column(name = "vm_id") | |
| private Long vmId; | |
| public UsageEventVO() { | |
| } | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, Long size) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = resourceId; | |
| this.resourceName = resourceName; | |
| this.offeringId = offeringId; | |
| this.templateId = templateId; | |
| this.size = size; | |
| } | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long resourceId, String resourceName) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = resourceId; | |
| this.resourceName = resourceName; | |
| } | |
| //IPAddress usage event | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long ipAddressId, String ipAddress, boolean isSourceNat, String guestType, boolean isSystem) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = ipAddressId; | |
| this.resourceName = ipAddress; | |
| this.size = (isSourceNat ? 1L : 0L); | |
| this.resourceType = guestType; | |
| this.templateId = (isSystem ? 1L : 0L); | |
| } | |
| //Snapshot usage event | |
| //Snapshots have size as the actual (physical) size and virtual_size as the allocated size | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, Long size, Long virtualSize) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = resourceId; | |
| this.resourceName = resourceName; | |
| this.offeringId = offeringId; | |
| this.templateId = templateId; | |
| this.size = size; | |
| this.virtualSize = virtualSize; | |
| } | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, String resourceType) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = resourceId; | |
| this.resourceName = resourceName; | |
| this.offeringId = offeringId; | |
| this.templateId = templateId; | |
| this.resourceType = resourceType; | |
| } | |
| //Security Group usage event | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long vmId, long securityGroupId) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = vmId; | |
| this.offeringId = securityGroupId; | |
| } | |
| public UsageEventVO(String usageType, long accountId, long zoneId, long resourceId, Long offeringId, Long templateId, Long size, Long vmId, String resourceName) { | |
| this.type = usageType; | |
| this.accountId = accountId; | |
| this.zoneId = zoneId; | |
| this.resourceId = resourceId; | |
| this.offeringId = offeringId; | |
| this.templateId = templateId; | |
| this.size = size; | |
| this.vmId = vmId; | |
| this.resourceName = resourceName; | |
| } | |
| @Override | |
| public long getId() { | |
| return id; | |
| } | |
| @Override | |
| public String getType() { | |
| return type; | |
| } | |
| public void setType(String type) { | |
| this.type = type; | |
| } | |
| @Override | |
| public Date getCreateDate() { | |
| return createDate; | |
| } | |
| public void setCreatedDate(Date createdDate) { | |
| createDate = createdDate; | |
| } | |
| @Override | |
| public long getAccountId() { | |
| return accountId; | |
| } | |
| public void setAccountId(long accountId) { | |
| this.accountId = accountId; | |
| } | |
| public void setZoneId(long zoneId) { | |
| this.zoneId = zoneId; | |
| } | |
| @Override | |
| public long getZoneId() { | |
| return zoneId; | |
| } | |
| public void setResourceId(long resourceId) { | |
| this.resourceId = resourceId; | |
| } | |
| @Override | |
| public long getResourceId() { | |
| return resourceId; | |
| } | |
| public void setResourceName(String resourceName) { | |
| this.resourceName = resourceName; | |
| } | |
| public String getResourceName() { | |
| return resourceName; | |
| } | |
| public void setOfferingId(long offeringId) { | |
| this.offeringId = offeringId; | |
| } | |
| @Override | |
| public Long getOfferingId() { | |
| return offeringId; | |
| } | |
| public void setTemplateId(long templateId) { | |
| this.templateId = templateId; | |
| } | |
| @Override | |
| public Long getTemplateId() { | |
| return templateId; | |
| } | |
| public void setSize(long size) { | |
| this.size = size; | |
| } | |
| @Override | |
| public Long getSize() { | |
| return size; | |
| } | |
| public boolean isProcessed() { | |
| return processed; | |
| } | |
| public void setProcessed(boolean processed) { | |
| this.processed = processed; | |
| } | |
| public String getResourceType() { | |
| return resourceType; | |
| } | |
| public Long getVirtualSize() { | |
| return virtualSize; | |
| } | |
| public void setVirtualSize(Long virtualSize) { | |
| this.virtualSize = virtualSize; | |
| } | |
| public Long getVmId() { | |
| return vmId; | |
| } | |
| public void setVmId(Long vmId) { | |
| this.vmId = vmId; | |
| } | |
| } |