Parcourir la source

AMBARI-3203. Ambari server reset needs a little UI improvement (Myroslav Papirkovskyy via smohanty).

Sumit Mohanty il y a 11 ans
Parent
commit
72dc18d7ea

+ 9 - 2
ambari-server/src/main/python/ambari-server.py

@@ -2037,6 +2037,13 @@ def setup(args):
 # Resets the Ambari Server.
 #
 def reset(args):
+  #force reset if silent option provided
+  global SILENT
+  if SILENT:
+    default = "yes"
+  else:
+    default = "no"
+
   if not is_root():
     err = 'Ambari-server reset should be run with ' \
           'root-level privileges'
@@ -2047,14 +2054,14 @@ def reset(args):
                      "You will be required to re-configure the Ambari server "
                      "and re-run the cluster wizard. \n"
                      "Are you SURE you want to perform the reset "
-                     "[yes/no]? ", True)
+                     "[yes/no] ({0})? ".format(default), SILENT)
   okToRun = choice
 
   if not okToRun:
     err =  "Ambari Server 'reset' cancelled"
     raise FatalException(1, err)
 
-  okToRun = get_YN_input("Confirm server reset [yes/no]? ", True)
+  okToRun = get_YN_input("Confirm server reset [yes/no]({0})? ".format(default), SILENT)
 
   if not okToRun:
     err =  "Ambari Server 'reset' cancelled"

+ 17 - 0
ambari-server/src/test/python/TestAmbariServer.py

@@ -2037,6 +2037,23 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
     self.assertEqual(None, rcode)
     self.assertTrue(execute_remote_script_mock.called)
 
+  @patch("__builtin__.raw_input")
+  @patch.object(ambari_server, "is_root")
+  def test_reset_default(self, is_root_mock, raw_input_mock):
+    is_root_mock.return_value=True
+    raw_input_mock.return_value=""
+    args = MagicMock()
+
+    try:
+      ambari_server.reset(args)
+      self.fail("Should throw exception")
+    except FatalException as fe:
+      # Expected
+      self.assertTrue(fe.code == 1)
+      pass
+
+    pass
+
 
   @patch.object(ambari_server, "setup_db")
   @patch.object(ambari_server, "print_info_msg")