You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rz...@apache.org on 2016/08/26 20:48:11 UTC
[40/50] ambari git commit: AMBARI-18231. Error around ATLAS_SERVER
version advertisement - doesn't advertise version (dlysnichenko)
AMBARI-18231. Error around ATLAS_SERVER version advertisement - doesn't advertise version (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e472ede9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e472ede9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e472ede9
Branch: refs/heads/2.4.0-maint
Commit: e472ede9c4b04508db89b2e6cba243deb746e57f
Parents: 0dd27e7
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Tue Aug 23 13:32:51 2016 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Tue Aug 23 18:03:32 2016 +0300
----------------------------------------------------------------------
.../listeners/upgrade/StackVersionListener.java | 2 +-
.../ambari/server/stack/ComponentModule.java | 17 +++----
.../ambari/server/state/ComponentInfo.java | 47 +++++++-----------
.../server/stack/ComponentModuleTest.java | 50 ++++++++------------
4 files changed, 47 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/e472ede9/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java
index 87247eb..7272813 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java
@@ -113,7 +113,7 @@ public class StackVersionListener {
ServiceComponent sc = cluster.getService(sch.getServiceName()).getServiceComponent(sch.getServiceComponentName());
if(!sc.isVersionAdvertised() && StringUtils.isNotBlank(newVersion)
&& !UNKNOWN_VERSION.equalsIgnoreCase(newVersion)) {
- LOG.error("ServiceComponent {0} doesn't advertise version, " +
+ LOG.error("ServiceComponent {} doesn't advertise version, " +
"however ServiceHostComponent {} on host {} advertised version as {}. Skipping version update",
sc.getName(), sch.getServiceComponentName(), sch.getHostName(), newVersion);
} else {
http://git-wip-us.apache.org/repos/asf/ambari/blob/e472ede9/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
index 537ae32..a42db8b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
@@ -18,6 +18,12 @@
package org.apache.ambari.server.stack;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.CustomCommandDefinition;
import org.apache.ambari.server.state.DependencyInfo;
@@ -25,12 +31,6 @@ import org.apache.ambari.server.state.LogDefinition;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
/**
* Component module which provides all functionality related to parsing and fully
* resolving service components from the stack definition.
@@ -90,11 +90,8 @@ public class ComponentModule extends BaseModule<ComponentModule, ComponentInfo>
}
// Inherit versionAdvertised from the parent if the current Component Info has it as null or "inherit".
- if (null == componentInfo.getVersionAdvertisedField()) {
+ if (null == componentInfo.getVersionAdvertised()) {
componentInfo.setVersionAdvertised(parentInfo.isVersionAdvertised());
- } else {
- // Set to explicit boolean
- componentInfo.setVersionAdvertised(componentInfo.getVersionAdvertisedField().booleanValue());
}
if (componentInfo.getDecommissionAllowed() == null) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/e472ede9/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 2dae526..21ab5e1 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
@@ -18,6 +18,9 @@
package org.apache.ambari.server.state;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
@@ -27,9 +30,6 @@ import javax.xml.bind.annotation.XmlElements;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
-import java.util.ArrayList;
-import java.util.List;
-
@XmlAccessorType(XmlAccessType.FIELD)
public class ComponentInfo {
private String name;
@@ -37,10 +37,7 @@ public class ComponentInfo {
private String category;
private boolean deleted;
private String cardinality = "0+";
-
- @XmlElement(name="versionAdvertised")
- private Boolean versionAdvertisedField;
-
+
/**
* Technically, no component is required to advertise a version. In practice,
* Components should advertise a version through a mechanism like hdp-select.
@@ -53,7 +50,8 @@ public class ComponentInfo {
* This is the translation of the xml element ["true", "false", null] (note that if a value is not specified,
* it will inherit from the parent) into a boolean after actually resolving it.
*/
- private boolean versionAdvertisedInternal = false;
+ @XmlElements(@XmlElement(name = "versionAdvertised"))
+ private Boolean versionAdvertised;
/**
* Used to determine if decommission is allowed
@@ -144,8 +142,7 @@ public class ComponentInfo {
category = prototype.category;
deleted = prototype.deleted;
cardinality = prototype.cardinality;
- versionAdvertisedField = prototype.versionAdvertisedField;
- versionAdvertisedInternal = prototype.versionAdvertisedInternal;
+ versionAdvertised = prototype.versionAdvertised;
decommissionAllowed = prototype.decommissionAllowed;
clientsToUpdateConfigs = prototype.clientsToUpdateConfigs;
commandScript = prototype.commandScript;
@@ -318,10 +315,10 @@ public class ComponentInfo {
/**
* WARNING: only call this method from unit tests to set the Boolean that would have been read from the xml file.
* If you call this function, you must still call {@see org.apache.ambari.server.stack.ComponentModule#resolve()}.
- * @param versionAdvertisedField
+ * @param versionAdvertised
*/
- public void setVersionAdvertisedField(Boolean versionAdvertisedField) {
- this.versionAdvertisedField = versionAdvertisedField;
+ public void setVersionAdvertised(Boolean versionAdvertised) {
+ this.versionAdvertised = versionAdvertised;
}
/**
@@ -329,16 +326,8 @@ public class ComponentInfo {
* In all other classes, use {@seealso isVersionAdvertised}
* @return The Boolean for versionAdvertised from the xml file in order to resolve it into a boolean.
*/
- public Boolean getVersionAdvertisedField() {
- return this.versionAdvertisedField;
- }
-
- /**
- * WARNING: only call this from ComponentModule to resolve the boolean (true|false).
- * @param versionAdvertised Final resolution of whether version is advertised or not.
- */
- public void setVersionAdvertised(boolean versionAdvertised) {
- this.versionAdvertisedInternal = versionAdvertised;
+ public Boolean getVersionAdvertised() {
+ return versionAdvertised;
}
/**
@@ -347,12 +336,12 @@ public class ComponentInfo {
* @return boolean of whether this component advertises a version.
*/
public boolean isVersionAdvertised() {
- if (null != versionAdvertisedField) {
- return versionAdvertisedField.booleanValue();
+ if (null != versionAdvertised) {
+ return versionAdvertised;
}
// If set to null and has a parent, then the value would have already been resolved and set.
// Otherwise, return the default value (false).
- return this.versionAdvertisedInternal;
+ return false;
}
@@ -406,8 +395,8 @@ public class ComponentInfo {
if (deleted != that.deleted) return false;
if (autoDeploy != null ? !autoDeploy.equals(that.autoDeploy) : that.autoDeploy != null) return false;
if (cardinality != null ? !cardinality.equals(that.cardinality) : that.cardinality != null) return false;
- if (versionAdvertisedField != null ? !versionAdvertisedField.equals(that.versionAdvertisedField) : that.versionAdvertisedField != null) return false;
- if (versionAdvertisedInternal != that.versionAdvertisedInternal) return false;
+ if (versionAdvertised != null ? !versionAdvertised.equals(that.versionAdvertised) : that.versionAdvertised != null)
+ return false;
if (decommissionAllowed != null ? !decommissionAllowed.equals(that.decommissionAllowed) : that.decommissionAllowed != null) return false;
if (reassignAllowed != null ? !reassignAllowed.equals(that.reassignAllowed) : that.reassignAllowed != null) return false;
if (category != null ? !category.equals(that.category) : that.category != null) return false;
@@ -449,7 +438,7 @@ public class ComponentInfo {
result = 31 * result + (configDependencies != null ? configDependencies.hashCode() : 0);
result = 31 * result + (clientConfigFiles != null ? clientConfigFiles.hashCode() : 0);
// NULL = 0, TRUE = 2, FALSE = 1
- result = 31 * result + (versionAdvertisedField != null ? (versionAdvertisedField.booleanValue() ? 2 : 1) : 0);
+ result = 31 * result + (versionAdvertised != null ? (versionAdvertised ? 2 : 1) : 0);
return result;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/e472ede9/ambari-server/src/test/java/org/apache/ambari/server/stack/ComponentModuleTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/ComponentModuleTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/ComponentModuleTest.java
index 905707c..db1e072 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/ComponentModuleTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/ComponentModuleTest.java
@@ -18,6 +18,11 @@
package org.apache.ambari.server.stack;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.ambari.server.state.AutoDeployInfo;
import org.apache.ambari.server.state.BulkCommandDefinition;
import org.apache.ambari.server.state.ClientConfigFileDefinition;
@@ -27,11 +32,6 @@ import org.apache.ambari.server.state.CustomCommandDefinition;
import org.apache.ambari.server.state.DependencyInfo;
import org.junit.Test;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
import static org.easymock.EasyMock.createNiceMock;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -490,53 +490,45 @@ public class ComponentModuleTest {
// Test cases where the current Component Info explicitly sets the value.
// 1. Chain of versionAdvertised is: true (parent) -> true (current) => true
- parentInfo.setVersionAdvertisedField(new Boolean(true));
- parentInfo.setVersionAdvertised(true);
- info.setVersionAdvertisedField(new Boolean(true));
+ parentInfo.setVersionAdvertised(new Boolean(true));
+ info.setVersionAdvertised(new Boolean(true));
assertEquals(true, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 2. Chain of versionAdvertised is: true (parent) -> false (current) => false
- parentInfo.setVersionAdvertisedField(new Boolean(true));
- parentInfo.setVersionAdvertised(true);
- info.setVersionAdvertisedField(new Boolean(false));
+ parentInfo.setVersionAdvertised(new Boolean(true));
+ info.setVersionAdvertised(new Boolean(false));
assertEquals(false, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 3. Chain of versionAdvertised is: false (parent) -> true (current) => true
- parentInfo.setVersionAdvertisedField(new Boolean(false));
- parentInfo.setVersionAdvertised(false);
- info.setVersionAdvertisedField(new Boolean(true));
+ parentInfo.setVersionAdvertised(new Boolean(false));
+ info.setVersionAdvertised(new Boolean(true));
assertEquals(true, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 4. Chain of versionAdvertised is: null (parent) -> true (current) => true
- parentInfo.setVersionAdvertisedField(null);
- parentInfo.setVersionAdvertised(false);
- info.setVersionAdvertisedField(new Boolean(true));
+ parentInfo.setVersionAdvertised(null);
+ info.setVersionAdvertised(new Boolean(true));
assertEquals(true, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// Test cases where current Component Info is null so it should inherit from parent.
// 5. Chain of versionAdvertised is: true (parent) -> null (current) => true
- parentInfo.setVersionAdvertisedField(new Boolean(true));
- parentInfo.setVersionAdvertised(true);
- info.setVersionAdvertisedField(null);
+ parentInfo.setVersionAdvertised(new Boolean(true));
+ info.setVersionAdvertised(null);
assertEquals(true, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 6. Chain of versionAdvertised is: true (parent) -> inherit (current) => true
- parentInfo.setVersionAdvertisedField(new Boolean(true));
- parentInfo.setVersionAdvertised(true);
- info.setVersionAdvertisedField(null);
+ parentInfo.setVersionAdvertised(new Boolean(true));
+ info.setVersionAdvertised(null);
assertEquals(true, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 7. Chain of versionAdvertised is: false (parent) -> null (current) => false
- parentInfo.setVersionAdvertisedField(new Boolean(false));
- parentInfo.setVersionAdvertised(false);
- info.setVersionAdvertisedField(null);
+ parentInfo.setVersionAdvertised(new Boolean(false));
+ info.setVersionAdvertised(null);
assertEquals(false, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
// 8. Chain of versionAdvertised is: false (parent) -> inherit (current) => false
- parentInfo.setVersionAdvertisedField(new Boolean(false));
- parentInfo.setVersionAdvertised(false);
- info.setVersionAdvertisedField(null);
+ parentInfo.setVersionAdvertised(new Boolean(false));
+ info.setVersionAdvertised(null);
assertEquals(false, resolveComponent(info, parentInfo).getModuleInfo().isVersionAdvertised());
}