)]}'
{"climate/api/extensions/reservation.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a3469d0c106a1885a896c5d3417f06d77f9fe2c5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            self.compute_api.shelve(nova_ctx, instance)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"            # send lease creation request to Climate"},{"line_number":89,"context_line":"            climate_cl.lease.create(**lease_params)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_climate_client(self, catalog, user_roles, auth_token):"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2Ffmc%3D","line":89,"updated":"2014-01-13 10:52:08.000000000","message":"We should get the result of the lease creation *and then* shelve the instance only if the result is correct.\nIf not, it should lead to race conditions or the instance could be shelved without any lease created.","commit_id":"f3cc1cd1ab4b3498e1c6780e256b796517c7c3cd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"902a88fd7a9cb5f114f90dbc9c6b9de69ecce76f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            self.compute_api.shelve(nova_ctx, instance)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"            # send lease creation request to Climate"},{"line_number":89,"context_line":"            climate_cl.lease.create(**lease_params)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_climate_client(self, catalog, user_roles, auth_token):"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FfmE%3D","line":89,"in_reply_to":"AAAAUH%2F%2Ffmc%3D","updated":"2014-01-13 10:54:09.000000000","message":"See the PR use case for LeaseTransaction :\n\nhttps://review.openstack.org/#/c/64706/2/climate/manager/service.py\n\nIdeally, we should use a with statement.","commit_id":"f3cc1cd1ab4b3498e1c6780e256b796517c7c3cd"}],"climate/extensions/default_reservation.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a27cbaf8d8a87a637c1d8605d7080f9134d3f62e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 Mirantis Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fs58%3D","line":1,"updated":"2014-01-09 13:07:03.000000000","message":"Please move the module to climate.api.extensions\n\nWe need to be clear about which section of Nova is related to this code, without reading it.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import datetime"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from nova.api.openstack import extensions"},{"line_number":28,"context_line":"from nova.api.openstack import wsgi"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BIU%3D","line":25,"updated":"2014-01-06 02:54:10.000000000","message":"suggest put \"from oslo.config import cfg\" to second section of import as it is 3rd party libs but not std lib","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"ad2b8914cf76a76868349565151f53d61801c0ce","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import datetime"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from nova.api.openstack import extensions"},{"line_number":28,"context_line":"from nova.api.openstack import wsgi"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F9dk%3D","line":25,"in_reply_to":"AAAAUH%2F%2F%2BIU%3D","updated":"2014-01-06 07:14:55.000000000","message":"Sure, missed this.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            strftime(\u0027%Y-%m-%d %H:%M\u0027)"},{"line_number":83,"context_line":"        })"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        if \u0027server\u0027 in body:"},{"line_number":86,"context_line":"            if \u0027scheduler_hints\u0027 in body[\u0027server\u0027]:"},{"line_number":87,"context_line":"                if \u0027lease_params\u0027 not in body[\u0027server\u0027][\u0027scheduler_hints\u0027]:"},{"line_number":88,"context_line":"                    body[\u0027server\u0027][\u0027scheduler_hints\u0027].update(default_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BD0%3D","line":85,"updated":"2014-01-06 02:54:10.000000000","message":"Suggest use is_valid_body first.\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L765","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"ad2b8914cf76a76868349565151f53d61801c0ce","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            strftime(\u0027%Y-%m-%d %H:%M\u0027)"},{"line_number":83,"context_line":"        })"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        if \u0027server\u0027 in body:"},{"line_number":86,"context_line":"            if \u0027scheduler_hints\u0027 in body[\u0027server\u0027]:"},{"line_number":87,"context_line":"                if \u0027lease_params\u0027 not in body[\u0027server\u0027][\u0027scheduler_hints\u0027]:"},{"line_number":88,"context_line":"                    body[\u0027server\u0027][\u0027scheduler_hints\u0027].update(default_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F9dY%3D","line":85,"in_reply_to":"AAAAUH%2F%2F%2BD0%3D","updated":"2014-01-06 07:14:55.000000000","message":"Ok, will do.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                body[\u0027server\u0027][\u0027scheduler_hints\u0027] \u003d default_hints"},{"line_number":91,"context_line":"        else:"},{"line_number":92,"context_line":"            attr \u003d \u0027%s:scheduler_hints\u0027 % \u0027OS-SCH-HNT\u0027"},{"line_number":93,"context_line":"            if \u0027os:scheduler_hints\u0027 in body and \\"},{"line_number":94,"context_line":"                    \u0027lease_params\u0027 not in body[\u0027os:scheduler_hints\u0027]:"},{"line_number":95,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BGc%3D","line":92,"updated":"2014-01-06 02:54:10.000000000","message":"Why not\n\nattr \u003d \u0027OS-SCH-HNT:scheduler_hints\u0027","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"ad2b8914cf76a76868349565151f53d61801c0ce","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                body[\u0027server\u0027][\u0027scheduler_hints\u0027] \u003d default_hints"},{"line_number":91,"context_line":"        else:"},{"line_number":92,"context_line":"            attr \u003d \u0027%s:scheduler_hints\u0027 % \u0027OS-SCH-HNT\u0027"},{"line_number":93,"context_line":"            if \u0027os:scheduler_hints\u0027 in body and \\"},{"line_number":94,"context_line":"                    \u0027lease_params\u0027 not in body[\u0027os:scheduler_hints\u0027]:"},{"line_number":95,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F9dU%3D","line":92,"in_reply_to":"AAAAUH%2F%2F%2BGc%3D","updated":"2014-01-06 07:14:55.000000000","message":"Omg, something went wrong with me))) Sorry, will fix that)","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a82494caa1f22f18430ac3099133cfc3e7dabf3b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                body[\u0027server\u0027][\u0027scheduler_hints\u0027] \u003d default_hints"},{"line_number":91,"context_line":"        else:"},{"line_number":92,"context_line":"            attr \u003d \u0027%s:scheduler_hints\u0027 % \u0027OS-SCH-HNT\u0027"},{"line_number":93,"context_line":"            if \u0027os:scheduler_hints\u0027 in body and \\"},{"line_number":94,"context_line":"                    \u0027lease_params\u0027 not in body[\u0027os:scheduler_hints\u0027]:"},{"line_number":95,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"},{"line_number":96,"context_line":"            elif attr in body and \u0027lease_params\u0027 not in body[attr]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F9Xw%3D","line":93,"updated":"2014-01-06 07:42:14.000000000","message":"Also, pls do not use \u0027\\\u0027 for long string but use () instead.\n\nif (\u0027os:scheduler_hints\u0027 in body and \n   \u0027lease_params\u0027 not in body[\u0027os:scheduler_hints\u0027]):","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a27cbaf8d8a87a637c1d8605d7080f9134d3f62e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        yield"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"},{"line_number":102,"context_line":"    \"\"\"Instance reservation system.\"\"\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    name \u003d \"DefaultReservation\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fs50%3D","line":101,"updated":"2014-01-09 13:07:03.000000000","message":"DefaultReservation rather please.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"822995b5b3b7eab19e5a735f81ec1602e028995b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        yield"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"},{"line_number":102,"context_line":"    \"\"\"Instance reservation system.\"\"\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    name \u003d \"DefaultReservation\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fsgk%3D","line":101,"in_reply_to":"AAAAUH%2F%2Fs50%3D","updated":"2014-01-09 14:31:54.000000000","message":"That\u0027s rules of extensions naming, not my will))) It will be impossible for Nova to use that in case of other naming)) It searches the class with naming \u0027First_second\u0027 if module was called \u0027first_second\u0027.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c309462f5a3c95885879d8c30263b48d2446361","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        yield"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"},{"line_number":102,"context_line":"    \"\"\"Instance reservation system.\"\"\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    name \u003d \"DefaultReservation\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fsfk%3D","line":101,"in_reply_to":"AAAAUH%2F%2Fsgk%3D","updated":"2014-01-09 14:37:00.000000000","message":"Okay, was thinking it was a mistake, but if you say it\u0027s not... :-)","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"}],"climate/extensions/reservation.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            try:"},{"line_number":56,"context_line":"                lease_params \u003d json.loads(lease_params)"},{"line_number":57,"context_line":"            except ValueError:"},{"line_number":58,"context_line":"                raise ValueError(\u0027Wrong JSON format for lease parameters \u0027"},{"line_number":59,"context_line":"                                 \u0027passed %s\u0027 % lease_params)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            if \u0027events\u0027 not in lease_params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BHk%3D","line":58,"updated":"2014-01-06 02:54:10.000000000","message":"Do we need to consider I18N here?","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"ad2b8914cf76a76868349565151f53d61801c0ce","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            try:"},{"line_number":56,"context_line":"                lease_params \u003d json.loads(lease_params)"},{"line_number":57,"context_line":"            except ValueError:"},{"line_number":58,"context_line":"                raise ValueError(\u0027Wrong JSON format for lease parameters \u0027"},{"line_number":59,"context_line":"                                 \u0027passed %s\u0027 % lease_params)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            if \u0027events\u0027 not in lease_params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F9c8%3D","line":58,"in_reply_to":"AAAAUH%2F%2F%2BHk%3D","updated":"2014-01-06 07:14:55.000000000","message":"Good idea, will do.","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            service_catalog \u003d json.loads(req.environ[\u0027HTTP_X_SERVICE_CATALOG\u0027])"},{"line_number":71,"context_line":"            user_roles \u003d req.environ[\u0027HTTP_X_ROLES\u0027].split(\u0027,\u0027)"},{"line_number":72,"context_line":"            auth_token \u003d req.environ[\u0027HTTP_X_AUTH_TOKEN\u0027]"},{"line_number":73,"context_line":"            nova_ctx \u003d req.environ[\"nova.context\"]"},{"line_number":74,"context_line":"            instance \u003d self.compute_api.get(nova_ctx, instance_id,"},{"line_number":75,"context_line":"                                            want_objects\u003dTrue)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BGk%3D","line":73,"updated":"2014-01-06 02:54:10.000000000","message":"Just curious, why not create admin context directly? Or else import novaclient and call novaclient api like heat?","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"3116214b46837c26c482677b5901ee4f4809ba7f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                 auth_token)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            # shelve new instance when instance status will become \u0027active\u0027"},{"line_number":81,"context_line":"            while instance._vm_status !\u003d \u0027active\u0027:"},{"line_number":82,"context_line":"                instance \u003d self.compute_api.get(nova_ctx, instance_id,"},{"line_number":83,"context_line":"                                                want_objects\u003dTrue)"},{"line_number":84,"context_line":"                time.sleep(1)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FpEU%3D","line":81,"updated":"2014-01-10 06:43:33.000000000","message":"please, correct _vm_status to vm_state. Get an error tomorrow morning while devstack testing","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def get_climate_client(self, catalog, user_roles, auth_token):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        if not climate_client:"},{"line_number":93,"context_line":"            raise ImportError(\u0027No Climate client installed to the \u0027"},{"line_number":94,"context_line":"                              \u0027environment. Please install it to use \u0027"},{"line_number":95,"context_line":"                              \u0027reservation for Nova instances.\u0027)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BHc%3D","line":93,"updated":"2014-01-06 02:54:10.000000000","message":"Do we need to consider I18N here?","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            if service[\u0027type\u0027] \u003d\u003d \u0027reservation\u0027:"},{"line_number":100,"context_line":"                climate_endpoints \u003d service[\u0027endpoints\u0027][0]"},{"line_number":101,"context_line":"        if not climate_endpoints:"},{"line_number":102,"context_line":"            raise exception.NotFound(\u0027No Climate endpoint found in service \u0027"},{"line_number":103,"context_line":"                                     \u0027catalog.\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        climate_url \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BHY%3D","line":102,"updated":"2014-01-06 02:54:10.000000000","message":"Do we need to consider I18N here?","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"0fdeec6bea45c40d5f8c9c66cb2974db16913908","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        if climate_url is None:"},{"line_number":109,"context_line":"            climate_url \u003d climate_endpoints.get(\u0027publicURL\u0027)"},{"line_number":110,"context_line":"        if climate_url is None:"},{"line_number":111,"context_line":"            raise exception.NotFound(\u0027No Climate URL found in service \u0027"},{"line_number":112,"context_line":"                                     \u0027catalog.\u0027)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        climate_cl \u003d climate_client.Client(climate_url, auth_token)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2BHU%3D","line":111,"updated":"2014-01-06 02:54:10.000000000","message":"Do we need to consider I18N here?","commit_id":"d05f70f8c9c4c93d0e4fbbc03a7ee409569f8403"}],"climatenova/api/extensions/default_reservation.py":[{"author":{"_account_id":7075,"name":"Swann Croiset","email":"scroiset@mirantis.com","username":"swann"},"change_message_id":"55a8c5f28292c6c4bfb5595c51833dd268301fe8","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"},{"line_number":100,"context_line":"            elif attr in body and \u0027lease_params\u0027 not in body[attr]:"},{"line_number":101,"context_line":"                body[attr].update(default_hints)"},{"line_number":102,"context_line":"        yield"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BR%2BU%3D","line":102,"updated":"2014-01-28 13:17:31.000000000","message":"why coroutine here ?","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"e0d898f205bcd7017cf74822c929e3916cc6f1d3","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"},{"line_number":100,"context_line":"            elif attr in body and \u0027lease_params\u0027 not in body[attr]:"},{"line_number":101,"context_line":"                body[attr].update(default_hints)"},{"line_number":102,"context_line":"        yield"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BRhE%3D","line":102,"in_reply_to":"AAAAUH%2F%2BR%2BU%3D","updated":"2014-01-28 14:08:36.000000000","message":"sorry, can\u0027t get your point here... May you explain it more?","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"1d4be55335e818ec315e0fe469c50128d61122d0","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"},{"line_number":100,"context_line":"            elif attr in body and \u0027lease_params\u0027 not in body[attr]:"},{"line_number":101,"context_line":"                body[attr].update(default_hints)"},{"line_number":102,"context_line":"        yield"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BRHc%3D","line":102,"in_reply_to":"AAAAUH%2F%2BRQQ%3D","updated":"2014-01-28 14:54:03.000000000","message":"As I remember I used it because it was set in the extension I used as an example - https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/scheduler_hints.py#L50\n\nAlthough I\u0027m not sure it\u0027s needed here now, as this extension is post-boot for instance, not pre-boot one.","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":7075,"name":"Swann Croiset","email":"scroiset@mirantis.com","username":"swann"},"change_message_id":"3a2d1963813cb0332bdda406c0ee34f58676c8a3","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                body[\u0027os:scheduler_hints\u0027].update(default_hints)"},{"line_number":100,"context_line":"            elif attr in body and \u0027lease_params\u0027 not in body[attr]:"},{"line_number":101,"context_line":"                body[attr].update(default_hints)"},{"line_number":102,"context_line":"        yield"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class Default_reservation(extensions.ExtensionDescriptor):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BRQQ%3D","line":102,"in_reply_to":"AAAAUH%2F%2BRhE%3D","updated":"2014-01-28 14:42:04.000000000","message":"I mean, why are you using yield operator here ?","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"}],"climatenova/api/extensions/reservation.py":[{"author":{"_account_id":7075,"name":"Swann Croiset","email":"scroiset@mirantis.com","username":"swann"},"change_message_id":"55a8c5f28292c6c4bfb5595c51833dd268301fe8","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                            want_objects\u003dTrue)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            climate_cl \u003d self.get_climate_client(service_catalog, user_roles,"},{"line_number":80,"context_line":"                                                 auth_token)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            lease_transaction \u003d LeaseTransaction()"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BR6E%3D","line":80,"updated":"2014-01-28 13:17:31.000000000","message":"climate cli could be computed after ie line 103","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"e0d898f205bcd7017cf74822c929e3916cc6f1d3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                            want_objects\u003dTrue)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            climate_cl \u003d self.get_climate_client(service_catalog, user_roles,"},{"line_number":80,"context_line":"                                                 auth_token)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            lease_transaction \u003d LeaseTransaction()"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BRhM%3D","line":80,"in_reply_to":"AAAAUH%2F%2BR6E%3D","updated":"2014-01-28 14:08:36.000000000","message":"agreed","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":7075,"name":"Swann Croiset","email":"scroiset@mirantis.com","username":"swann"},"change_message_id":"55a8c5f28292c6c4bfb5595c51833dd268301fe8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            lease_transaction \u003d LeaseTransaction()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            with lease_transaction:"},{"line_number":85,"context_line":"                # wait while instance become \u0027active\u0027"},{"line_number":86,"context_line":"                while instance.vm_state !\u003d \u0027active\u0027:"},{"line_number":87,"context_line":"                    if instance.vm_state \u003d\u003d \u0027error\u0027:"},{"line_number":88,"context_line":"                        raise exception.InstanceNotRunning("}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BR8A%3D","line":85,"updated":"2014-01-28 13:17:31.000000000","message":"comment useless here .. python saying same thing :)","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"e0d898f205bcd7017cf74822c929e3916cc6f1d3","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            lease_transaction \u003d LeaseTransaction()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            with lease_transaction:"},{"line_number":85,"context_line":"                # wait while instance become \u0027active\u0027"},{"line_number":86,"context_line":"                while instance.vm_state !\u003d \u0027active\u0027:"},{"line_number":87,"context_line":"                    if instance.vm_state \u003d\u003d \u0027error\u0027:"},{"line_number":88,"context_line":"                        raise exception.InstanceNotRunning("}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BRhk%3D","line":85,"in_reply_to":"AAAAUH%2F%2BR8A%3D","updated":"2014-01-28 14:08:36.000000000","message":":D quite agree :D","commit_id":"7f15f031d0459acf58b8bb027e92ac6c8b7b8be1"}]}
