)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"981d07cd8a2aa67cff861c987302141ef5d13c59","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    cfg.StrOpt(\u0027admin_tenant_name\u0027,"},{"line_number":131,"context_line":"               default\u003dNone,"},{"line_number":132,"context_line":"               help\u003d\u0027Name of admin tenant to use to delete instances\u0027"},{"line_number":133,"context_line":"                    \u0027successful when init host\u0027),"},{"line_number":134,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":135,"context_line":"               default\u003dNone,"},{"line_number":136,"context_line":"               help\u003d\u0027Name of admin user to use to delete instances\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_4b2141b3","line":133,"updated":"2015-01-14 16:01:48.000000000","message":"You should put a space in front of \"successful\", otherwise it would concat with \"instances\" to form \"instancessuccessful\".","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df0243fbab3a0efd762b26f22f314d3971312c23","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    cfg.StrOpt(\u0027admin_tenant_name\u0027,"},{"line_number":131,"context_line":"               default\u003dNone,"},{"line_number":132,"context_line":"               help\u003d\u0027Name of admin tenant to use to delete instances\u0027"},{"line_number":133,"context_line":"                    \u0027successful when init host\u0027),"},{"line_number":134,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":135,"context_line":"               default\u003dNone,"},{"line_number":136,"context_line":"               help\u003d\u0027Name of admin user to use to delete instances\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_b56e6d94","line":133,"in_reply_to":"3a961159_4b2141b3","updated":"2015-01-15 01:53:22.000000000","message":"sure,thx","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"981d07cd8a2aa67cff861c987302141ef5d13c59","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":135,"context_line":"               default\u003dNone,"},{"line_number":136,"context_line":"               help\u003d\u0027Name of admin user to use to delete instances\u0027"},{"line_number":137,"context_line":"                    \u0027successful when init host\u0027),"},{"line_number":138,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":139,"context_line":"               default\u003dNone,"},{"line_number":140,"context_line":"               help\u003d\u0027Password of admin user to use to delete instances\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_ab170553","line":137,"updated":"2015-01-14 16:01:48.000000000","message":"Ditto","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df0243fbab3a0efd762b26f22f314d3971312c23","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":135,"context_line":"               default\u003dNone,"},{"line_number":136,"context_line":"               help\u003d\u0027Name of admin user to use to delete instances\u0027"},{"line_number":137,"context_line":"                    \u0027successful when init host\u0027),"},{"line_number":138,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":139,"context_line":"               default\u003dNone,"},{"line_number":140,"context_line":"               help\u003d\u0027Password of admin user to use to delete instances\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_f56475b4","line":137,"in_reply_to":"3a961159_ab170553","updated":"2015-01-15 01:53:22.000000000","message":"sure,thx","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"981d07cd8a2aa67cff861c987302141ef5d13c59","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":139,"context_line":"               default\u003dNone,"},{"line_number":140,"context_line":"               help\u003d\u0027Password of admin user to use to delete instances\u0027"},{"line_number":141,"context_line":"                    \u0027successful when init host\u0027)"},{"line_number":142,"context_line":"    ]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"interval_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_0b13b965","line":141,"updated":"2015-01-14 16:01:48.000000000","message":"Ditto","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df0243fbab3a0efd762b26f22f314d3971312c23","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":139,"context_line":"               default\u003dNone,"},{"line_number":140,"context_line":"               help\u003d\u0027Password of admin user to use to delete instances\u0027"},{"line_number":141,"context_line":"                    \u0027successful when init host\u0027)"},{"line_number":142,"context_line":"    ]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"interval_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_350a7dd2","line":141,"in_reply_to":"3a961159_0b13b965","updated":"2015-01-15 01:53:22.000000000","message":"sure,thx","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"981d07cd8a2aa67cff861c987302141ef5d13c59","unresolved":false,"context_lines":[{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def get_admin_token(self):"},{"line_number":1165,"context_line":"        try:"},{"line_number":1166,"context_line":"            _ksclient \u003d keystone_client.Client("},{"line_number":1167,"context_line":"                tenant_name\u003dCONF.admin_tenant_name,"},{"line_number":1168,"context_line":"                username\u003dCONF.admin_username,"},{"line_number":1169,"context_line":"                password\u003dCONF.admin_password,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_762fc089","line":1166,"updated":"2015-01-14 16:01:48.000000000","message":"Why do we have to create new CONF options instead of using CONF.keystone_authtoken?","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df0243fbab3a0efd762b26f22f314d3971312c23","unresolved":false,"context_lines":[{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def get_admin_token(self):"},{"line_number":1165,"context_line":"        try:"},{"line_number":1166,"context_line":"            _ksclient \u003d keystone_client.Client("},{"line_number":1167,"context_line":"                tenant_name\u003dCONF.admin_tenant_name,"},{"line_number":1168,"context_line":"                username\u003dCONF.admin_username,"},{"line_number":1169,"context_line":"                password\u003dCONF.admin_password,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_1805b8c1","line":1166,"in_reply_to":"3a961159_762fc089","updated":"2015-01-15 01:53:22.000000000","message":"Because user may use other username and tenant name which different from username and tenant name in group keystone_authtoken to create instance and volume.\nIf we use those in CONF.keystone_authtoken, it will can\u0027t find the volume in init_instances process. So,IMO,it\u0027s better to create new CONF options.","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"3720ead37d8f2c691c8a6b45a2d71ba7a9fbb3a1","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            self.service_catalog \u003d _ksclient.service_catalog.get_data()"},{"line_number":1173,"context_line":"            return _ksclient.auth_token"},{"line_number":1174,"context_line":"        except Exception as e:"},{"line_number":1175,"context_line":"            LOG.error(_LE(\"Get the token failed, msg: %s\" % e))"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        return None"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_70d6e8f3","line":1175,"range":{"start_line":1175,"start_character":21,"end_line":1175,"end_character":63},"updated":"2015-01-14 15:26:32.000000000","message":"Should be -\u003e\n\n    (_LE(\"Get the token failed, msg: %s\"), e)","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df0243fbab3a0efd762b26f22f314d3971312c23","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            self.service_catalog \u003d _ksclient.service_catalog.get_data()"},{"line_number":1173,"context_line":"            return _ksclient.auth_token"},{"line_number":1174,"context_line":"        except Exception as e:"},{"line_number":1175,"context_line":"            LOG.error(_LE(\"Get the token failed, msg: %s\" % e))"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        return None"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_155e61e9","line":1175,"in_reply_to":"3a961159_70d6e8f3","updated":"2015-01-15 01:53:22.000000000","message":"DONE","commit_id":"e3f508c5dd42307c8db232afdae24e924286d837"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"611fa97e08fd18e8604dc5e06433ad5c580325e2","unresolved":false,"context_lines":[{"line_number":1174,"context_line":"        except Exception as e:"},{"line_number":1175,"context_line":"            LOG.error(_LE(\"Get the token failed, msg: %s\"), e)"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        return None"},{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"    def get_admin_context(self, read_deleted\u003d\"no\"):"},{"line_number":1180,"context_line":"        \"\"\"get auth token of admin and service_catalog for deleting instances"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3136fbb4","line":1177,"updated":"2015-01-15 13:34:48.000000000","message":"nit: this useless line because None will be returned by default.","commit_id":"63c65e0860eae8642271099a51953a6abcfcd19b"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"2a5bc1d5c6925b09f9e28c81a3776d98ddbd463f","unresolved":false,"context_lines":[{"line_number":1174,"context_line":"        except Exception as e:"},{"line_number":1175,"context_line":"            LOG.error(_LE(\"Get the token failed, msg: %s\"), e)"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        return None"},{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"    def get_admin_context(self, read_deleted\u003d\"no\"):"},{"line_number":1180,"context_line":"        \"\"\"get auth token of admin and service_catalog for deleting instances"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_7bd128fa","line":1177,"in_reply_to":"3a961159_3136fbb4","updated":"2015-01-16 02:44:42.000000000","message":"Sure,i will delete it.","commit_id":"63c65e0860eae8642271099a51953a6abcfcd19b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"9a71af4a5da19bc3e114388570d7e6b0f7b029d1","unresolved":false,"context_lines":[{"line_number":2572,"context_line":"                            instance\u003dinstance)"},{"line_number":2573,"context_line":"                if init:"},{"line_number":2574,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":2575,"context_line":"                        pass "},{"line_number":2576,"context_line":""},{"line_number":2577,"context_line":"        if notify:"},{"line_number":2578,"context_line":"            self._notify_about_instance_usage(context, instance,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_a1cef02b","line":2575,"range":{"start_line":2575,"start_character":28,"end_line":2575,"end_character":29},"updated":"2015-04-09 11:31:31.000000000","message":"Please remove redundant trailing space.","commit_id":"5d3ef8b1db3dcf1e324287d46842d081fcee17b1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"30c2b9e12f61764d37a73c2371285bac8e7c031f","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"                quotas \u003d objects.Quotas.from_reservations("},{"line_number":1023,"context_line":"                        context, None, instance\u003dinstance)"},{"line_number":1024,"context_line":"                self._delete_instance(context, instance, bdms, quotas,"},{"line_number":1025,"context_line":"                                      init\u003dTrue)"},{"line_number":1026,"context_line":"            except Exception:"},{"line_number":1027,"context_line":"                # we don\u0027t want that an exception blocks the init_host"},{"line_number":1028,"context_line":"                msg \u003d _LE(\u0027Failed to complete a deletion\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_1340b7a4","line":1025,"updated":"2015-04-13 14:58:39.000000000","message":"Is the reason you want this to raise, so that we\u0027ll set the error state? I\u0027m not sure why this is any different from the regular delete case. We want it to try to delete everything and end up with the instance in DELETED state, right?","commit_id":"3cddfb02f1497c94c9126151974551703683f2c4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"30c2b9e12f61764d37a73c2371285bac8e7c031f","unresolved":false,"context_lines":[{"line_number":2609,"context_line":"                LOG.warning(_LW(\u0027Ignoring EndpointNotFound: %s\u0027), exc,"},{"line_number":2610,"context_line":"                            instance\u003dinstance)"},{"line_number":2611,"context_line":"                if init:"},{"line_number":2612,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":2613,"context_line":"                        pass"},{"line_number":2614,"context_line":""},{"line_number":2615,"context_line":"        if notify:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_1396774c","line":2612,"updated":"2015-04-13 14:58:39.000000000","message":"I don\u0027t think this makes any sense. The point of save_and_reraise_exception is to let you run something that can potentially raise without losing the old exception context. If you want to raise the exception here, just use \u0027raise\u0027.\n\nHowever, this breaks the current code. It means that if I have four bdms, and the second one errors, I never clean up the last two.\n\nI think you need to figure out some other way to communicate that there was an error to the init routine.","commit_id":"3cddfb02f1497c94c9126151974551703683f2c4"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ece526a39d882582ccd59b3c73a6abb525977dfc","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        \u0027nova.compute.manager.ComputeManager._get_instance_block_device_info\u0027)"},{"line_number":917,"context_line":"    @mock.patch(\u0027nova.virt.driver.ComputeDriver.destroy\u0027)"},{"line_number":918,"context_line":"    @mock.patch(\u0027nova.virt.driver.ComputeDriver.get_volume_connector\u0027)"},{"line_number":919,"context_line":"    @mock.patch(\u0027nova.volume.API.terminate_connection\u0027)"},{"line_number":920,"context_line":"    def test_shutdown_instance_endpoint_not_found_when_init(self, mock_ter_con,"},{"line_number":921,"context_line":"            mock_connector, mock_destroy, mock_blk_device_info, mock_nw_info,"},{"line_number":922,"context_line":"            mock_elevated):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa53dc9_04024ab4","line":919,"updated":"2015-04-09 11:52:17.000000000","message":"You forgot module `cinder` before `API`","commit_id":"178a3016b1de1166fce5647eb3c57ca6d4ae0732"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"f690d641e11094166e00652bc8e6edb7b7e3bc7c","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        \u0027nova.compute.manager.ComputeManager._get_instance_block_device_info\u0027)"},{"line_number":917,"context_line":"    @mock.patch(\u0027nova.virt.driver.ComputeDriver.destroy\u0027)"},{"line_number":918,"context_line":"    @mock.patch(\u0027nova.virt.driver.ComputeDriver.get_volume_connector\u0027)"},{"line_number":919,"context_line":"    @mock.patch(\u0027nova.volume.API.terminate_connection\u0027)"},{"line_number":920,"context_line":"    def test_shutdown_instance_endpoint_not_found_when_init(self, mock_ter_con,"},{"line_number":921,"context_line":"            mock_connector, mock_destroy, mock_blk_device_info, mock_nw_info,"},{"line_number":922,"context_line":"            mock_elevated):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa53dc9_3d0c21ec","line":919,"in_reply_to":"9aa53dc9_04024ab4","updated":"2015-04-10 03:33:34.000000000","message":"Thanks.Done","commit_id":"178a3016b1de1166fce5647eb3c57ca6d4ae0732"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"b6db8bc3f349cf38eda969fdc7d7b7b0a22f875b","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                task_state\u003dtask_states.DELETING)"},{"line_number":930,"context_line":"        bdms \u003d [mock.Mock(id\u003d1, is_volume\u003dTrue)]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        self.assertRaises(cinder_exception.EndpointNotFound,"},{"line_number":933,"context_line":"                          self.compute._shutdown_instance,"},{"line_number":934,"context_line":"                          instance, bdms, init\u003dTrue)"},{"line_number":935,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa53dc9_a4e4bee0","line":932,"updated":"2015-04-09 11:54:19.000000000","message":"And please check `assertRaises`","commit_id":"178a3016b1de1166fce5647eb3c57ca6d4ae0732"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"f690d641e11094166e00652bc8e6edb7b7e3bc7c","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                task_state\u003dtask_states.DELETING)"},{"line_number":930,"context_line":"        bdms \u003d [mock.Mock(id\u003d1, is_volume\u003dTrue)]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        self.assertRaises(cinder_exception.EndpointNotFound,"},{"line_number":933,"context_line":"                          self.compute._shutdown_instance,"},{"line_number":934,"context_line":"                          instance, bdms, init\u003dTrue)"},{"line_number":935,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa53dc9_fd37d94a","line":932,"in_reply_to":"9aa53dc9_a4e4bee0","updated":"2015-04-10 03:33:34.000000000","message":"Done","commit_id":"178a3016b1de1166fce5647eb3c57ca6d4ae0732"}],"nova/tests/unit/volume/test_cinder.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"2cea49507fbf69d6d481c5fb0e21401309b77bf9","unresolved":false,"context_lines":[{"line_number":396,"context_line":"            return \"test_auth_token\", service_catalog"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        self.stubs.Set(cinder, \u0027get_cinder_admin_token\u0027,"},{"line_number":399,"context_line":"                       fake_get_cinder_admin_token)"},{"line_number":400,"context_line":"        context \u003d cinder.get_cinder_admin_context()"},{"line_number":401,"context_line":"        self.assertEqual(\"test_auth_token\", context.auth_token,"},{"line_number":402,"context_line":"                         \"context.auth_token is not equal\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_efb46783","line":399,"updated":"2015-02-12 12:05:30.000000000","message":"We shouldn\u0027t use stubs in new tests.\nPlease use mock. for example like in line #105","commit_id":"37c363d0a2c757cb54c4d2711b297e8ff5e45231"}],"nova/volume/cinder.py":[{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"7ba30d3be8862fdbe748223f0809d3085bf7024b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    # fix bug 1408865"},{"line_number":144,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":145,"context_line":"        context \u003d get_cinder_admin_context()"},{"line_number":146,"context_line":"        "},{"line_number":147,"context_line":"    auth \u003d context.get_auth_plugin()"},{"line_number":148,"context_line":"    service_type, service_name, interface \u003d CONF.cinder.catalog_info.split(\u0027:\u0027)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_c4d1efce","line":146,"updated":"2015-02-02 11:05:13.000000000","message":"whitespace error should be fixed","commit_id":"6e05e7e3f9eb46a9fec4436146bd8bff611593f4"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5faeb5e18bfedef7768bceadf95f5058a7d4e15c","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    # fix bug 1408865"},{"line_number":144,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":145,"context_line":"        context \u003d get_cinder_admin_context()"},{"line_number":146,"context_line":"        "},{"line_number":147,"context_line":"    auth \u003d context.get_auth_plugin()"},{"line_number":148,"context_line":"    service_type, service_name, interface \u003d CONF.cinder.catalog_info.split(\u0027:\u0027)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_c8fd593d","line":146,"in_reply_to":"da86d52c_c4d1efce","updated":"2015-02-03 02:44:39.000000000","message":"Done","commit_id":"6e05e7e3f9eb46a9fec4436146bd8bff611593f4"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"957dc69861c2a6e9c65f01478b13d13b43ea0075","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":64,"context_line":"               default\u003dNone,"},{"line_number":65,"context_line":"               help\u003d\u0027Name of admin user to use to create cinder context\u0027),"},{"line_number":66,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":67,"context_line":"               default\u003dNone,"},{"line_number":68,"context_line":"               help\u003d\u0027Password of admin user to use to create cinder context\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027admin_auth_url\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_6acb4553","line":66,"updated":"2015-02-11 07:13:48.000000000","message":"set secret\u003dTrue here, password value should be obfuscated in log output.","commit_id":"dda95e42c232710fffae0f6e4dcf4b4390cb1d71"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df5ab32a7cd9d254efe2366dd150d63144127d0a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.StrOpt(\u0027admin_username\u0027,"},{"line_number":64,"context_line":"               default\u003dNone,"},{"line_number":65,"context_line":"               help\u003d\u0027Name of admin user to use to create cinder context\u0027),"},{"line_number":66,"context_line":"    cfg.StrOpt(\u0027admin_password\u0027,"},{"line_number":67,"context_line":"               default\u003dNone,"},{"line_number":68,"context_line":"               help\u003d\u0027Password of admin user to use to create cinder context\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027admin_auth_url\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_6a0d053e","line":66,"in_reply_to":"da86d52c_6acb4553","updated":"2015-02-11 07:18:50.000000000","message":"Done","commit_id":"dda95e42c232710fffae0f6e4dcf4b4390cb1d71"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"957dc69861c2a6e9c65f01478b13d13b43ea0075","unresolved":false,"context_lines":[{"line_number":67,"context_line":"               default\u003dNone,"},{"line_number":68,"context_line":"               help\u003d\u0027Password of admin user to use to create cinder context\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027admin_auth_url\u0027,"},{"line_number":70,"context_line":"               default\u003dNone,"},{"line_number":71,"context_line":"               help\u003d\u0027Url of auth to use to create cinder context\u0027),"},{"line_number":72,"context_line":"    cfg.StrOpt(\u0027api_insecure\u0027,"},{"line_number":73,"context_line":"               default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_cabef1ad","line":70,"updated":"2015-02-11 07:13:48.000000000","message":"how about setting default value to \u0027http://localhost:5000/v2.0\u0027 here.","commit_id":"dda95e42c232710fffae0f6e4dcf4b4390cb1d71"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"df5ab32a7cd9d254efe2366dd150d63144127d0a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"               default\u003dNone,"},{"line_number":68,"context_line":"               help\u003d\u0027Password of admin user to use to create cinder context\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027admin_auth_url\u0027,"},{"line_number":70,"context_line":"               default\u003dNone,"},{"line_number":71,"context_line":"               help\u003d\u0027Url of auth to use to create cinder context\u0027),"},{"line_number":72,"context_line":"    cfg.StrOpt(\u0027api_insecure\u0027,"},{"line_number":73,"context_line":"               default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_4a15a147","line":70,"in_reply_to":"da86d52c_cabef1ad","updated":"2015-02-11 07:18:50.000000000","message":"OK it\u0027s better.","commit_id":"dda95e42c232710fffae0f6e4dcf4b4390cb1d71"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"23c41d12e495b9fe36da591281c8867024c720c0","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    endpoint_override \u003d None"},{"line_number":144,"context_line":"    version \u003d None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    # fix bug 1408865"},{"line_number":147,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":148,"context_line":"        context \u003d get_cinder_admin_context()"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_16103458","line":146,"updated":"2015-02-11 09:45:15.000000000","message":"just a question, do we really need this comment?","commit_id":"37c363d0a2c757cb54c4d2711b297e8ff5e45231"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ce91287ab1d7fdeab197cbd1129e1b2f807723cf","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    endpoint_override \u003d None"},{"line_number":144,"context_line":"    version \u003d None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    # fix bug 1408865"},{"line_number":147,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":148,"context_line":"        context \u003d get_cinder_admin_context()"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_24aa3485","line":146,"in_reply_to":"da86d52c_16103458","updated":"2015-02-12 02:56:10.000000000","message":"Just explain why we add this code.","commit_id":"37c363d0a2c757cb54c4d2711b297e8ff5e45231"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"c65a62a1b201b09fa5d4c223ea08dfdbfba63ad3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from nova import availability_zones as az"},{"line_number":36,"context_line":"import nova.context"},{"line_number":37,"context_line":"from nova import exception"},{"line_number":38,"context_line":"from nova.i18n import _"},{"line_number":39,"context_line":"from nova.i18n import _LE"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba7be1f8_7e2e5ca6","line":36,"updated":"2015-02-26 07:18:04.000000000","message":"why not using \u0027from nova import context\u0027 style here to keep consistent with others, typing nova.context in your code below can be tedious and redundant.","commit_id":"df4ddfe09c84a8ebf36986995c794ed0b5871990"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"4ca9543d2839a643f81c72e22a32dd5df3ca9fda","unresolved":false,"context_lines":[{"line_number":33,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from nova import availability_zones as az"},{"line_number":36,"context_line":"import nova.context"},{"line_number":37,"context_line":"from nova import exception"},{"line_number":38,"context_line":"from nova.i18n import _"},{"line_number":39,"context_line":"from nova.i18n import _LE"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba7be1f8_4a188f75","line":36,"in_reply_to":"ba7be1f8_7e2e5ca6","updated":"2015-03-02 07:55:02.000000000","message":"Done","commit_id":"df4ddfe09c84a8ebf36986995c794ed0b5871990"}]}
