You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by st...@apache.org on 2016/03/24 13:08:59 UTC

[27/51] [abbrv] ambari git commit: Refactor and cleanup

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java
deleted file mode 100644
index e6ecc45..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AccessUnauthorizedAuditEvent;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-public class UnauthorizedEventCreator implements RequestAuditEventCreator{
-
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return null;
-  }
-
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return null;
-  }
-
-  private Set<ResultStatus.STATUS> statuses = new HashSet<>();
-
-  {
-    statuses.add(ResultStatus.STATUS.UNAUTHORIZED);
-    statuses.add(ResultStatus.STATUS.FORBIDDEN);
-  }
-
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return statuses;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-    AccessUnauthorizedAuditEvent ae = AccessUnauthorizedAuditEvent.builder()
-      .withRemoteIp(request.getRemoteAddress())
-      .withResourcePath(request.getURI())
-      .withTimestamp(DateTime.now())
-      .withUserName(username)
-      .build();
-
-    return ae;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java
deleted file mode 100644
index 88ec5b0..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.audit.request.event.AddAlertGroupRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.AddUpgradeRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.ChangeAlertGroupRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.DeleteAlertGroupRequestAuditEvent;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-/**
- * This creator handles upgrade requests
- * For resource type {@link Resource.Type#Upgrade}
- * and request types {@link Request.Type#POST}
- */
-public class UpgradeEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.POST);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.Upgrade);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-
-    return AddUpgradeRequestAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRequestType(request.getRequestType())
-      .withResultStatus(result.getStatus())
-      .withUrl(request.getURI())
-      .withRemoteIp(request.getRemoteAddress())
-      .withUserName(username)
-      .withRepositoryVersion(getProperty(request, "repository_version"))
-      .withUpgradeType(getProperty(request, "upgrade_type"))
-      .withClusterName(getProperty(request, "cluster_name"))
-      .build();
-
-  }
-
-  private String getProperty(Request request, String propertyName) {
-    if(!request.getBody().getPropertySets().isEmpty()) {
-      return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Upgrade",propertyName)));
-    }
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java
deleted file mode 100644
index 6118dad..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.audit.request.event.AddUpgradeRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.UpdateUpgradeItemRequestAuditEvent;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-/**
- * This creator handles upgrade requests
- * For resource type {@link Resource.Type#Upgrade}
- * and request types {@link Request.Type#PUT}
- */
-public class UpgradeItemEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.PUT);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.UpgradeItem);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-
-    return UpdateUpgradeItemRequestAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRequestType(request.getRequestType())
-      .withResultStatus(result.getStatus())
-      .withUrl(request.getURI())
-      .withRemoteIp(request.getRemoteAddress())
-      .withUserName(username)
-      .withStatus(getProperty(request, "status"))
-      .withStageId(getProperty(request, "stage_id"))
-      .withRequestId(getProperty(request, "request_id"))
-      .build();
-
-  }
-
-  private String getProperty(Request request, String propertyName) {
-    if(!request.getBody().getPropertySets().isEmpty()) {
-      return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("UpgradeItem",propertyName)));
-    }
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java
deleted file mode 100644
index e8386c8..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.event.ActivateUserRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.AdminUserRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.CreateUserRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.DeleteUserRequestAuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.audit.request.event.UserPasswordChangeRequestAuditEvent;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-/**
- * This creator handles user requests
- * For resource type {@link Resource.Type#User}
- * and request types {@link Request.Type#POST}, {@link Request.Type#PUT} and {@link Request.Type#DELETE}
- */
-public class UserEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.POST);
-    requestTypes.add(Request.Type.PUT);
-    requestTypes.add(Request.Type.DELETE);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.User);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-
-    switch(request.getRequestType()) {
-      case POST:
-        return CreateUserRequestAuditEvent.builder()
-          .withTimestamp(DateTime.now())
-          .withRequestType(request.getRequestType())
-          .withResultStatus(result.getStatus())
-          .withUrl(request.getURI())
-          .withRemoteIp(request.getRemoteAddress())
-          .withUserName(username)
-          .withCreatedUsername(getUsername(request))
-          .withActive(isActive(request))
-          .withAdmin(isAdmin(request))
-          .build();
-      case DELETE:
-        return DeleteUserRequestAuditEvent.builder()
-          .withTimestamp(DateTime.now())
-          .withRequestType(request.getRequestType())
-          .withResultStatus(result.getStatus())
-          .withUrl(request.getURI())
-          .withRemoteIp(request.getRemoteAddress())
-          .withUserName(username)
-          .withDeletedUsername(request.getResource().getKeyValueMap().get(Resource.Type.User))
-          .build();
-      case PUT:
-        if(hasActive(request)) {
-          return ActivateUserRequestAuditEvent.builder()
-            .withTimestamp(DateTime.now())
-            .withRequestType(request.getRequestType())
-            .withResultStatus(result.getStatus())
-            .withUrl(request.getURI())
-            .withRemoteIp(request.getRemoteAddress())
-            .withUserName(username)
-            .withAffectedUsername(getUsername(request))
-            .withActive(isActive(request))
-            .build();
-        }
-        if(hasAdmin(request)) {
-          return AdminUserRequestAuditEvent.builder()
-            .withTimestamp(DateTime.now())
-            .withRequestType(request.getRequestType())
-            .withResultStatus(result.getStatus())
-            .withUrl(request.getURI())
-            .withRemoteIp(request.getRemoteAddress())
-            .withUserName(username)
-            .withAffectedUsername(getUsername(request))
-            .withAdmin(isAdmin(request))
-            .build();
-        }
-        if(hasOldPassword(request)) {
-          return UserPasswordChangeRequestAuditEvent.builder()
-            .withTimestamp(DateTime.now())
-            .withRequestType(request.getRequestType())
-            .withResultStatus(result.getStatus())
-            .withUrl(request.getURI())
-            .withRemoteIp(request.getRemoteAddress())
-            .withUserName(username)
-            .withAffectedUsername(getUsername(request))
-            .build();
-        }
-      default:
-        break;
-    }
-    return null;
-  }
-
-
-  private boolean isAdmin(Request request) {
-    return hasAdmin(request) && "true".equals(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "admin")));
-  }
-
-  private boolean isActive(Request request) {
-    return hasActive(request) && "true".equals(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "active")));
-  }
-
-  private boolean hasAdmin(Request request) {
-    return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "admin"));
-  }
-
-  private boolean hasActive(Request request) {
-    return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "active"));
-  }
-
-  private boolean hasOldPassword(Request request) {
-    return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "old_password"));
-  }
-
-  private String getUsername(Request request) {
-    if(!request.getBody().getPropertySets().isEmpty()) {
-      return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "user_name")));
-    }
-    return null;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java
deleted file mode 100644
index e52aa10..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.controller.spi.Resource;
-
-/**
- * This creator ignores validation post requests
- * For resource type {@link Resource.Type#Validation}
- * and request types {@link Request.Type#POST}
- */
-public class ValidationIgnoreEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.POST);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.Validation);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    // intentionally skipping this event
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java
deleted file mode 100644
index 59f8fbf..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.event.AddViewInstanceRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.ChangeViewInstanceRequestAuditEvent;
-import org.apache.ambari.server.audit.request.event.DeleteViewInstanceRequestAuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-/**
- * This creator handles view instance requests
- * For resource type {@link Resource.Type#ViewInstance}
- * and request types {@link Request.Type#POST}, {@link Request.Type#PUT} and {@link Request.Type#DELETE}
- */
-public class ViewInstanceEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.POST);
-    requestTypes.add(Request.Type.PUT);
-    requestTypes.add(Request.Type.DELETE);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.ViewInstance);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-
-    switch(request.getRequestType()) {
-
-      case POST:
-        return AddViewInstanceRequestAuditEvent.builder()
-          .withTimestamp(DateTime.now())
-          .withRequestType(request.getRequestType())
-          .withResultStatus(result.getStatus())
-          .withUrl(request.getURI())
-          .withRemoteIp(request.getRemoteAddress())
-          .withUserName(username)
-          .withType(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "view_name")))
-          .withVersion(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "version")))
-          .withName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "instance_name")))
-          .withDisplayName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "label")))
-          .withDescription(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "description")))
-          .build();
-
-      case PUT:
-        return ChangeViewInstanceRequestAuditEvent.builder()
-          .withTimestamp(DateTime.now())
-          .withRequestType(request.getRequestType())
-          .withResultStatus(result.getStatus())
-          .withUrl(request.getURI())
-          .withRemoteIp(request.getRemoteAddress())
-          .withUserName(username)
-          .withType(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "view_name")))
-          .withVersion(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "version")))
-          .withName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "instance_name")))
-          .withDisplayName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "label")))
-          .withDescription(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "description")))
-          .build();
-
-      case DELETE:
-        return DeleteViewInstanceRequestAuditEvent.builder()
-          .withTimestamp(DateTime.now())
-          .withRequestType(request.getRequestType())
-          .withResultStatus(result.getStatus())
-          .withUrl(request.getURI())
-          .withRemoteIp(request.getRemoteAddress())
-          .withUserName(username)
-          .withType(request.getResource().getKeyValueMap().get(Resource.Type.View))
-          .withVersion(request.getResource().getKeyValueMap().get(Resource.Type.ViewVersion))
-          .withName(request.getResource().getKeyValueMap().get(Resource.Type.ViewInstance))
-          .build();
-
-      default:
-        return null;
-    }
-  }
-
-  private String getProperty(Request request, String properyId) {
-    if(!request.getBody().getPropertySets().isEmpty()) {
-      return String.valueOf(request.getBody().getPropertySets().iterator().next().get(properyId));
-    }
-    return null;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java
deleted file mode 100644
index fc57428..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.ambari.server.audit.request.eventcreator;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.ambari.server.api.services.Request;
-import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.audit.request.event.ViewPrivilegeChangeRequestAuditEvent;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
-import org.joda.time.DateTime;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-
-/**
- * This creator handles view privilege requests
- * For resource type {@link Resource.Type#ViewInstance}
- * and request types {@link Request.Type#PUT}
- */
-public class ViewPrivilegeEventCreator implements RequestAuditEventCreator {
-
-  /**
-   * Set of {@link Request.Type}s that are handled by this plugin
-   */
-  private Set<Request.Type> requestTypes = new HashSet<Request.Type>();
-
-  {
-    requestTypes.add(Request.Type.PUT);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Request.Type> getRequestTypes() {
-    return requestTypes;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<Resource.Type> getResourceTypes() {
-    return Collections.singleton(Resource.Type.ViewPrivilege);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Set<ResultStatus.STATUS> getResultStatuses() {
-    return null;
-  }
-
-  @Override
-  public AuditEvent createAuditEvent(Request request, Result result) {
-    String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
-
-
-    Map<String, List<String>> users = getEntities(request, "USER");
-    Map<String, List<String>> groups = getEntities(request, "GROUP");
-
-    return ViewPrivilegeChangeRequestAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRequestType(request.getRequestType())
-      .withResultStatus(result.getStatus())
-      .withUrl(request.getURI())
-      .withRemoteIp(request.getRemoteAddress())
-      .withUserName(username)
-      .withType(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "view_name")))
-      .withVersion(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "version")))
-      .withName(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "instance_name")))
-      .withUsers(users)
-      .withGroups(groups)
-      .build();
-
-  }
-
-  private String getProperty(Request request, String properyId) {
-    if (!request.getBody().getPropertySets().isEmpty()) {
-      return String.valueOf(request.getBody().getPropertySets().iterator().next().get(properyId));
-    }
-    return null;
-  }
-
-  private Map<String, List<String>> getEntities(final Request request, final String type) {
-    Map<String, List<String>> entities = new HashMap<String, List<String>>();
-
-    for (Map<String, Object> propertyMap : request.getBody().getPropertySets()) {
-      String ptype = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "principal_type")));
-      if (type.equals(ptype)) {
-        String role = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "permission_name")));
-        String name = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "principal_name")));
-        if (!entities.containsKey(role)) {
-          entities.put(role, new LinkedList<String>());
-        }
-
-        entities.get(role).add(name);
-      }
-    }
-    return entities;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index 1a972ab..801378f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@ -51,7 +51,7 @@ import org.apache.ambari.server.api.services.PersistKeyValueService;
 import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorBlueprintProcessor;
 import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorHelper;
 import org.apache.ambari.server.audit.AuditLogger;
