AMBARI-21737 - Ambari should expose whether a service is able to rolling-restart instead of hard coding service name (mradhakrishnan)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/54513bf0 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/54513bf0 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/54513bf0 Branch: refs/heads/feature-branch-AMBARI-21307 Commit: 54513bf0fc4a08552b326f9d4482c1bcd350ee7b Parents: 2e5139a Author: Madhuvanthi Radhakrishnan <mradhakrish...@hortonworks.com> Authored: Wed Aug 23 13:19:22 2017 -0700 Committer: Madhuvanthi Radhakrishnan <mradhakrish...@hortonworks.com> Committed: Wed Aug 23 13:19:22 2017 -0700 ---------------------------------------------------------------------- .../controller/StackServiceComponentResponse.java | 16 ++++++++++++++++ .../StackServiceComponentResourceProvider.java | 7 ++++++- .../apache/ambari/server/state/ComponentInfo.java | 15 +++++++++++++++ .../common-services/KAFKA/0.10.0.3.0/metainfo.xml | 1 + .../common-services/KAFKA/0.8.1/metainfo.xml | 1 + ambari-server/src/main/resources/properties.json | 1 + ambari-web/app/mappers/stack_service_mapper.js | 1 + ambari-web/app/models/stack_service_component.js | 3 ++- 8 files changed, 43 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java index 0b0a5da..75fac6e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java @@ -89,6 +89,11 @@ public class StackServiceComponentResponse { private String decommissionAllowed; /** + * Whether the component supports rolling restart. + * */ + private boolean rollingRestartSupported; + + /** * auto deploy information */ private AutoDeployInfo autoDeploy; @@ -133,6 +138,7 @@ public class StackServiceComponentResponse { bulkCommandsDisplayName = getBulkCommandsDisplayName(component); bulkCommandMasterComponentName = getBulkCommandsMasterComponentName(component); reassignAllowed = component.getReassignAllowed(); + rollingRestartSupported = component.getRollingRestartSupported(); // the custom command names defined for this component List<CustomCommandDefinition> definitions = component.getCustomCommands(); @@ -410,6 +416,16 @@ public class StackServiceComponentResponse { } /** + * Get whether the component supports rolling restart + * + * @return whether the component supports rolling restart + */ + @ApiModelProperty(name = "rollingRestartSupported") + public boolean isRollingRestartSupported(){ + return rollingRestartSupported; + } + + /** * Get whether the components can be reassigned. * * @return Whether the components can be reassigned http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceComponentResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceComponentResourceProvider.java index 96993da..b9661bb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceComponentResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceComponentResourceProvider.java @@ -41,7 +41,7 @@ import org.apache.ambari.server.state.AutoDeployInfo; public class StackServiceComponentResourceProvider extends ReadOnlyResourceProvider { - + private static final String STACK_NAME_PROPERTY_ID = PropertyHelper.getPropertyId( "StackServiceComponents", "stack_name"); @@ -93,6 +93,9 @@ public class StackServiceComponentResourceProvider extends private static final String RECOVERY_ENABLED = PropertyHelper.getPropertyId( "StackServiceComponents", "recovery_enabled"); + private static final String ROLLING_RESTART_SUPPORTED = PropertyHelper.getPropertyId( + "StackServiceComponents", "rolling_restart_supported"); + private static final String AUTO_DEPLOY_ENABLED_ID = PropertyHelper.getPropertyId( "auto_deploy", "enabled"); @@ -190,6 +193,8 @@ public class StackServiceComponentResourceProvider extends setResourceProperty(resource, HAS_BULK_COMMANDS_PROPERTY_ID, response.hasBulkCommands(), requestedIds); + setResourceProperty(resource, ROLLING_RESTART_SUPPORTED, response.isRollingRestartSupported(), requestedIds); + AutoDeployInfo autoDeployInfo = response.getAutoDeploy(); if (autoDeployInfo != null) { setResourceProperty(resource, AUTO_DEPLOY_ENABLED_ID, http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java index a8a9a0f..d361a29 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java @@ -65,6 +65,12 @@ public class ComponentInfo { private UnlimitedKeyJCERequirement unlimitedKeyJCERequired; /** + * Used to determine if rolling restart is supported + * */ + @XmlElements(@XmlElement(name = "rollingRestartSupported")) + private boolean rollingRestartSupported; + + /** * Added at schema ver 2 */ private CommandScriptDefinition commandScript; @@ -166,6 +172,7 @@ public class ComponentInfo { timelineAppid = prototype.timelineAppid; reassignAllowed = prototype.reassignAllowed; customFolder = prototype.customFolder; + rollingRestartSupported = prototype.rollingRestartSupported; } public String getName() { @@ -372,6 +379,14 @@ public class ComponentInfo { this.decommissionAllowed = decommissionAllowed; } + public boolean getRollingRestartSupported() { + return rollingRestartSupported; + } + + public void setRollingRestartSupported(boolean rollingRestartSupported) { + this.rollingRestartSupported = rollingRestartSupported; + } + public UnlimitedKeyJCERequirement getUnlimitedKeyJCERequired() { return unlimitedKeyJCERequired; } http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/resources/common-services/KAFKA/0.10.0.3.0/metainfo.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.10.0.3.0/metainfo.xml b/ambari-server/src/main/resources/common-services/KAFKA/0.10.0.3.0/metainfo.xml index f408ba3..164e15f 100644 --- a/ambari-server/src/main/resources/common-services/KAFKA/0.10.0.3.0/metainfo.xml +++ b/ambari-server/src/main/resources/common-services/KAFKA/0.10.0.3.0/metainfo.xml @@ -30,6 +30,7 @@ <category>MASTER</category> <cardinality>1+</cardinality> <versionAdvertised>true</versionAdvertised> + <rollingRestartSupported>true</rollingRestartSupported> <dependencies> <dependency> <name>ZOOKEEPER/ZOOKEEPER_SERVER</name> http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/resources/common-services/KAFKA/0.8.1/metainfo.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1/metainfo.xml b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1/metainfo.xml index d322adc..6d44d4a 100644 --- a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1/metainfo.xml +++ b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1/metainfo.xml @@ -30,6 +30,7 @@ <category>MASTER</category> <cardinality>1+</cardinality> <versionAdvertised>true</versionAdvertised> + <rollingRestartSupported>true</rollingRestartSupported> <dependencies> <dependency> <name>ZOOKEEPER/ZOOKEEPER_SERVER</name> http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-server/src/main/resources/properties.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/properties.json b/ambari-server/src/main/resources/properties.json index 11ca7f6..5f3acdd 100644 --- a/ambari-server/src/main/resources/properties.json +++ b/ambari-server/src/main/resources/properties.json @@ -232,6 +232,7 @@ "StackServiceComponents/has_bulk_commands_definition", "StackServiceComponents/bulk_commands_display_name", "StackServiceComponents/bulk_commands_master_component_name", + "StackServiceComponents/rolling_restart_supported", "auto_deploy/enabled", "auto_deploy/location", "_" http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-web/app/mappers/stack_service_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/stack_service_mapper.js b/ambari-web/app/mappers/stack_service_mapper.js index 8931066..f49b4d0 100644 --- a/ambari-web/app/mappers/stack_service_mapper.js +++ b/ambari-web/app/mappers/stack_service_mapper.js @@ -61,6 +61,7 @@ App.stackServiceMapper = App.QuickDataMapper.create({ bulk_commands_master_component_name: 'bulk_commands_master_component_name', service_name: 'service_name', component_category: 'component_category', + rolling_restart_supported: 'rolling_restart_supported', is_master: 'is_master', is_client: 'is_client', stack_name: 'stack_name', http://git-wip-us.apache.org/repos/asf/ambari/blob/54513bf0/ambari-web/app/models/stack_service_component.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_service_component.js b/ambari-web/app/models/stack_service_component.js index eb6f2db..27aa8aa 100644 --- a/ambari-web/app/models/stack_service_component.js +++ b/ambari-web/app/models/stack_service_component.js @@ -35,6 +35,7 @@ App.StackServiceComponent = DS.Model.extend({ dependencies: DS.attr('array'), serviceName: DS.attr('string'), componentCategory: DS.attr('string'), + rollingRestartSupported: DS.attr('boolean'), isMaster: DS.attr('boolean'), isClient: DS.attr('boolean'), stackName: DS.attr('string'), @@ -84,7 +85,7 @@ App.StackServiceComponent = DS.Model.extend({ /** @property {Boolean} isRollinRestartAllowed - component supports rolling restart action **/ isRollinRestartAllowed: function() { - return this.get('isSlave') || this.get('componentName') === 'KAFKA_BROKER'; + return this.get('isSlave') || this.get('rollingRestartSupported'); }.property('componentName'), /** @property {Boolean} isDecommissionAllowed - component supports decommission action **/