)]}'
{"ceilometer/compute/virt/xenapi/inspector.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"868fd4c0d01c05bf4ce875134f3ae4566b3141f3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2014 Intel"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Ren Qiaowei \u003cqiaowei.ren@intel.com\u003e"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_05b5b1ec","line":1,"updated":"2014-08-06 09:24:27.000000000","message":"do you need this first empty line?","commit_id":"fdf4d5d686d55bae9648d041abbab88945142b8f"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"e403b276e579396c13b867e23292d512bde6ca50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2014 Intel"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Ren Qiaowei \u003cqiaowei.ren@intel.com\u003e"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_80152f3f","line":1,"in_reply_to":"baada198_05b5b1ec","updated":"2014-08-06 09:41:35.000000000","message":"I will remove this line. It is from libvirt/inspector.py ^-^","commit_id":"fdf4d5d686d55bae9648d041abbab88945142b8f"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"868fd4c0d01c05bf4ce875134f3ae4566b3141f3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":53,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":54,"context_line":"    if not url or password is None:"},{"line_number":55,"context_line":"        raise Exception(_(\u0027Must specify connection_url, \u0027"},{"line_number":56,"context_line":"                          \u0027connection_username (optionally), and \u0027"},{"line_number":57,"context_line":"                          \u0027connection_password to use\u0027))"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_45740937","line":55,"updated":"2014-08-06 09:24:27.000000000","message":"please create some specific Exception class to be used here, as Exception is too broad one - if yo\u0027ll catch it you\u0027ll need to write \u0027except Exception\u0027, that\u0027s bad python style actually.","commit_id":"fdf4d5d686d55bae9648d041abbab88945142b8f"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"a17bf1ef41462c7838b57680ba3cf0282fd58dd1","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":53,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":54,"context_line":"    if not url or password is None:"},{"line_number":55,"context_line":"        raise Exception(_(\u0027Must specify connection_url, \u0027"},{"line_number":56,"context_line":"                          \u0027connection_username (optionally), and \u0027"},{"line_number":57,"context_line":"                          \u0027connection_password to use\u0027))"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_8c338cc3","line":55,"in_reply_to":"baada198_45740937","updated":"2014-08-07 02:00:06.000000000","message":"Done. create new XenapiException class to do it. thanks.","commit_id":"fdf4d5d686d55bae9648d041abbab88945142b8f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"a5d4ac0c95cc78d40c0c986a120916459ed72e44","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        with timeout.Timeout(CONF.xenapi.login_timeout, exception):"},{"line_number":67,"context_line":"            session.login_with_password(username, password)"},{"line_number":68,"context_line":"    except api.Failure as e:"},{"line_number":69,"context_line":"        LOG.debug(_(\u0027Could not connect to XenAPI: %s\u0027), e.details[0])"},{"line_number":70,"context_line":"    return session"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_3800f768","line":69,"updated":"2014-08-07 05:10:05.000000000","message":"Please follow the http://docs.openstack.org/developer/oslo.i18n/guidelines.html, we don\u0027t translate the debug message.","commit_id":"e14fd61c1bb48065430ef0e94c65e41819ae0116"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"71c6cc6b959e23bd3f8cbaf046a84e97613ff1b6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        with timeout.Timeout(CONF.xenapi.login_timeout, exception):"},{"line_number":67,"context_line":"            session.login_with_password(username, password)"},{"line_number":68,"context_line":"    except api.Failure as e:"},{"line_number":69,"context_line":"        LOG.debug(_(\u0027Could not connect to XenAPI: %s\u0027), e.details[0])"},{"line_number":70,"context_line":"    return session"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_db72954a","line":69,"in_reply_to":"baada198_3800f768","updated":"2014-08-07 06:00:00.000000000","message":"Done. raise one exception.","commit_id":"e14fd61c1bb48065430ef0e94c65e41819ae0116"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"21f48277c67a517d4d306b0c288a32ca52efb12c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":22,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027xenapi\u0027,"},{"line_number":27,"context_line":"                         title\u003d\u0027Options for XenAPI\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_91b4fcd4","line":24,"updated":"2014-08-11 20:31:30.000000000","message":"never used","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"44cf7cdb54fcf1894027dd4c38fa63e250f5e3c5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":22,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027xenapi\u0027,"},{"line_number":27,"context_line":"                         title\u003d\u0027Options for XenAPI\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_d29ca80f","line":24,"in_reply_to":"baada198_91b4fcd4","updated":"2014-08-12 04:57:57.000000000","message":"done","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"21f48277c67a517d4d306b0c288a32ca52efb12c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":56,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":57,"context_line":"    if not url or password is None:"},{"line_number":58,"context_line":"        raise XenapiException(_(\u0027Must specify connection_url, \u0027"},{"line_number":59,"context_line":"                                \u0027connection_username (optionally), and \u0027"},{"line_number":60,"context_line":"                                \u0027connection_password to use\u0027))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f657ee56","line":58,"updated":"2014-08-11 20:31:30.000000000","message":"missing import _ above","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"44cf7cdb54fcf1894027dd4c38fa63e250f5e3c5","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":56,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":57,"context_line":"    if not url or password is None:"},{"line_number":58,"context_line":"        raise XenapiException(_(\u0027Must specify connection_url, \u0027"},{"line_number":59,"context_line":"                                \u0027connection_username (optionally), and \u0027"},{"line_number":60,"context_line":"                                \u0027connection_password to use\u0027))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f2860cb9","line":58,"in_reply_to":"baada198_f657ee56","updated":"2014-08-12 04:57:57.000000000","message":"done","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"21f48277c67a517d4d306b0c288a32ca52efb12c","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":57,"context_line":"    if not url or password is None:"},{"line_number":58,"context_line":"        raise XenapiException(_(\u0027Must specify connection_url, \u0027"},{"line_number":59,"context_line":"                                \u0027connection_username (optionally), and \u0027"},{"line_number":60,"context_line":"                                \u0027connection_password to use\u0027))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    exception \u003d api.Failure(_(\"Unable to log in to XenAPI \""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_313330f8","line":59,"updated":"2014-08-11 20:31:30.000000000","message":"maybe remove this user_name comment as it\u0027s irrelevant to exception","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"44cf7cdb54fcf1894027dd4c38fa63e250f5e3c5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    password \u003d CONF.xenapi.connection_password"},{"line_number":57,"context_line":"    if not url or password is None:"},{"line_number":58,"context_line":"        raise XenapiException(_(\u0027Must specify connection_url, \u0027"},{"line_number":59,"context_line":"                                \u0027connection_username (optionally), and \u0027"},{"line_number":60,"context_line":"                                \u0027connection_password to use\u0027))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    exception \u003d api.Failure(_(\"Unable to log in to XenAPI \""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_72bafc71","line":59,"in_reply_to":"baada198_313330f8","updated":"2014-08-12 04:57:57.000000000","message":"done","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"21f48277c67a517d4d306b0c288a32ca52efb12c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        with timeout.Timeout(CONF.xenapi.login_timeout, exception):"},{"line_number":67,"context_line":"            session.login_with_password(username, password)"},{"line_number":68,"context_line":"    except api.Failure as e:"},{"line_number":69,"context_line":"        msg \u003d _(\"Could not connect to XenAPI: %s\") % e.details[0]"},{"line_number":70,"context_line":"        raise XenapiException(msg)"},{"line_number":71,"context_line":"    return session"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f1b37896","line":69,"updated":"2014-08-11 20:31:30.000000000","message":"why just e.details[0]?","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"44cf7cdb54fcf1894027dd4c38fa63e250f5e3c5","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        with timeout.Timeout(CONF.xenapi.login_timeout, exception):"},{"line_number":67,"context_line":"            session.login_with_password(username, password)"},{"line_number":68,"context_line":"    except api.Failure as e:"},{"line_number":69,"context_line":"        msg \u003d _(\"Could not connect to XenAPI: %s\") % e.details[0]"},{"line_number":70,"context_line":"        raise XenapiException(msg)"},{"line_number":71,"context_line":"    return session"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_9264f021","line":69,"in_reply_to":"baada198_f1b37896","updated":"2014-08-12 04:57:57.000000000","message":"details[0] show error type, like HANDLE_INVALID, and it should be enough in this case.","commit_id":"34551c8b2515b66c896896765522b7aac2b4fc0e"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"a3faa7eac9eaaf9a57b079d2b609c92791e92477","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def get_api_session():"},{"line_number":51,"context_line":"    import XenAPI as api"},{"line_number":52,"context_line":"    url \u003d CONF.xenapi.connection_url"},{"line_number":53,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":54,"context_line":"    password \u003d CONF.xenapi.connection_password"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_22b3cb4e","line":51,"updated":"2014-08-12 10:42:49.000000000","message":"what is that? actually that\u0027s a bad practice to have imports not in the import section.","commit_id":"657c6a6e6607e59fb1e42b4e22cb9b0c322ea46e"},{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"a5362464940c86a11efd5ece595f2bb6c97cbff6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def get_api_session():"},{"line_number":51,"context_line":"    import XenAPI as api"},{"line_number":52,"context_line":"    url \u003d CONF.xenapi.connection_url"},{"line_number":53,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":54,"context_line":"    password \u003d CONF.xenapi.connection_password"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_44e8a4df","line":51,"in_reply_to":"baada198_22b3cb4e","updated":"2014-08-13 02:37:21.000000000","message":"if do so, Jackins will fail (no XenAPI module). In fact, it is from nova xenapi code.","commit_id":"657c6a6e6607e59fb1e42b4e22cb9b0c322ea46e"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"cd2787fe5554c8b973da0c82be9676dbafc9a7b4","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def get_api_session():"},{"line_number":51,"context_line":"    import XenAPI as api"},{"line_number":52,"context_line":"    url \u003d CONF.xenapi.connection_url"},{"line_number":53,"context_line":"    username \u003d CONF.xenapi.connection_username"},{"line_number":54,"context_line":"    password \u003d CONF.xenapi.connection_password"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_7d70cf41","line":51,"in_reply_to":"baada198_44e8a4df","updated":"2014-08-13 09:39:19.000000000","message":"that might be walked around by try:except pair with ImportError caught - so you may set api to None if no this module was found and raise error from this function - that will be better solution here","commit_id":"657c6a6e6607e59fb1e42b4e22cb9b0c322ea46e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"99efdc7f47c27032ceb603468b2092a70f25ac73","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _get_host_ref(self):"},{"line_number":84,"context_line":"        \"\"\"Return the xenapi host on which nova-compute runs on.\"\"\""},{"line_number":85,"context_line":"        return self.session.xenapi.session.get_this_host(self.session.handle)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def _call_xenapi(self, method, *args):"},{"line_number":88,"context_line":"        return self.session.xenapi_request(method, args)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_bdca689f","line":85,"updated":"2014-08-18 13:22:50.000000000","message":"i don\u0027t quite understand why this is a method if it\u0027s not reused.","commit_id":"cec1bbe78e9f311d5d4fa84d94418dc6a6a0bca8"}],"ceilometer/tests/compute/virt/xenapi/test_inspector.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"868fd4c0d01c05bf4ce875134f3ae4566b3141f3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2014 Intel"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Ren Qiaowei \u003cqiaowei.ren@intel.com\u003e"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_e5943d38","line":1,"updated":"2014-08-06 09:24:27.000000000","message":"ditto previous comment","commit_id":"fdf4d5d686d55bae9648d041abbab88945142b8f"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"f8dc93e31ccd75a7e4b8e2e757f994385c8a9617","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        vms \u003d {"},{"line_number":36,"context_line":"            \u0027ref\u0027: {"},{"line_number":37,"context_line":"                \u0027name_label\u0027: \u0027fake_name\u0027,"},{"line_number":38,"context_line":"                \u0027other_config\u0027: {\u0027nova_uuid\u0027: \u0027fake_uuid\u0027, }"},{"line_number":39,"context_line":"            }"},{"line_number":40,"context_line":"        }"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_14fc0540","line":38,"updated":"2014-08-13 13:06:02.000000000","message":"Please, set comma at the end of line, because if in future ref will change, you\u0027ll need to modify two lines instead of one.","commit_id":"3c4b0c29a650dde5c1653fc23e22464db52364f8"}]}