-import org.apache.ambari.server.audit.request.RequestAuditLogger;
+import org.apache.ambari.server.audit.event.request.RequestAuditLogger;
 import org.apache.ambari.server.audit.AuditLoggerModule;
 import org.apache.ambari.server.security.authentication.AmbariAuthenticationFilter;
 import org.apache.ambari.server.bootstrap.BootStrapImpl;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
index 74cd698..efc466d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
@@ -41,34 +41,34 @@ import org.apache.ambari.server.actionmanager.HostRoleCommandFactoryImpl;
 import org.apache.ambari.server.actionmanager.RequestFactory;
 import org.apache.ambari.server.actionmanager.StageFactory;
 import org.apache.ambari.server.actionmanager.StageFactoryImpl;
-import org.apache.ambari.server.audit.request.RequestAuditEventCreator;
-import org.apache.ambari.server.audit.request.RequestAuditLogger;
-import org.apache.ambari.server.audit.request.RequestAuditLoggerImpl;
-import org.apache.ambari.server.audit.request.eventcreator.AlertGroupEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.AlertTargetEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.BlueprintEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.BlueprintExportEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.CredentialEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.HostEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.PrivilegeEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.GroupEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.MemberEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.RecommendationIgnoreEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.RepositoryEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.RepositoryVersionEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.RequestEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ServiceConfigDownloadEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.UnauthorizedEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ConfigurationChangeEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.DefaultEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ComponentEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ServiceEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.UpgradeEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.UpgradeItemEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.UserEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ValidationIgnoreEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ViewInstanceEventCreator;
-import org.apache.ambari.server.audit.request.eventcreator.ViewPrivilegeEventCreator;
+import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator;
+import org.apache.ambari.server.audit.event.request.RequestAuditLogger;
+import org.apache.ambari.server.audit.event.request.RequestAuditLoggerImpl;
+import org.apache.ambari.server.audit.event.request.eventcreator.AlertGroupEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.AlertTargetEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.BlueprintEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.BlueprintExportEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.CredentialEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.HostEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.PrivilegeEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.GroupEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.MemberEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.RecommendationIgnoreEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.RepositoryEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.RepositoryVersionEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.RequestEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ServiceConfigDownloadEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.UnauthorizedEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ConfigurationChangeEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.DefaultEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ComponentEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ServiceEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.UpgradeEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.UpgradeItemEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.UserEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ValidationIgnoreEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ViewInstanceEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.ViewPrivilegeEventCreator;
 import org.apache.ambari.server.checks.AbstractCheckDescriptor;
 import org.apache.ambari.server.checks.UpgradeCheckRegistry;
 import org.apache.ambari.server.configuration.Configuration;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java
