)]}'
{"ironic/common/exception.py":[{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                \u0027conductor workers.\u0027)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"class IloOperationError(IronicException):"},{"line_number":343,"context_line":"    message \u003d _(\"iLO operation failed, error: %(msg)s \")"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2F7cM%3D","line":342,"updated":"2014-02-27 10:40:46.000000000","message":"I saw you using Iloxxxx in some class declare and using iLO in other places, advice to uniform them.","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"},{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    message \u003d _(\"iLO operation failed, error: %(msg)s \")"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"class IloLicenseError(IronicException):"},{"line_number":347,"context_line":"    message \u003d _(\"Invalid iLO license, error: %(msg)s\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2F7cQ%3D","line":346,"updated":"2014-02-27 10:40:46.000000000","message":"the same as above","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"}],"ironic/drivers/modules/ilo_common.py":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ironic.common import exception"},{"line_number":22,"context_line":"from ironic.drivers.modules import ribcl_ilo"},{"line_number":23,"context_line":"from ironic.openstack.common import log as logging"},{"line_number":24,"context_line":"from oslo.config import cfg"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opts \u003d ["},{"line_number":27,"context_line":"    cfg.IntOpt(\u0027ribcl_timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fqeg%3D","line":24,"updated":"2014-02-25 14:30:22.000000000","message":"oslo should be in 3rd import group, please follow the import groups order:\n\n\u003cstdlib\u003e\n\n\u003cthird party\u003e\n\n\u003cthis code tree\u003e","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ironic.common import exception"},{"line_number":22,"context_line":"from ironic.drivers.modules import ribcl_ilo"},{"line_number":23,"context_line":"from ironic.openstack.common import log as logging"},{"line_number":24,"context_line":"from oslo.config import cfg"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opts \u003d ["},{"line_number":27,"context_line":"    cfg.IntOpt(\u0027ribcl_timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlDI%3D","line":24,"in_reply_to":"AAAAU3%2F%2Fqeg%3D","updated":"2014-02-25 20:39:30.000000000","message":"Done","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":26,"context_line":"opts \u003d ["},{"line_number":27,"context_line":"    cfg.IntOpt(\u0027ribcl_timeout\u0027,"},{"line_number":28,"context_line":"               default\u003d60,"},{"line_number":29,"context_line":"               help\u003d\u0027Default timeout for iLO operations\u0027),"},{"line_number":30,"context_line":"    cfg.IntOpt(\u0027ribcl_port\u0027,"},{"line_number":31,"context_line":"               default\u003d443,"},{"line_number":32,"context_line":"               help\u003d\u0027Default port to be used for iLO operations\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FqeI%3D","line":29,"updated":"2014-02-25 14:30:22.000000000","message":"suggest:\n\n    help\u003d\u0027Default timeout (in seconds) for iLO operations\u0027","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"opts \u003d ["},{"line_number":27,"context_line":"    cfg.IntOpt(\u0027ribcl_timeout\u0027,"},{"line_number":28,"context_line":"               default\u003d60,"},{"line_number":29,"context_line":"               help\u003d\u0027Default timeout for iLO operations\u0027),"},{"line_number":30,"context_line":"    cfg.IntOpt(\u0027ribcl_port\u0027,"},{"line_number":31,"context_line":"               default\u003d443,"},{"line_number":32,"context_line":"               help\u003d\u0027Default port to be used for iLO operations\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlDA%3D","line":29,"in_reply_to":"AAAAU3%2F%2FqeI%3D","updated":"2014-02-25 20:39:30.000000000","message":"Done","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        license_info \u003d ilo_object.get_all_licenses()"},{"line_number":103,"context_line":"    except Exception as ilo_exception:"},{"line_number":104,"context_line":"        error_msg \u003d \"iLO license check failed - \" + str(ilo_exception)"},{"line_number":105,"context_line":"        raise exception.IloLicenseError(msg\u003derror_msg)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # Get the regexp for the license"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FqcE%3D","line":104,"updated":"2014-02-25 14:30:22.000000000","message":"We have to enable i18n support for error message:\n    \n    error_msg \u003d _(\"iLO license check failed: %s\") % ilo_exception","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"9e9c830f30e11187b071b30ff69a19ea36a5d8be","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        license_info \u003d ilo_object.get_all_licenses()"},{"line_number":103,"context_line":"    except Exception as ilo_exception:"},{"line_number":104,"context_line":"        error_msg \u003d \"iLO license check failed - \" + str(ilo_exception)"},{"line_number":105,"context_line":"        raise exception.IloLicenseError(msg\u003derror_msg)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # Get the regexp for the license"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FgTQ%3D","line":104,"in_reply_to":"AAAAU3%2F%2FlCY%3D","updated":"2014-02-26 08:46:30.000000000","message":"ok, that is fine:)","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        license_info \u003d ilo_object.get_all_licenses()"},{"line_number":103,"context_line":"    except Exception as ilo_exception:"},{"line_number":104,"context_line":"        error_msg \u003d \"iLO license check failed - \" + str(ilo_exception)"},{"line_number":105,"context_line":"        raise exception.IloLicenseError(msg\u003derror_msg)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # Get the regexp for the license"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlCY%3D","line":104,"in_reply_to":"AAAAU3%2F%2FqcE%3D","updated":"2014-02-25 20:39:30.000000000","message":"The variable error_msg generated is used only for the IloLicenseError below.  The message in IloLicenseError is enabled for i18n support (in ironic/common/exception.py)","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    if error_msg \u003d\u003d \"\":"},{"line_number":117,"context_line":"        error_msg \u003d \"Missing \" + license"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    # If we didn\u0027t find the license, raise an exception"},{"line_number":120,"context_line":"    raise exception.IloLicenseError(msg\u003derror_msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FqbY%3D","line":117,"updated":"2014-02-25 14:30:22.000000000","message":"ditto:\n\n     error_msg \u003d _(\"Missing %s\") % license","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"9e9c830f30e11187b071b30ff69a19ea36a5d8be","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    if error_msg \u003d\u003d \"\":"},{"line_number":117,"context_line":"        error_msg \u003d \"Missing \" + license"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    # If we didn\u0027t find the license, raise an exception"},{"line_number":120,"context_line":"    raise exception.IloLicenseError(msg\u003derror_msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FgTI%3D","line":117,"in_reply_to":"AAAAU3%2F%2FlCE%3D","updated":"2014-02-26 08:46:30.000000000","message":"yes, agree, make sense","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    if error_msg \u003d\u003d \"\":"},{"line_number":117,"context_line":"        error_msg \u003d \"Missing \" + license"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    # If we didn\u0027t find the license, raise an exception"},{"line_number":120,"context_line":"    raise exception.IloLicenseError(msg\u003derror_msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlCE%3D","line":117,"in_reply_to":"AAAAU3%2F%2FqbY%3D","updated":"2014-02-25 20:39:30.000000000","message":"same as above,\n\nThe variable error_msg generated is used only for the IloLicenseError below.  The message in IloLicenseError is enabled for i18n support (in ironic/common/exception.py)","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"}],"ironic/drivers/modules/ribcl_ilo.py":[{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        root \u003d etree.Element(\u0027RIBCL\u0027, VERSION\u003d\"2.0\")"},{"line_number":120,"context_line":"        login \u003d etree.SubElement("},{"line_number":121,"context_line":"            root, \u0027LOGIN\u0027, USER_LOGIN\u003dself.login, PASSWORD\u003dself.password)"},{"line_number":122,"context_line":"        tagname \u003d etree.SubElement(login, tag_name, MODE\u003dmode)"},{"line_number":123,"context_line":"        etree.SubElement(tagname, cmdname)"},{"line_number":124,"context_line":"        for key in dic:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2F7a4%3D","line":121,"updated":"2014-02-27 10:40:46.000000000","message":"This style might be not allowed by pep8, right?\nadvice to use style:\n(param1,\nparam2,\nparam3)","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"},{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            message \u003d etree.fromstring(result)"},{"line_number":166,"context_line":"            resp \u003d self._validate_message(message)"},{"line_number":167,"context_line":"            if hasattr(resp, \u0027tag\u0027):"},{"line_number":168,"context_line":"                d \u003d {}"},{"line_number":169,"context_line":"                d \u003d self._elementtree_to_dict(resp)"},{"line_number":170,"context_line":"            elif resp is not None:"},{"line_number":171,"context_line":"                resp_message \u003d resp"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2F7WE%3D","line":168,"updated":"2014-02-27 10:40:46.000000000","message":"I think the d \u003d {} is unnecessary, right?","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"}],"ironic/tests/drivers/test_ilo_common.py":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"Test class for common methods used by iLO modules.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from ironic.common import exception"},{"line_number":22,"context_line":"from ironic.db import api as dbapi"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fo4Y%3D","line":19,"updated":"2014-02-25 14:30:22.000000000","message":"oslo should be in 3rd import group, please follow the import groups order:\n\n\u003cstdlib\u003e\n\n\u003cthird party\u003e\n\n\u003cthis code tree\u003e","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"Test class for common methods used by iLO modules.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from ironic.common import exception"},{"line_number":22,"context_line":"from ironic.db import api as dbapi"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlDU%3D","line":19,"in_reply_to":"AAAAU3%2F%2Fo4Y%3D","updated":"2014-02-25 20:39:30.000000000","message":"Done","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"0d48e2f126bea5ab86421155a995dacacb92b2db","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                                          \u0027iLO Advanced License\u0027,"},{"line_number":76,"context_line":"                                          error_msg\u003dcustom_error_msg)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        except exception.IloLicenseError as exc:"},{"line_number":79,"context_line":"            self.assertEqual(\u0027Invalid iLO license, error: \u0027 + custom_error_msg,"},{"line_number":80,"context_line":"                             str(exc))"},{"line_number":81,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fo5M%3D","line":78,"updated":"2014-02-25 14:30:22.000000000","message":"We can use self.assertRaises() method call to assert the exception we expected, a reference as below:\n\nhttps://github.com/openstack/ironic/blob/master/ironic/tests/drivers/test_ipmitool.py#L92","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c8365f0bfebac80a12b09200f090ffcf3bf376c5","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                                          \u0027iLO Advanced License\u0027,"},{"line_number":76,"context_line":"                                          error_msg\u003dcustom_error_msg)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        except exception.IloLicenseError as exc:"},{"line_number":79,"context_line":"            self.assertEqual(\u0027Invalid iLO license, error: \u0027 + custom_error_msg,"},{"line_number":80,"context_line":"                             str(exc))"},{"line_number":81,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FlDc%3D","line":78,"in_reply_to":"AAAAU3%2F%2Fo5M%3D","updated":"2014-02-25 20:39:30.000000000","message":"We wanted to catch the exception here, because we wanted to check if the exception was raised and also wanted to compare the message generated for the exception whether it contained the passed message or not.","commit_id":"e9807f5798280948efab64afbe3dd3576812297b"},{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.assertIsNotNone(info.get(\u0027port\u0027))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.ribcl_ilo.iLO\u0027)"},{"line_number":59,"context_line":"    def test__check_for_license(self, ilomock):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        ilo_advanced_license \u003d {"},{"line_number":62,"context_line":"            \u0027LICENSE_TYPE\u0027: \u0027iLO 3 Advanced\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2F7No%3D","line":59,"updated":"2014-02-27 10:40:46.000000000","message":"The UT test two case advanced_license and normal_license, is it?\nAdvice to divide to two test case","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"}],"setup.cfg":[{"author":{"_account_id":10486,"name":"Song Li","email":"lisongbj@cn.ibm.com","username":"sbookworm"},"change_message_id":"c27af4f7380ae1d2072b79110b8b9e4693a6f3ee","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    pxe_ipmitool \u003d ironic.drivers.pxe:PXEAndIPMIToolDriver"},{"line_number":39,"context_line":"    pxe_ipminative \u003d ironic.drivers.pxe:PXEAndIPMINativeDriver"},{"line_number":40,"context_line":"    pxe_ssh \u003d ironic.drivers.pxe:PXEAndSSHDriver"},{"line_number":41,"context_line":"    ilo \u003d ironic.drivers.ilo:IloDriver"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[pbr]"},{"line_number":44,"context_line":"autodoc_index_modules \u003d True"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"AAAAVX%2F%2F7NE%3D","line":41,"updated":"2014-02-27 10:40:46.000000000","message":"advice to uniform the usage ether Ilo or iLO in code","commit_id":"21960364c5d0bebab02231fcca09429a47f48151"}]}
