AMBARI-22353. Remove properties.json And Switch To Adding Properties to ResourceProviders Dynamically (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e77a31ab Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e77a31ab Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e77a31ab Branch: refs/heads/branch-3.0-perf Commit: e77a31ab0aa7edbabba29ba8e4d40becf122deef Parents: 24c64b4 Author: Lisnichenko Dmitro <[email protected]> Authored: Mon Dec 4 18:20:26 2017 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Mon Dec 4 18:21:17 2017 +0200 ---------------------------------------------------------------------- ...xternalServerAuthenticationProviderTest.java | 1 - .../controller/ResourceProviderFactory.java | 17 +- .../AbstractAuthorizedResourceProvider.java | 12 +- .../AbstractControllerResourceProvider.java | 83 ++-- .../internal/AbstractDRResourceProvider.java | 9 +- .../internal/ActionResourceProvider.java | 34 +- .../ActiveWidgetLayoutResourceProvider.java | 2 +- .../AlertDefinitionResourceProvider.java | 2 +- .../internal/AlertGroupResourceProvider.java | 2 +- .../internal/AlertHistoryResourceProvider.java | 2 +- .../internal/AlertNoticeResourceProvider.java | 2 +- .../internal/AlertResourceProvider.java | 2 +- .../internal/AlertTargetResourceProvider.java | 2 +- .../AmbariPrivilegeResourceProvider.java | 36 +- .../internal/BlueprintResourceProvider.java | 37 +- .../internal/ClientConfigResourceProvider.java | 31 +- ...usterKerberosDescriptorResourceProvider.java | 2 +- .../ClusterPrivilegeResourceProvider.java | 31 +- .../internal/ClusterResourceProvider.java | 23 +- .../ClusterStackVersionResourceProvider.java | 2 +- .../internal/ConfigGroupResourceProvider.java | 39 +- .../internal/ConfigurationResourceProvider.java | 2 +- .../internal/CredentialResourceProvider.java | 2 +- .../internal/DefaultProviderModule.java | 17 +- .../internal/ExtensionLinkResourceProvider.java | 33 +- .../internal/ExtensionResourceProvider.java | 27 +- .../ExtensionVersionResourceProvider.java | 32 +- .../internal/FeedResourceProvider.java | 41 +- .../GroupPrivilegeResourceProvider.java | 42 +- .../internal/GroupResourceProvider.java | 32 +- .../HostComponentProcessResourceProvider.java | 38 +- .../internal/HostComponentResourceProvider.java | 49 +- .../HostKerberosIdentityResourceProvider.java | 2 +- .../internal/HostResourceProvider.java | 51 +- .../HostStackVersionResourceProvider.java | 2 +- .../internal/InstanceResourceProvider.java | 35 +- .../internal/JobResourceProvider.java | 57 ++- .../KerberosDescriptorResourceProvider.java | 20 +- .../internal/LdapSyncEventResourceProvider.java | 47 +- .../internal/LoggingResourceProvider.java | 9 +- .../internal/MemberResourceProvider.java | 29 +- .../OperatingSystemResourceProvider.java | 2 +- .../internal/PermissionResourceProvider.java | 25 +- .../internal/PrivilegeResourceProvider.java | 2 +- .../QuickLinkArtifactResourceProvider.java | 2 +- .../internal/ReadOnlyResourceProvider.java | 7 - .../RecommendationResourceProvider.java | 65 ++- .../internal/RemoteClusterResourceProvider.java | 28 +- .../internal/RequestResourceProvider.java | 25 +- .../RequestScheduleResourceProvider.java | 55 ++- .../RoleAuthorizationResourceProvider.java | 2 +- ...eComponentConfigurationResourceProvider.java | 2 +- .../RootServiceComponentResourceProvider.java | 31 +- ...ootServiceHostComponentResourceProvider.java | 34 +- .../internal/RootServiceResourceProvider.java | 26 +- .../ServiceConfigVersionResourceProvider.java | 2 +- .../internal/SettingResourceProvider.java | 2 +- .../internal/StackAdvisorResourceProvider.java | 7 +- .../internal/StackArtifactResourceProvider.java | 2 +- ...ConfigurationDependencyResourceProvider.java | 40 +- .../StackConfigurationResourceProvider.java | 42 +- .../StackDependencyResourceProvider.java | 41 +- ...StackLevelConfigurationResourceProvider.java | 40 +- .../internal/StackResourceProvider.java | 28 +- .../StackServiceComponentResourceProvider.java | 52 +- .../internal/StackServiceResourceProvider.java | 45 +- .../internal/StackVersionResourceProvider.java | 39 +- .../internal/StageResourceProvider.java | 2 +- .../internal/TargetClusterResourceProvider.java | 31 +- .../internal/TaskAttemptResourceProvider.java | 53 +- .../internal/TaskResourceProvider.java | 27 +- .../internal/ThemeArtifactResourceProvider.java | 2 +- .../internal/UpgradeGroupResourceProvider.java | 2 +- .../internal/UpgradeItemResourceProvider.java | 2 +- .../internal/UpgradeResourceProvider.java | 2 +- .../UpgradeSummaryResourceProvider.java | 2 +- .../UserAuthorizationResourceProvider.java | 2 +- .../internal/UserPrivilegeResourceProvider.java | 40 +- .../internal/UserResourceProvider.java | 33 +- .../internal/ValidationResourceProvider.java | 86 +++- .../VersionDefinitionResourceProvider.java | 2 +- .../internal/ViewInstanceResourceProvider.java | 55 +-- .../ViewPermissionResourceProvider.java | 29 +- .../internal/ViewPrivilegeResourceProvider.java | 36 +- .../internal/ViewResourceProvider.java | 19 +- .../internal/ViewURLResourceProvider.java | 25 +- .../internal/ViewVersionResourceProvider.java | 45 +- .../internal/WidgetLayoutResourceProvider.java | 2 +- .../internal/WidgetResourceProvider.java | 2 +- .../internal/WorkflowResourceProvider.java | 54 +- .../controller/utilities/PropertyHelper.java | 6 +- .../system/impl/AmbariMetricSinkImpl.java | 2 - .../src/main/resources/key_properties.json | 161 ------ .../src/main/resources/properties.json | 487 ------------------- .../api/query/render/MinimalRendererTest.java | 6 + .../AbstractControllerResourceProviderTest.java | 10 +- .../AbstractDRResourceProviderTest.java | 2 - .../internal/AbstractResourceProviderTest.java | 26 +- .../internal/ActionResourceProviderTest.java | 4 - .../ActiveWidgetLayoutResourceProviderTest.java | 2 - .../internal/BlueprintResourceProviderTest.java | 21 +- .../ClientConfigResourceProviderTest.java | 10 - .../internal/ClusterControllerImplTest.java | 14 +- ...rKerberosDescriptorResourceProviderTest.java | 17 - .../internal/ClusterResourceProviderTest.java | 14 - ...ClusterStackVersionResourceProviderTest.java | 12 +- .../ConfigGroupResourceProviderTest.java | 2 - .../ConfigurationResourceProviderTest.java | 6 - .../CredentialResourceProviderTest.java | 23 - .../internal/ExtensionResourceProviderTest.java | 2 - .../internal/FeedResourceProviderTest.java | 29 +- .../internal/GroupResourceProviderTest.java | 8 - ...ostComponentProcessResourceProviderTest.java | 2 - .../HostComponentResourceProviderTest.java | 49 +- .../internal/HostResourceProviderTest.java | 53 +- .../HostStackVersionResourceProviderTest.java | 14 +- .../internal/InstanceResourceProviderTest.java | 29 +- .../internal/JMXHostProviderTest.java | 5 +- .../internal/JobResourceProviderTest.java | 37 +- .../KerberosDescriptorResourceProviderTest.java | 6 +- .../internal/MemberResourceProviderTest.java | 25 +- .../internal/RequestResourceProviderTest.java | 42 +- .../RequestScheduleResourceProviderTest.java | 2 - ...ootServiceComponentResourceProviderTest.java | 2 - ...erviceHostComponentResourceProviderTest.java | 2 - .../RootServiceResourceProviderTest.java | 2 - .../StackAdvisorResourceProviderTest.java | 12 +- .../StackArtifactResourceProviderTest.java | 2 - ...igurationDependencyResourceProviderTest.java | 2 - .../StackConfigurationResourceProviderTest.java | 4 - .../StackDependencyResourceProviderTest.java | 5 +- ...kLevelConfigurationResourceProviderTest.java | 4 - .../internal/StackResourceProviderTest.java | 2 - .../StackServiceResourceProviderTest.java | 4 - .../TargetClusterResourceProviderTest.java | 28 +- .../TaskAttemptResourceProviderTest.java | 2 +- .../internal/TaskResourceProviderTest.java | 22 +- .../internal/TestIvoryProviderModule.java | 6 +- .../internal/UpgradeResourceProviderTest.java | 4 +- .../internal/UserResourceProviderDBTest.java | 2 +- .../internal/UserResourceProviderTest.java | 2 - .../ValidationResourceProviderTest.java | 3 +- .../internal/WorkflowResourceProviderTest.java | 30 +- 143 files changed, 1480 insertions(+), 1925 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProviderTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProviderTest.java index b6464c2..7ec598d 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProviderTest.java +++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProviderTest.java @@ -18,7 +18,6 @@ */ package org.apache.ambari.logsearch.web.security; -import com.google.common.collect.Lists; import org.apache.ambari.logsearch.common.ExternalServerClient; import org.apache.ambari.logsearch.conf.AuthPropsConfig; import org.junit.Before; http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java index f6ca16b..5b4967d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ResourceProviderFactory.java @@ -19,28 +19,21 @@ package org.apache.ambari.server.controller; -import java.util.Map; -import java.util.Set; - import javax.inject.Named; import org.apache.ambari.server.controller.internal.AlertTargetResourceProvider; import org.apache.ambari.server.controller.internal.ClusterStackVersionResourceProvider; import org.apache.ambari.server.controller.internal.UpgradeResourceProvider; import org.apache.ambari.server.controller.internal.ViewInstanceResourceProvider; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.spi.Resource.Type; import org.apache.ambari.server.controller.spi.ResourceProvider; public interface ResourceProviderFactory { @Named("host") - ResourceProvider getHostResourceProvider(Set<String> propertyIds, Map<Type, String> keyPropertyIds, - AmbariManagementController managementController); + ResourceProvider getHostResourceProvider(AmbariManagementController managementController); @Named("hostComponent") - ResourceProvider getHostComponentResourceProvider(Set<String> propertyIds, Map<Type, String> keyPropertyIds, - AmbariManagementController managementController); + ResourceProvider getHostComponentResourceProvider(AmbariManagementController managementController); @Named("service") ResourceProvider getServiceResourceProvider(AmbariManagementController managementController); @@ -49,8 +42,7 @@ public interface ResourceProviderFactory { ResourceProvider getComponentResourceProvider(AmbariManagementController managementController); @Named("member") - ResourceProvider getMemberResourceProvider(Set<String> propertyIds, Map<Type, String> keyPropertyIds, - AmbariManagementController managementController); + ResourceProvider getMemberResourceProvider(AmbariManagementController managementController); @Named("hostKerberosIdentity") ResourceProvider getHostKerberosIdentityResourceProvider(AmbariManagementController managementController); @@ -62,8 +54,7 @@ public interface ResourceProviderFactory { ResourceProvider getRepositoryVersionResourceProvider(); @Named("kerberosDescriptor") - ResourceProvider getKerberosDescriptorResourceProvider(AmbariManagementController managementController, Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds); + ResourceProvider getKerberosDescriptorResourceProvider(AmbariManagementController managementController); @Named("upgrade") UpgradeResourceProvider getUpgradeResourceProvider(AmbariManagementController managementController); http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java index a24c639..8d92dd1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java @@ -82,16 +82,6 @@ public abstract class AbstractAuthorizedResourceProvider extends AbstractResourc private Set<RoleAuthorization> requiredDeleteAuthorizations = Collections.emptySet(); /** - * Constructor - * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids - */ - protected AbstractAuthorizedResourceProvider(Set<String> propertyIds, Map<Resource.Type, String> keyPropertyIds) { - super(propertyIds, keyPropertyIds); - } - - /** * Create a new resource provider. This constructor will initialize the * specified {@link Resource.Type} with the provided keys. It should be used * in cases where the provider declares its own keys instead of reading them @@ -106,7 +96,7 @@ public abstract class AbstractAuthorizedResourceProvider extends AbstractResourc */ AbstractAuthorizedResourceProvider(Resource.Type type, Set<String> propertyIds, Map<Resource.Type, String> keyPropertyIds) { - this(propertyIds, keyPropertyIds); + super(propertyIds, keyPropertyIds); PropertyHelper.setPropertyIds(type, propertyIds); PropertyHelper.setKeyPropertyIds(type, keyPropertyIds); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java index cc2548c..f5e61ef 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java @@ -27,7 +27,6 @@ import org.apache.ambari.server.controller.ResourceProviderFactory; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.spi.ResourceProvider; import org.apache.ambari.server.controller.utilities.ClusterControllerHelper; -import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.state.Cluster; /** @@ -45,20 +44,6 @@ public abstract class AbstractControllerResourceProvider extends AbstractAuthori // ----- Constructors ------------------------------------------------------ /** - * Create a new resource provider for the given management controller. - * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids - * @param managementController the management controller - */ - protected AbstractControllerResourceProvider(Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds); - this.managementController = managementController; - } - - /** * Create a new resource provider for the given management controller. This * constructor will initialize the specified {@link Resource.Type} with the * provided keys. It should be used in cases where the provider declares its @@ -75,9 +60,8 @@ public abstract class AbstractControllerResourceProvider extends AbstractAuthori */ AbstractControllerResourceProvider(Resource.Type type, Set<String> propertyIds, Map<Resource.Type, String> keyPropertyIds, AmbariManagementController managementController) { - this(propertyIds, keyPropertyIds, managementController); - PropertyHelper.setPropertyIds(type, propertyIds); - PropertyHelper.setKeyPropertyIds(type, keyPropertyIds); + super(type, propertyIds, keyPropertyIds); + this.managementController = managementController; } public static void init(ResourceProviderFactory factory) { @@ -139,14 +123,11 @@ public abstract class AbstractControllerResourceProvider extends AbstractAuthori * Factory method for obtaining a resource provider based on a given type and management controller. * * @param type the resource type - * @param propertyIds the property ids * @param managementController the management controller * * @return a new resource provider */ public static ResourceProvider getResourceProvider(Resource.Type type, - Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, AmbariManagementController managementController) { switch (type.getInternalType()) { @@ -157,75 +138,75 @@ public abstract class AbstractControllerResourceProvider extends AbstractAuthori case Component: return resourceProviderFactory.getComponentResourceProvider(managementController); case Host: - return resourceProviderFactory.getHostResourceProvider(propertyIds, keyPropertyIds, managementController); + return resourceProviderFactory.getHostResourceProvider(managementController); case HostComponent: - return resourceProviderFactory.getHostComponentResourceProvider(propertyIds, keyPropertyIds, managementController); + return resourceProviderFactory.getHostComponentResourceProvider(managementController); case Configuration: return new ConfigurationResourceProvider(managementController); case ServiceConfigVersion: return new ServiceConfigVersionResourceProvider(managementController); case Action: - return new ActionResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ActionResourceProvider(managementController); case Request: - return new RequestResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RequestResourceProvider(managementController); case Task: - return new TaskResourceProvider(propertyIds, keyPropertyIds, managementController); + return new TaskResourceProvider(managementController); case User: - return new UserResourceProvider(propertyIds, keyPropertyIds, managementController); + return new UserResourceProvider(managementController); case Group: - return new GroupResourceProvider(propertyIds, keyPropertyIds, managementController); + return new GroupResourceProvider(managementController); case Member: - return resourceProviderFactory.getMemberResourceProvider(propertyIds, keyPropertyIds, managementController); + return resourceProviderFactory.getMemberResourceProvider(managementController); case Upgrade: return resourceProviderFactory.getUpgradeResourceProvider(managementController); case Stack: - return new StackResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackResourceProvider(managementController); case StackVersion: - return new StackVersionResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackVersionResourceProvider(managementController); case ClusterStackVersion: return resourceProviderFactory.getClusterStackVersionResourceProvider(managementController); case HostStackVersion: return new HostStackVersionResourceProvider(managementController); case StackService: - return new StackServiceResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackServiceResourceProvider(managementController); case StackServiceComponent: - return new StackServiceComponentResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackServiceComponentResourceProvider(managementController); case StackConfiguration: - return new StackConfigurationResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackConfigurationResourceProvider(managementController); case StackConfigurationDependency: - return new StackConfigurationDependencyResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackConfigurationDependencyResourceProvider(managementController); case StackLevelConfiguration: - return new StackLevelConfigurationResourceProvider(propertyIds, keyPropertyIds, managementController); + return new StackLevelConfigurationResourceProvider(managementController); case ExtensionLink: - return new ExtensionLinkResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ExtensionLinkResourceProvider(managementController); case Extension: - return new ExtensionResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ExtensionResourceProvider(managementController); case ExtensionVersion: - return new ExtensionVersionResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ExtensionVersionResourceProvider(managementController); case RootService: - return new RootServiceResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RootServiceResourceProvider(managementController); case RootServiceComponent: - return new RootServiceComponentResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RootServiceComponentResourceProvider(managementController); case RootServiceComponentConfiguration: return resourceProviderFactory.getRootServiceHostComponentConfigurationResourceProvider(); case RootServiceHostComponent: - return new RootServiceHostComponentResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RootServiceHostComponentResourceProvider(managementController); case ConfigGroup: - return new ConfigGroupResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ConfigGroupResourceProvider(managementController); case RequestSchedule: - return new RequestScheduleResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RequestScheduleResourceProvider(managementController); case HostComponentProcess: - return new HostComponentProcessResourceProvider(propertyIds, keyPropertyIds, managementController); + return new HostComponentProcessResourceProvider(managementController); case Blueprint: - return new BlueprintResourceProvider(propertyIds, keyPropertyIds, managementController); + return new BlueprintResourceProvider(managementController); case KerberosDescriptor: - return resourceProviderFactory.getKerberosDescriptorResourceProvider(managementController, propertyIds, keyPropertyIds); + return resourceProviderFactory.getKerberosDescriptorResourceProvider(managementController); case Recommendation: - return new RecommendationResourceProvider(propertyIds, keyPropertyIds, managementController); + return new RecommendationResourceProvider(managementController); case Validation: - return new ValidationResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ValidationResourceProvider(managementController); case ClientConfig: - return new ClientConfigResourceProvider(propertyIds, keyPropertyIds, managementController); + return new ClientConfigResourceProvider(managementController); case RepositoryVersion: return resourceProviderFactory.getRepositoryVersionResourceProvider(); case CompatibleRepositoryVersion: @@ -255,7 +236,7 @@ public abstract class AbstractControllerResourceProvider extends AbstractAuthori case ClusterKerberosDescriptor: return new ClusterKerberosDescriptorResourceProvider(managementController); case LoggingQuery: - return new LoggingResourceProvider(propertyIds, keyPropertyIds, managementController); + return new LoggingResourceProvider(managementController); case AlertTarget: return resourceProviderFactory.getAlertTargetResourceProvider(); case ViewInstance: http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractDRResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractDRResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractDRResourceProvider.java index 953a2a7..74fff00 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractDRResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractDRResourceProvider.java @@ -68,22 +68,19 @@ public abstract class AbstractDRResourceProvider extends AbstractResourceProvide * Factory method for obtaining a resource provider based on a given Ivory service instance. * * @param type the resource type - * @param propertyIds the property ids * @param service the Ivory service * * @return a new resource provider */ public static ResourceProvider getResourceProvider(Resource.Type type, - Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, IvoryService service) { switch (type.getInternalType()) { case DRFeed: - return new FeedResourceProvider(service, propertyIds, keyPropertyIds); + return new FeedResourceProvider(service); case DRTargetCluster: - return new TargetClusterResourceProvider(service, propertyIds, keyPropertyIds); + return new TargetClusterResourceProvider(service); case DRInstance: - return new InstanceResourceProvider(service, propertyIds, keyPropertyIds); + return new InstanceResourceProvider(service); default: throw new IllegalArgumentException("Unknown type " + type); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActionResourceProvider.java index 290931555..1adc55a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActionResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -46,6 +45,9 @@ import org.apache.ambari.server.customactions.ActionDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + public class ActionResourceProvider extends AbstractControllerResourceProvider { private static final Logger LOG = LoggerFactory.getLogger(ActionResourceProvider.class); @@ -66,13 +68,29 @@ public class ActionResourceProvider extends AbstractControllerResourceProvider { .getPropertyId("Actions", "target_type"); public static final String DEFAULT_TIMEOUT_PROPERTY_ID = PropertyHelper .getPropertyId("Actions", "default_timeout"); - private static Set<String> pkPropertyIds = new HashSet<>( - Arrays.asList(new String[]{ACTION_NAME_PROPERTY_ID})); - public ActionResourceProvider(Set<String> propertyIds, - Map<Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + /** + * The key property ids for a Action resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Type.Action, ACTION_NAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a Action resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + ACTION_NAME_PROPERTY_ID, + ACTION_TYPE_PROPERTY_ID, + INPUTS_PROPERTY_ID, + TARGET_SERVICE_PROPERTY_ID, + TARGET_COMPONENT_PROPERTY_ID, + DESCRIPTION_PROPERTY_ID, + TARGET_HOST_PROPERTY_ID, + DEFAULT_TIMEOUT_PROPERTY_ID); + + public ActionResourceProvider(AmbariManagementController managementController) { + super(Type.Action, propertyIds, keyPropertyIds, managementController); } @Override @@ -168,7 +186,7 @@ public class ActionResourceProvider extends AbstractControllerResourceProvider { @Override public Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } private ActionManager getActionManager() { http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProvider.java index 389f0b2..2b1c671 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProvider.java @@ -126,7 +126,7 @@ public class ActiveWidgetLayoutResourceProvider extends AbstractControllerResour * */ public ActiveWidgetLayoutResourceProvider(AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + super(Type.ActiveWidgetLayout, propertyIds, keyPropertyIds, managementController); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java index 9579dca..c98cc9d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java @@ -172,7 +172,7 @@ public class AlertDefinitionResourceProvider extends AbstractControllerResourceP * @param controller */ AlertDefinitionResourceProvider(AmbariManagementController controller) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, controller); + super(Resource.Type.AlertDefinition, PROPERTY_IDS, KEY_PROPERTY_IDS, controller); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertGroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertGroupResourceProvider.java index 0898bc3..e707496 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertGroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertGroupResourceProvider.java @@ -118,7 +118,7 @@ public class AlertGroupResourceProvider extends * @param controller */ AlertGroupResourceProvider(AmbariManagementController controller) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, controller); + super(Resource.Type.AlertGroup, PROPERTY_IDS, KEY_PROPERTY_IDS, controller); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java index 8d716ea..759b5a8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java @@ -118,7 +118,7 @@ public class AlertHistoryResourceProvider extends ReadOnlyResourceProvider imple * Constructor. */ AlertHistoryResourceProvider(AmbariManagementController controller) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, controller); + super(Resource.Type.AlertHistory, PROPERTY_IDS, KEY_PROPERTY_IDS, controller); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java index 8ffd596..dae1f1e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java @@ -105,7 +105,7 @@ public class AlertNoticeResourceProvider extends AbstractControllerResourceProvi * Constructor. */ AlertNoticeResourceProvider(AmbariManagementController managementController) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); + super(Resource.Type.AlertNotice, PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertResourceProvider.java index 4ab78b7..0f0c7b2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertResourceProvider.java @@ -145,7 +145,7 @@ public class AlertResourceProvider extends ReadOnlyResourceProvider implements * @param controller */ AlertResourceProvider(AmbariManagementController controller) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, controller); + super(Resource.Type.Alert, PROPERTY_IDS, KEY_PROPERTY_IDS, controller); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertTargetResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertTargetResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertTargetResourceProvider.java index c1e9eb4..4f1690c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertTargetResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertTargetResourceProvider.java @@ -130,7 +130,7 @@ public class AlertTargetResourceProvider extends */ @Inject AlertTargetResourceProvider() { - super(PROPERTY_IDS, KEY_PROPERTY_IDS); + super(Resource.Type.AlertTarget, PROPERTY_IDS, KEY_PROPERTY_IDS); EnumSet<RoleAuthorization> requiredAuthorizations = EnumSet.of(RoleAuthorization.CLUSTER_MANAGE_ALERT_NOTIFICATIONS); setRequiredCreateAuthorizations(requiredAuthorizations); http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariPrivilegeResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariPrivilegeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariPrivilegeResourceProvider.java index 0ffceca..49b0d91 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariPrivilegeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariPrivilegeResourceProvider.java @@ -24,7 +24,6 @@ import static org.apache.ambari.server.controller.internal.ViewPrivilegeResource import java.util.EnumSet; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -45,6 +44,9 @@ import org.apache.ambari.server.security.authorization.ResourceType; import org.apache.ambari.server.security.authorization.RoleAuthorization; import org.apache.ambari.server.view.ViewRegistry; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * Resource provider for Ambari privileges. */ @@ -60,28 +62,24 @@ public class AmbariPrivilegeResourceProvider extends PrivilegeResourceProvider<O /** * The property ids for an Ambari privilege resource. */ - private static Set<String> propertyIds = new HashSet<>(); - static { - propertyIds.add(PRIVILEGE_ID_PROPERTY_ID); - propertyIds.add(PERMISSION_NAME_PROPERTY_ID); - propertyIds.add(PERMISSION_LABEL_PROPERTY_ID); - propertyIds.add(PRINCIPAL_NAME_PROPERTY_ID); - propertyIds.add(PRINCIPAL_TYPE_PROPERTY_ID); - propertyIds.add(PRIVILEGE_VIEW_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_VIEW_VERSION_PROPERTY_ID); - propertyIds.add(PRIVILEGE_INSTANCE_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_CLUSTER_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_TYPE_PROPERTY_ID); - - } + private static Set<String> propertyIds = Sets.newHashSet( + PRIVILEGE_ID_PROPERTY_ID, + PERMISSION_NAME_PROPERTY_ID, + PERMISSION_LABEL_PROPERTY_ID, + PRINCIPAL_NAME_PROPERTY_ID, + PRINCIPAL_TYPE_PROPERTY_ID, + PRIVILEGE_VIEW_NAME_PROPERTY_ID, + PRIVILEGE_VIEW_VERSION_PROPERTY_ID, + PRIVILEGE_INSTANCE_NAME_PROPERTY_ID, + PRIVILEGE_CLUSTER_NAME_PROPERTY_ID, + PRIVILEGE_TYPE_PROPERTY_ID); /** * The key property ids for a privilege resource. */ - private static Map<Resource.Type, String> keyPropertyIds = new HashMap<>(); - static { - keyPropertyIds.put(Resource.Type.AmbariPrivilege, PRIVILEGE_ID_PROPERTY_ID); - } + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.AmbariPrivilege, PRIVILEGE_ID_PROPERTY_ID) + .build(); // ----- Constructors ------------------------------------------------------ http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java index 8f4d62e..c665aec 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.controller.internal; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -66,6 +65,8 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Preconditions; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import com.google.gson.Gson; @@ -119,10 +120,25 @@ public class BlueprintResourceProvider extends AbstractControllerResourceProvide "Configuration elements must be Maps"; public static final String CONFIGURATION_MAP_SIZE_CHECK_ERROR_MESSAGE = "Configuration Maps must hold a single configuration type each"; - // Primary Key Fields - private static Set<String> pkPropertyIds = - new HashSet<>(Arrays.asList(new String[]{ - BLUEPRINT_NAME_PROPERTY_ID})); + + /** + * The key property ids for a Blueprint resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Blueprint, BLUEPRINT_NAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a Blueprint resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + BLUEPRINT_NAME_PROPERTY_ID, + STACK_NAME_PROPERTY_ID, + STACK_VERSION_PROPERTY_ID, + BLUEPRINT_SECURITY_PROPERTY_ID, + HOST_GROUP_PROPERTY_ID, + CONFIGURATION_PROPERTY_ID, + SETTING_PROPERTY_ID); /** * Used to create Blueprint instances @@ -149,15 +165,10 @@ public class BlueprintResourceProvider extends AbstractControllerResourceProvide /** * Create a new resource provider for the given management controller. * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids * @param controller management controller */ - BlueprintResourceProvider(Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, - AmbariManagementController controller) { - - super(propertyIds, keyPropertyIds, controller); + BlueprintResourceProvider(AmbariManagementController controller) { + super(Resource.Type.Blueprint, propertyIds, keyPropertyIds, controller); } /** @@ -180,7 +191,7 @@ public class BlueprintResourceProvider extends AbstractControllerResourceProvide @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java index f0ede5d..75f47ca 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java @@ -103,6 +103,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import com.google.gson.Gson; import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.AssistedInject; @@ -123,11 +125,24 @@ public class ClientConfigResourceProvider extends AbstractControllerResourceProv private final Gson gson; - private static Set<String> pkPropertyIds = - new HashSet<>(Arrays.asList(new String[]{ + /** + * The key property ids for a ClientConfig resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Cluster, COMPONENT_CLUSTER_NAME_PROPERTY_ID) + .put(Resource.Type.Service, COMPONENT_SERVICE_NAME_PROPERTY_ID) + .put(Resource.Type.Component, COMPONENT_COMPONENT_NAME_PROPERTY_ID) + .put(Resource.Type.Host, HOST_COMPONENT_HOST_NAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a ClientConfig resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( COMPONENT_CLUSTER_NAME_PROPERTY_ID, COMPONENT_SERVICE_NAME_PROPERTY_ID, - COMPONENT_COMPONENT_NAME_PROPERTY_ID})); + COMPONENT_COMPONENT_NAME_PROPERTY_ID, + HOST_COMPONENT_HOST_NAME_PROPERTY_ID); private MaintenanceStateHelper maintenanceStateHelper; private static final Logger LOG = LoggerFactory.getLogger(ClientConfigResourceProvider.class); @@ -137,15 +152,11 @@ public class ClientConfigResourceProvider extends AbstractControllerResourceProv /** * Create a new resource provider for the given management controller. * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids * @param managementController the management controller */ @AssistedInject - ClientConfigResourceProvider(@Assisted Set<String> propertyIds, - @Assisted Map<Resource.Type, String> keyPropertyIds, - @Assisted AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + ClientConfigResourceProvider(@Assisted AmbariManagementController managementController) { + super(Resource.Type.ClientConfig, propertyIds, keyPropertyIds, managementController); gson = new Gson(); } @@ -890,7 +901,7 @@ public class ClientConfigResourceProvider extends AbstractControllerResourceProv @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java index 2678d55..9dad423 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java @@ -111,7 +111,7 @@ public class ClusterKerberosDescriptorResourceProvider extends ReadOnlyResourceP * Create a new resource provider. */ public ClusterKerberosDescriptorResourceProvider(AmbariManagementController managementController) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); + super(Type.ClusterKerberosDescriptor, PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterPrivilegeResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterPrivilegeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterPrivilegeResourceProvider.java index 60cf783..a21de15 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterPrivilegeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterPrivilegeResourceProvider.java @@ -20,7 +20,6 @@ package org.apache.ambari.server.controller.internal; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -38,6 +37,9 @@ import org.apache.ambari.server.orm.entities.ResourceEntity; import org.apache.ambari.server.orm.entities.UserEntity; import org.apache.ambari.server.security.authorization.RoleAuthorization; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * Resource provider for cluster privileges. */ @@ -56,25 +58,22 @@ public class ClusterPrivilegeResourceProvider extends PrivilegeResourceProvider< /** * The property ids for a privilege resource. */ - private static Set<String> propertyIds = new HashSet<>(); - static { - propertyIds.add(PRIVILEGE_CLUSTER_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_ID_PROPERTY_ID); - propertyIds.add(PERMISSION_NAME_PROPERTY_ID); - propertyIds.add(PERMISSION_NAME_PROPERTY_ID); - propertyIds.add(PERMISSION_LABEL_PROPERTY_ID); - propertyIds.add(PRINCIPAL_NAME_PROPERTY_ID); - propertyIds.add(PRINCIPAL_TYPE_PROPERTY_ID); - } + private static Set<String> propertyIds = Sets.newHashSet( + PRIVILEGE_CLUSTER_NAME_PROPERTY_ID, + PRIVILEGE_ID_PROPERTY_ID, + PERMISSION_NAME_PROPERTY_ID, + PERMISSION_NAME_PROPERTY_ID, + PERMISSION_LABEL_PROPERTY_ID, + PRINCIPAL_NAME_PROPERTY_ID, + PRINCIPAL_TYPE_PROPERTY_ID); /** * The key property ids for a privilege resource. */ - private static Map<Resource.Type, String> keyPropertyIds = new HashMap<>(); - static { - keyPropertyIds.put(Resource.Type.Cluster, PRIVILEGE_CLUSTER_NAME_PROPERTY_ID); - keyPropertyIds.put(Resource.Type.ClusterPrivilege, PRIVILEGE_ID_PROPERTY_ID); - } + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Cluster, PRIVILEGE_CLUSTER_NAME_PROPERTY_ID) + .put(Resource.Type.ClusterPrivilege, PRIVILEGE_ID_PROPERTY_ID) + .build(); // ----- Constructors ------------------------------------------------------ http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java index b9b3b56..16f04e4 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java @@ -17,7 +17,6 @@ */ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -60,6 +59,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.Authentication; +import com.google.common.collect.ImmutableMap; import com.google.gson.Gson; @@ -96,6 +96,7 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider public static final String CLUSTER_TOTAL_HOSTS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + TOTAL_HOSTS; public static final String CLUSTER_HEALTH_REPORT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + HEALTH_REPORT; public static final String CLUSTER_CREDENTIAL_STORE_PROPERTIES_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + CREDENTIAL_STORE_PROPERTIES; + public static final String CLUSTER_STATE_PROPERTY_ID = PropertyHelper.getPropertyId("Clusters","state"); static final String BLUEPRINT = "blueprint"; private static final String SECURITY = "security"; @@ -129,23 +130,16 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider private static SecurityConfigurationFactory securityConfigurationFactory; /** - * The cluster primary key properties. - */ - private static Set<String> pkPropertyIds = - new HashSet<>(Arrays.asList(new String[]{CLUSTER_ID_PROPERTY_ID})); - - /** * The key property ids for a cluster resource. */ - private static Map<Resource.Type, String> keyPropertyIds = new HashMap<>(); - static { - keyPropertyIds.put(Resource.Type.Cluster, CLUSTER_NAME_PROPERTY_ID); - } + protected static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Cluster, CLUSTER_NAME_PROPERTY_ID) + .build(); /** * The property ids for a cluster resource. */ - private static Set<String> propertyIds = new HashSet<>(); + protected static Set<String> propertyIds = new HashSet<>(); /** * Used to serialize to/from json. @@ -169,6 +163,7 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider propertyIds.add(SECURITY); propertyIds.add(CREDENTIALS); propertyIds.add(QUICKLINKS_PROFILE); + propertyIds.add(CLUSTER_STATE_PROPERTY_ID); } @@ -180,7 +175,7 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider * @param managementController the management controller */ ClusterResourceProvider(AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + super(Resource.Type.Cluster, propertyIds, keyPropertyIds, managementController); setRequiredCreateAuthorizations(EnumSet.of(RoleAuthorization.AMBARI_ADD_DELETE_CLUSTERS)); setRequiredDeleteAuthorizations(EnumSet.of(RoleAuthorization.AMBARI_ADD_DELETE_CLUSTERS)); @@ -192,7 +187,7 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(Collections.singletonList(CLUSTER_ID_PROPERTY_ID)); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java index 1c36c96..fa13116 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java @@ -219,7 +219,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou @Inject public ClusterStackVersionResourceProvider( AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + super(Type.ClusterStackVersion, propertyIds, keyPropertyIds, managementController); setRequiredCreateAuthorizations(EnumSet.of(RoleAuthorization.AMBARI_MANAGE_STACK_VERSIONS, RoleAuthorization.CLUSTER_UPGRADE_DOWNGRADE_STACK)); setRequiredDeleteAuthorizations(EnumSet.of(RoleAuthorization.AMBARI_MANAGE_STACK_VERSIONS, RoleAuthorization.CLUSTER_UPGRADE_DOWNGRADE_STACK)); http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java index 737bfa4..33430a5 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java @@ -18,7 +18,6 @@ package org.apache.ambari.server.controller.internal; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; @@ -67,6 +66,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import com.google.inject.Inject; @StaticallyInject @@ -102,8 +103,30 @@ public class ConfigGroupResourceProvider extends public static final String CONFIGGROUP_VERSION_TAGS_PROPERTY_ID = PropertyHelper.getPropertyId("ConfigGroup", "version_tags"); - private static Set<String> pkPropertyIds = new HashSet<>(Arrays - .asList(new String[]{CONFIGGROUP_ID_PROPERTY_ID})); + /** + * The key property ids for a ConfigGroup resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Cluster, CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID) + .put(Resource.Type.ConfigGroup, CONFIGGROUP_ID_PROPERTY_ID) + .build(); + + /** + * The property ids for a ConfigGroup resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID, + CONFIGGROUP_ID_PROPERTY_ID, + CONFIGGROUP_NAME_PROPERTY_ID, + CONFIGGROUP_TAG_PROPERTY_ID, + CONFIGGROUP_SERVICENAME_PROPERTY_ID, + CONFIGGROUP_DESC_PROPERTY_ID, + CONFIGGROUP_SCV_NOTE_ID, + CONFIGGROUP_HOSTNAME_PROPERTY_ID, + CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID, + CONFIGGROUP_HOSTS_PROPERTY_ID, + CONFIGGROUP_CONFIGS_PROPERTY_ID, + CONFIGGROUP_VERSION_TAGS_PROPERTY_ID); @Inject private static HostDAO hostDAO; @@ -117,14 +140,10 @@ public class ConfigGroupResourceProvider extends /** * Create a new resource provider for the given management controller. * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids * @param managementController the management controller */ - protected ConfigGroupResourceProvider(Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + protected ConfigGroupResourceProvider(AmbariManagementController managementController) { + super(Resource.Type.ConfigGroup, propertyIds, keyPropertyIds, managementController); EnumSet<RoleAuthorization> manageGroupsAuthSet = EnumSet.of(RoleAuthorization.SERVICE_MANAGE_CONFIG_GROUPS, RoleAuthorization.CLUSTER_MANAGE_CONFIG_GROUPS); @@ -141,7 +160,7 @@ public class ConfigGroupResourceProvider extends @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigurationResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigurationResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigurationResourceProvider.java index 0f26085..1ac7563 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigurationResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigurationResourceProvider.java @@ -103,7 +103,7 @@ public class ConfigurationResourceProvider extends * @param managementController the associated management controller */ ConfigurationResourceProvider(AmbariManagementController managementController) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); + super(Resource.Type.Configuration, PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); // creating configs requires authorizations based on the type of changes being performed, therefore // checks need to be performed inline. http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java index ebc7645..9e6fe3d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java @@ -105,7 +105,7 @@ public class CredentialResourceProvider extends AbstractControllerResourceProvid */ @AssistedInject public CredentialResourceProvider(@Assisted AmbariManagementController managementController) { - super(PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); + super(Type.Credential, PROPERTY_IDS, KEY_PROPERTY_IDS, managementController); EnumSet<RoleAuthorization> authorizations = EnumSet.of( RoleAuthorization.CLUSTER_MANAGE_CREDENTIALS, http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java index c3758b3..9f92cdd 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java @@ -18,12 +18,8 @@ package org.apache.ambari.server.controller.internal; -import java.util.Map; -import java.util.Set; - 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.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,16 +46,14 @@ public class DefaultProviderModule extends AbstractProviderModule { protected ResourceProvider createResourceProvider(Resource.Type type) { LOGGER.debug("Creating resource provider for the type: {}", type); - Set<String> propertyIds = PropertyHelper.getPropertyIds(type); - Map<Resource.Type, String> keyPropertyIds = PropertyHelper.getKeyPropertyIds(type); switch (type.getInternalType()) { case Workflow: - return new WorkflowResourceProvider(propertyIds, keyPropertyIds); + return new WorkflowResourceProvider(); case Job: - return new JobResourceProvider(propertyIds, keyPropertyIds); + return new JobResourceProvider(); case TaskAttempt: - return new TaskAttemptResourceProvider(propertyIds, keyPropertyIds); + return new TaskAttemptResourceProvider(); case View: return new ViewResourceProvider(); case ViewVersion: @@ -67,7 +61,7 @@ public class DefaultProviderModule extends AbstractProviderModule { case ViewURL: return new ViewURLResourceProvider(); case StackServiceComponentDependency: - return new StackDependencyResourceProvider(propertyIds, keyPropertyIds); + return new StackDependencyResourceProvider(); case Permission: return new PermissionResourceProvider(); case AmbariPrivilege: @@ -118,8 +112,7 @@ public class DefaultProviderModule extends AbstractProviderModule { return new RemoteClusterResourceProvider(); default: LOGGER.debug("Delegating creation of resource provider for: {} to the AbstractControllerResourceProvider", type.getInternalType()); - return AbstractControllerResourceProvider.getResourceProvider(type, propertyIds, - keyPropertyIds, managementController); + return AbstractControllerResourceProvider.getResourceProvider(type, managementController); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionLinkResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionLinkResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionLinkResourceProvider.java index db904bf..1a4ffc2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionLinkResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionLinkResourceProvider.java @@ -18,7 +18,6 @@ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Map; @@ -43,6 +42,8 @@ import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.orm.dao.ExtensionLinkDAO; import org.apache.ambari.server.orm.entities.ExtensionLinkEntity; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import com.google.inject.Inject; /** @@ -68,16 +69,32 @@ public class ExtensionLinkResourceProvider extends AbstractControllerResourcePro public static final String EXTENSION_VERSION_PROPERTY_ID = PropertyHelper .getPropertyId("ExtensionLink", "extension_version"); - private static Set<String> pkPropertyIds = new HashSet<>( - Arrays.asList(new String[]{LINK_ID_PROPERTY_ID, STACK_NAME_PROPERTY_ID, STACK_VERSION_PROPERTY_ID, EXTENSION_NAME_PROPERTY_ID, EXTENSION_VERSION_PROPERTY_ID})); + /** + * The key property ids for a ExtensionLink resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Type.ExtensionLink, LINK_ID_PROPERTY_ID) + .put(Type.Stack, STACK_NAME_PROPERTY_ID) + .put(Type.StackVersion, STACK_VERSION_PROPERTY_ID) + .put(Type.Extension, EXTENSION_NAME_PROPERTY_ID) + .put(Type.ExtensionVersion, EXTENSION_VERSION_PROPERTY_ID) + .build(); + + /** + * The property ids for a ExtensionLink resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + LINK_ID_PROPERTY_ID, + STACK_NAME_PROPERTY_ID, + STACK_VERSION_PROPERTY_ID, + EXTENSION_NAME_PROPERTY_ID, + EXTENSION_VERSION_PROPERTY_ID); @Inject private static ExtensionLinkDAO dao; - protected ExtensionLinkResourceProvider(Set<String> propertyIds, - Map<Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + protected ExtensionLinkResourceProvider(AmbariManagementController managementController) { + super(Type.ExtensionLink, propertyIds, keyPropertyIds, managementController); } @Override @@ -259,6 +276,6 @@ public class ExtensionLinkResourceProvider extends AbstractControllerResourcePro @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionResourceProvider.java index 53e44e1..9ec4bab 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionResourceProvider.java @@ -18,7 +18,6 @@ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Map; @@ -40,6 +39,9 @@ import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.controller.spi.UnsupportedPropertyException; import org.apache.ambari.server.controller.utilities.PropertyHelper; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * An extension version is like a stack version but it contains custom services. Linking an extension * version to the current stack version allows the cluster to install the custom services contained in @@ -50,13 +52,22 @@ public class ExtensionResourceProvider extends ReadOnlyResourceProvider { public static final String EXTENSION_NAME_PROPERTY_ID = PropertyHelper .getPropertyId("Extensions", "extension_name"); - private static Set<String> pkPropertyIds = new HashSet<>( - Arrays.asList(new String[]{EXTENSION_NAME_PROPERTY_ID})); - protected ExtensionResourceProvider(Set<String> propertyIds, - Map<Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + /** + * The key property ids for a Extension resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Type.Extension, EXTENSION_NAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a Extension resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + EXTENSION_NAME_PROPERTY_ID); + + protected ExtensionResourceProvider(AmbariManagementController managementController) { + super(Type.Extension, propertyIds, keyPropertyIds, managementController); } @@ -127,6 +138,6 @@ public class ExtensionResourceProvider extends ReadOnlyResourceProvider { @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionVersionResourceProvider.java index 4aa357c..0371058 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExtensionVersionResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Map; @@ -40,6 +39,9 @@ import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.controller.spi.UnsupportedPropertyException; import org.apache.ambari.server.controller.utilities.PropertyHelper; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * An extension version is like a stack version but it contains custom services. Linking an extension * version to the current stack version allows the cluster to install the custom services contained in @@ -54,13 +56,27 @@ public class ExtensionVersionResourceProvider extends ReadOnlyResourceProvider { public static final String EXTENSION_ERROR_SET = PropertyHelper.getPropertyId("Versions", "extension-errors"); public static final String EXTENSION_PARENT_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "parent_extension_version"); - private static Set<String> pkPropertyIds = new HashSet<>( - Arrays.asList(new String[]{EXTENSION_NAME_PROPERTY_ID, EXTENSION_VERSION_PROPERTY_ID})); - - protected ExtensionVersionResourceProvider(Set<String> propertyIds, - Map<Type, String> keyPropertyIds, + /** + * The key property ids for a ExtensionVersion resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Type.Extension, EXTENSION_NAME_PROPERTY_ID) + .put(Type.ExtensionVersion, EXTENSION_VERSION_PROPERTY_ID) + .build(); + + /** + * The property ids for a ExtensionVersion resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + EXTENSION_VERSION_PROPERTY_ID, + EXTENSION_NAME_PROPERTY_ID, + EXTENSION_VALID_PROPERTY_ID, + EXTENSION_ERROR_SET, + EXTENSION_PARENT_PROPERTY_ID); + + protected ExtensionVersionResourceProvider( AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + super(Type.ExtensionVersion, propertyIds, keyPropertyIds, managementController); } @Override @@ -121,7 +137,7 @@ public class ExtensionVersionResourceProvider extends ReadOnlyResourceProvider { @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/FeedResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/FeedResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/FeedResourceProvider.java index f9d75fd..82c781b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/FeedResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/FeedResourceProvider.java @@ -18,7 +18,6 @@ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -39,6 +38,9 @@ import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.controller.spi.UnsupportedPropertyException; import org.apache.ambari.server.controller.utilities.PropertyHelper; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * DR feed resource provider. */ @@ -62,20 +64,39 @@ public class FeedResourceProvider extends AbstractDRResourceProvider { protected static final String FEED_TARGET_CLUSTER_ACTION_PROPERTY_ID = PropertyHelper.getPropertyId("Feed/targetCluster/retention", "action"); protected static final String FEED_PROPERTIES_PROPERTY_ID = PropertyHelper.getPropertyId("Feed", "properties"); - private static Set<String> pkPropertyIds = - new HashSet<>(Arrays.asList(new String[]{ - FEED_NAME_PROPERTY_ID})); + /** + * The key property ids for a Feed resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.DRFeed, FEED_NAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a Feed resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + FEED_NAME_PROPERTY_ID, + FEED_DESCRIPTION_PROPERTY_ID, + FEED_STATUS_PROPERTY_ID, + FEED_SCHEDULE_PROPERTY_ID, + FEED_SOURCE_CLUSTER_NAME_PROPERTY_ID, + FEED_SOURCE_CLUSTER_START_PROPERTY_ID, + FEED_SOURCE_CLUSTER_END_PROPERTY_ID, + FEED_SOURCE_CLUSTER_LIMIT_PROPERTY_ID, + FEED_SOURCE_CLUSTER_ACTION_PROPERTY_ID, + FEED_TARGET_CLUSTER_NAME_PROPERTY_ID, + FEED_TARGET_CLUSTER_START_PROPERTY_ID, + FEED_TARGET_CLUSTER_END_PROPERTY_ID, + FEED_TARGET_CLUSTER_LIMIT_PROPERTY_ID, + FEED_TARGET_CLUSTER_ACTION_PROPERTY_ID, + FEED_PROPERTIES_PROPERTY_ID); /** * Construct a provider. * * @param ivoryService the ivory service - * @param propertyIds the properties associated with this provider - * @param keyPropertyIds the key property ids */ - public FeedResourceProvider(IvoryService ivoryService, - Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds) { + public FeedResourceProvider(IvoryService ivoryService) { super(propertyIds, keyPropertyIds, ivoryService); } @@ -201,7 +222,7 @@ public class FeedResourceProvider extends AbstractDRResourceProvider { @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProvider.java index f9f838f..18f3d0c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.controller.internal; import java.util.Collection; import java.util.EnumSet; -import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -49,6 +48,8 @@ import org.apache.ambari.server.security.authorization.ResourceType; import org.apache.ambari.server.security.authorization.RoleAuthorization; import org.apache.ambari.server.security.authorization.Users; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import com.google.inject.Inject; /** @@ -96,21 +97,18 @@ public class GroupPrivilegeResourceProvider extends ReadOnlyResourceProvider { /** * The property ids for a privilege resource. */ - private static Set<String> propertyIds = new HashSet<>(); - - static { - propertyIds.add(PRIVILEGE_PRIVILEGE_ID_PROPERTY_ID); - propertyIds.add(PRIVILEGE_PERMISSION_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_PERMISSION_LABEL_PROPERTY_ID); - propertyIds.add(PRIVILEGE_PRINCIPAL_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_PRINCIPAL_TYPE_PROPERTY_ID); - propertyIds.add(PRIVILEGE_VIEW_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_VIEW_VERSION_PROPERTY_ID); - propertyIds.add(PRIVILEGE_INSTANCE_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_CLUSTER_NAME_PROPERTY_ID); - propertyIds.add(PRIVILEGE_TYPE_PROPERTY_ID); - propertyIds.add(PRIVILEGE_GROUP_NAME_PROPERTY_ID); - } + private static Set<String> propertyIds = Sets.newHashSet( + PRIVILEGE_PRIVILEGE_ID_PROPERTY_ID, + PRIVILEGE_PERMISSION_NAME_PROPERTY_ID, + PRIVILEGE_PERMISSION_LABEL_PROPERTY_ID, + PRIVILEGE_PRINCIPAL_NAME_PROPERTY_ID, + PRIVILEGE_PRINCIPAL_TYPE_PROPERTY_ID, + PRIVILEGE_VIEW_NAME_PROPERTY_ID, + PRIVILEGE_VIEW_VERSION_PROPERTY_ID, + PRIVILEGE_INSTANCE_NAME_PROPERTY_ID, + PRIVILEGE_CLUSTER_NAME_PROPERTY_ID, + PRIVILEGE_TYPE_PROPERTY_ID, + PRIVILEGE_GROUP_NAME_PROPERTY_ID); /** * Static initialization. @@ -137,19 +135,17 @@ public class GroupPrivilegeResourceProvider extends ReadOnlyResourceProvider { /** * The key property ids for a privilege resource. */ - private static Map<Resource.Type, String> keyPropertyIds = new HashMap<>(); - - static { - keyPropertyIds.put(Resource.Type.Group, PRIVILEGE_GROUP_NAME_PROPERTY_ID); - keyPropertyIds.put(Resource.Type.GroupPrivilege, PRIVILEGE_PRIVILEGE_ID_PROPERTY_ID); - } + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Group, PRIVILEGE_GROUP_NAME_PROPERTY_ID) + .put(Resource.Type.GroupPrivilege, PRIVILEGE_PRIVILEGE_ID_PROPERTY_ID) + .build(); /** * Constructor. */ public GroupPrivilegeResourceProvider() { - super(propertyIds, keyPropertyIds, null); + super(Resource.Type.GroupPrivilege, propertyIds, keyPropertyIds, null); EnumSet<RoleAuthorization> requiredAuthorizations = EnumSet.of(RoleAuthorization.AMBARI_ASSIGN_ROLES); setRequiredCreateAuthorizations(requiredAuthorizations); http://git-wip-us.apache.org/repos/asf/ambari/blob/e77a31ab/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupResourceProvider.java index 6cdd24e..3da64ae 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/GroupResourceProvider.java @@ -17,7 +17,6 @@ */ package org.apache.ambari.server.controller.internal; -import java.util.Arrays; import java.util.EnumSet; import java.util.HashSet; import java.util.Map; @@ -41,6 +40,9 @@ import org.apache.ambari.server.security.authorization.RoleAuthorization; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; + /** * Resource provider for group resources. */ @@ -55,21 +57,29 @@ public class GroupResourceProvider extends AbstractControllerResourceProvider { public static final String GROUP_LDAP_GROUP_PROPERTY_ID = PropertyHelper.getPropertyId("Groups", "ldap_group"); public static final String GROUP_GROUPTYPE_PROPERTY_ID = PropertyHelper.getPropertyId("Groups", "group_type"); - private static Set<String> pkPropertyIds = - new HashSet<>(Arrays.asList(new String[]{ - GROUP_GROUPNAME_PROPERTY_ID})); + + /** + * The key property ids for a Group resource. + */ + private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder() + .put(Resource.Type.Group, GROUP_GROUPNAME_PROPERTY_ID) + .build(); + + /** + * The property ids for a Group resource. + */ + private static Set<String> propertyIds = Sets.newHashSet( + GROUP_GROUPNAME_PROPERTY_ID, + GROUP_LDAP_GROUP_PROPERTY_ID, + GROUP_GROUPTYPE_PROPERTY_ID); /** * Create a new resource provider for the given management controller. * - * @param propertyIds the property ids - * @param keyPropertyIds the key property ids * @param managementController the management controller */ - GroupResourceProvider(Set<String> propertyIds, - Map<Resource.Type, String> keyPropertyIds, - AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + GroupResourceProvider(AmbariManagementController managementController) { + super(Resource.Type.Group, propertyIds, keyPropertyIds, managementController); EnumSet<RoleAuthorization> manageUserAuthorizations = EnumSet.of(RoleAuthorization.AMBARI_MANAGE_USERS); setRequiredCreateAuthorizations(manageUserAuthorizations); @@ -188,7 +198,7 @@ public class GroupResourceProvider extends AbstractControllerResourceProvider { @Override protected Set<String> getPKPropertyIds() { - return pkPropertyIds; + return new HashSet<>(keyPropertyIds.values()); } private GroupRequest getRequest(Map<String, Object> properties) {
