You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ma...@apache.org on 2013/03/12 18:39:35 UTC

svn commit: r1455643 - in /incubator/ambari/trunk: ./ ambari-agent/src/main/python/ambari_agent/ ambari-agent/src/test/python/ ambari-server/src/main/java/org/apache/ambari/server/agent/

Author: mahadev
Date: Tue Mar 12 17:39:35 2013
New Revision: 1455643

URL: http://svn.apache.org/r1455643
Log:
AMBARI-1617. Host check is broken because of changing the serialization from jackson to gson. (mahadev)

Modified:
    incubator/ambari/trunk/CHANGES.txt
    incubator/ambari/trunk/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
    incubator/ambari/trunk/ambari-agent/src/test/python/TestActionQueue.py
    incubator/ambari/trunk/ambari-agent/src/test/python/TestHeartbeat.py
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentEnv.java

Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1455643&r1=1455642&r2=1455643&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Tue Mar 12 17:39:35 2013
@@ -822,6 +822,9 @@ Trunk (unreleased changes):
  AMBARI-1547. Fix ambari agent test cases that are failing due to missing
  directory. (mahadev)
 
+ AMBARI-1617. Host check is broken because of changing the serialization from
+ jackson to gson. (mahadev)
+
 AMBARI-1.2.0 branch:
 
  INCOMPATIBLE CHANGES

Modified: incubator/ambari/trunk/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/main/python/ambari_agent/ActionQueue.py?rev=1455643&r1=1455642&r2=1455643&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/main/python/ambari_agent/ActionQueue.py (original)
+++ incubator/ambari/trunk/ambari-agent/src/main/python/ambari_agent/ActionQueue.py Tue Mar 12 17:39:35 2013
@@ -105,11 +105,15 @@ class ActionQueue(threading.Thread):
             self.resultQueue.put((command['commandType'], entry))
 
         elif command['commandType'] == self.STATUS_COMMAND:
-          cluster = command['clusterName']
-          service = command['serviceName']
-          component = command['componentName']
-          globalConfig = command['configurations']['global']
           try:
+            cluster = command['clusterName']
+            service = command['serviceName']
+            component = command['componentName']
+            configurations = command['configurations']
+            if configurations.has_key('global'):
+              globalConfig = configurations['global']
+            else:
+              globalConfig = {}
             livestatus = LiveStatus(cluster, service, component,
               globalConfig, self.config)
             result = livestatus.build()

Modified: incubator/ambari/trunk/ambari-agent/src/test/python/TestActionQueue.py
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/test/python/TestActionQueue.py?rev=1455643&r1=1455642&r2=1455643&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/test/python/TestActionQueue.py (original)
+++ incubator/ambari/trunk/ambari-agent/src/test/python/TestActionQueue.py Tue Mar 12 17:39:35 2013
@@ -23,7 +23,10 @@ from ambari_agent.ActionQueue import Act
 from ambari_agent.AmbariConfig import AmbariConfig
 from ambari_agent.FileUtil import getFilePath
 from ambari_agent.UpgradeExecutor import UpgradeExecutor
+from ambari_agent.StackVersionsFileHandler import StackVersionsFileHandler
 import os, errno, time, pprint, tempfile, threading
+import TestStackVersionsFileHandler
+
 from mock.mock import patch, MagicMock, call
 
 class TestActionQueue(TestCase):
@@ -179,6 +182,36 @@ class TestActionQueue(TestCase):
     self.assertEquals(result, expected_result)
 
 
+  @patch.object(StackVersionsFileHandler, "read_stack_version")
+  @patch.object(ActionQueue, "stopped")
+  def test_status_command_without_globals_section(self, stopped_method,
+                                                  read_stack_version_method):
+    config = AmbariConfig().getConfig()
+    config.set('agent', 'prefix', TestStackVersionsFileHandler.dummyVersionsFile)
+    queue = ActionQueue(config)
+    statusCommand = {
+      "serviceName" : 'HDFS',
+      "commandType" : "STATUS_COMMAND",
+      "clusterName" : "",
+      "componentName" : "DATANODE",
+      'configurations':{}
+    }
+    queue.stopped = stopped_method
+    stopped_method.side_effect = [False, False, True, True, True]
+    read_stack_version_method.return_value="1.3.0"
+    queue.IDLE_SLEEP_TIME = 0.001
+    queue.put(statusCommand)
+    queue.run()
+    returned_result = queue.resultQueue.get()
+    self.assertEquals(returned_result, ('STATUS_COMMAND',
+                                        {'clusterName': '',
+                                         'componentName': 'DATANODE',
+                                         'msg': '',
+                                         'serviceName': 'HDFS',
+                                         'stackVersion': '1.3.0',
+                                         'status': 'INSTALLED'}))
+
+
 class FakeExecutor():
 
   def __init__(self, executor_started_event, end_executor_event):

