+ def reboot_server(self):
+ self.sock.shutdown(2)
+ self.sock.close()
+
+ logging.info('Logging into DEC server')
+ mopw, mopr = popen4('/usr/sbin/moprc '+self.server_name)
+ write_and_get_response(mopr, mopw, '')
+
+ logging.info('Sending password')
+ r = write_and_get_response(mopr, mopw, self.connect_password, False)
+ if r.find('Enter username> ') == -1:
+ logging.warning("Expected username prompt, got " + repr(r))
+ raise LATClientException('failed to reboot server')
+
+ logging.info('Sending username')
+ r = write_and_get_response(mopr, mopw, 'grim reaper')
+ if r.find('Local> ') == -1:
+ logging.warning("Expected DEC server prompt, got " + repr(r))
+ raise LATClientException('failed to reboot server')
+
+ logging.info('Requesting privileges')
+ r = write_and_get_response(mopr, mopw, 'set priv')
+ if r.find('Password> ') == -1:
+ logging.warning("Expected priv password prompt, got " + repr(r))
+ raise LATClientException('failed to reboot server')
+
+ logging.info('Sending password')
+ r = write_and_get_response(mopr, mopw, self.priv_password, False)
+ if r.find('Local> ') == -1:
+ logging.warning("Expected DEC server prompt, got " + repr(r))
+ raise LATClientException('failed to reboot server')
+
+ logging.info('Sending reboot request')
+ r = write_and_get_response(mopr, mopw, 'init del 0')
+ if r.find('Target does not respond') == -1:
+ logging.warning("Expected DEC server to die, got " + repr(r))
+ raise LATClientException('failed to reboot server')
+
+ logging.info('Closed connection to server')
+ mopr.close()
+ mopw.close()
+ logging.info("Waiting 10 seconds for DEC server to come back to life...")
+ sleep(10)
+ logging.info("Rightyo, back to vending!")
+ raise LATClientException('needed to reboot server')
+