)]}'
{"climate/manager/__init__.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2263ccb47f426f0f9706d113a1d05e2bf358af1f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":"CONF.register_opts(opts, \u0027manager\u0027)"},{"line_number":27,"context_line":"CONF.import_opt(\u0027host\u0027, \u0027climate.config\u0027)"},{"line_number":28,"context_line":"RPC_API_VERSION \u003d \u00271.0\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get_target():"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BBJA%3D","line":28,"updated":"2013-12-03 12:54:52.000000000","message":"I would prefer leaving the RPC_API_VERSION into 2 different pieces (rpcapi and service), so it would allow to test upgrades compatibility between those.","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"6bc80eaeeefe04e53a246dfa47b2e63000a2dc79","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":"CONF.register_opts(opts, \u0027manager\u0027)"},{"line_number":27,"context_line":"CONF.import_opt(\u0027host\u0027, \u0027climate.config\u0027)"},{"line_number":28,"context_line":"RPC_API_VERSION \u003d \u00271.0\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get_target():"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F98Ug%3D","line":28,"in_reply_to":"AAAATn%2F%2BBJA%3D","updated":"2013-12-04 07:09:21.000000000","message":"I think it\u0027s better to complicate logic of RPC versions only in case there will be need in it. Now there is no need in two of them, but if we create two variables here, we\u0027ll have problems with keeping in mind there are really two of them and modify both if there will be such problem :)","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"049f80a4d9230ae867ad936b37d4759cddff9de8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":"CONF.register_opts(opts, \u0027manager\u0027)"},{"line_number":27,"context_line":"CONF.import_opt(\u0027host\u0027, \u0027climate.config\u0027)"},{"line_number":28,"context_line":"RPC_API_VERSION \u003d \u00271.0\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get_target():"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F98Eg%3D","line":28,"in_reply_to":"AAAATn%2F98Ug%3D","updated":"2013-12-04 08:45:02.000000000","message":"My concern is to explicitely say in code which versions are backward-compatible and which not. I do agree this is not currently needed, but in the future, we could assume that","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"}],"climate/manager/service.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2263ccb47f426f0f9706d113a1d05e2bf358af1f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def start(self):"},{"line_number":56,"context_line":"        super(ManagerService, self).start()"},{"line_number":57,"context_line":"        self.tg.add_timer(10, self._event)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_plugins(self):"},{"line_number":60,"context_line":"        \"\"\"Return dict of resource-plugin class pairs.\"\"\""},{"line_number":61,"context_line":"        config_plugins \u003d CONF.manager.plugins"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BBGI%3D","line":58,"updated":"2013-12-03 12:54:52.000000000","message":"we should also benefit from oslo.messaging to implement the stop() method","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"3e87092e3b1ddb3d4e2fe599a06f9f55f86b4b46","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def start(self):"},{"line_number":56,"context_line":"        super(ManagerService, self).start()"},{"line_number":57,"context_line":"        self.tg.add_timer(10, self._event)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_plugins(self):"},{"line_number":60,"context_line":"        \"\"\"Return dict of resource-plugin class pairs.\"\"\""},{"line_number":61,"context_line":"        config_plugins \u003d CONF.manager.plugins"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F98V4%3D","line":58,"in_reply_to":"AAAATn%2F%2BBGI%3D","updated":"2013-12-04 07:03:27.000000000","message":"Really can\u0027t get your point. The start method was written here only to start timer for looping calls, everything else can be found in its parents\u0027s start method. I suppose we don\u0027t need anything else for parent\u0027s stop method. Do you have something I missed for the stop method?","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"049f80a4d9230ae867ad936b37d4759cddff9de8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def start(self):"},{"line_number":56,"context_line":"        super(ManagerService, self).start()"},{"line_number":57,"context_line":"        self.tg.add_timer(10, self._event)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_plugins(self):"},{"line_number":60,"context_line":"        \"\"\"Return dict of resource-plugin class pairs.\"\"\""},{"line_number":61,"context_line":"        config_plugins \u003d CONF.manager.plugins"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F98EE%3D","line":58,"in_reply_to":"AAAATn%2F98V4%3D","updated":"2013-12-04 08:45:02.000000000","message":"Nevermind, I reviewed lately in the evening and the above comment is the result of a mix in between a busy day and a tired man :-)","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"}],"climate/scheduler/service.py":[{"author":{"_account_id":9225,"name":"Cristian A Sanchez","email":"cabsanchez@gmail.com","username":"casanch1"},"change_message_id":"23fb5f555d49d55734e7b25fd91432f17b5beb3a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class SchedulerService(object):"},{"line_number":19,"context_line":"    # see RPC service wrapper in climate.utils.service"},{"line_number":20,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2Fx34%3D","line":18,"updated":"2014-02-10 21:18:51.000000000","message":"Why is this class still needed?","commit_id":"f7fb61e9614de5473beeae79e6a2ffe41902f36d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cf5d9636605fb2bc490120a3732bca71be2097ab","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class SchedulerService(object):"},{"line_number":19,"context_line":"    # see RPC service wrapper in climate.utils.service"},{"line_number":20,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FuHw%3D","line":18,"in_reply_to":"AAAAUX%2F%2FuJI%3D","updated":"2014-02-11 08:39:47.000000000","message":"Will do","commit_id":"f7fb61e9614de5473beeae79e6a2ffe41902f36d"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"6dba71433cf30a11e68223cc678bb9a1c14a44d5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class SchedulerService(object):"},{"line_number":19,"context_line":"    # see RPC service wrapper in climate.utils.service"},{"line_number":20,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FuJI%3D","line":18,"in_reply_to":"AAAAUX%2F%2Fx34%3D","updated":"2014-02-11 08:36:09.000000000","message":"It was needed for hosts reservation (due to primary idea). If it should be removed, I\u0027ll ask Sylvain to do it in separated change.","commit_id":"f7fb61e9614de5473beeae79e6a2ffe41902f36d"}],"climate/utils/service.py":[{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8fd29ee4236dcc2d064c7c73acd4b09aa3b3c090","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class RPCClient(object):"},{"line_number":28,"context_line":"    def __init__(self, target):"},{"line_number":29,"context_line":"        self._client \u003d messaging.RPCClient("},{"line_number":30,"context_line":"            target\u003dtarget,"},{"line_number":31,"context_line":"            transport\u003dmessaging.get_transport(cfg.CONF),"},{"line_number":32,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BUaE%3D","line":29,"updated":"2013-11-27 13:04:18.000000000","message":"Add a super() call here.","commit_id":"478353151b8a0e9db9d620e6d9987fcc8a9b8fbb"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8fd29ee4236dcc2d064c7c73acd4b09aa3b3c090","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __getattr__(self, name):"},{"line_number":71,"context_line":"        method \u003d getattr(self.__endpoint, name)"},{"line_number":72,"context_line":"        return functools.partial(self.__run_method, method)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def with_empty_context(func):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BUZ0%3D","line":72,"updated":"2013-11-27 13:04:18.000000000","message":"I think that __run_method can be embedded here to avoid lots of Python magic (2 __ names and partial)","commit_id":"478353151b8a0e9db9d620e6d9987fcc8a9b8fbb"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"1bc41a276514e87559aab9bc56c5c17417702a48","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from climate.openstack.common import log"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class RPCClient(object):"},{"line_number":28,"context_line":"    def __init__(self, target):"},{"line_number":29,"context_line":"        super(RPCClient, self).__init__()"},{"line_number":30,"context_line":"        self._client \u003d messaging.RPCClient("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F95zI%3D","line":27,"updated":"2013-12-04 17:43:00.000000000","message":"Just curious...should this class be extending messaging.rpc.client.RPCClient in oslo.messaging?","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"550e72549c2b267887e0ed9cd6ad2039c2cf0eb3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from climate.openstack.common import log"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class RPCClient(object):"},{"line_number":28,"context_line":"    def __init__(self, target):"},{"line_number":29,"context_line":"        super(RPCClient, self).__init__()"},{"line_number":30,"context_line":"        self._client \u003d messaging.RPCClient("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F94Dk%3D","line":27,"in_reply_to":"AAAATn%2F95zI%3D","updated":"2013-12-04 23:39:52.000000000","message":"Sorry, this looks correct, please withdraw comment.","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"1bc41a276514e87559aab9bc56c5c17417702a48","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class RPCServer(object):"},{"line_number":45,"context_line":"    def __init__(self, target):"},{"line_number":46,"context_line":"        super(RPCServer, self).__init__()"},{"line_number":47,"context_line":"        self._server \u003d messaging.get_rpc_server("},{"line_number":48,"context_line":"            target\u003dtarget,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F95yk%3D","line":45,"updated":"2013-12-04 17:43:00.000000000","message":"Again just trying to understand the messaging framework...is this class a replacement for, or maybe should extend, messaging.server.MessageHandlingServer?","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"550e72549c2b267887e0ed9cd6ad2039c2cf0eb3","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class RPCServer(object):"},{"line_number":45,"context_line":"    def __init__(self, target):"},{"line_number":46,"context_line":"        super(RPCServer, self).__init__()"},{"line_number":47,"context_line":"        self._server \u003d messaging.get_rpc_server("},{"line_number":48,"context_line":"            target\u003dtarget,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F94DY%3D","line":45,"in_reply_to":"AAAATn%2F95yk%3D","updated":"2013-12-04 23:39:52.000000000","message":"Sorry, this looks correct, please withdraw comment.","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2263ccb47f426f0f9706d113a1d05e2bf358af1f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.target \u003d target"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def __getattr__(self, name):"},{"line_number":68,"context_line":"        method \u003d getattr(self.__endpoint, name)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        def run_method(__ctx, **kwargs):"},{"line_number":71,"context_line":"            with context.ClimateContext(**__ctx):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BBFY%3D","line":68,"updated":"2013-12-03 12:54:52.000000000","message":"what if the method is unknown ? shouldn\u0027t we handle the AttributeNotFound exception ?","commit_id":"987d07a6f8e85dcedf104beeca98f2cb7e4b617f"}],"requirements.txt":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b9c005d2ae11e68c82a0db778d889820b698b0d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"stevedore\u003e\u003d0.10"},{"line_number":14,"context_line":"WebOb\u003e\u003d1.2.3,\u003c1.3"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"-f http://tarballs.openstack.org/oslo.messaging/oslo.messaging-1.3.0a1.tar.gz#egg\u003doslo.messaging-1.3.0a1"},{"line_number":17,"context_line":"oslo.messaging\u003e\u003d1.2.0a11"}],"source_content_type":"text/plain","patch_set":9,"id":"AAAAUH%2F%2FSWo%3D","line":16,"updated":"2014-01-15 13:28:52.000000000","message":"1.3.0a2 is now out, should we use it ?","commit_id":"586b307aca606a65c07819442a06b2ce9708d699"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"b500c65751f3c088ab4dc79eb8f9653fb48c92a1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"stevedore\u003e\u003d0.10"},{"line_number":14,"context_line":"WebOb\u003e\u003d1.2.3,\u003c1.3"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"-f http://tarballs.openstack.org/oslo.messaging/oslo.messaging-1.3.0a1.tar.gz#egg\u003doslo.messaging-1.3.0a1"},{"line_number":17,"context_line":"oslo.messaging\u003e\u003d1.2.0a11"}],"source_content_type":"text/plain","patch_set":9,"id":"AAAAUH%2F%2FE0A%3D","line":16,"in_reply_to":"AAAAUH%2F%2FRFk%3D","updated":"2014-01-17 17:18:19.000000000","message":"I\u0027ll prefer to have here 1.2.0a11 because it\u0027s in current dev-requirements. Also, there are many changed between 1.2.0a11 and 1.3.0a3 (today\u0027s tag), so I need to test it heavily to use.","commit_id":"586b307aca606a65c07819442a06b2ce9708d699"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"bf32b621e5c379b73878861a73db3a8891f12e47","unresolved":false,"context_lines":[{"line_number":13,"context_line":"stevedore\u003e\u003d0.10"},{"line_number":14,"context_line":"WebOb\u003e\u003d1.2.3,\u003c1.3"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"-f http://tarballs.openstack.org/oslo.messaging/oslo.messaging-1.3.0a1.tar.gz#egg\u003doslo.messaging-1.3.0a1"},{"line_number":17,"context_line":"oslo.messaging\u003e\u003d1.2.0a11"}],"source_content_type":"text/plain","patch_set":9,"id":"AAAAUH%2F%2FRFk%3D","line":16,"in_reply_to":"AAAAUH%2F%2FSWo%3D","updated":"2014-01-15 17:15:24.000000000","message":"I\u0027ll install that on my lab and test tomorrow, but it seems it\u0027ll be ok and we should use the latest possible one.","commit_id":"586b307aca606a65c07819442a06b2ce9708d699"}]}
