You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2018/09/28 21:20:51 UTC

[ambari] 20/20: Modifications to choose only necessary changes from Ambari3.0 to Ambari2.8 (mradhakrishnan)

This is an automated email from the ASF dual-hosted git repository.

mradhakrishnan pushed a commit to branch AMBARI-24711
in repository https://gitbox.apache.org/repos/asf/ambari.git

commit a6536f3c6fb0fa5415b42b63ff994fd2bc78c621
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
AuthorDate: Thu Sep 27 15:51:56 2018 -0700

    Modifications to choose only necessary changes from Ambari3.0 to Ambari2.8 (mradhakrishnan)
---
 ambari-server/src/main/assemblies/server.xml       |   5 -
 .../api/services/AbstractVersionService.java       | 362 ---------------------
 .../ambari/server/api/services/AmbariMetaInfo.java |   4 +-
 .../ambari/server/api/services/MpacksService.java  |   7 +-
 .../controller/AmbariManagementController.java     |   1 -
 .../controller/AmbariManagementControllerImpl.java |  43 +--
 .../ambari/server/controller/MpackResponse.java    |   3 +-
 .../controller/internal/MpackResourceProvider.java |  32 +-
 .../apache/ambari/server/mpack/MpackManager.java   |  14 +-
 .../org/apache/ambari/server/orm/dao/MpackDAO.java |  18 +-
 .../ambari/server/orm/entities/MpackEntity.java    |  22 +-
 .../apache/ambari/server/stack/StackManager.java   |   3 +-
 .../org/apache/ambari/server/state/Module.java     |  25 ++
 .../ambari/server/state/ModuleComponent.java       |  11 +
 .../java/org/apache/ambari/server/state/Mpack.java |   8 +-
 .../api/resources/MpackResourceDefinitionTest.java |   1 +
 .../server/api/services/AmbariMetaInfoTest.java    |  51 ++-
 .../server/api/services/MpackServiceTest.java      |  94 ------
 .../AmbariManagementControllerImplTest.java        |  28 +-
 .../ambari/server/controller/MpackRequestTest.java |   2 +-
 .../server/controller/MpackResponseTest.java       |   3 -
 .../internal/AbstractResourceProviderTest.java     |   2 +-
 .../internal/ClusterControllerImplTest.java        |   2 +-
 .../internal/MpackResourceProviderTest.java        |  35 +-
 .../apache/ambari/server/orm/dao/MpackDAOTest.java |  20 +-
 .../server/orm/entities/MpackEntityTest.java       |   6 +-
 .../org/apache/ambari/server/state/MpackTest.java  |   4 +-
 .../org/apache/ambari/server/state/MpacksTest.java |  95 ------
 .../ambari/msi/AbstractResourceProviderTest.java   |   7 +-
 29 files changed, 151 insertions(+), 757 deletions(-)

diff --git a/ambari-server/src/main/assemblies/server.xml b/ambari-server/src/main/assemblies/server.xml
index 464972f..21524ee 100644
--- a/ambari-server/src/main/assemblies/server.xml
+++ b/ambari-server/src/main/assemblies/server.xml
@@ -316,11 +316,6 @@
     </file>
     <file>
       <fileMode>755</fileMode>
