From 0b641d436e1c8133b8698a0346b57560738bca90 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 26 Oct 2016 21:48:10 +0000 Subject: [PATCH] Support both Python 2.x and Python 3.x Change-Id: If2b02553859345a4322e0a2fd56ce1f7436c08ca --- createDB.py | 4 +- molteniron/molteniron | 25 ++++--- molteniron/moltenirond-helper | 12 ++-- molteniron/moltenirond.py | 87 +++++++++++++++---------- molteniron/tests/testAddBMNode.py | 16 +++-- molteniron/tests/testAllocateBM.py | 34 +++++----- molteniron/tests/testCull.py | 34 +++++----- molteniron/tests/testDeallocateBM.py | 28 ++++---- molteniron/tests/testDeallocateOwner.py | 16 +++-- molteniron/tests/testDoClean.py | 20 +++--- molteniron/tests/testGetField.py | 18 ++--- molteniron/tests/testGetIps.py | 16 +++-- molteniron/tests/testRemoveBMNode.py | 14 ++-- 13 files changed, 186 insertions(+), 138 deletions(-) diff --git a/createDB.py b/createDB.py index 0a1af6e..bd26eca 100755 --- a/createDB.py +++ b/createDB.py @@ -21,6 +21,8 @@ Create the MoltenIron user in mysql and grant it access. # pylint: disable-msg=C0103 +from __future__ import print_function + import os import sys import yaml @@ -28,7 +30,7 @@ import yaml def SQL(query): """Perform a mysql command""" - print os.popen("mysql -u root -p --execute=\"" + query + "\"").read() + print(os.popen("mysql -u root -p --execute=\"" + query + "\"").read()) def main(): diff --git a/molteniron/molteniron b/molteniron/molteniron index 8e7d8e2..1366a4d 100755 --- a/molteniron/molteniron +++ b/molteniron/molteniron @@ -23,12 +23,17 @@ a MoltenIron server. # pylint: disable-msg=C0103 # pylint: disable=redefined-outer-name +from __future__ import print_function + import argparse -import httplib import json -import sys import os +import sys import yaml +if (sys.version_info >= (3, 0)): + import http.client # noqa +else: + import httplib # noqa DEBUG = False @@ -88,8 +93,12 @@ class MoltenIron(object): def send(self, request): """Send the generated request """ - connection = httplib.HTTPConnection(str(self.conf['serverIP']), - int(self.conf['mi_port'])) + ip = str(self.conf['serverIP']) + port = int(self.conf['mi_port']) + if (sys.version_info > (3, 0)): + connection = http.client.HTTPConnection(ip, port) # noqa + else: + connection = httplib.HTTPConnection(ip, port) # noqa connection.request('POST', '/', json.dumps(request)) response = connection.getresponse() @@ -316,7 +325,7 @@ if __name__ == "__main__": # Register all decorated class functions by telling them argparse # is running - for (cmd_name, cmd_func) in command.all.items(): + for (cmd_name, cmd_func) in list(command.all.items()): func = getattr(mi, cmd_name) func(subparsers) # Tell the function to setup for argparse @@ -325,7 +334,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -339,12 +348,12 @@ if __name__ == "__main__": mi.setup_argv(args) mi.setup_parser(parser) - print mi.get_response() + print(mi.get_response()) try: rc = mi.get_response_map()['status'] except KeyError: - print "Error: Server returned: %s" % (mi.get_response_map(),) + print("Error: Server returned: %s" % (mi.get_response_map(),)) rc = 444 if rc == 200: diff --git a/molteniron/moltenirond-helper b/molteniron/moltenirond-helper index 1aebc18..1663739 100755 --- a/molteniron/moltenirond-helper +++ b/molteniron/moltenirond-helper @@ -22,6 +22,8 @@ This is a helper program for the MoltenIron server. # pylint: disable-msg=C0103 # pylint: disable=redefined-outer-name +from __future__ import print_function + import argparse import sys import os @@ -83,7 +85,7 @@ def log_error(s): with open(ERROR_LOGFILE, "a+") as fobj: fobj.writelines(s + "\n") - print >> sys.stderr, s + print(s, file=sys.stderr) if __name__ == "__main__": @@ -114,7 +116,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) YAML_CONF = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -122,14 +124,14 @@ if __name__ == "__main__": if args.pid_dir: if not os.path.isdir(args.pid_dir): msg = "Error: %s is not a valid directory" % (args.pid_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) PID = os.path.realpath("%s/moltenirond.pid" % (args.pid_dir, )) if args.verbose: - print "YAML_CONF = %s" % (YAML_CONF, ) - print "PID = %s" % (PID, ) + print("YAML_CONF = %s" % (YAML_CONF, )) + print("PID = %s" % (PID, )) if len(args.command) != 1: msg = "Error: Expecting one command? Received: %s" % (args.command, ) diff --git a/molteniron/moltenirond.py b/molteniron/moltenirond.py index 7f340f8..cf71c55 100755 --- a/molteniron/moltenirond.py +++ b/molteniron/moltenirond.py @@ -27,7 +27,8 @@ This is the MoltenIron server. # pylint: disable-msg=C0103 # pylint: disable=redefined-outer-name -from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler +from __future__ import print_function + import calendar from datetime import datetime import json @@ -52,6 +53,14 @@ from sqlalchemy.schema import MetaData, Table import sqlalchemy_utils from sqlalchemy.exc import OperationalError +import collections # noqa + +if (sys.version_info >= (3, 0)): + from http.server import HTTPServer, BaseHTTPRequestHandler # noqa +else: + from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler # noqa + + DEBUG = False metadata = MetaData() @@ -102,7 +111,7 @@ def MakeMoltenIronHandlerWithConf(conf): def send_reply(self, response): """Sends the HTTP reply""" if DEBUG: - print "send_reply: response = %s" % (response,) + print("send_reply: response = %s" % (response,)) # get the status code off the response json and send it status_code = response['status'] self.send_response(status_code) @@ -142,7 +151,7 @@ def MakeMoltenIronHandlerWithConf(conf): response = {'status': 400, 'message': str(e)} if DEBUG: - print "parse: response = %s" % (response,) + print("parse: response = %s" % (response,)) return response @@ -206,8 +215,9 @@ class Nodes(declarative_base()): def map(self): """Returns a map of the database row contents""" return {key: value for key, value - in self.__dict__.items() - if not key.startswith('_') and not callable(key)} + in list(self.__dict__.items()) + if not key.startswith('_') and + not isinstance(key, collections.Callable)} def __repr__(self): fmt = """> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) diff --git a/molteniron/tests/testAddBMNode.py b/molteniron/tests/testAddBMNode.py index e66b8be..e6d4e64 100755 --- a/molteniron/tests/testAddBMNode.py +++ b/molteniron/tests/testAddBMNode.py @@ -21,6 +21,8 @@ Tests the addBMNode MoltenIron command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -41,7 +43,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -115,24 +117,24 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node1) - print ret + print(ret) assert ret['status'] == 400 assert ret['message'] == "Node already exists" ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret['status'] == 400 assert ret['message'] == "Node already exists" ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret['status'] == 400 assert ret['message'] == "Node already exists" diff --git a/molteniron/tests/testAllocateBM.py b/molteniron/tests/testAllocateBM.py index e8d4306..a924084 100755 --- a/molteniron/tests/testAllocateBM.py +++ b/molteniron/tests/testAllocateBM.py @@ -21,6 +21,8 @@ Tests the MoltenIron allocateBM command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -55,7 +57,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -129,20 +131,20 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 1) - print ret + print(ret) assert ret['status'] == 200 assert len(ret["nodes"]) == 1 compare_provisioned_nodes(ret["nodes"]["node_1"], node1) @@ -158,20 +160,20 @@ if __name__ == "__main__": database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 2) - print ret + print(ret) assert ret['status'] == 200 assert len(ret["nodes"]) == 2 compare_provisioned_nodes(ret["nodes"]["node_1"], node1) @@ -188,20 +190,20 @@ if __name__ == "__main__": database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 3) - print ret + print(ret) assert ret == {'status': 404, 'message': ('Not enough available nodes found. ' 'Found 2, requested 3')} diff --git a/molteniron/tests/testCull.py b/molteniron/tests/testCull.py index 71ece0d..504989a 100755 --- a/molteniron/tests/testCull.py +++ b/molteniron/tests/testCull.py @@ -21,6 +21,8 @@ Tests the MoltenIron cull command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -54,7 +56,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -129,20 +131,20 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.cull(1000) - print ret + print(ret) assert ret['status'] == 200 assert len(ret['nodes']) == 2 @@ -160,20 +162,20 @@ if __name__ == "__main__": database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.cull(2000) - print ret + print(ret) assert ret['status'] == 200 assert len(ret['nodes']) == 1 @@ -190,20 +192,20 @@ if __name__ == "__main__": database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.cull(3000) - print ret + print(ret) assert ret['status'] == 200 assert len(ret['nodes']) == 0 diff --git a/molteniron/tests/testDeallocateBM.py b/molteniron/tests/testDeallocateBM.py index bb63261..17e1728 100755 --- a/molteniron/tests/testDeallocateBM.py +++ b/molteniron/tests/testDeallocateBM.py @@ -21,6 +21,8 @@ Tests the MoltenIron deallocateBM command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -54,7 +56,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -128,20 +130,20 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 1) - print ret + print(ret) assert ret['status'] == 200 assert len(ret["nodes"]) == 1 compare_provisioned_nodes(ret["nodes"]["node_1"], node1) @@ -150,7 +152,7 @@ if __name__ == "__main__": n1 = session.query(moltenirond.Nodes).filter_by(name=node1["name"]).one() session.close() ret = database.deallocateBM(n1.id) - print ret + print(ret) assert ret['status'] == 200 database.close() @@ -164,20 +166,20 @@ if __name__ == "__main__": database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 1) - print ret + print(ret) assert ret['status'] == 200 assert len(ret["nodes"]) == 1 compare_provisioned_nodes(ret["nodes"]["node_1"], node1) @@ -186,7 +188,7 @@ if __name__ == "__main__": n1 = session.query(moltenirond.Nodes).filter_by(name=node1["name"]).one() session.close() ret = database.deallocateBM(n1.ipmi_ip) - print ret + print(ret) assert ret['status'] == 200 database.close() diff --git a/molteniron/tests/testDeallocateOwner.py b/molteniron/tests/testDeallocateOwner.py index 97f16c6..5b423e3 100755 --- a/molteniron/tests/testDeallocateOwner.py +++ b/molteniron/tests/testDeallocateOwner.py @@ -21,6 +21,8 @@ Tests the MoltenIron deallocateOwner command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -54,7 +56,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -128,26 +130,26 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.allocateBM("hamzy", 1) - print ret + print(ret) assert ret['status'] == 200 assert len(ret["nodes"]) == 1 compare_provisioned_nodes(ret["nodes"]["node_1"], node1) ret = database.deallocateOwner("hamzy") - print ret + print(ret) assert ret['status'] == 200 database.close() diff --git a/molteniron/tests/testDoClean.py b/molteniron/tests/testDoClean.py index 94e447f..4335468 100755 --- a/molteniron/tests/testDoClean.py +++ b/molteniron/tests/testDoClean.py @@ -21,6 +21,8 @@ Tests the MoltenIron doClean command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -41,7 +43,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -115,30 +117,30 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.doClean(1) - print ret + print(ret) assert ret == {'status': 400, 'message': 'The node at 1 has status ready'} ret = database.doClean(2) - print ret + print(ret) assert ret == {'status': 400, 'message': 'The node at 2 has status ready'} ret = database.doClean(3) - print ret + print(ret) assert ret == {'status': 200} ret = database.doClean(4) - print ret + print(ret) assert ret == {'status': 200} diff --git a/molteniron/tests/testGetField.py b/molteniron/tests/testGetField.py index 1026d60..841d6b1 100755 --- a/molteniron/tests/testGetField.py +++ b/molteniron/tests/testGetField.py @@ -21,6 +21,8 @@ Tests the MoltenIron get_field command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -41,7 +43,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -115,33 +117,33 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.get_field("hamzy", "cpus") - print ret + print(ret) assert ret['status'] == 200 assert len(ret['result']) == 1 assert ret['result'][0]['field'] == node1["cpus"] ret = database.get_field("mjturek", "port_hwaddr") - print ret + print(ret) assert ret['status'] == 200 assert len(ret['result']) == 2 assert ret['result'][0]['field'] == node2["port_hwaddr"] assert ret['result'][1]['field'] == node4["port_hwaddr"] ret = database.get_field("mmedvede", "candy") - print ret + print(ret) assert ret == {'status': 400, 'message': 'field candy does not exist'} database.close() diff --git a/molteniron/tests/testGetIps.py b/molteniron/tests/testGetIps.py index df0d9b0..9a38d45 100755 --- a/molteniron/tests/testGetIps.py +++ b/molteniron/tests/testGetIps.py @@ -21,6 +21,8 @@ Tests the MoltenIron get_ips command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -41,7 +43,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -115,26 +117,26 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} ret = database.get_ips("hamzy") - print ret + print(ret) assert ret['status'] == 200 assert len(ret['ips']) == 1 assert ret['ips'] == [node1["ipmi_ip"]] ret = database.get_ips("mjturek") - print ret + print(ret) assert ret['status'] == 200 assert len(ret['ips']) == 2 assert ret['ips'] == [node2["ipmi_ip"], node4["ipmi_ip"]] diff --git a/molteniron/tests/testRemoveBMNode.py b/molteniron/tests/testRemoveBMNode.py index 2350610..0bd0fac 100755 --- a/molteniron/tests/testRemoveBMNode.py +++ b/molteniron/tests/testRemoveBMNode.py @@ -21,6 +21,8 @@ Tests the MoltenIron removeBMNode command. # pylint: disable-msg=C0103 +from __future__ import print_function + import sys import os import yaml @@ -41,7 +43,7 @@ if __name__ == "__main__": if args.conf_dir: if not os.path.isdir(args.conf_dir): msg = "Error: %s is not a valid directory" % (args.conf_dir, ) - print >> sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) yaml_file = os.path.realpath("%s/conf.yaml" % (args.conf_dir, )) @@ -115,23 +117,23 @@ if __name__ == "__main__": # 8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- database = moltenirond.DataBase(conf, moltenirond.TYPE_SQLITE_MEMORY) ret = database.addBMNode(node1) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node2) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node3) - print ret + print(ret) assert ret == {'status': 200} ret = database.addBMNode(node4) - print ret + print(ret) assert ret == {'status': 200} session = database.get_session() n1 = session.query(moltenirond.Nodes).filter_by(name=node1["name"]).one() session.close() ret = database.removeBMNode(n1.id, False) - print ret + print(ret) assert ret['status'] == 200 database.close()