Merge "conman:  Don't log false "provisioning failed" messages."
diff --git a/conman/connection_manager.py b/conman/connection_manager.py
index fb01acf..333e050 100755
--- a/conman/connection_manager.py
+++ b/conman/connection_manager.py
@@ -468,7 +468,6 @@
 
     for wifi in self.wifi:
       continue_wifi = False
-      provisioning_failed = self.provisioning_failed(wifi)
       if self.currently_provisioning(wifi):
         continue
 
@@ -960,6 +959,7 @@
       wifi.provisioning_ratchet.check()
       if wifi.provisioning_ratchet.done_after:
         wifi.status.provisioning_completed = True
+        wifi.provisioning_ratchet.stop()
         logging.info('%s successfully provisioned', wifi.name)
       return False
     except ratchet.TimeoutException:
diff --git a/conman/ratchet.py b/conman/ratchet.py
index 07e61a8..9c32ef2 100644
--- a/conman/ratchet.py
+++ b/conman/ratchet.py
@@ -146,6 +146,7 @@
 
   def reset(self):
     self._current_step = 0
+    self.active = False
     for step in self.steps:
       step.reset()
       self._set_step_status(step, False)
@@ -153,11 +154,18 @@
 
   def start(self):
     self.reset()
+    self.active = True
     self._set_current_step_status(True)
 
+  def stop(self):
+    self.active = False
+
   # Override check rather than evaluate because we don't want the Ratchet to
   # time out unless one of its steps does.
   def check(self):
+    if not self.active:
+      return
+
     if not self.done_after:
       while self.current_step().check():
         if not self.advance():
diff --git a/conman/ratchet_test.py b/conman/ratchet_test.py
index 97f7c94..79bdbfb 100755
--- a/conman/ratchet_test.py
+++ b/conman/ratchet_test.py
@@ -122,7 +122,7 @@
     wvtest.WVEXCEPT(ratchet.TimeoutException, r.check)
 
     x = y = z = 1
-    r.reset()
+    r.start()
     wvtest.WVPASS(r.check())
   finally:
     shutil.rmtree(status_export_path)