-      <source>target/classes/cluster-settings.xml</source>
-      <outputDirectory>/var/lib/ambari-server/resources</outputDirectory>
-    </file>
-    <file>
-      <fileMode>755</fileMode>
       <source>target/classes/Ambari-DDL-Postgres-CREATE.sql</source>
       <outputDirectory>/var/lib/ambari-server/resources</outputDirectory>
     </file>
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java
deleted file mode 100644
index 2d81602..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java
+++ /dev/null
@@ -1,362 +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.api.services;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
-import org.apache.ambari.server.api.rest.BootStrapResource;
-import org.apache.ambari.server.api.rest.HealthCheck;
-import org.apache.ambari.server.api.rest.KdcServerReachabilityCheck;
-import org.apache.ambari.server.api.util.ApiVersion;
-
-/**
- * Abstract class for single entry point for an API version
- */
-public abstract class AbstractVersionService {
-
-  /**
-   * Handles /actions request.
-   *
-   * @return action service
-   */
-  @Path("/actions")
-  public ActionService getActionService(@PathParam("apiVersion") String apiVersion) {
-    return new ActionService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /alert_targets request.
-   *
-   * @return alert targets service
-   */
-  @Path("/alert_targets")
-  public AlertTargetService getAlertTargetService(@PathParam("apiVersion") String apiVersion) {
-    return new AlertTargetService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /privileges request.
-   *
-   * @return privileges service
-   */
-  @Path("/privileges")
-  public AmbariPrivilegeService getAmbariPrivilegeService(@PathParam("apiVersion") String apiVersion) {
-    return new AmbariPrivilegeService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /blueprints request.
-   *
-   * @return blueprints service
-   */
-  @Path("/blueprints")
-  public BlueprintService getBlueprintService(@PathParam("apiVersion") String apiVersion) {
-    return new BlueprintService(ApiVersion.valueOf(apiVersion));
-  }
-
-
-  /**
-   * Handles /links request.
-   *
-   * @return extension links service
-   */
-  @Path("/links")
-  public ExtensionLinksService getExtensionLinksService(@PathParam("apiVersion") String apiVersion) {
-    return new ExtensionLinksService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /extensions request.
-   *
-   * @return extensions service
-   */
-  @Path("/extensions")
-  public ExtensionsService getExtensionsService(@PathParam("apiVersion") String apiVersion) {
-    return new ExtensionsService(ApiVersion.valueOf(apiVersion));
-  }
-
-
-  /**
-   * Handles /clusters request.
-   *
-   * @return cluster service
-   */
-  @Path("/clusters")
-  public ClusterService getClusterService(@PathParam("apiVersion") String apiVersion) {
-    return new ClusterService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /feeds request.
-   * TODO: Cleanup?
-   *
-   * @return feed service
-   */
-  @Path("/feeds")
-  public FeedService getFeedService(@PathParam("apiVersion") String apiVersion) {
-    return new FeedService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /groups request.
-   *
-   * @return group service
-   */
-  @Path("/groups")
-  public GroupService getGroupService(@PathParam("apiVersion") String apiVersion) {
-    return new GroupService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /hosts request.
-   *
-   * @return host service
-   */
-  @Path("/hosts")
-  public HostService getHostService(@PathParam("apiVersion") String apiVersion) {
-    return new HostService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /instances request.
-   * TODO: Cleanup?
-   *
-   * @return instance service
-   */
-  @Path("/instances")
-  public InstanceService getInstanceService(@PathParam("apiVersion") String apiVersion) {
-    return new InstanceService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /kerberos_descriptors request.
-   *
-   * @return kerberos descriptor service
-   */
-  @Path("/kerberos_descriptors")
-  public KerberosDescriptorService getKerberosDescriptorService(@PathParam("apiVersion") String apiVersion) {
-    return new KerberosDescriptorService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /keys request.
-   *
-   * @return key service
-   */
-  @Path("/keys")
-  public KeyService getKeyService(@PathParam("apiVersion") String apiVersion) {
-    return new KeyService();
-  }
-
-  /**
-   * Handles /ldap_sync_events request.
-   *
-   * @return Ldap sync event service
-   */
-  @Path("/ldap_sync_events")
-  public LdapSyncEventService getLdapSyncEventService(@PathParam("apiVersion") String apiVersion) {
-    return new LdapSyncEventService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /logout request.
-   *
-   * @return logout service
-   */
-  @Path("/logout")
-  public LogoutService getLogoutService(@PathParam("apiVersion") String apiVersion) {
-    return new LogoutService();
-  }
-
-  /**
-   * Handles /permissions request.
-   *
-   * @return permission service
-   */
-  @Path("/permissions")
-  public PermissionService getPermissionService(@PathParam("apiVersion") String apiVersion) {
-    return new PermissionService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /persist request.
-   *
-   * @return persist service
-   */
-  @Path("/persist")
-  public PersistKeyValueService getPersistKeyValueService(@PathParam("apiVersion") String apiVersion) {
-    return new PersistKeyValueService();
-  }
-
-  /**
-   * Handles /remoteclusters request
-   *
-   * @return remote clusters service
-   */
-  @Path("/remoteclusters")
-  public RemoteClustersService getRemoteClustersService(@PathParam("apiVersion") String apiVersion) {
-    return new RemoteClustersService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /requests request.
-   *
-   * @return request service
-   */
-  @Path("/requests")
-  public RequestService getRequestService(@PathParam("apiVersion") String apiVersion) {
-    return new RequestService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /settings request.
-   *
-   * @return request service
-   */
-  @Path("/settings")
-  public SettingService getSettingService(@PathParam("apiVersion") String apiVersion) {
-    return new SettingService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /authorizations request.
-   *
-   * @return role authorization service
-   */
-  @Path("/authorizations")
-  public RoleAuthorizationService getRoleAuthorizationService(@PathParam("apiVersion") String apiVersion) {
-    return new RoleAuthorizationService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /services request.
-   *
-   * @return root service service
-   */
-  @Path("/services")
-  public RootServiceService getRootServiceService(@PathParam("apiVersion") String apiVersion) {
-    return new RootServiceService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /targets request.
-   * TODO: Cleanup?
-   *
-   * @return target cluster service
-   */
-  @Path("/targets")
-  public TargetClusterService getTargetClusterService(@PathParam("apiVersion") String apiVersion) {
-    return new TargetClusterService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /users request.
-   *
-   * @return user service
-   */
-  @Path("/users")
-  public UserService getUserService(@PathParam("apiVersion") String apiVersion) {
-    return new UserService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /version_definitions request.
-   *
-   * @return version definition service
-   */
-  @Path("/version_definitions")
-  public VersionDefinitionService getVersionDefinitionService(@PathParam("apiVersion") String apiVersion) {
-    return new VersionDefinitionService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /views request.
-   *
-   * @return view service
-   */
-  @Path("/views")
-  public ViewService getViewService(@PathParam("apiVersion") String apiVersion) {
-    return new ViewService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /view/urls request.
-   *
-   * @return view urls service
-   */
-  @Path("/view/urls")
-  public ViewUrlsService getViewUrlsService(@PathParam("apiVersion") String apiVersion) {
-    return new ViewUrlsService(ApiVersion.valueOf(apiVersion));
-  }
-
-  /**
-   * Handles /stacks request.
-   *
-   * @return stacks service
-   */
-  @Path("/stacks")
-  public StacksService getStacksService(@PathParam("apiVersion") String apiVersion) {
-    return new StacksService(ApiVersion.valueOf(apiVersion));
-  }
-
-
-  /**
-   * Handles /bootstrap request.
-   *
-   * @return bootstrap service
-   */
-  @Path("/bootstrap")
-  public BootStrapResource getBootStrapResource(@PathParam("apiVersion") String apiVersion) {
-    return new BootStrapResource();
-  }
-
-
-  /**
-   * Handles /check request.
-   *
-   * @return health check service
-   */
-  @Path("/check")
-  public HealthCheck getHealthCheck(@PathParam("apiVersion") String apiVersion) {
-    return new HealthCheck();
-  }
-
-  /**
-   * Handles /kdc_check request.
-   *
-   * @return kdc server reachability service
-   */
-  @Path("/kdc_check")
-  public KdcServerReachabilityCheck getKdcServerReachabilityCheck(@PathParam("apiVersion") String apiVersion) {
-    return new KdcServerReachabilityCheck();
-  }
-
-  /**
-   * Handles /mpacks request.
-   *
-   * @return mpacks service
-   */
-  @Path("/mpacks")
-  public MpacksService getMpacksService(@PathParam("apiVersion") String apiVersion) {
-    return new MpacksService(ApiVersion.valueOf(apiVersion));
-  }
-
-
-}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index 6180a13..6e5c66e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -44,9 +44,9 @@ import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.ParentObjectNotFoundException;
 import org.apache.ambari.server.StackAccessException;
 import org.apache.ambari.server.configuration.Configuration;
-import org.apache.ambari.server.controller.RootService;
 import org.apache.ambari.server.controller.MpackRequest;
 import org.apache.ambari.server.controller.MpackResponse;
+import org.apache.ambari.server.controller.RootService;
 import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.customactions.ActionDefinition;
@@ -59,11 +59,9 @@ import org.apache.ambari.server.mpack.MpackManager;
 import org.apache.ambari.server.mpack.MpackManagerFactory;
 import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
 import org.apache.ambari.server.orm.dao.MetainfoDAO;
-import org.apache.ambari.server.orm.dao.StackDAO;
 import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
 import org.apache.ambari.server.orm.entities.MpackEntity;
 import org.apache.ambari.server.orm.entities.StackEntity;
-import org.apache.ambari.server.stack.StackDirectory;
 import org.apache.ambari.server.stack.StackManager;
 import org.apache.ambari.server.stack.StackManagerFactory;
 import org.apache.ambari.server.stack.upgrade.ConfigUpgradePack;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/MpacksService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/MpacksService.java
index 4694841..902b8df 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/MpacksService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/MpacksService.java
@@ -17,10 +17,7 @@
  */
 package org.apache.ambari.server.api.services;
 
-import org.apache.ambari.server.api.resources.ResourceInstance;
-
-
-import org.apache.ambari.server.controller.spi.Resource;
+import java.util.Collections;
 
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
@@ -33,8 +30,6 @@ import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
-import java.util.Collections;
-
 
 import org.apache.ambari.server.api.resources.ResourceInstance;
 import org.apache.ambari.server.controller.MpackResponse.MpackResponseWrapper;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
index d94fcbc..212ecb6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.ArrayList;
 
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.RoleCommand;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 6061640..f910172 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -133,8 +133,8 @@ import org.apache.ambari.server.controller.metrics.MetricPropertyProviderFactory
 import org.apache.ambari.server.controller.metrics.MetricsCollectorHAManager;
 import org.apache.ambari.server.controller.metrics.timeline.cache.TimelineMetricCacheProvider;
 import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.spi.SystemException;
 import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
+import org.apache.ambari.server.controller.spi.SystemException;
 import org.apache.ambari.server.customactions.ActionDefinition;
 import org.apache.ambari.server.events.MetadataUpdateEvent;
 import org.apache.ambari.server.events.TopologyUpdateEvent;
@@ -157,9 +157,9 @@ import org.apache.ambari.server.orm.entities.ClusterEntity;
 import org.apache.ambari.server.orm.entities.ExtensionLinkEntity;
 import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity;
 import org.apache.ambari.server.orm.entities.HostEntity;
+import org.apache.ambari.server.orm.entities.MpackEntity;
 import org.apache.ambari.server.orm.entities.RepoDefinitionEntity;
 import org.apache.ambari.server.orm.entities.RepoOsEntity;
-import org.apache.ambari.server.orm.entities.MpackEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity;
 import org.apache.ambari.server.orm.entities.SettingEntity;
@@ -206,20 +206,6 @@ import org.apache.ambari.server.state.Mpack;
 import org.apache.ambari.server.state.OperatingSystemInfo;
 import org.apache.ambari.server.state.PropertyDependencyInfo;
 import org.apache.ambari.server.state.PropertyInfo;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.ServiceComponentFactory;
-import org.apache.ambari.server.state.ServiceComponentHostFactory;
-import org.apache.ambari.server.state.ConfigFactory;
-import org.apache.ambari.server.state.StackId;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.ConfigHelper;
-import org.apache.ambari.server.state.StackInfo;
-import org.apache.ambari.server.state.State;
-import org.apache.ambari.server.state.Service;
-import org.apache.ambari.server.state.ServiceComponent;
-import org.apache.ambari.server.state.Host;
-import org.apache.ambari.server.state.ServiceComponentHost;
-import org.apache.ambari.server.state.CommandScriptDefinition;
 import org.apache.ambari.server.state.PropertyInfo.PropertyType;
 import org.apache.ambari.server.state.RepositoryInfo;
 import org.apache.ambari.server.state.SecurityType;
@@ -235,26 +221,8 @@ import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.State;
 import org.apache.ambari.server.state.UnlimitedKeyJCERequirement;
-import org.apache.ambari.server.state.*;
 import org.apache.ambari.server.state.configgroup.ConfigGroupFactory;
 import org.apache.ambari.server.state.fsm.InvalidStateTransitionException;
-import org.apache.ambari.server.state.PropertyInfo;
-import org.apache.ambari.server.state.Config;
-import org.apache.ambari.server.state.DesiredConfig;
-import org.apache.ambari.server.state.MaintenanceState;
-import org.apache.ambari.server.state.SecurityType;
-import org.apache.ambari.server.state.HostState;
-import org.apache.ambari.server.state.ServiceComponentHostEvent;
-import org.apache.ambari.server.state.ComponentInfo;
-import org.apache.ambari.server.state.ServiceInfo;
-import org.apache.ambari.server.state.RepositoryVersionState;
-import org.apache.ambari.server.state.ServiceOsSpecific;
-import org.apache.ambari.server.state.UnlimitedKeyJCERequirement;
-import org.apache.ambari.server.state.ExtensionInfo;
-import org.apache.ambari.server.state.RepositoryInfo;
-import org.apache.ambari.server.state.OperatingSystemInfo;
-import org.apache.ambari.server.state.HostComponentAdminState;
-import org.apache.ambari.server.state.PropertyDependencyInfo;
 import org.apache.ambari.server.state.quicklinksprofile.QuickLinkVisibilityController;
 import org.apache.ambari.server.state.quicklinksprofile.QuickLinkVisibilityControllerFactory;
 import org.apache.ambari.server.state.quicklinksprofile.QuickLinksProfile;
@@ -4746,13 +4714,6 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
       configs = ambariMetaInfo.getStackProperties(stackName, stackVersion);
     }
 
-    //settings : stackSettings
-    if(configs.size() == 0){
-      if (propertyName != null) {
-        configs = ambariMetaInfo.getStackSettingsByName(stackName, stackVersion, propertyName);
-      } else
-        configs = ambariMetaInfo.getStackSettings(stackName, stackVersion);
-    }
     for (PropertyInfo property: configs) {
       response.add(property.convertToResponse());
     }
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
index 70ddabe..308a2bb 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
@@ -18,8 +18,9 @@
 package org.apache.ambari.server.controller;
 
 
-import org.apache.ambari.server.state.Mpack;
 import org.apache.ambari.server.controller.internal.MpackResourceProvider;
+import org.apache.ambari.server.state.Mpack;
+
 
 import io.swagger.annotations.ApiModelProperty;
 
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
index ba52639..86802d5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
@@ -17,36 +17,35 @@
  */
 package org.apache.ambari.server.controller.internal;
 
-import java.io.IOException;
 
-import java.util.HashSet;
-import java.util.Set;
+
+import java.io.IOException;
 import java.net.URI;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Map;
-import java.util.HashMap;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
-import java.util.ArrayList;
 import java.util.List;
-import com.google.inject.Inject;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.StaticallyInject;
 import org.apache.ambari.server.api.services.parsers.BodyParseException;
-import org.apache.ambari.server.controller.spi.RequestStatus;
+import org.apache.ambari.server.controller.AmbariManagementController;
+import org.apache.ambari.server.controller.MpackRequest;
+import org.apache.ambari.server.controller.MpackResponse;
 import org.apache.ambari.server.controller.spi.NoSuchParentResourceException;
 import org.apache.ambari.server.controller.spi.NoSuchResourceException;
-import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
-import org.apache.ambari.server.controller.spi.SystemException;
-import org.apache.ambari.server.controller.spi.Request;
 import org.apache.ambari.server.controller.spi.Predicate;
-import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
+import org.apache.ambari.server.controller.spi.Request;
+import org.apache.ambari.server.controller.spi.RequestStatus;
 import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.MpackResponse;
-import org.apache.ambari.server.controller.MpackRequest;
+import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
+import org.apache.ambari.server.controller.spi.SystemException;
+import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
 import org.apache.ambari.server.controller.utilities.PredicateHelper;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.orm.dao.MpackDAO;
@@ -60,6 +59,7 @@ import org.apache.commons.lang.Validate;
 
 import com.google.inject.Inject;
 
+
 /**
  * ResourceProvider for Mpack instances
  */
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java b/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java
index 123b587..6bfacee 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java
@@ -18,10 +18,6 @@
 package org.apache.ambari.server.mpack;
 
 
-import com.google.gson.Gson;
-import com.google.inject.assistedinject.Assisted;
-import com.google.inject.assistedinject.AssistedInject;
-
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -34,6 +30,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -50,21 +47,18 @@ import org.apache.ambari.server.orm.entities.MpackEntity;
 import org.apache.ambari.server.orm.entities.StackEntity;
 import org.apache.ambari.server.state.Module;
 import org.apache.ambari.server.state.Mpack;
-import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.StackMetainfoXml;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
-
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-
 import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
-
-
+import com.google.gson.Gson;
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
 
 /**
  * Manages all mpack related behavior including parsing of stacks and providing access to
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/MpackDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/MpackDAO.java
index d0068c2..87e06cb 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/MpackDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/MpackDAO.java
@@ -17,19 +17,21 @@
  */
 package org.apache.ambari.server.orm.dao;
 
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.Singleton;
-import com.google.inject.persist.Transactional;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.TypedQuery;
+
 import org.apache.ambari.server.orm.RequiresSession;
 import org.apache.ambari.server.orm.entities.MpackEntity;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import java.util.List;
-
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+import com.google.inject.persist.Transactional;
 
 @Singleton
 public class MpackDAO {
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/MpackEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/MpackEntity.java
index d555f91..f63440d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/MpackEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/MpackEntity.java
@@ -17,20 +17,22 @@
  */
 package org.apache.ambari.server.orm.entities;
 
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.Objects;
 
-import javax.persistence.NamedQuery;
-import javax.persistence.NamedQueries;
-import javax.persistence.Table;
+import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.TableGenerator;
-import javax.persistence.Id;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
-import javax.persistence.Column;
-import java.util.Objects;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.persistence.TableGenerator;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 
 /**
  * The {@link MpackEntity} class represents the mpack objects in the cluster.
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
index ca3ff30..aea75dc 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
@@ -140,7 +140,7 @@ public class StackManager {
    *           if an exception occurs while processing the stacks
    */
   @AssistedInject
-  public StackManager(@Assisted("stackRoot") File stackRootDir,
+  public StackManager(@Assisted("stackRoot") File stackRoot,
       @Assisted("commonServicesRoot") @Nullable File commonServicesRoot,
       @Assisted("extensionRoot") @Nullable File extensionRoot,
       @Assisted OsFamily osFamily, @Assisted boolean validate,
@@ -150,7 +150,6 @@ public class StackManager {
 
     LOG.info("Initializing the stack manager...");
 
-    stackRoot = stackRootDir;
     if (validate) {
       validateStackDirectory(stackRoot);
       validateCommonServicesDirectory(commonServicesRoot);
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Module.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Module.java
index 800a9e0..9ceabf2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Module.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Module.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.state;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Objects;
 
@@ -51,6 +52,8 @@ public class Module {
   @SerializedName("components")
   private List<ModuleComponent> components;
 
+  private HashMap<String, ModuleComponent> componentHashMap;
+
   public Category getCategory() {
     return category;
   }
@@ -127,6 +130,15 @@ public class Module {
     this.components = components;
   }
 
+  /**
+   * Fetch a particular module component by the component name.
+   * @param moduleComponentName
+   * @return
+   */
+  public ModuleComponent getModuleComponent(String moduleComponentName) {
+    return componentHashMap.get(moduleComponentName);
+  }
+
 
   @Override
   public boolean equals(Object o) {
@@ -160,4 +172,17 @@ public class Module {
             ", components=" + components +
             '}';
   }
+
+  /**
+   * Loads the components into a map (component name, component) for ease of access.
+   */
+  public void populateComponentMap() {
+    componentHashMap = new HashMap<>();
+    for (ModuleComponent moduleComponent : getComponents()){
+      // set reverse lookup
+      moduleComponent.setModule(this);
+
+      componentHashMap.put(moduleComponent.getName(), moduleComponent);
+    }
+  }
 }
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ModuleComponent.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ModuleComponent.java
index 56c82af..dc90d3b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ModuleComponent.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ModuleComponent.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.state;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.gson.annotations.SerializedName;
 
 public class ModuleComponent {
@@ -32,6 +33,12 @@ public class ModuleComponent {
   @SerializedName("version")
   private String version;
 
+  /**
+   * The owning module for this module component.
+   */
+  @JsonIgnore
+  private transient Module module;
+
   public String getId() {
     return id;
   }
@@ -106,4 +113,8 @@ public class ModuleComponent {
             ", version='" + version + '\'' +
             '}';
   }
+
+  public void setModule(Module module) {
+    this.module = module;
+  }
 }
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
index 3e76338..766cafb 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
@@ -17,14 +17,16 @@
  */
 package org.apache.ambari.server.state;
 
-import com.google.gson.annotations.SerializedName;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.builder.EqualsBuilder;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Objects;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.builder.EqualsBuilder;
+
+import com.google.gson.annotations.SerializedName;
+
 /**
  * Represents the state of an mpack.
  */
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/MpackResourceDefinitionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/MpackResourceDefinitionTest.java
index 08166b8..08e6c68 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/MpackResourceDefinitionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/MpackResourceDefinitionTest.java
@@ -20,6 +20,7 @@
 package org.apache.ambari.server.api.resources;
 
 import static junit.framework.Assert.assertEquals;
+
 import org.junit.Test;
 
 /**
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
index 64287d7..ef202ce 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
@@ -18,27 +18,6 @@
 
 package org.apache.ambari.server.api.services;
 
-import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
-import org.apache.ambari.server.orm.dao.MetainfoDAO;
-import org.apache.ambari.server.state.AutoDeployInfo;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.ComponentInfo;
-import org.apache.ambari.server.state.CustomCommandDefinition;
-import org.apache.ambari.server.state.DependencyInfo;
-import org.apache.ambari.server.state.OperatingSystemInfo;
-import org.apache.ambari.server.state.PropertyDependencyInfo;
-import org.apache.ambari.server.state.PropertyInfo;
-import org.apache.ambari.server.state.RepositoryInfo;
-import org.apache.ambari.server.state.ServiceInfo;
-import org.apache.ambari.server.state.StackId;
-import org.apache.ambari.server.state.StackInfo;
-import org.apache.ambari.server.state.Packlet;
-import org.apache.ambari.server.state.Mpacks;
-import org.apache.ambari.server.controller.MpackRequest;
-import org.apache.ambari.server.controller.MpackResponse;
-import org.apache.ambari.server.mpack.MpackManager;
-import org.apache.ambari.server.mpack.MpackManagerFactory;
 import static org.easymock.EasyMock.createNiceMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
@@ -53,6 +32,7 @@ import java.io.File;
 import java.io.FileReader;
 import java.lang.reflect.Field;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -60,8 +40,6 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.UUID;
-import java.util.HashMap;
-import java.util.ArrayList;
 
 import javax.persistence.EntityManager;
 
@@ -69,18 +47,38 @@ import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.H2DatabaseCleaner;
 import org.apache.ambari.server.StackAccessException;
 import org.apache.ambari.server.configuration.Configuration;
+import org.apache.ambari.server.controller.MpackRequest;
+import org.apache.ambari.server.controller.MpackResponse;
 import org.apache.ambari.server.controller.internal.DeleteHostComponentStatusMetaData;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
 import org.apache.ambari.server.metadata.ActionMetadata;
 import org.apache.ambari.server.metadata.AmbariServiceAlertDefinitions;
+import org.apache.ambari.server.mpack.MpackManager;
+import org.apache.ambari.server.mpack.MpackManagerFactory;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
+import org.apache.ambari.server.orm.dao.MetainfoDAO;
 import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.stack.StackManager;
 import org.apache.ambari.server.stack.StackManagerFactory;
+import org.apache.ambari.server.state.AutoDeployInfo;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.ComponentInfo;
+import org.apache.ambari.server.state.CustomCommandDefinition;
+import org.apache.ambari.server.state.DependencyInfo;
+import org.apache.ambari.server.state.Mpack;
+import org.apache.ambari.server.state.OperatingSystemInfo;
+import org.apache.ambari.server.state.PropertyDependencyInfo;
+import org.apache.ambari.server.state.PropertyInfo;
+import org.apache.ambari.server.state.RepositoryInfo;
+import org.apache.ambari.server.state.ServiceInfo;
+import org.apache.ambari.server.state.StackId;
+import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.alert.AlertDefinition;
 import org.apache.ambari.server.state.alert.AlertDefinitionFactory;
 import org.apache.ambari.server.state.alert.MetricSource;
@@ -354,13 +352,12 @@ public class AmbariMetaInfoTest {
   public void testRegisterMpacks() throws Exception{
     MpackManager mm = metaInfo.getMpackManager();
     MpackRequest mpackRequest = createNiceMock(MpackRequest.class);
-    Mpacks mpacks = new Mpacks();
-    mpacks.setMpackId((long)100);
-    mpacks.setPacklets(new ArrayList<Packlet>());
+    Mpack mpacks = new Mpack();
+    mpacks.setMpackId("100");
     mpacks.setPrerequisites(new HashMap<String, String>());
     mpacks.setRegistryId(new Long(100));
     mpacks.setVersion("3.0");
-    mpacks.setMpacksUri("abc.tar.gz");
+    mpacks.setMpackUri("abc.tar.gz");
     mpacks.setDescription("Test mpacks");
     mpacks.setName("testMpack");
     MpackResponse mpackResponse = new MpackResponse(mpacks);
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/MpackServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/MpackServiceTest.java
deleted file mode 100644
index 06eb15d..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/MpackServiceTest.java
+++ /dev/null
@@ -1,94 +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.api.services;
-
-import org.apache.ambari.server.api.resources.ResourceInstance;
-import org.apache.ambari.server.api.services.parsers.RequestBodyParser;
-import org.apache.ambari.server.api.services.serializers.ResultSerializer;
-
-import org.apache.ambari.server.api.util.ApiVersion;
-import org.apache.ambari.server.controller.spi.Resource;
-
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.UriInfo;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Unit tests for MpackService
- */
-public class MpackServiceTest extends BaseServiceTest{
-  @Override
-  public List<BaseServiceTest.ServiceTestInvocation> getTestInvocations() throws Exception {
-    List<BaseServiceTest.ServiceTestInvocation> listInvocations = new ArrayList<>();
-
-    // getMpacks
-    MpacksService service = new TestMpackService("null");
-    Method m = service.getClass().getMethod("getMpacks", String.class, HttpHeaders.class, UriInfo.class);
-    Object[] args = new Object[]{null, getHttpHeaders(), getUriInfo()};
-    listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
-
-    // getMpack
-    service = new TestMpackService("1");
-    m = service.getClass().getMethod("getMpack", String.class, HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[]{null, getHttpHeaders(), getUriInfo(), ""};
-    listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
-
-    //createMpacks
-    service = new TestMpackService(null);
-    m = service.getClass().getMethod("createMpacks", String.class, HttpHeaders.class, UriInfo.class);
-    args = new Object[]{"body", getHttpHeaders(), getUriInfo()};
-    listInvocations.add(new ServiceTestInvocation(Request.Type.POST, service, m, args, "body"));
-
-    return listInvocations;
-  }
-  private class TestMpackService extends MpacksService {
-
-    private String m_mpackId;
-
-    private TestMpackService(String mpackId) {
-      super(ApiVersion.Default);
-      m_mpackId = mpackId;
-    }
-
-    @Override
-    protected ResourceInstance createResource(Resource.Type type, Map<Resource.Type, String> mapIds) {
-      return getTestResource();
-    }
-
-    @Override
-    RequestFactory getRequestFactory() {
-      return getTestRequestFactory();
-    }
-
-    @Override
-    protected RequestBodyParser getBodyParser() {
-      return getTestBodyParser();
-    }
-
-    @Override
-    protected ResultSerializer getResultSerializer() {
-      return getTestResultSerializer();
-    }
-  }
-
-
-}
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
index 1e06d18..ad7bdb3 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
@@ -24,29 +24,7 @@ import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JAVA_VERS
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.NOT_MANAGED_HDFS_PATH_LIST;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_NAME;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_VERSION;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.security.authorization.Users;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.ComponentInfo;
-import org.apache.ambari.server.state.Config;
-import org.apache.ambari.server.state.ConfigHelper;
-import org.apache.ambari.server.state.DesiredConfig;
-import org.apache.ambari.server.state.Host;
-import org.apache.ambari.server.state.MaintenanceState;
-import org.apache.ambari.server.state.PropertyInfo;
-import org.apache.ambari.server.state.RepositoryInfo;
-import org.apache.ambari.server.state.RepositoryVersionState;
-import org.apache.ambari.server.state.SecurityType;
-import org.apache.ambari.server.state.Service;
-import org.apache.ambari.server.state.ServiceComponent;
-import org.apache.ambari.server.state.ServiceComponentHost;
-import org.apache.ambari.server.state.ServiceInfo;
-import org.apache.ambari.server.state.ServiceOsSpecific;
-import org.apache.ambari.server.state.StackId;
-import org.apache.ambari.server.state.StackInfo;
-import org.apache.ambari.server.state.State;
-import org.apache.ambari.server.state.Mpack;
+
 import static org.easymock.EasyMock.anyBoolean;
 import static org.easymock.EasyMock.anyLong;
 import static org.easymock.EasyMock.anyObject;
@@ -98,10 +76,12 @@ import org.apache.ambari.server.agent.stomp.MetadataHolder;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.internal.RequestStageContainer;
+import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
 import org.apache.ambari.server.orm.entities.LdapSyncSpecEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
+import org.apache.ambari.server.security.authorization.Users;
 import org.apache.ambari.server.security.authorization.internal.InternalAuthenticationToken;
 import org.apache.ambari.server.security.encryption.CredentialStoreService;
 import org.apache.ambari.server.security.encryption.CredentialStoreType;
@@ -2457,7 +2437,7 @@ public class AmbariManagementControllerImplTest {
     mpack.setPrerequisites(new HashMap<String, String>());
     mpack.setRegistryId(new Long(100));
     mpack.setVersion("3.0");
-    mpack.setMpacksUri("abc.tar.gz");
+    mpack.setMpackUri("abc.tar.gz");
     mpack.setDescription("Test mpack");
     mpack.setName("testMpack");
     MpackResponse mpackResponse = new MpackResponse(mpack);
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackRequestTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackRequestTest.java
index 630fb15..9a518a4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackRequestTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackRequestTest.java
@@ -18,8 +18,8 @@
 package org.apache.ambari.server.controller;
 
 
-import org.junit.Test;
 import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Unit tests for MpackRequest
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackResponseTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackResponseTest.java
index 3ef98c6..4572f57 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackResponseTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/MpackResponseTest.java
@@ -25,9 +25,6 @@ import org.apache.ambari.server.state.Module;
 import org.apache.ambari.server.state.Mpack;
 import org.junit.Assert;
 import org.junit.Test;
-import org.junit.Assert;
-import java.util.ArrayList;
-import java.util.HashMap;
 
 /**
  * Unit tests for MpackResponse
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
index 0ed8fba..2c126d9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
@@ -838,7 +838,7 @@ public class AbstractResourceProviderTest {
   public static class TestResourceProvider extends AbstractResourceProvider {
 
     protected TestResourceProvider() {
-      super(propertyIds, keyPropertyIds);
+      super(propertyIds, AbstractResourceProviderTest.keyPropertyIds);
     }
 
     @Override
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
index 686b5cd..0238617 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
@@ -1159,7 +1159,7 @@ public class ClusterControllerImplTest {
 
   private static class TestStackVersionResourceProvider extends TestResourceProvider {
     private TestStackVersionResourceProvider() {
-      super(StackVersionResourceProvider.propertyIds, StackVersionResourceProvider.keyPropertyIds);
+      super(StackVersionResourceProvider.PROPERTY_IDS, StackVersionResourceProvider.KEY_PROPERTY_IDS);
     }
 
     @Override
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/MpackResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/MpackResourceProviderTest.java
index f453684..dbe2ca4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/MpackResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/MpackResourceProviderTest.java
@@ -17,8 +17,7 @@
  */
 package org.apache.ambari.server.controller.internal;
 
-import com.google.inject.util.Modules;
-import org.apache.ambari.server.state.Module;
+
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
@@ -31,44 +30,32 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-
-import com.google.inject.Injector;
-import com.google.inject.Binder;
-import com.google.inject.Guice;
+import javax.persistence.EntityManager;
 
 import org.apache.ambari.server.controller.AmbariManagementController;
+import org.apache.ambari.server.controller.MpackRequest;
 import org.apache.ambari.server.controller.MpackResponse;
+import org.apache.ambari.server.controller.spi.Predicate;
+import org.apache.ambari.server.controller.spi.Request;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.controller.spi.ResourceProvider;
-import org.apache.ambari.server.controller.spi.Request;
-import org.apache.ambari.server.controller.spi.Predicate;
-import org.apache.ambari.server.controller.MpackRequest;
-import org.apache.ambari.server.controller.utilities.*;
+import org.apache.ambari.server.controller.utilities.PredicateBuilder;
+import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.dao.MpackDAO;
 import org.apache.ambari.server.orm.entities.MpackEntity;
+import org.apache.ambari.server.state.Module;
 import org.apache.ambari.server.state.Mpack;
 
 import org.easymock.EasyMock;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.verify;
-import org.junit.Test;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Test;
 
 import com.google.inject.Binder;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
-
-
-import javax.persistence.EntityManager;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.List;
+import com.google.inject.util.Modules;
 
 public class MpackResourceProviderTest {
 
@@ -271,7 +258,7 @@ public class MpackResourceProviderTest {
     mpack.setPrerequisites(new HashMap<String, String>());
     mpack.setRegistryId(new Long(100));
     mpack.setVersion("3.0");
-    mpack.setMpacksUri("../../../../../../../resources/mpacks-v2/abc.tar.gz");
+    mpack.setMpackUri("../../../../../../../resources/mpacks-v2/abc.tar.gz");
     mpack.setDescription("Test mpack");
     mpack.setName("testMpack");
 
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/MpackDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/MpackDAOTest.java
index f589fe8..c56ff93 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/MpackDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/MpackDAOTest.java
@@ -17,19 +17,23 @@
  */
 package org.apache.ambari.server.orm.dao;
 
-import com.google.inject.Injector;
-import com.google.inject.Guice;
-import org.apache.ambari.server.orm.entities.MpackEntity;
-import org.junit.Before;
-import org.junit.Test;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
+import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.entities.MpackEntity;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
 import com.google.inject.persist.UnitOfWork;
 
-import java.util.List;
-import java.util.ArrayList;
 
 /**
  * Tests {@link MpackDAO}.
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/MpackEntityTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/MpackEntityTest.java
index 4677837..d2d2476 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/MpackEntityTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/MpackEntityTest.java
@@ -18,11 +18,11 @@
 
 package org.apache.ambari.server.orm.entities;
 
-import org.junit.Test;
-import org.junit.Assert;
-
 import java.util.Objects;
 
+import org.junit.Assert;
+import org.junit.Test;
+
 /**
  * Tests methods on {@link MpackEntity}.
  */
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/MpackTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/MpackTest.java
index e478968..2096dde 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/MpackTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/MpackTest.java
@@ -33,13 +33,13 @@ public class MpackTest {
     mpack.setResourceId((long)100);
     mpack.setDescription("desc");
     mpack.setVersion("3.0");
-    mpack.setMpacksUri("abc.tar.gz");
+    mpack.setMpackUri("abc.tar.gz");
     mpack.setRegistryId(new Long(100));
 
     Assert.assertEquals("name", mpack.getName());
     Assert.assertEquals(new Long(100), mpack.getResourceId());
     Assert.assertEquals("desc", mpack.getDescription());
-    Assert.assertEquals("abc.tar.gz", mpack.getMpacksUri());
+    Assert.assertEquals("abc.tar.gz", mpack.getMpackUri());
     Assert.assertEquals(new Long(100), mpack.getRegistryId());
 
   }
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/MpacksTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/MpacksTest.java
deleted file mode 100644
index 6d87a60..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/MpacksTest.java
+++ /dev/null
@@ -1,95 +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.state;
-
-import com.google.gson.Gson;
-import org.junit.Test;
-import org.junit.Assert;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public class MpacksTest {
-  @Test
-  public void testMpacks() {
-    Mpacks mpacks = new Mpacks();
-    mpacks.setName("name");
-    mpacks.setMpackId((long)100);
-    mpacks.setDescription("desc");
-    mpacks.setVersion("3.0");
-    mpacks.setMpacksUri("abc.tar.gz");
-    mpacks.setRegistryId(new Long(100));
-
-    Assert.assertEquals("name", mpacks.getName());
-    Assert.assertEquals(new Long(100), mpacks.getMpackId());
-    Assert.assertEquals("desc", mpacks.getDescription());
-    Assert.assertEquals("abc.tar.gz", mpacks.getMpacksUri());
-    Assert.assertEquals(new Long(100), mpacks.getRegistryId());
-
-  }
-
-  @Test
-  public void testMpacksUsingGson() {
-    String mpackJsonContents = "{\n" +
-            "  \"name\" : \"hdf-ambari-mpack\",\n" +
-            "  \"version\": \"3.0.0.0-111\",\n" +
-            "  \"description\" : \"HDF 3.0.0 Ambari Management Pack\",\n" +
-            "  \"prerequisites\": {\n" +
-            "    \"min-ambari-version\" : \"3.0.0.0\"\n" +
-            "  },\n" +
-            "  \"packlets\": [\n" +
-            "    {\n" +
-            "      \"type\" : \"service-packlet\",\n" +
-            "      \"name\" : \"NIFI\",\n" +
-            "      \"version\" : \"1.2.0.0-123\",\n" +
-            "      \"source_dir\": \"packlets/NIFI-1.2.0.0-123.tar.gz\"\n" +
-            "    },\n" +
-            "    {\n" +
-            "      \"type\" : \"service-packlet\",\n" +
-            "      \"name\" : \"STREAMLINE\",\n" +
-            "      \"version\" : \"1.0.0.0-100\",\n" +
-            "      \"source_dir\": \"packlets/STREAMLINE-1.0.0.0-100.tar.gz\"\n" +
-            "    }\n" +
-            "  ]\n" +
-            "}\n";
-    HashMap<String, String> expectedPrereq = new HashMap<>();
-    expectedPrereq.put("min-ambari-version","3.0.0.0");
-    ArrayList<Packlet> expectedPacklets = new ArrayList<>();
-    Packlet nifi = new Packlet();
-    nifi.setType("service-packlet");
-    nifi.setVersion("1.2.0.0-123");
-    nifi.setSourceDir("packlets/NIFI-1.2.0.0-123.tar.gz");
-    nifi.setName("NIFI");
-    Packlet streamline = new Packlet();
-    streamline.setName("STREAMLINE");
-    streamline.setType("service-packlet");
-    streamline.setSourceDir("packlets/STREAMLINE-1.0.0.0-100.tar.gz");
-    streamline.setVersion("1.0.0.0-100");
-    expectedPacklets.add(nifi);
-    expectedPacklets.add(streamline);
-
-    Gson gson = new Gson();
-    Mpacks mpacks = gson.fromJson(mpackJsonContents, Mpacks.class);
-    Assert.assertEquals("hdf-ambari-mpack",mpacks.getName());
-    Assert.assertEquals("3.0.0.0-111", mpacks.getVersion());
-    Assert.assertEquals("HDF 3.0.0 Ambari Management Pack",mpacks.getDescription());
-    Assert.assertEquals(expectedPrereq, mpacks.getPrerequisites());
-    Assert.assertEquals(expectedPacklets.toString(), mpacks.getPacklets().toString());
-  }
-
-}
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
index dc5999b..ed77855 100644
--- a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/AbstractResourceProviderTest.java
@@ -18,17 +18,12 @@
 
 package org.apache.ambari.msi;
 
+
 import org.apache.ambari.scom.TestClusterDefinitionProvider;
 import org.apache.ambari.scom.TestHostInfoProvider;
-import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.spi.ResourceProvider;
-import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.junit.Assert;
 import org.junit.Test;
 
-import java.util.HashSet;
-import java.util.Set;
-
 /**
  * AbstractResourceProvider tests.
  */