http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java index 7ef18ed..e679e50 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java @@ -66,6 +66,8 @@ import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.State; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.Sets; import com.google.inject.assistedinject.Assisted; @@ -78,6 +80,9 @@ import com.google.inject.persist.Transactional; public class ComponentResourceProvider extends AbstractControllerResourceProvider { public static final String RESPONSE_KEY = "ServiceComponentInfo"; public static final String ALL_PROPERTIES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "*"; + + private static final Logger LOG = LoggerFactory.getLogger(ComponentResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Components
http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/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 79254c6..ebc7645 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 @@ -45,6 +45,8 @@ import org.apache.ambari.server.security.credential.PrincipalKeyCredential; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.security.encryption.CredentialStoreType; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; @@ -56,6 +58,8 @@ import com.google.inject.assistedinject.AssistedInject; @StaticallyInject public class CredentialResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(CredentialResourceProvider.class); + // ----- Property ID constants --------------------------------------------- public static final String CREDENTIAL_CLUSTER_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("Credential", "cluster_name"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/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 f051651..6cdd24e 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 @@ -38,12 +38,16 @@ 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 org.apache.ambari.server.security.authorization.RoleAuthorization; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Resource provider for group resources. */ public class GroupResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(GroupResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Groups http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java index 696d395..435ac4d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java @@ -67,6 +67,8 @@ import org.apache.ambari.server.state.svccomphost.ServiceComponentHostDisableEve import org.apache.ambari.server.state.svccomphost.ServiceComponentHostRestoreEvent; import org.apache.ambari.server.topology.Setting; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.google.inject.Injector; @@ -80,6 +82,8 @@ public class HostComponentResourceProvider extends AbstractControllerResourcePro public static final String RESPONSE_KEY = "HostRoles"; public static final String ALL_PROPERTIES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "*"; + private static final Logger LOG = LoggerFactory.getLogger(HostComponentResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Host Components http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostKerberosIdentityResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostKerberosIdentityResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostKerberosIdentityResourceProvider.java index bfaf7b4..0672500 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostKerberosIdentityResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostKerberosIdentityResourceProvider.java @@ -76,7 +76,7 @@ public class HostKerberosIdentityResourceProvider extends ReadOnlyResourceProvid ); protected static final Set<String> PK_PROPERTY_IDS = Collections.unmodifiableSet( - new HashSet<>(PK_PROPERTY_MAP.values()) + new HashSet<>(PK_PROPERTY_MAP.values()) ); protected static final Set<String> PROPERTY_IDS = Collections.unmodifiableSet( @@ -183,7 +183,7 @@ public class HostKerberosIdentityResourceProvider extends ReadOnlyResourceProvid KerberosPrincipalType principalType = principalDescriptor.getType(); // Assume the principal is a service principal if not specified - if(principalType == null) { + if (principalType == null) { principalType = KerberosPrincipalType.SERVICE; } @@ -194,10 +194,17 @@ public class HostKerberosIdentityResourceProvider extends ReadOnlyResourceProvid setResourceProperty(resource, KERBEROS_IDENTITY_PRINCIPAL_TYPE_PROPERTY_ID, principalType, requestPropertyIds); setResourceProperty(resource, KERBEROS_IDENTITY_PRINCIPAL_LOCAL_USERNAME_PROPERTY_ID, principalDescriptor.getLocalUsername(), requestPropertyIds); + KerberosKeytabDescriptor keytabDescriptor = descriptor.getKeytabDescriptor(); + String installedStatus; + if ((hostId != null) && kerberosPrincipalDAO.exists(principal)) { - if (kerberosPrincipalHostDAO.exists(principal, hostId)) { - installedStatus = "true"; + if (keytabDescriptor != null) { + if (kerberosPrincipalHostDAO.exists(principal, hostId, keytabDescriptor.getFile())) { + installedStatus = "true"; + } else { + installedStatus = "false"; + } } else { installedStatus = "false"; } @@ -207,7 +214,6 @@ public class HostKerberosIdentityResourceProvider extends ReadOnlyResourceProvid setResourceProperty(resource, KERBEROS_IDENTITY_KEYTAB_FILE_INSTALLED_PROPERTY_ID, installedStatus, requestPropertyIds); - KerberosKeytabDescriptor keytabDescriptor = descriptor.getKeytabDescriptor(); if (keytabDescriptor != null) { String ownerAccess = keytabDescriptor.getOwnerAccess(); String groupAccess = keytabDescriptor.getGroupAccess(); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java index 1e46794..64822f0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java @@ -85,6 +85,8 @@ import com.google.inject.persist.Transactional; */ public class HostResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(HostResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Hosts http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java index 405d608..5058758 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java @@ -65,6 +65,8 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.Sets; import com.google.inject.Inject; @@ -76,6 +78,8 @@ import com.google.inject.Provider; @StaticallyInject public class HostStackVersionResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(HostStackVersionResourceProvider.class); + // ----- Property ID constants --------------------------------------------- protected static final String HOST_STACK_VERSION_ID_PROPERTY_ID = PropertyHelper.getPropertyId("HostStackVersions", "id"); @@ -442,8 +446,9 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource Collections.singletonList(filter), roleParams); actionContext.setTimeout(Short.valueOf(configuration.getDefaultAgentTaskTimeout(true))); + actionContext.setRepositoryVersion(repoVersionEnt); - repoVersionHelper.addCommandRepository(actionContext, repoVersionEnt, osEntity); + repoVersionHelper.addCommandRepositoryToContext(actionContext, osEntity); String caption = String.format(INSTALL_PACKAGES_FULL_NAME + " on host %s", hostName); RequestStageContainer req = createRequest(caption); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java index ed30efe..9c38bff 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java @@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory; public class HostStatusHelper { - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(HostStatusHelper.class); public static boolean isHostComponentLive(AmbariManagementController managementController, http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HttpPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HttpPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HttpPropertyProvider.java index c556b06..cb7afcd 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HttpPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HttpPropertyProvider.java @@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory; */ public class HttpPropertyProvider extends BaseProvider implements PropertyProvider { - protected final static Logger LOG = LoggerFactory.getLogger(HttpPropertyProvider.class); + private static final Logger LOG = LoggerFactory.getLogger(HttpPropertyProvider.class); private final StreamProvider streamProvider; private final String clusterNamePropertyId; http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/JsonHttpPropertyRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/JsonHttpPropertyRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/JsonHttpPropertyRequest.java index 2e51e8c..7fea2ff 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/JsonHttpPropertyRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/JsonHttpPropertyRequest.java @@ -37,7 +37,7 @@ import com.google.gson.reflect.TypeToken; * instance. */ public abstract class JsonHttpPropertyRequest extends HttpPropertyProvider.HttpPropertyRequest { - protected final static Logger LOG = LoggerFactory.getLogger(JsonHttpPropertyRequest.class); + private static final Logger LOG = LoggerFactory.getLogger(JsonHttpPropertyRequest.class); private static final Type MAP_TYPE = new TypeToken<Map<String, Object>>() {}.getType(); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java index 4badc9c..fc409a3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java @@ -155,7 +155,7 @@ public class LdapSyncEventResourceProvider extends AbstractControllerResourcePro /** * The logger. */ - protected final static Logger LOG = LoggerFactory.getLogger(LdapSyncEventResourceProvider.class); + private static final Logger LOG = LoggerFactory.getLogger(LdapSyncEventResourceProvider.class); // ----- Constructors ------------------------------------------------------ http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MemberResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MemberResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MemberResourceProvider.java index d9d56ee..3cecddb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MemberResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MemberResourceProvider.java @@ -39,6 +39,8 @@ 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 org.apache.ambari.server.security.authorization.RoleAuthorization; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.AssistedInject; @@ -49,6 +51,8 @@ import com.google.inject.persist.Transactional; */ public class MemberResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(MemberResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Members http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QuickLinkArtifactResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QuickLinkArtifactResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QuickLinkArtifactResourceProvider.java index 073ec60..f293941 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QuickLinkArtifactResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QuickLinkArtifactResourceProvider.java @@ -44,9 +44,13 @@ import org.apache.ambari.server.state.StackInfo; import org.apache.ambari.server.state.quicklinks.Link; import org.apache.ambari.server.state.quicklinks.QuickLinks; import org.apache.ambari.server.state.quicklinksprofile.QuickLinkVisibilityController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class QuickLinkArtifactResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(QuickLinkArtifactResourceProvider.class); + public static final String STACK_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("QuickLinkInfo", "stack_name"); public static final String STACK_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("QuickLinkInfo", "stack_version"); public static final String STACK_SERVICE_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("QuickLinkInfo", "service_name"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RecommendationResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RecommendationResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RecommendationResourceProvider.java index 70ed3dc..9c6259c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RecommendationResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RecommendationResourceProvider.java @@ -43,9 +43,13 @@ 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.PropertyHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class RecommendationResourceProvider extends StackAdvisorResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(RecommendationResourceProvider.class); + protected static final String RECOMMENDATION_ID_PROPERTY_ID = PropertyHelper.getPropertyId( "Recommendation", "id"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java index 4814a33..a2c3c49 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java @@ -61,6 +61,7 @@ public class RepositoryResourceProvider extends AbstractControllerResourceProvid public static final String REPOSITORY_REPOSITORY_VERSION_ID_PROPERTY_ID = PropertyHelper.getPropertyId("Repositories", "repository_version_id"); public static final String REPOSITORY_VERSION_DEFINITION_ID_PROPERTY_ID = PropertyHelper.getPropertyId("Repositories", "version_definition_id"); public static final String REPOSITORY_UNIQUE_PROPERTY_ID = PropertyHelper.getPropertyId("Repositories", "unique"); + public static final String REPOSITORY_TAGS_PROPERTY_ID = PropertyHelper.getPropertyId("Repositories", "tags"); @SuppressWarnings("serial") private static Set<String> pkPropertyIds = new HashSet<String>() { @@ -90,6 +91,7 @@ public class RepositoryResourceProvider extends AbstractControllerResourceProvid add(REPOSITORY_VERSION_DEFINITION_ID_PROPERTY_ID); add(REPOSITORY_CLUSTER_STACK_VERSION_PROPERTY_ID); add(REPOSITORY_UNIQUE_PROPERTY_ID); + add(REPOSITORY_TAGS_PROPERTY_ID); } }; @@ -166,6 +168,7 @@ public class RepositoryResourceProvider extends AbstractControllerResourceProvid setResourceProperty(resource, REPOSITORY_MIRRORS_LIST_PROPERTY_ID, response.getMirrorsList(), requestedIds); setResourceProperty(resource, REPOSITORY_DEFAULT_BASE_URL_PROPERTY_ID, response.getDefaultBaseUrl(), requestedIds); setResourceProperty(resource, REPOSITORY_UNIQUE_PROPERTY_ID, response.isUnique(), requestedIds); + setResourceProperty(resource, REPOSITORY_TAGS_PROPERTY_ID, response.getTags(), requestedIds); if (null != response.getClusterVersionId()) { setResourceProperty(resource, REPOSITORY_CLUSTER_STACK_VERSION_PROPERTY_ID, response.getClusterVersionId(), requestedIds); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java index 81f283c..26e3b86 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java @@ -71,6 +71,8 @@ import org.apache.ambari.server.topology.LogicalRequest; import org.apache.ambari.server.topology.TopologyManager; import org.apache.ambari.server.utils.SecretReference; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.Sets; import com.google.inject.Inject; @@ -81,6 +83,8 @@ import com.google.inject.Inject; @StaticallyInject public class RequestResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(RequestResourceProvider.class); + @Inject private static RequestDAO s_requestDAO = null; http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RoleAuthorizationResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RoleAuthorizationResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RoleAuthorizationResourceProvider.java index 78eb80e..8dbe2bf 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RoleAuthorizationResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RoleAuthorizationResourceProvider.java @@ -42,6 +42,8 @@ import org.apache.ambari.server.orm.dao.RoleAuthorizationDAO; import org.apache.ambari.server.orm.entities.PermissionEntity; import org.apache.ambari.server.orm.entities.RoleAuthorizationEntity; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; @@ -51,6 +53,8 @@ import com.google.inject.Inject; @StaticallyInject public class RoleAuthorizationResourceProvider extends ReadOnlyResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(RoleAuthorizationResourceProvider.class); + // ----- Property ID constants --------------------------------------------- public static final String AUTHORIZATION_ID_PROPERTY_ID = PropertyHelper.getPropertyId("AuthorizationInfo", "authorization_id"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java new file mode 100644 index 0000000..7807865 --- /dev/null +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java @@ -0,0 +1,476 @@ +/* + * 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.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; +import java.util.TreeMap; + +import org.apache.ambari.server.AmbariException; +import org.apache.ambari.server.controller.RootComponent; +import org.apache.ambari.server.controller.RootService; +import org.apache.ambari.server.controller.spi.NoSuchParentResourceException; +import org.apache.ambari.server.controller.spi.NoSuchResourceException; +import org.apache.ambari.server.controller.spi.Predicate; +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.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.events.AmbariConfigurationChangedEvent; +import org.apache.ambari.server.events.publishers.AmbariEventPublisher; +import org.apache.ambari.server.orm.dao.AmbariConfigurationDAO; +import org.apache.ambari.server.orm.entities.AmbariConfigurationEntity; +import org.apache.ambari.server.security.authorization.RoleAuthorization; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.inject.Inject; + +public class RootServiceComponentConfigurationResourceProvider extends AbstractAuthorizedResourceProvider { + + private static final Logger LOGGER = LoggerFactory.getLogger(RootServiceComponentConfigurationResourceProvider.class); + + static final String RESOURCE_KEY = "Configuration"; + + public static final String CONFIGURATION_CATEGORY_PROPERTY_ID = PropertyHelper.getPropertyId(RESOURCE_KEY, "category"); + public static final String CONFIGURATION_PROPERTIES_PROPERTY_ID = PropertyHelper.getPropertyId(RESOURCE_KEY, "properties"); + public static final String CONFIGURATION_COMPONENT_NAME_PROPERTY_ID = PropertyHelper.getPropertyId(RESOURCE_KEY, "component_name"); + public static final String CONFIGURATION_SERVICE_NAME_PROPERTY_ID = PropertyHelper.getPropertyId(RESOURCE_KEY, "service_name"); + + private static final Set<String> PROPERTIES; + + private static final Map<Resource.Type, String> PK_PROPERTY_MAP; + + private static final Set<String> PK_PROPERTY_IDS; + + static { + Set<String> set = new HashSet<>(); + set.add(CONFIGURATION_SERVICE_NAME_PROPERTY_ID); + set.add(CONFIGURATION_COMPONENT_NAME_PROPERTY_ID); + set.add(CONFIGURATION_CATEGORY_PROPERTY_ID); + set.add(CONFIGURATION_PROPERTIES_PROPERTY_ID); + + PROPERTIES = Collections.unmodifiableSet(set); + + Map<Resource.Type, String> map = new HashMap<>(); + map.put(Resource.Type.RootService, CONFIGURATION_SERVICE_NAME_PROPERTY_ID); + map.put(Resource.Type.RootServiceComponent, CONFIGURATION_COMPONENT_NAME_PROPERTY_ID); + map.put(Resource.Type.RootServiceComponentConfiguration, CONFIGURATION_CATEGORY_PROPERTY_ID); + + PK_PROPERTY_MAP = Collections.unmodifiableMap(map); + PK_PROPERTY_IDS = Collections.unmodifiableSet(new HashSet<>(PK_PROPERTY_MAP.values())); + } + + @Inject + private AmbariConfigurationDAO ambariConfigurationDAO; + + @Inject + private AmbariEventPublisher publisher; + + public RootServiceComponentConfigurationResourceProvider() { + super(PROPERTIES, PK_PROPERTY_MAP); + + Set<RoleAuthorization> authorizations = EnumSet.of(RoleAuthorization.AMBARI_MANAGE_CONFIGURATION); + setRequiredCreateAuthorizations(authorizations); + setRequiredDeleteAuthorizations(authorizations); + setRequiredUpdateAuthorizations(authorizations); + setRequiredGetAuthorizations(authorizations); + } + + @Override + protected Set<String> getPKPropertyIds() { + return PK_PROPERTY_IDS; + } + + @Override + public RequestStatus createResourcesAuthorized(Request request) + throws SystemException, UnsupportedPropertyException, ResourceAlreadyExistsException, NoSuchParentResourceException { + + createOrAddProperties(null, null, null, request.getProperties(), true); + + return getRequestStatus(null); + } + + @Override + protected Set<Resource> getResourcesAuthorized(Request request, Predicate predicate) throws SystemException, + UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { + + return getResources(new Command<Set<Resource>>() { + @Override + public Set<Resource> invoke() throws AmbariException { + Set<Resource> resources = new HashSet<>(); + Set<String> requestedIds = getRequestPropertyIds(request, predicate); + + if (CollectionUtils.isEmpty(requestedIds)) { + requestedIds = PROPERTIES; + } + + if (predicate == null) { + Set<Resource> _resources; + try { + _resources = getConfigurationResources(requestedIds, null); + } catch (NoSuchResourceException e) { + throw new AmbariException(e.getMessage(), e); + } + + if (!CollectionUtils.isEmpty(_resources)) { + resources.addAll(_resources); + } + } else { + for (Map<String, Object> propertyMap : getPropertyMaps(predicate)) { + Set<Resource> _resources; + try { + _resources = getConfigurationResources(requestedIds, propertyMap); + } catch (NoSuchResourceException e) { + throw new AmbariException(e.getMessage(), e); + } + + if (!CollectionUtils.isEmpty(_resources)) { + resources.addAll(_resources); + } + } + } + + return resources; + } + }); + } + + + @Override + protected RequestStatus deleteResourcesAuthorized(Request request, Predicate predicate) throws SystemException, + UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { + + String serviceName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_SERVICE_NAME_PROPERTY_ID); + String componentName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_COMPONENT_NAME_PROPERTY_ID); + String categoryName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_CATEGORY_PROPERTY_ID); + + ConfigurationHandler handler = getConfigurationHandler(serviceName, componentName); + if (handler != null) { + handler.removeConfiguration(categoryName); + } else { + throw new SystemException(String.format("Configurations may not be updated for the %s component of the root service %s", componentName, serviceName)); + } + + return getRequestStatus(null); + } + + @Override + protected RequestStatus updateResourcesAuthorized(Request request, Predicate predicate) + throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { + + String serviceName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_SERVICE_NAME_PROPERTY_ID); + String componentName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_COMPONENT_NAME_PROPERTY_ID); + String categoryName = (String) PredicateHelper.getProperties(predicate).get(CONFIGURATION_CATEGORY_PROPERTY_ID); + + createOrAddProperties(serviceName, componentName, categoryName, request.getProperties(), false); + + return getRequestStatus(null); + } + + private Resource toResource(String serviceName, String componentName, String categoryName, Map<String, String> properties, Set<String> requestedIds) { + Resource resource = new ResourceImpl(Resource.Type.RootServiceComponentConfiguration); + setResourceProperty(resource, CONFIGURATION_SERVICE_NAME_PROPERTY_ID, serviceName, requestedIds); + setResourceProperty(resource, CONFIGURATION_COMPONENT_NAME_PROPERTY_ID, componentName, requestedIds); + setResourceProperty(resource, CONFIGURATION_CATEGORY_PROPERTY_ID, categoryName, requestedIds); + setResourceProperty(resource, CONFIGURATION_PROPERTIES_PROPERTY_ID, properties, requestedIds); + return resource; + } + + /** + * Retrieves groups of properties from the request data and create or updates them as needed. + * <p> + * Each group of properties is expected to have a category (<code>AmbariConfiguration/category</code>) + * value and one or more property (<code>AmbariConfiguration/properties/property.name</code>) values. + * If a category cannot be determined from the propery set, the default category value (passed in) + * is used. If a default category is set, it is assumed that it was parsed from the request predicate + * (if availabe). + * + * @param defaultServiceName the default service name to use if needed + * @param defaultComponentName the default component name to use if needed + * @param defaultCategoryName the default category to use if needed + * @param requestProperties a collection of property maps parsed from the request + * @param removePropertiesIfNotSpecified <code>true</code> to remove existing properties that have not been specifed in the request; + * <code>false</code> append or update the existing set of properties with values from the request + * @throws SystemException if an error occurs saving the configuration data + */ + private void createOrAddProperties(String defaultServiceName, String defaultComponentName, String defaultCategoryName, + Set<Map<String, Object>> requestProperties, boolean removePropertiesIfNotSpecified) + throws SystemException { + // set of resource properties (each entry in the set belongs to a different resource) + if (requestProperties != null) { + for (Map<String, Object> resourceProperties : requestProperties) { + RequestDetails requestDetails = parseProperties(defaultServiceName, defaultComponentName, defaultCategoryName, resourceProperties); + + ConfigurationHandler handler = getConfigurationHandler(requestDetails.serviceName, requestDetails.componentName); + + if (handler != null) { + handler.updateCategory(requestDetails.categoryName, requestDetails.properties, removePropertiesIfNotSpecified); + } else { + throw new SystemException(String.format("Configurations may not be updated for the %s component of the root service, %s", requestDetails.serviceName, requestDetails.componentName)); + } + } + } + } + + /** + * Parse the property map from a request into a map of services to components to category names to maps of property names and values. + * + * @param defaultServiceName the default service name to use if one is not found in the map of properties + * @param defaultComponentName the default component name to use if one is not found in the map of properties + * @param defaultCategoryName the default category name to use if one is not found in the map of properties + * @param resourceProperties a map of properties from a request item @return a map of category names to maps of name/value pairs + * @throws SystemException if an issue with the data is determined + */ + private RequestDetails parseProperties(String defaultServiceName, String defaultComponentName, String defaultCategoryName, Map<String, Object> resourceProperties) throws SystemException { + String serviceName = defaultServiceName; + String componentName = defaultComponentName; + String categoryName = defaultCategoryName; + Map<String, String> properties = new HashMap<>(); + + for (Map.Entry<String, Object> entry : resourceProperties.entrySet()) { + String propertyName = entry.getKey(); + + if (CONFIGURATION_CATEGORY_PROPERTY_ID.equals(propertyName)) { + if (entry.getValue() instanceof String) { + categoryName = (String) entry.getValue(); + } + } else if (CONFIGURATION_COMPONENT_NAME_PROPERTY_ID.equals(propertyName)) { + if (entry.getValue() instanceof String) { + componentName = (String) entry.getValue(); + } + } else if (CONFIGURATION_SERVICE_NAME_PROPERTY_ID.equals(propertyName)) { + if (entry.getValue() instanceof String) { + serviceName = (String) entry.getValue(); + } + } else { + String propertyCategory = PropertyHelper.getPropertyCategory(entry.getKey()); + if ((propertyCategory != null) && propertyCategory.equals(CONFIGURATION_PROPERTIES_PROPERTY_ID)) { + String name = PropertyHelper.getPropertyName(entry.getKey()); + Object value = entry.getValue(); + properties.put(name, (value == null) ? null : value.toString()); + } + } + } + + if (StringUtils.isEmpty(serviceName)) { + throw new SystemException("The service name must be set"); + } + + if (StringUtils.isEmpty(componentName)) { + throw new SystemException("The component name must be set"); + } + + if (StringUtils.isEmpty(categoryName)) { + throw new SystemException("The configuration category must be set"); + } + + if (properties.isEmpty()) { + throw new SystemException("The configuration properties must be set"); + } + + return new RequestDetails(serviceName, componentName, categoryName, properties); + } + + /** + * Retrieves the requested configration resources + * + * @param requestedIds the requested properties ids + * @param propertyMap the request properties + * @return a set of resources built from the found data + * @throws NoSuchResourceException if the requested resource was not found + */ + private Set<Resource> getConfigurationResources(Set<String> requestedIds, Map<String, Object> propertyMap) throws NoSuchResourceException { + Set<Resource> resources = new HashSet<>(); + + String serviceName = getStringProperty(propertyMap, CONFIGURATION_SERVICE_NAME_PROPERTY_ID); + String componentName = getStringProperty(propertyMap, CONFIGURATION_COMPONENT_NAME_PROPERTY_ID); + + ConfigurationHandler handler = getConfigurationHandler(serviceName, componentName); + + if (handler != null) { + String categoryName = getStringProperty(propertyMap, CONFIGURATION_CATEGORY_PROPERTY_ID); + Map<String, Map<String, String>> configurations = handler.getConfigurations(categoryName); + + if (configurations != null) { + for (Map.Entry<String, Map<String, String>> entry : configurations.entrySet()) { + resources.add(toResource(serviceName, componentName, entry.getKey(), entry.getValue(), requestedIds)); + } + } + } + + return resources; + } + + /** + * Returns the internal configuration handler used to support various configuration storage facilites. + * + * @param serviceName the service name + * @param componentName the component name + * @return + */ + private ConfigurationHandler getConfigurationHandler(String serviceName, String componentName) { + if (RootService.AMBARI.name().equals(serviceName)) { + if (RootComponent.AMBARI_SERVER.name().equals(componentName)) { + return new AmbariServerConfigurationHandler(); + } + } + + return null; + } + + + private String getStringProperty(Map<String, Object> propertyMap, String propertyId) { + String value = null; + + if (propertyMap != null) { + Object o = propertyMap.get(propertyId); + if (o instanceof String) { + value = (String) o; + } + } + + return value; + } + + /** + * ConfigurationHandler is an interface to be implemented to support the relevant types of storage + * used to persist root-level component configurations. + */ + private abstract class ConfigurationHandler { + /** + * Retrieve the request configurations. + * + * @param categoryName the category name (or <code>null</code> for all) + * @return a map of category names to properties (name/value pairs). + * @throws NoSuchResourceException if the requested data is not found + */ + public abstract Map<String, Map<String, String>> getConfigurations(String categoryName) throws NoSuchResourceException; + + /** + * Delete the requested configuration. + * + * @param categoryName the category name + * @throws NoSuchResourceException if the requested category does not exist + */ + public abstract void removeConfiguration(String categoryName) throws NoSuchResourceException; + + /** + * Set or update a configuration category with the specified properties. + * <p> + * If <code>removePropertiesIfNotSpecified</code> is <code>true</code>, the persisted category is to include only the specified properties. + * <p> + * If <code>removePropertiesIfNotSpecified</code> is <code>false</code>, the persisted category is to include the union of the existing and specified properties. + * <p> + * In any case, existing property values will be overwritten by the one specified in the property map. + * + * @param categoryName the category name + * @param properties a map of properties to set + * @param removePropertiesIfNotSpecified <code>true</code> to ensure the set of properties are only those that have be explicitly specified; + * <code>false</code> to update the set of exising properties with the specified set of properties, adding missing properties but not removing any properties + */ + public abstract void updateCategory(String categoryName, Map<String, String> properties, boolean removePropertiesIfNotSpecified); + } + + /** + * AmbariServerConfigurationHandler handle Ambari server specific configuration properties. + */ + private class AmbariServerConfigurationHandler extends ConfigurationHandler { + @Override + public Map<String, Map<String, String>> getConfigurations(String categoryName) + throws NoSuchResourceException { + Map<String, Map<String, String>> configurations = null; + + List<AmbariConfigurationEntity> entities = (categoryName == null) + ? ambariConfigurationDAO.findAll() + : ambariConfigurationDAO.findByCategory(categoryName); + + if (entities != null) { + configurations = new HashMap<>(); + + for (AmbariConfigurationEntity entity : entities) { + String category = entity.getCategoryName(); + Map<String, String> properties = configurations.get(category); + + if (properties == null) { + properties = new TreeMap<>(); + configurations.put(category, properties); + } + + properties.put(entity.getPropertyName(), entity.getPropertyValue()); + } + } + + return configurations; + } + + @Override + public void removeConfiguration(String categoryName) throws NoSuchResourceException { + if (null == categoryName) { + LOGGER.debug("No resource id provided in the request"); + } else { + LOGGER.debug("Deleting Ambari configuration with id: {}", categoryName); + try { + if (ambariConfigurationDAO.removeByCategory(categoryName) > 0) { + publisher.publish(new AmbariConfigurationChangedEvent(categoryName)); + } + } catch (IllegalStateException e) { + throw new NoSuchResourceException(e.getMessage()); + } + } + } + + @Override + public void updateCategory(String categoryName, Map<String, String> properties, boolean removePropertiesIfNotSpecified) { + if (ambariConfigurationDAO.reconcileCategory(categoryName, properties, removePropertiesIfNotSpecified)) { + // notify subscribers about the configuration changes + publisher.publish(new AmbariConfigurationChangedEvent(categoryName)); + } + } + } + + /** + * RequestDetails is a container for details parsed from the request. + */ + private class RequestDetails { + final String serviceName; + final String componentName; + final String categoryName; + final Map<String, String> properties; + + private RequestDetails(String serviceName, String componentName, String categoryName, Map<String, String> properties) { + this.serviceName = serviceName; + this.componentName = componentName; + this.categoryName = categoryName; + this.properties = properties; + } + } +} + http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentPropertyProvider.java index 433c1fa..b5bbc94 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentPropertyProvider.java @@ -29,7 +29,7 @@ import java.util.Set; import javax.crypto.Cipher; -import org.apache.ambari.server.controller.RootServiceResponseFactory; +import org.apache.ambari.server.controller.RootComponent; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.PropertyProvider; import org.apache.ambari.server.controller.spi.Request; @@ -126,7 +126,7 @@ public class RootServiceComponentPropertyProvider extends BaseProvider implement for (Resource resource : resources) { // If this resource represents the AMBARI_SERVER component, handle it's specific properties... - if (RootServiceResponseFactory.Components.AMBARI_SERVER.name().equals(resource.getPropertyValue(RootServiceComponentResourceProvider.COMPONENT_NAME_PROPERTY_ID))) { + if (RootComponent.AMBARI_SERVER.name().equals(resource.getPropertyValue(RootServiceComponentResourceProvider.COMPONENT_NAME_PROPERTY_ID))) { // Attempt to fill in the cipher details only if explicitly asked for. if (requestedIds.contains(JCE_POLICY_PROPERTY_ID) || requestedIds.contains(CIPHER_PROPERTIES_PROPERTY_ID)) { setCipherDetails(resource, requestedIds); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentResourceProvider.java index 3925aeb..dfca00e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentResourceProvider.java @@ -25,9 +25,9 @@ import java.util.Set; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.controller.AmbariManagementController; +import org.apache.ambari.server.controller.RootComponent; import org.apache.ambari.server.controller.RootServiceComponentRequest; import org.apache.ambari.server.controller.RootServiceComponentResponse; -import org.apache.ambari.server.controller.RootServiceResponseFactory.Components; import org.apache.ambari.server.controller.spi.NoSuchParentResourceException; import org.apache.ambari.server.controller.spi.NoSuchResourceException; import org.apache.ambari.server.controller.spi.Predicate; @@ -99,7 +99,7 @@ public class RootServiceComponentResourceProvider extends ReadOnlyResourceProvid setResourceProperty(resource, PROPERTIES_PROPERTY_ID, response.getProperties(), requestedIds); setResourceProperty(resource, COMPONENT_VERSION_PROPERTY_ID, response.getComponentVersion(), requestedIds); - if (Components.AMBARI_SERVER.name().equals(response.getComponentName())) { + if (RootComponent.AMBARI_SERVER.name().equals(response.getComponentName())) { setResourceProperty(resource, SERVER_CLOCK_PROPERTY_ID, response.getServerClock(), requestedIds); } http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java index baccc10..e8bece5 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceGroupResourceProvider.java @@ -79,6 +79,7 @@ public class ServiceGroupResourceProvider extends AbstractControllerResourceProv public static final String SERVICE_GROUP_SERVICE_GROUP_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_group_id"; public static final String SERVICE_GROUP_SERVICE_GROUP_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_group_name"; + private static Set<String> pkPropertyIds = new HashSet<String>(Arrays.asList(new String[]{ SERVICE_GROUP_CLUSTER_NAME_PROPERTY_ID, http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java index 931035d..38e1233 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java @@ -79,6 +79,8 @@ import org.apache.ambari.server.state.State; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; @@ -88,6 +90,7 @@ import com.google.inject.assistedinject.AssistedInject; * Resource provider for service resources. */ public class ServiceResourceProvider extends AbstractControllerResourceProvider { + public static final String RESPONSE_KEY = "ServiceInfo"; public static final String ALL_PROPERTIES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "*"; @@ -107,6 +110,8 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider public static final String SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "desired_repository_version_id"; protected static final String SERVICE_REPOSITORY_STATE = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "repository_state"; + private static final Logger LOG = LoggerFactory.getLogger(ServiceResourceProvider.class); + //Parameters from the predicate private static final String QUERY_PARAMETERS_RUN_SMOKE_TEST_ID = "params/run_smoke_test"; private static final String QUERY_PARAMETERS_RECONFIGURE_CLIENT = "params/reconfigure_client"; http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackAdvisorResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackAdvisorResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackAdvisorResourceProvider.java index 7035f0a..1ea664c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackAdvisorResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackAdvisorResourceProvider.java @@ -41,6 +41,8 @@ import org.apache.ambari.server.controller.spi.Request; import org.apache.ambari.server.controller.spi.Resource.Type; import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.state.ChangedConfigInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; @@ -49,6 +51,8 @@ import com.google.inject.Inject; */ public abstract class StackAdvisorResourceProvider extends ReadOnlyResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(StackAdvisorResourceProvider.class); + protected static final String STACK_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "stack_name"); protected static final String STACK_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId( http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProvider.java index 6bb421b..d042f86 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProvider.java @@ -56,6 +56,8 @@ import org.apache.ambari.server.state.stack.Metric; import org.apache.ambari.server.state.stack.MetricDefinition; import org.apache.ambari.server.state.stack.WidgetLayout; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -73,6 +75,9 @@ import com.google.inject.Inject; */ @StaticallyInject public class StackArtifactResourceProvider extends AbstractControllerResourceProvider { + + private static final Logger LOG = LoggerFactory.getLogger(StackArtifactResourceProvider.class); + /** * stack name */ http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java index 6a326b5..c4251c1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java @@ -56,6 +56,8 @@ import org.apache.ambari.server.topology.TopologyManager; import org.apache.ambari.server.utils.SecretReference; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.Sets; @@ -65,6 +67,8 @@ import com.google.common.collect.Sets; @StaticallyInject public class StageResourceProvider extends AbstractControllerResourceProvider implements ExtendedResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(StageResourceProvider.class); + /** * Used for querying stage resources. */ http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/TaskResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/TaskResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/TaskResourceProvider.java index 0b4fcd9..39419ec 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/TaskResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/TaskResourceProvider.java @@ -44,6 +44,8 @@ import org.apache.ambari.server.orm.entities.HostRoleCommandEntity; import org.apache.ambari.server.topology.TopologyManager; import org.apache.ambari.server.utils.StageUtils; import org.codehaus.jackson.map.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; @@ -53,6 +55,8 @@ import com.google.inject.Inject; @StaticallyInject public class TaskResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(TaskResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Tasks http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ThemeArtifactResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ThemeArtifactResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ThemeArtifactResourceProvider.java index fc7cfe7..affd969 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ThemeArtifactResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ThemeArtifactResourceProvider.java @@ -41,9 +41,13 @@ import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.StackInfo; import org.apache.ambari.server.state.ThemeInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ThemeArtifactResourceProvider extends AbstractControllerResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(ThemeArtifactResourceProvider.class); + public static final String STACK_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("ThemeInfo", "stack_name"); public static final String STACK_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("ThemeInfo", "stack_version"); public static final String STACK_SERVICE_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("ThemeInfo", "service_name"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java index 36eb3be..93b3e46 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java @@ -57,6 +57,8 @@ import org.apache.ambari.server.security.authorization.RoleAuthorization; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.utils.SecretReference; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.inject.Inject; @@ -66,6 +68,8 @@ import com.google.inject.Inject; @StaticallyInject public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(UpgradeItemResourceProvider.class); + public static final String UPGRADE_CLUSTER_NAME = "UpgradeItem/cluster_name"; public static final String UPGRADE_REQUEST_ID = "UpgradeItem/request_id"; public static final String UPGRADE_GROUP_ID = "UpgradeItem/group_id"; http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java index a1ec98a..c5303cc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.controller.internal; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.HOOKS_FOLDER; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.SERVICE_PACKAGE_FOLDER; -import static org.apache.ambari.server.stack.StackManager.DEFAULT_HOOKS_FOLDER; import java.text.MessageFormat; import java.util.ArrayList; @@ -93,6 +92,7 @@ import org.apache.ambari.server.state.UpgradeHelper.UpgradeGroupHolder; import org.apache.ambari.server.state.stack.ConfigUpgradePack; import org.apache.ambari.server.state.stack.UpgradePack; import org.apache.ambari.server.state.stack.upgrade.ConfigureTask; +import org.apache.ambari.server.state.stack.upgrade.CreateAndConfigureTask; import org.apache.ambari.server.state.stack.upgrade.Direction; import org.apache.ambari.server.state.stack.upgrade.ManualTask; import org.apache.ambari.server.state.stack.upgrade.ServerSideActionTask; @@ -762,11 +762,11 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider The Upgrade Pack is responsible for calling {@link org.apache.ambari.server.serveraction.upgrades.UpdateDesiredRepositoryAction} at the appropriate moment during the orchestration. */ - if (pack.getType() == UpgradeType.ROLLING) { + if (pack.getType() == UpgradeType.ROLLING || pack.getType() == UpgradeType.HOST_ORDERED) { s_upgradeHelper.updateDesiredRepositoriesAndConfigs(upgradeContext); } - @Experimental(feature = ExperimentalFeature.PATCH_UPGRADES, comment = "This is wrong") + @Experimental(feature = ExperimentalFeature.PATCH_UPGRADES, comment = "This is SO VERY wrong") StackId configurationPackSourceStackId = upgradeContext.getSourceVersions().values().iterator().next().getStackId(); // resolve or build a proper config upgrade pack - always start out with the config pack @@ -976,7 +976,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider effectiveStackId.getStackVersion(), serviceName); commandParams.put(SERVICE_PACKAGE_FOLDER, serviceInfo.getServicePackageFolder()); - commandParams.put(HOOKS_FOLDER, DEFAULT_HOOKS_FOLDER); + commandParams.put(HOOKS_FOLDER, s_configuration.getProperty(Configuration.HOOKS_FOLDER)); } } @@ -1073,7 +1073,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider actionContext.setAutoSkipFailures(context.isComponentFailureAutoSkipped()); ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext, - cluster, effectiveRepositoryVersion, null); + cluster, effectiveRepositoryVersion.getStackId(), null); Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari", cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(), @@ -1155,7 +1155,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider actionContext.setMaintenanceModeHostExcluded(true); ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext, - cluster, effectiveRepositoryVersion, null); + cluster, effectiveRepositoryVersion.getStackId(), null); Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari", cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(), @@ -1220,7 +1220,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider actionContext.setMaintenanceModeHostExcluded(true); ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext, - cluster, effectiveRepositoryVersion, null); + cluster, effectiveRepositoryVersion.getStackId(), null); Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari", cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(), @@ -1341,6 +1341,41 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider break; } + case CREATE_AND_CONFIGURE: { + CreateAndConfigureTask ct = (CreateAndConfigureTask) task; + + // !!! would prefer to do this in the sequence generator, but there's too many + // places to miss + if (context.getOrchestrationType().isRevertable() && !ct.supportsPatch) { + process = false; + } + + Map<String, String> configurationChanges = + ct.getConfigurationChanges(cluster, configUpgradePack); + + // add all configuration changes to the command params + commandParams.putAll(configurationChanges); + + // extract the config type to build the summary + String configType = configurationChanges.get(CreateAndConfigureTask.PARAMETER_CONFIG_TYPE); + if (null != configType) { + itemDetail = String.format("Updating configuration %s", configType); + } else { + itemDetail = "Skipping Configuration Task " + + StringUtils.defaultString(ct.id, "(missing id)"); + } + + entity.setText(itemDetail); + + String configureTaskSummary = ct.getSummary(configUpgradePack); + if (null != configureTaskSummary) { + stageText = configureTaskSummary; + } else { + stageText = itemDetail; + } + + break; + } default: break; } @@ -1361,7 +1396,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider actionContext.setMaintenanceModeHostExcluded(true); ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext, - cluster, context.getRepositoryVersion(), null); + cluster, context.getRepositoryVersion().getStackId(), null); Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari", cluster.getClusterName(), cluster.getClusterId(), stageText, jsons.getCommandParamsForStage(), http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java index c5c36e9..698f419 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java @@ -41,12 +41,16 @@ import org.apache.ambari.server.controller.spi.UnsupportedPropertyException; import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.security.authorization.AuthorizationException; import org.apache.ambari.server.security.authorization.RoleAuthorization; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Resource provider for user resources. */ public class UserResourceProvider extends AbstractControllerResourceProvider implements ResourcePredicateEvaluator { + private static final Logger LOG = LoggerFactory.getLogger(UserResourceProvider.class); + // ----- Property ID constants --------------------------------------------- // Users http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ValidationResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ValidationResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ValidationResourceProvider.java index b78c64a..5448784 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ValidationResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ValidationResourceProvider.java @@ -42,9 +42,13 @@ 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.PropertyHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ValidationResourceProvider extends StackAdvisorResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(ValidationResourceProvider.class); + protected static final String VALIDATION_ID_PROPERTY_ID = PropertyHelper.getPropertyId( "Validation", "id"); protected static final String VALIDATE_PROPERTY_ID = "validate"; http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java index f94ac32..c34c94d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java @@ -61,6 +61,7 @@ import org.apache.ambari.server.state.RepositoryType; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.StackInfo; import org.apache.ambari.server.state.repository.VersionDefinitionXml; +import org.apache.ambari.server.state.stack.RepoTag; import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; @@ -71,6 +72,8 @@ import org.apache.commons.lang.math.NumberUtils; import org.codehaus.jackson.node.ArrayNode; import org.codehaus.jackson.node.JsonNodeFactory; import org.codehaus.jackson.node.ObjectNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.base.Function; import com.google.common.collect.Collections2; @@ -86,6 +89,8 @@ import com.google.inject.Provider; @StaticallyInject public class VersionDefinitionResourceProvider extends AbstractAuthorizedResourceProvider { + private static final Logger LOG = LoggerFactory.getLogger(VersionDefinitionResourceProvider.class); + public static final String VERSION_DEF = "VersionDefinition"; public static final String VERSION_DEF_BASE64_PROPERTY = "version_base64"; public static final String VERSION_DEF_STACK_NAME = "VersionDefinition/stack_name"; @@ -778,6 +783,14 @@ public class VersionDefinitionResourceProvider extends AbstractAuthorizedResourc entity.getStackName()); repoElement.put(PropertyHelper.getPropertyName(RepositoryResourceProvider.REPOSITORY_STACK_VERSION_PROPERTY_ID), entity.getStackVersion()); + + ArrayNode tagsNode = factory.arrayNode(); + for (RepoTag repoTag : repo.getTags()) { + tagsNode.add(repoTag.toString()); + } + repoElement.put(PropertyHelper.getPropertyName( + RepositoryResourceProvider.REPOSITORY_TAGS_PROPERTY_ID), tagsNode); + repoBase.put(PropertyHelper.getPropertyCategory(RepositoryResourceProvider.REPOSITORY_BASE_URL_PROPERTY_ID), repoElement); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/jdbc/JDBCResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/jdbc/JDBCResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/jdbc/JDBCResourceProvider.java index ec5363b..8bcbce4 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/jdbc/JDBCResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/jdbc/JDBCResourceProvider.java @@ -70,7 +70,7 @@ public class JDBCResourceProvider extends BaseProvider implements ResourceProvid */ private final Map<String, Map<String, String>> importedKeys = new HashMap<>(); - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(JDBCResourceProvider.class); public JDBCResourceProvider(ConnectionFactory connectionFactory, http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java index 832d9ae..c22f90e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java @@ -116,7 +116,7 @@ public class JMXPropertyProvider extends ThreadPoolEnabledPropertyProvider { "/jmx?get=Hadoop:service=NameNode,name=FSNamesystem::tag.HAState")); } - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(JMXPropertyProvider.class); private static final Pattern dotReplacementCharPattern = http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAClusterState.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAClusterState.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAClusterState.java index 9ff40b4..231d103 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAClusterState.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAClusterState.java @@ -47,7 +47,7 @@ public class MetricsCollectorHAClusterState { @Inject AmbariManagementController managementController; - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(MetricsCollectorHAClusterState.class); public MetricsCollectorHAClusterState(String clusterName) { http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAManager.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAManager.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAManager.java index f107aab..d4b5dae 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAManager.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsCollectorHAManager.java @@ -38,7 +38,7 @@ public class MetricsCollectorHAManager { protected AmbariEventPublisher eventPublisher; private Map<String, MetricsCollectorHAClusterState> clusterCollectorHAState; - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(MetricsCollectorHAManager.class); public MetricsCollectorHAManager() { http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsDownsamplingMethod.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsDownsamplingMethod.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsDownsamplingMethod.java index 5994f16..8059560 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsDownsamplingMethod.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsDownsamplingMethod.java @@ -26,7 +26,7 @@ public abstract class MetricsDownsamplingMethod { // Allow for 2 minute discrepancy to account for client side buffering, // this ensures at least some data is returned in the initial few minutes. private static final long OUT_OF_BAND_TIME_ALLOWANCE = 120000; - static Logger LOG = LoggerFactory.getLogger(MetricsDownsamplingMethod.class); + private static final Logger LOG = LoggerFactory.getLogger(MetricsDownsamplingMethod.class); // Downsampling methods iterate over the entire metrics result to create output array. // Passing down @TemporalInfo avoids re-iterating to filter out out of band data. http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsPropertyProvider.java index 04f8c78..d5d4368 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsPropertyProvider.java @@ -36,7 +36,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class MetricsPropertyProvider extends AbstractPropertyProvider { - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(MetricsPropertyProvider.class); protected static final Pattern questionMarkPattern = Pattern.compile("\\?"); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsReportPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsReportPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsReportPropertyProvider.java index a11bcc9..46bc26b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsReportPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricsReportPropertyProvider.java @@ -43,7 +43,7 @@ public abstract class MetricsReportPropertyProvider extends AbstractPropertyProv // ----- Constants -------------------------------------------------------- - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(MetricsReportPropertyProvider.class); http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProvider.java index 7ab16da..e2f0906 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProvider.java @@ -70,7 +70,7 @@ import com.google.inject.assistedinject.AssistedInject; */ public class RestMetricsPropertyProvider extends ThreadPoolEnabledPropertyProvider { - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(RestMetricsPropertyProvider.class); @Inject http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ThreadPoolEnabledPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ThreadPoolEnabledPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ThreadPoolEnabledPropertyProvider.java index a2f7248..d571dae 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ThreadPoolEnabledPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ThreadPoolEnabledPropertyProvider.java @@ -41,6 +41,8 @@ import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.controller.utilities.BufferedThreadPoolExecutorCompletionService; import org.apache.ambari.server.controller.utilities.ScalingThreadPoolExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.base.Throwables; import com.google.common.cache.Cache; @@ -75,6 +77,8 @@ import com.google.inject.Inject; */ public abstract class ThreadPoolEnabledPropertyProvider extends AbstractPropertyProvider { + private static final Logger LOG = LoggerFactory.getLogger(ThreadPoolEnabledPropertyProvider.class); + protected static Configuration configuration; /** http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java index ecfd400..ac0c590 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java @@ -77,7 +77,7 @@ public abstract class GangliaPropertyProvider extends MetricsPropertyProvider { GANGLIA_CLUSTER_NAME_MAP.put("SUPERVISOR", Collections.singletonList("HDPSupervisor")); } - protected final static Logger LOG = + private static final Logger LOG = LoggerFactory.getLogger(GangliaPropertyProvider.class); // ----- Constructors ------------------------------------------------------
