mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
Bug 12929: Added domain_id to event table. Populate domain_id while persisting events. Cleanedup EventUtils.
Status 12929: resolved fixed Reviewed-By: Nitin
This commit is contained in:
parent
eb1b709193
commit
b589e49263
@ -40,10 +40,8 @@ public interface Event extends ControlledEntity{
|
|||||||
long getUserId();
|
long getUserId();
|
||||||
long getAccountId();
|
long getAccountId();
|
||||||
long getDomainId();
|
long getDomainId();
|
||||||
String getAccountName();
|
|
||||||
int getTotalSize();
|
int getTotalSize();
|
||||||
String getLevel();
|
String getLevel();
|
||||||
long getStartId();
|
long getStartId();
|
||||||
String getParameters();
|
String getParameters();
|
||||||
Short getAccountType();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,8 +28,6 @@ import javax.persistence.Enumerated;
|
|||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.GenerationType;
|
import javax.persistence.GenerationType;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.PrimaryKeyJoinColumn;
|
|
||||||
import javax.persistence.SecondaryTable;
|
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
@ -38,8 +36,6 @@ import com.cloud.utils.db.GenericDao;
|
|||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="event")
|
@Table(name="event")
|
||||||
@SecondaryTable(name="account",
|
|
||||||
pkJoinColumns={@PrimaryKeyJoinColumn(name="account_id", referencedColumnName="id")})
|
|
||||||
public class EventVO implements Event, Identity {
|
public class EventVO implements Event, Identity {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy=GenerationType.IDENTITY)
|
@GeneratedValue(strategy=GenerationType.IDENTITY)
|
||||||
@ -65,18 +61,9 @@ public class EventVO implements Event, Identity {
|
|||||||
@Column(name="account_id")
|
@Column(name="account_id")
|
||||||
private long accountId;
|
private long accountId;
|
||||||
|
|
||||||
@Column(name="domain_id", table="account", insertable=false, updatable=false)
|
@Column(name="domain_id")
|
||||||
private long domainId;
|
private long domainId;
|
||||||
|
|
||||||
@Column(name="account_name", table="account", insertable=false, updatable=false)
|
|
||||||
private String accountName;
|
|
||||||
|
|
||||||
@Column(name="type", table="account", insertable=false, updatable=false)
|
|
||||||
private short accountType;
|
|
||||||
|
|
||||||
@Column(name="removed", table="account", insertable=false, updatable=false)
|
|
||||||
private Date removed;
|
|
||||||
|
|
||||||
@Column(name="level")
|
@Column(name="level")
|
||||||
private String level = LEVEL_INFO;
|
private String level = LEVEL_INFO;
|
||||||
|
|
||||||
@ -152,11 +139,10 @@ public class EventVO implements Event, Identity {
|
|||||||
return domainId;
|
return domainId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void setDomainId(long domainId) {
|
||||||
public String getAccountName() {
|
this.domainId = domainId;
|
||||||
return accountName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getTotalSize() {
|
public int getTotalSize() {
|
||||||
return totalSize;
|
return totalSize;
|
||||||
@ -197,9 +183,4 @@ public class EventVO implements Event, Identity {
|
|||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Short getAccountType() {
|
|
||||||
return accountType;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,15 +20,19 @@ package com.cloud.event;
|
|||||||
|
|
||||||
import com.cloud.event.dao.EventDao;
|
import com.cloud.event.dao.EventDao;
|
||||||
import com.cloud.server.ManagementServer;
|
import com.cloud.server.ManagementServer;
|
||||||
|
import com.cloud.user.AccountVO;
|
||||||
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
import com.cloud.utils.component.ComponentLocator;
|
||||||
|
|
||||||
public class EventUtils {
|
public class EventUtils {
|
||||||
private static EventDao _eventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(EventDao.class);
|
private static EventDao _eventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(EventDao.class);
|
||||||
|
private static AccountDao _accountDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(AccountDao.class);
|
||||||
|
|
||||||
public static Long saveEvent(Long userId, Long accountId, String type, String description) {
|
public static Long saveEvent(Long userId, Long accountId, Long domainId, String type, String description) {
|
||||||
EventVO event = new EventVO();
|
EventVO event = new EventVO();
|
||||||
event.setUserId(userId);
|
event.setUserId(userId);
|
||||||
event.setAccountId(accountId);
|
event.setAccountId(accountId);
|
||||||
|
event.setDomainId(domainId);
|
||||||
event.setType(type);
|
event.setType(type);
|
||||||
event.setDescription(description);
|
event.setDescription(description);
|
||||||
event = _eventDao.persist(event);
|
event = _eventDao.persist(event);
|
||||||
@ -42,6 +46,7 @@ public class EventUtils {
|
|||||||
EventVO event = new EventVO();
|
EventVO event = new EventVO();
|
||||||
event.setUserId(userId);
|
event.setUserId(userId);
|
||||||
event.setAccountId(accountId);
|
event.setAccountId(accountId);
|
||||||
|
event.setDomainId(getDomainId(accountId));
|
||||||
event.setType(type);
|
event.setType(type);
|
||||||
event.setStartId(startEventId);
|
event.setStartId(startEventId);
|
||||||
event.setState(Event.State.Scheduled);
|
event.setState(Event.State.Scheduled);
|
||||||
@ -57,52 +62,20 @@ public class EventUtils {
|
|||||||
EventVO event = new EventVO();
|
EventVO event = new EventVO();
|
||||||
event.setUserId(userId);
|
event.setUserId(userId);
|
||||||
event.setAccountId(accountId);
|
event.setAccountId(accountId);
|
||||||
|
event.setDomainId(getDomainId(accountId));
|
||||||
event.setType(type);
|
event.setType(type);
|
||||||
event.setState(Event.State.Started);
|
event.setState(Event.State.Started);
|
||||||
event.setDescription("Starting job for "+description);
|
event.setDescription("Starting job for "+description);
|
||||||
event.setStartId(startEventId);
|
event.setStartId(startEventId);
|
||||||
event = _eventDao.persist(event);
|
event = _eventDao.persist(event);
|
||||||
return event.getId();
|
return event.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long saveStartedEvent(Long userId, Long accountId, String type, String description) {
|
|
||||||
EventVO event = new EventVO();
|
|
||||||
event.setUserId(userId);
|
|
||||||
event.setAccountId(accountId);
|
|
||||||
event.setType(type);
|
|
||||||
event.setState(Event.State.Started);
|
|
||||||
event.setDescription(description);
|
|
||||||
event = _eventDao.persist(event);
|
|
||||||
return event.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Long saveEvent(Long userId, Long accountId, String level, String type, String description) {
|
|
||||||
EventVO event = new EventVO();
|
|
||||||
event.setUserId(userId);
|
|
||||||
event.setAccountId(accountId);
|
|
||||||
event.setType(type);
|
|
||||||
event.setDescription(description);
|
|
||||||
event.setLevel(level);
|
|
||||||
event = _eventDao.persist(event);
|
|
||||||
return event.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Long saveEvent(Long userId, Long accountId, String level, String type, String description, String params) {
|
|
||||||
EventVO event = new EventVO();
|
|
||||||
event.setUserId(userId);
|
|
||||||
event.setAccountId(accountId);
|
|
||||||
event.setType(type);
|
|
||||||
event.setDescription(description);
|
|
||||||
event.setLevel(level);
|
|
||||||
event.setParameters(params);
|
|
||||||
event = _eventDao.persist(event);
|
|
||||||
return event.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Long saveEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
|
public static Long saveEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
|
||||||
EventVO event = new EventVO();
|
EventVO event = new EventVO();
|
||||||
event.setUserId(userId);
|
event.setUserId(userId);
|
||||||
event.setAccountId(accountId);
|
event.setAccountId(accountId);
|
||||||
|
event.setDomainId(getDomainId(accountId));
|
||||||
event.setType(type);
|
event.setType(type);
|
||||||
event.setDescription(description);
|
event.setDescription(description);
|
||||||
event.setLevel(level);
|
event.setLevel(level);
|
||||||
@ -111,23 +84,11 @@ public class EventUtils {
|
|||||||
return (event != null ? event.getId() : null);
|
return (event != null ? event.getId() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long saveEvent(Long userId, Long accountId, String level, String type, String description, String params, long startEventId) {
|
|
||||||
EventVO event = new EventVO();
|
|
||||||
event.setUserId(userId);
|
|
||||||
event.setAccountId(accountId);
|
|
||||||
event.setType(type);
|
|
||||||
event.setDescription(description);
|
|
||||||
event.setLevel(level);
|
|
||||||
event.setParameters(params);
|
|
||||||
event.setStartId(startEventId);
|
|
||||||
event = _eventDao.persist(event);
|
|
||||||
return event.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Long saveCreatedEvent(Long userId, Long accountId, String level, String type, String description) {
|
public static Long saveCreatedEvent(Long userId, Long accountId, String level, String type, String description) {
|
||||||
EventVO event = new EventVO();
|
EventVO event = new EventVO();
|
||||||
event.setUserId(userId);
|
event.setUserId(userId);
|
||||||
event.setAccountId(accountId);
|
event.setAccountId(accountId);
|
||||||
|
event.setDomainId(getDomainId(accountId));
|
||||||
event.setType(type);
|
event.setType(type);
|
||||||
event.setLevel(level);
|
event.setLevel(level);
|
||||||
event.setState(Event.State.Created);
|
event.setState(Event.State.Created);
|
||||||
@ -135,4 +96,9 @@ public class EventUtils {
|
|||||||
event = _eventDao.persist(event);
|
event = _eventDao.persist(event);
|
||||||
return event.getId();
|
return event.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static long getDomainId(long accountId){
|
||||||
|
AccountVO account = _accountDao.findByIdIncludingRemoved(accountId);
|
||||||
|
return account.getDomainId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1410,10 +1410,13 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (listProjectResourcesCriteria != null) {
|
if (listProjectResourcesCriteria != null) {
|
||||||
if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.ListProjectResourcesOnly) {
|
SearchBuilder<AccountVO> accountSearch = _accountDao.createSearchBuilder();
|
||||||
sb.and("accountType", sb.entity().getAccountType(), SearchCriteria.Op.EQ);
|
if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.ListProjectResourcesOnly) {
|
||||||
|
accountSearch.and("accountType", accountSearch.entity().getType(), SearchCriteria.Op.EQ);
|
||||||
|
sb.join("accountSearch", accountSearch, sb.entity().getAccountId(), accountSearch.entity().getId(), JoinBuilder.JoinType.INNER);
|
||||||
} else if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.SkipProjectResources) {
|
} else if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.SkipProjectResources) {
|
||||||
sb.and("accountType", sb.entity().getAccountType(), SearchCriteria.Op.NEQ);
|
accountSearch.and("accountType", accountSearch.entity().getType(), SearchCriteria.Op.NEQ);
|
||||||
|
sb.join("accountSearch", accountSearch, sb.entity().getAccountId(), accountSearch.entity().getId(), JoinBuilder.JoinType.INNER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1430,7 +1433,7 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
|
|
||||||
SearchCriteria<EventVO> sc = sb.create();
|
SearchCriteria<EventVO> sc = sb.create();
|
||||||
if (listProjectResourcesCriteria != null) {
|
if (listProjectResourcesCriteria != null) {
|
||||||
sc.setParameters("accountType", Account.ACCOUNT_TYPE_PROJECT);
|
sc.setJoinParameters("accountSearch","accountType", Account.ACCOUNT_TYPE_PROJECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!permittedAccounts.isEmpty()) {
|
if (!permittedAccounts.isEmpty()) {
|
||||||
|
|||||||
@ -1526,7 +1526,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||||||
public void logoutUser(Long userId) {
|
public void logoutUser(Long userId) {
|
||||||
UserAccount userAcct = _userAccountDao.findById(userId);
|
UserAccount userAcct = _userAccountDao.findById(userId);
|
||||||
if (userAcct != null) {
|
if (userAcct != null) {
|
||||||
EventUtils.saveEvent(userId, userAcct.getAccountId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out");
|
EventUtils.saveEvent(userId, userAcct.getAccountId(), userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out");
|
||||||
} // else log some kind of error event? This likely means the user doesn't exist, or has been deleted...
|
} // else log some kind of error event? This likely means the user doesn't exist, or has been deleted...
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1649,7 +1649,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("User: " + username + " in domain " + domainId + " has successfully logged in");
|
s_logger.debug("User: " + username + " in domain " + domainId + " has successfully logged in");
|
||||||
}
|
}
|
||||||
EventUtils.saveEvent(user.getId(), user.getAccountId(), EventTypes.EVENT_USER_LOGIN, "user has logged in");
|
EventUtils.saveEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN, "user has logged in");
|
||||||
return user;
|
return user;
|
||||||
} else {
|
} else {
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
|||||||
@ -890,6 +890,7 @@ CREATE TABLE `cloud`.`event` (
|
|||||||
`description` varchar(1024) NOT NULL,
|
`description` varchar(1024) NOT NULL,
|
||||||
`user_id` bigint unsigned NOT NULL,
|
`user_id` bigint unsigned NOT NULL,
|
||||||
`account_id` bigint unsigned NOT NULL,
|
`account_id` bigint unsigned NOT NULL,
|
||||||
|
`domain_id` bigint unsigned NOT NULL,
|
||||||
`created` datetime NOT NULL,
|
`created` datetime NOT NULL,
|
||||||
`level` varchar(16) NOT NULL,
|
`level` varchar(16) NOT NULL,
|
||||||
`start_id` bigint unsigned NOT NULL DEFAULT 0,
|
`start_id` bigint unsigned NOT NULL DEFAULT 0,
|
||||||
|
|||||||
@ -604,3 +604,6 @@ CREATE TABLE `cloud`.`op_dc_storage_network_ip_address` (
|
|||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
update networks set guru_name='StorageNetworkGuru' where traffic_type='Storage';
|
update networks set guru_name='StorageNetworkGuru' where traffic_type='Storage';
|
||||||
|
|
||||||
|
ALTER TABLE `cloud`.`event` ADD COLUMN `domain_id` bigint unsigned NOT NULL;
|
||||||
|
UPDATE `cloud`.`event` e set e.domain_id = (select acc.domain_id from account acc where acc.id = e.account_id) where e.domain_id = 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user