Modified: incubator/ambari/trunk/ambari-agent/src/test/python/TestHeartbeat.py
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/test/python/TestHeartbeat.py?rev=1455643&r1=1455642&r2=1455643&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/test/python/TestHeartbeat.py (original)
+++ incubator/ambari/trunk/ambari-agent/src/test/python/TestHeartbeat.py Tue Mar 12 17:39:35 2013
@@ -26,6 +26,8 @@ from ambari_agent import AmbariConfig
 import socket
 import os
 import time
+from mock.mock import patch, MagicMock, call
+from ambari_agent.StackVersionsFileHandler import StackVersionsFileHandler
 
 class TestHeartbeat(TestCase):
 
@@ -47,8 +49,10 @@ class TestHeartbeat(TestCase):
     self.assertEquals(not heartbeat.reports, True, "Heartbeat should not contain task in progress")
 
 
-  def test_heartbeat_with_status(self):
+  @patch.object(StackVersionsFileHandler, "read_stack_version")
+  def test_heartbeat_with_status(self, read_stack_version_method):
     actionQueue = ActionQueue(AmbariConfig.AmbariConfig().getConfig())
+    read_stack_version_method.return_value="1.3.0"
     heartbeat = Heartbeat(actionQueue)
     statusCommand = {
       "serviceName" : 'HDFS',
@@ -65,9 +69,11 @@ class TestHeartbeat(TestCase):
     result = heartbeat.build(101)
     self.assertEquals(len(result['componentStatus']) > 0, True, 'Heartbeat should contain status of HDFS components')
 
-  def test_heartbeat_with_status_multiple(self):
+  @patch.object(StackVersionsFileHandler, "read_stack_version")
+  def test_heartbeat_with_status_multiple(self, read_stack_version_method):
     actionQueue = ActionQueue(AmbariConfig.AmbariConfig().getConfig())
     actionQueue.IDLE_SLEEP_TIME = 0.01
+    read_stack_version_method.return_value="1.3.0"
     heartbeat = Heartbeat(actionQueue)
     actionQueue.start()
     max_number_of_status_entries = 0

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentEnv.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentEnv.java?rev=1455643&r1=1455642&r2=1455643&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentEnv.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentEnv.java Tue Mar 12 17:39:35 2013
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.agent;
 
+import com.google.gson.annotations.SerializedName;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
 
@@ -122,8 +123,11 @@ public class AgentEnv {
    * Represents information about rpm-installed packages
    */
   public static class Rpm {
+    @SerializedName("name")
     private String rpmName;
+    @SerializedName("installed")
     private boolean rpmInstalled = false;
+    @SerializedName("version")
     private String rpmVersion;
     
     public void setName(String name) {
@@ -156,7 +160,9 @@ public class AgentEnv {
    * Represents information about a directory of interest.
    */
   public static class Directory {
+    @SerializedName("name")
     private String dirName;
+    @SerializedName("type")
     private String dirType;
     
     public void setName(String name) {
@@ -180,9 +186,13 @@ public class AgentEnv {
    * Represents information about running java processes.
    */
   public static class JavaProc {
+    @SerializedName("user")        
     private String user;
+    @SerializedName("pid") 
     private int pid = 0;
+    @SerializedName("hadoop") 
     private boolean is_hadoop = false;
+    @SerializedName("command") 
     private String command;
     
     public void setUser(String user) {
@@ -219,7 +229,9 @@ public class AgentEnv {
   }
   
   public static class Alternative {
+    @SerializedName("name")
     private String altName;
+    @SerializedName("target")
     private String altTarget;
     
     public void setName(String name) {