index b41cfb7..79b055e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java
@@ -24,10 +24,9 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
 import org.apache.ambari.server.audit.AuditLogger;
-import org.apache.ambari.server.audit.LoginFailedAuditEvent;
-import org.apache.ambari.server.audit.LoginSucceededAuditEvent;
+import org.apache.ambari.server.audit.event.LoginAuditEvent;
 import org.apache.ambari.server.security.authorization.AuthorizationHelper;
 import org.apache.ambari.server.utils.RequestUtils;
 import org.joda.time.DateTime;
@@ -59,10 +58,10 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter {
     HttpServletRequest request = (HttpServletRequest) req;
     String header = request.getHeader("Authorization");
     if (AuthorizationHelper.getAuthenticatedName() == null && (header == null || !header.startsWith("Basic "))) {
-      AuditEvent loginFailedAuditEvent = LoginFailedAuditEvent.builder()
+      AuditEvent loginFailedAuditEvent = LoginAuditEvent.builder()
         .withRemoteIp(RequestUtils.getRemoteAddress(request))
         .withTimestamp(DateTime.now())
-        .withReason("Authentication required")
+        .withReasonOfFailure("Authentication required")
         .withUserName(null)
         .build();
       auditLogger.log(loginFailedAuditEvent);
@@ -72,7 +71,7 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter {
 
   @Override
   protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) throws IOException {
-    AuditEvent loginSucceededAuditEvent = LoginSucceededAuditEvent.builder()
+    AuditEvent loginSucceededAuditEvent = LoginAuditEvent.builder()
       .withRemoteIp(RequestUtils.getRemoteAddress(request))
       .withUserName(authResult.getName())
       .withTimestamp(DateTime.now())
@@ -91,10 +90,10 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter {
     } catch (Exception e) {
       LOG.warn("Error occurred during decoding authorization header.",e);
     }
-    AuditEvent loginFailedAuditEvent = LoginFailedAuditEvent.builder()
+    AuditEvent loginFailedAuditEvent = LoginAuditEvent.builder()
       .withRemoteIp(RequestUtils.getRemoteAddress(request))
       .withTimestamp(DateTime.now())
-      .withReason("Invalid username/password combination")
+      .withReasonOfFailure("Invalid username/password combination")
       .withUserName(username)
       .build();
     auditLogger.log(loginFailedAuditEvent);

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java
index 65fd213..b28f694 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java
@@ -19,10 +19,10 @@
 package org.apache.ambari.server.security.authorization;
 
 import com.google.inject.Inject;
-import org.apache.ambari.server.audit.AccessUnauthorizedAuditEvent;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AccessUnauthorizedAuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
 import org.apache.ambari.server.audit.AuditLogger;
-import org.apache.ambari.server.audit.LoginSucceededAuditEvent;
+import org.apache.ambari.server.audit.event.LoginAuditEvent;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.orm.entities.PermissionEntity;
 import org.apache.ambari.server.orm.entities.PrivilegeEntity;
@@ -136,12 +136,12 @@ public class AmbariAuthorizationFilter implements Filter {
       if (token != null) {
         InternalAuthenticationToken internalAuthenticationToken = new InternalAuthenticationToken(token);
         context.setAuthentication(internalAuthenticationToken);
-        LoginSucceededAuditEvent loginSucceededAuditEvent = LoginSucceededAuditEvent.builder()
+        LoginAuditEvent loginAuditEvent = LoginAuditEvent.builder()
           .withUserName(internalAuthenticationToken.getName())
           .withRemoteIp(RequestUtils.getRemoteAddress(httpRequest))
           .withRoles(AuthorizationHelper.getPermissionLabels(authentication))
           .withTimestamp(DateTime.now()).build();
-        auditLogger.log(loginSucceededAuditEvent);
+        auditLogger.log(loginAuditEvent);
       } else {
         // for view access, we should redirect to the Ambari login
         if (requestURI.matches(VIEWS_CONTEXT_ALL_PATTERN)) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java
index 0fd530a..f36fede 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java
@@ -24,9 +24,8 @@ import org.apache.ambari.server.actionmanager.HostRoleCommand;
 import org.apache.ambari.server.actionmanager.HostRoleStatus;
 import org.apache.ambari.server.agent.CommandReport;
 import org.apache.ambari.server.agent.ExecutionCommand;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
 import org.apache.ambari.server.audit.AuditLogger;
-import org.apache.ambari.server.controller.AmbariServer;
 import org.apache.ambari.server.utils.StageUtils;
 
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java
index 1af0245..4086b85 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java
@@ -22,8 +22,7 @@ import com.google.inject.Inject;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.actionmanager.HostRoleStatus;
 import org.apache.ambari.server.agent.CommandReport;
-import org.apache.ambari.server.audit.kerberos.AbstractKerberosAuditEvent;
-import org.apache.ambari.server.audit.kerberos.CreateKeyTabKerberosAuditEvent;
+import org.apache.ambari.server.audit.event.kerberos.CreateKeyTabKerberosAuditEvent;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.orm.dao.HostDAO;
 import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
index 09df299..3ed001c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
@@ -22,7 +22,7 @@ import com.google.inject.Inject;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.actionmanager.HostRoleStatus;
 import org.apache.ambari.server.agent.CommandReport;
-import org.apache.ambari.server.audit.kerberos.CreatePrincipalKerberosAuditEvent;
+import org.apache.ambari.server.audit.event.kerberos.CreatePrincipalKerberosAuditEvent;
 import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO;
 import org.apache.ambari.server.orm.dao.KerberosPrincipalHostDAO;
 import org.apache.ambari.server.orm.entities.KerberosPrincipalEntity;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java
index ce46af4..7f94399 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java
@@ -21,7 +21,7 @@ package org.apache.ambari.server.serveraction.kerberos;
 import com.google.inject.Inject;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.agent.CommandReport;
-import org.apache.ambari.server.audit.kerberos.DestroyPrincipalKerberosAuditEvent;
+import org.apache.ambari.server.audit.event.kerberos.DestroyPrincipalKerberosAuditEvent;
 import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO;
 import org.apache.ambari.server.orm.entities.KerberosPrincipalEntity;
 import org.joda.time.DateTime;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java
index 55b1fbb..7ce97ce 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java
@@ -21,7 +21,7 @@ package org.apache.ambari.server.serveraction.kerberos;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.actionmanager.HostRoleStatus;
 import org.apache.ambari.server.agent.CommandReport;
-import org.apache.ambari.server.audit.kerberos.ChangeSecurityStateKerberosAuditEvent;
+import org.apache.ambari.server.audit.event.kerberos.ChangeSecurityStateKerberosAuditEvent;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Host;
 import org.apache.ambari.server.state.SecurityState;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java
index ad39354..7f11af4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java
@@ -22,12 +22,9 @@ import org.apache.ambari.server.api.resources.ResourceInstance;
 import org.apache.ambari.server.api.services.parsers.BodyParseException;
 import org.apache.ambari.server.api.services.parsers.RequestBodyParser;
 import org.apache.ambari.server.api.services.serializers.ResultSerializer;
-import org.apache.ambari.server.audit.request.RequestAuditLogger;
-import org.apache.ambari.server.orm.GuiceJpaInitializer;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.audit.event.request.RequestAuditLogger;
 import org.easymock.Capture;
 import org.easymock.EasyMock;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -42,9 +39,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
 import static org.easymock.EasyMock.*;
 import static org.easymock.EasyMock.createNiceMock;
 import static org.easymock.EasyMock.createStrictMock;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java
index e91db27..94de686 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.audit;
 
+import org.apache.ambari.server.audit.event.AccessUnauthorizedAuditEvent;
 import org.joda.time.DateTime;
 import org.junit.Test;
 
@@ -47,7 +48,7 @@ public class AccessUnauthorizedAuditEventTest {
     String actualAuditMessage = evnt.getAuditMessage();
 
     // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), ResourcePath(%s), Status(Access not authorized !)", testUserName, testRemoteIp, testHttpMethod, testResourcePath);
+    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), ResourcePath(%s), Status(Failed), Reason(Access not authorized)", testUserName, testRemoteIp, testHttpMethod, testResourcePath);
 
     assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java
index 8c7835b..a188b4c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java
@@ -21,6 +21,8 @@ package org.apache.ambari.server.audit;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.ambari.server.audit.event.AuditEvent;
+import org.apache.ambari.server.audit.event.OperationStatusAuditEvent;
 import org.easymock.Capture;
 import org.easymock.EasyMockRule;
 import org.easymock.Mock;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java
new file mode 100644
index 0000000..7536f3b
--- /dev/null
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java
@@ -0,0 +1,119 @@
+/**
+ * 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.ambari.server.audit;
+
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ambari.server.audit.event.LoginAuditEvent;
+import org.joda.time.DateTime;
+import org.junit.Test;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+public class LoginAuditEventTest {
+
+  @Test
+  public void testAuditMessage() throws Exception {
+    // Given
+    String testUserName = "USER1";
+    String testRemoteIp = "127.0.0.1";
+
+    Map<String, List<String>> roles = new HashMap<>();
+    roles.put("a", Arrays.asList("r1", "r2", "r3"));
+
+    LoginAuditEvent evnt = LoginAuditEvent.builder()
+      .withTimestamp(DateTime.now())
+      .withRemoteIp(testRemoteIp)
+      .withUserName(testUserName)
+      .withRoles(roles)
+      .build();
+
+    // When
+    String actualAuditMessage = evnt.getAuditMessage();
+
+    String roleMessage = System.lineSeparator() + "    a: r1, r2, r3" + System.lineSeparator();
+
+    // Then
+    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(User login), Roles(%s), Status(Success)",
+      testUserName, testRemoteIp, roleMessage);
+
+    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
+
+  }
+
+  @Test
+  public void testFailedAuditMessage() throws Exception {
+    // Given
+    String testUserName = "USER1";
+    String testRemoteIp = "127.0.0.1";
+    String reason = "Bad credentials";
+
+    Map<String, List<String>> roles = new HashMap<>();
+    roles.put("a", Arrays.asList("r1", "r2", "r3"));
+
+    LoginAuditEvent evnt = LoginAuditEvent.builder()
+      .withTimestamp(DateTime.now())
+      .withRemoteIp(testRemoteIp)
+      .withUserName(testUserName)
+      .withRoles(roles)
+      .withReasonOfFailure(reason)
+      .build();
+
+    // When
+    String actualAuditMessage = evnt.getAuditMessage();
+
+    String roleMessage = System.lineSeparator() + "    a: r1, r2, r3" + System.lineSeparator();
+
+    // Then
+    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(User login), Roles(%s), Status(Failed), Reason(%s)",
+      testUserName, testRemoteIp, roleMessage, reason);
+
+    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
+
+  }
+
+  @Test
+  public void testTimestamp() throws Exception {
+    // Given
+    DateTime testTimestamp = DateTime.now();
+    LoginAuditEvent evnt = LoginAuditEvent.builder()
+      .withTimestamp(testTimestamp)
+      .build();
+
+    // When
+    DateTime actualTimestamp = evnt.getTimestamp();
+
+    // Then
+    assertThat(actualTimestamp, equalTo(testTimestamp));
+
+  }
+
+  @Test
+  public void testEquals() throws Exception {
+    EqualsVerifier.forClass(LoginAuditEvent.class)
+      .verify();
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java
deleted file mode 100644
index 56d47d0..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * 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.ambari.server.audit;
-
-import org.joda.time.DateTime;
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-
-public class LoginFailedAuditEventTest {
-
-  @Test
-  public void testAuditMessage() throws Exception {
-    String testUserName = "USER1";
-    String testRemoteIp = "127.0.0.1";
-    String testReason = "Bad credentials";
-
-    LoginFailedAuditEvent evnt = LoginFailedAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRemoteIp(testRemoteIp)
-      .withUserName(testUserName)
-      .withReason(testReason)
-      .build();
-
-    // When
-    String actualAuditMessage = evnt.getAuditMessage();
-
-    // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Status(Login failed !), Reason(%s)", testUserName, testRemoteIp, testReason);
-
-    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
-
-  }
-
-  @Test
-  public void testTimestamp() throws Exception {
-    // Given
-    DateTime testTimestamp = DateTime.now();
-    LoginFailedAuditEvent evnt = LoginFailedAuditEvent.builder()
-      .withTimestamp(testTimestamp)
-      .build();
-
-    // When
-    DateTime actualTimestamp = evnt.getTimestamp();
-
-    // Then
-    assertThat(actualTimestamp, equalTo(testTimestamp));
-
-  }
-
-  @Test
-  public void testEquals() throws Exception {
-    EqualsVerifier.forClass(LoginFailedAuditEvent.class)
-      .verify();
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java
deleted file mode 100644
index 31e7eef..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * 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.ambari.server.audit;
-
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang.StringUtils;
-import org.joda.time.DateTime;
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-
-public class LoginSucceededAuditEventTest {
-
-  @Test
-  public void testAuditMessage() throws Exception {
-    // Given
-    String testUserName = "USER1";
-    String testRemoteIp = "127.0.0.1";
-
-    Map<String, List<String>> roles = new HashMap<>();
-    roles.put("a", Arrays.asList("r1", "r2", "r3"));
-
-    LoginSucceededAuditEvent evnt = LoginSucceededAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRemoteIp(testRemoteIp)
-      .withUserName(testUserName)
-      .withRoles(roles)
-      .build();
-
-    // When
-    String actualAuditMessage = evnt.getAuditMessage();
-
-    String roleMessage = System.lineSeparator() + "    a: r1, r2, r3" + System.lineSeparator();
-
-    // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Roles(%s), Status(Login succeeded !)",
-      testUserName, testRemoteIp, roleMessage);
-
-    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
-
-  }
-
-  @Test
-  public void testTimestamp() throws Exception {
-    // Given
-    DateTime testTimestamp = DateTime.now();
-    LoginSucceededAuditEvent evnt = LoginSucceededAuditEvent.builder()
-      .withTimestamp(testTimestamp)
-      .build();
-
-    // When
-    DateTime actualTimestamp = evnt.getTimestamp();
-
-    // Then
-    assertThat(actualTimestamp, equalTo(testTimestamp));
-
-  }
-
-  @Test
-  public void testEquals() throws Exception {
-    EqualsVerifier.forClass(LoginSucceededAuditEvent.class)
-      .verify();
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java
index ec6ea2d..ad4c8bc 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java
@@ -18,6 +18,8 @@
 package org.apache.ambari.server.audit;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
+
+import org.apache.ambari.server.audit.event.LogoutAuditEvent;
 import org.joda.time.DateTime;
 import org.junit.Test;
 
@@ -42,7 +44,7 @@ public class LogoutAuditEventTest {
     String actualAuditMessage = evnt.getAuditMessage();
 
     // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Status(Logout succeeded !)",
+    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(Logout), Status(Success)",
       testUserName, testRemoteIp);
 
     assertThat(actualAuditMessage, equalTo(expectedAuditMessage));

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java
index 7225158..084fcab 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java
@@ -18,6 +18,7 @@
 
 package org.apache.ambari.server.audit;
 
+import org.apache.ambari.server.audit.event.OperationStatusAuditEvent;
 import org.joda.time.DateTime;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java
new file mode 100644
index 0000000..d564d76
--- /dev/null
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java
@@ -0,0 +1,80 @@
+/**
+ * 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.ambari.server.audit;
+
+import org.apache.ambari.server.audit.event.LoginAuditEvent;
+import org.apache.ambari.server.audit.event.StartOperationAuditEvent;
+import org.joda.time.DateTime;
+import org.junit.Test;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+public class StartOperationAuditEventTest {
+
+  @Test
+  public void testAuditMessage() throws Exception {
+    // Given
+    String testUserName = "USER1";
+    String testRemoteIp = "127.0.0.1";
+    String testRequestDetails = "{ \"key\": \"value\"}";
+    Long testRequestId = 100L;
+
+    StartOperationAuditEvent evnt = StartOperationAuditEvent.builder()
+      .withTimestamp(DateTime.now())
+      .withRemoteIp(testRemoteIp)
+      .withUserName(testUserName)
+      .withOperation(testRequestDetails)
+      .withRequestId(testRequestId.toString())
+      .build();
+
+    // When
+    String actualAuditMessage = evnt.getAuditMessage();
+
+    // Then
+    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), RequestId(%d), Status(Success)", testUserName, testRemoteIp, testRequestDetails, testRequestId);
+
+    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
+
+  }
+
+  @Test
+  public void testTimestamp() throws Exception {
+    // Given
+    DateTime testTimestamp = DateTime.now();
+    StartOperationAuditEvent evnt = StartOperationAuditEvent.builder()
+      .withTimestamp(testTimestamp)
+      .build();
+
+    // When
+    DateTime actualTimestamp = evnt.getTimestamp();
+
+    // Then
+    assertThat(actualTimestamp, equalTo(testTimestamp));
+
+  }
+
+
+  @Test
+  public void testEquals() throws Exception {
+    EqualsVerifier.forClass(LoginAuditEvent.class)
+      .verify();
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java
deleted file mode 100644
index 9544abb..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * 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.ambari.server.audit;
-
-import org.joda.time.DateTime;
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-
-public class StartOperationFailedAuditEventTest {
-
-  @Test
-  public void testAuditMessage() throws Exception {
-    // Given
-    String testUserName = "USER1";
-    String testRemoteIp = "127.0.0.1";
-    String testRequestDetails = "{ \"key\": \"value\"}";
-    String testReason = "Parse exception";
-
-
-    StartOperationFailedAuditEvent evnt = StartOperationFailedAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRemoteIp(testRemoteIp)
-      .withUserName(testUserName)
-      .withOperation(testRequestDetails)
-      .withReason(testReason)
-      .build();
-
-    // When
-    String actualAuditMessage = evnt.getAuditMessage();
-
-    // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), Status(Request failed to be processed !), Reason(%s)", testUserName, testRemoteIp, testRequestDetails, testReason);
-
-    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
-  }
-
-  @Test
-  public void testTimestamp() throws Exception {
-    // Given
-    DateTime testTimestamp = DateTime.now();
-    StartOperationFailedAuditEvent evnt = StartOperationFailedAuditEvent.builder()
-      .withTimestamp(testTimestamp)
-      .build();
-
-    // When
-    DateTime actualTimestamp = evnt.getTimestamp();
-
-    // Then
-    assertThat(actualTimestamp, equalTo(testTimestamp));
-
-  }
-
-  @Test
-  public void testEquals() throws Exception {
-    EqualsVerifier.forClass(StartOperationFailedAuditEvent.class)
-      .verify();
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java
deleted file mode 100644
index 0027271..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * 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.ambari.server.audit;
-
-import org.joda.time.DateTime;
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-
-public class StartOperationSucceededAuditEventTest {
-
-  @Test
-  public void testAuditMessage() throws Exception {
-    // Given
-    String testUserName = "USER1";
-    String testRemoteIp = "127.0.0.1";
-    String testRequestDetails = "{ \"key\": \"value\"}";
-    Long testRequestId = 100L;
-
-    StartOperationSucceededAuditEvent evnt = StartOperationSucceededAuditEvent.builder()
-      .withTimestamp(DateTime.now())
-      .withRemoteIp(testRemoteIp)
-      .withUserName(testUserName)
-      .withOperation(testRequestDetails)
-      .withRequestId(testRequestId.toString())
-      .build();
-
-    // When
-    String actualAuditMessage = evnt.getAuditMessage();
-
-    // Then
-    String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), Status(Request queued for processing with request id %d)", testUserName, testRemoteIp, testRequestDetails, testRequestId);
-
-    assertThat(actualAuditMessage, equalTo(expectedAuditMessage));
-
-  }
-
-  @Test
-  public void testTimestamp() throws Exception {
-    // Given
-    DateTime testTimestamp = DateTime.now();
-    StartOperationSucceededAuditEvent evnt = StartOperationSucceededAuditEvent.builder()
-      .withTimestamp(testTimestamp)
-      .build();
-
-    // When
-    DateTime actualTimestamp = evnt.getTimestamp();
-
-    // Then
-    assertThat(actualTimestamp, equalTo(testTimestamp));
-
-  }
-
-
-  @Test
-  public void testEquals() throws Exception {
-    EqualsVerifier.forClass(LoginSucceededAuditEvent.class)
-      .verify();
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java
index 1847f31..1c38b49 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java
@@ -20,7 +20,8 @@ package org.apache.ambari.server.audit.request;
 
 import org.apache.ambari.server.api.services.Request;
 import org.apache.ambari.server.api.services.Result;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
+import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator;
 import org.joda.time.DateTime;
 
 public abstract class AbstractBaseCreator implements RequestAuditEventCreator {

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java
index 0d17319..1db6a18 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java
@@ -28,7 +28,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
@@ -45,10 +44,6 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.Part;
-import javax.ws.rs.core.Cookie;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
 
 import org.apache.ambari.server.api.query.QueryImpl;
 import org.apache.ambari.server.api.resources.HostComponentResourceDefinition;
@@ -60,7 +55,7 @@ import org.apache.ambari.server.api.services.RequestFactory;
 import org.apache.ambari.server.api.services.Result;
 import org.apache.ambari.server.api.services.ResultImpl;
 import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.request.eventcreator.DefaultEventCreator;
+import org.apache.ambari.server.audit.event.request.eventcreator.DefaultEventCreator;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -73,8 +68,6 @@ import org.springframework.security.core.userdetails.User;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
-import com.sun.jersey.core.util.MultivaluedMapImpl;
-
 public class DefaultEventCreatorTest {
 
   private DefaultEventCreator defaultEventCreator;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java
index 52ad44c..7a3b0d1 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java
@@ -20,6 +20,9 @@ package org.apache.ambari.server.audit.request;
 
 import org.apache.ambari.server.audit.AuditLogger;
 import org.apache.ambari.server.audit.AuditLoggerDefaultImpl;
+import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator;
+import org.apache.ambari.server.audit.event.request.RequestAuditLogger;
+import org.apache.ambari.server.audit.event.request.RequestAuditLoggerImpl;
 import org.easymock.EasyMock;
 
 import com.google.inject.AbstractModule;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java
index 549bd4c..6cae132 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java
@@ -34,8 +34,9 @@ import org.apache.ambari.server.api.services.RequestFactory;
 import org.apache.ambari.server.api.services.Result;
 import org.apache.ambari.server.api.services.ResultImpl;
 import org.apache.ambari.server.api.services.ResultStatus;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
 import org.apache.ambari.server.audit.AuditLogger;
+import org.apache.ambari.server.audit.event.request.RequestAuditLogger;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.easymock.Capture;
 import org.easymock.EasyMock;

http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java
index 8430326..a415b4c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java
@@ -27,7 +27,7 @@ import javax.servlet.FilterChain;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.ambari.server.audit.AuditEvent;
+import org.apache.ambari.server.audit.event.AuditEvent;
 import org.apache.ambari.server.audit.AuditLogger;
 import org.apache.ambari.server.security.authorization.AuthorizationHelper;
 import org.junit.runner.RunWith;