)]}'
{"ceilometer/cmd/agent_notification_ha.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7046031199f09f86d8e0294ce1e5fcf8a983b019","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_28afe47e","line":1,"updated":"2014-11-28 14:16:39.000000000","message":"Just a question: why are you separating this and previous file? Let\u0027s just have main and main_ha methods in the agent_notification.py module","commit_id":"066ba618d1d1718e328b7e61f5ebca5e0ed424cf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6eaaf77d3c4c5e04867d6ac799dd7d25b1dfa2c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_abc2ee31","line":1,"in_reply_to":"5a890539_28afe47e","updated":"2014-11-28 15:05:35.000000000","message":"why? i have no idea... no idea at all... :)","commit_id":"066ba618d1d1718e328b7e61f5ebca5e0ed424cf"}],"ceilometer/notification.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0055e31ddd09b6324f05e8e61a4c82728c9a3eff","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.partition_coordinator \u003d coordination.PartitionCoordinator()"},{"line_number":154,"context_line":"        self.partition_coordinator.start()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.pipeline_manager \u003d pipeline.setup_pipeline()"},{"line_number":157,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        transport \u003d messaging.get_transport()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_d151090f","line":156,"updated":"2014-12-04 10:32:45.000000000","message":"We could move this into NotificationServiceBase, since both uses pipeline","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"daa7ba4852a41088aacce917b8ce82b55fb73bd7","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.partition_coordinator \u003d coordination.PartitionCoordinator()"},{"line_number":154,"context_line":"        self.partition_coordinator.start()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.pipeline_manager \u003d pipeline.setup_pipeline()"},{"line_number":157,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        transport \u003d messaging.get_transport()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_d00c9044","line":156,"in_reply_to":"5a890539_d151090f","updated":"2014-12-04 19:30:59.000000000","message":"will do","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0055e31ddd09b6324f05e8e61a4c82728c9a3eff","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                transport,"},{"line_number":164,"context_line":"                driver\u003dcfg.CONF.publisher_notifier.metering_driver,"},{"line_number":165,"context_line":"                publisher_id\u003d\u0027ceilometer.notification\u0027,"},{"line_number":166,"context_line":"                topic\u003d\u0027%s-%s\u0027 % (self.NOTIFICATION_IPC, pipe.name)))"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        self.configure_main_queue_listeners(notifier_list)"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_391dd3be","line":166,"updated":"2014-12-04 10:32:45.000000000","message":"the pipeline.name is a combination of source.name and sink.name. So I think it\u0027s time to change the pipeline to forbid sources and sinks with duplicated names, otherwise we\u0027ll see duplicated internal notification messages.","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"daa7ba4852a41088aacce917b8ce82b55fb73bd7","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                transport,"},{"line_number":164,"context_line":"                driver\u003dcfg.CONF.publisher_notifier.metering_driver,"},{"line_number":165,"context_line":"                publisher_id\u003d\u0027ceilometer.notification\u0027,"},{"line_number":166,"context_line":"                topic\u003d\u0027%s-%s\u0027 % (self.NOTIFICATION_IPC, pipe.name)))"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        self.configure_main_queue_listeners(notifier_list)"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_3b005500","line":166,"in_reply_to":"5a890539_391dd3be","updated":"2014-12-04 19:30:59.000000000","message":"i\u0027ll add this as follow-up?","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0055e31ddd09b6324f05e8e61a4c82728c9a3eff","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self.partition_coordinator.join_group(self.NOTIFICATION_NAMESPACE)"},{"line_number":171,"context_line":"        self.configure_pipeline_listeners()"},{"line_number":172,"context_line":"        self.partition_coordinator._coordinator.watch_join_group("},{"line_number":173,"context_line":"            self.NOTIFICATION_NAMESPACE, self.refresh_agent)"},{"line_number":174,"context_line":"        self.partition_coordinator._coordinator.watch_leave_group("},{"line_number":175,"context_line":"            self.NOTIFICATION_NAMESPACE, self.refresh_agent)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_f10c45ee","line":172,"updated":"2014-12-04 10:32:45.000000000","message":"access _coordinator seems a little bit hacky, how about add the interface into ceilometer.coordination?","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"daa7ba4852a41088aacce917b8ce82b55fb73bd7","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self.partition_coordinator.join_group(self.NOTIFICATION_NAMESPACE)"},{"line_number":171,"context_line":"        self.configure_pipeline_listeners()"},{"line_number":172,"context_line":"        self.partition_coordinator._coordinator.watch_join_group("},{"line_number":173,"context_line":"            self.NOTIFICATION_NAMESPACE, self.refresh_agent)"},{"line_number":174,"context_line":"        self.partition_coordinator._coordinator.watch_leave_group("},{"line_number":175,"context_line":"            self.NOTIFICATION_NAMESPACE, self.refresh_agent)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_bb13655a","line":172,"in_reply_to":"5a890539_f10c45ee","updated":"2014-12-04 19:30:59.000000000","message":"will do","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"26dca6ca7d1fb6fdec3e1683165aaa34581f9bd1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_d471090d","line":47,"updated":"2014-12-12 17:39:38.000000000","message":"So I wonder should we allow multiple notification agents to be run in non-coordinated mode, where it\u0027s acceptable for notifications to be randomly assigned to agents (i.e. where there\u0027s no event pipelines being used and no transformation scoped over multiple samples).\n\ni.e. avoid the cost of the coordination and the re-queuing on internal pipeline-specific queues if it\u0027s not actually required?","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"d7f70c0df678a7e2ffb863fb324d591df7a26694","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_c723ef02","line":47,"in_reply_to":"3a961159_55026cb4","updated":"2014-12-15 14:47:57.000000000","message":"\u003e the partition_coordinator does nothing unless you enabled cooordinator option in conf\n\nI suppose one edge-case is where the coordination.backend_url is set in a shared ceilometer.conf used by both a central agent and notification agent, both running on the same controller node.\n\nIn that case, we might want to enable coordination only for the central agent, but for not for notification (if say we\u0027re not doing any event pipeline stuff or arithmetic transformation that needs events to be processed by a predictable notification agent).\n\nIIRC that was similar to the logic behind the compute.workload_partitioning option, to cover the case where the compute agent should run in non-coordinated mode even though it\u0027s sharing a ceilometer.conf file with a central agent needing coordination.","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"70ecbd78d849a1f1cf825c722f29a0a1919eb943","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_55026cb4","line":47,"in_reply_to":"3a961159_8c7bf5bc","updated":"2014-12-12 22:06:29.000000000","message":"i see... technically it doesn\u0027t do any requeuing if this option isn\u0027t enabled.\n\ni guess i debated about adding this option at all.. the partition_coordinator does nothing unless you enabled cooordinator option in conf (or it creates an object which passes on every call you make and all attr are None). so i guess adding this option is pointless because why would you enable configure coordinator but not partitioning.\n\ni think i should probably remove this completely and just have a check and say: is partition coordinator enabled. if yes, do requeuing-coordination. if no, don\u0027t requeue... maybe that\u0027s easiest.","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"92484b504d1611fddd3dd88b7660cf1a1c532194","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_8c7bf5bc","line":47,"in_reply_to":"3a961159_c6507c34","updated":"2014-12-12 20:54:48.000000000","message":"Yeah, so I was thinking whether a more complete (or extreme?) interpretation of workload_partitioning\u003dFalse would be to completely avoid the creation of the partition coordinator, setting up the watchers and doing any re-queuing in that case.","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"77dd8e470ef3a63f332634af77e05b753d5cf781","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_eaefd2e6","line":47,"in_reply_to":"3a961159_c723ef02","updated":"2014-12-15 15:08:13.000000000","message":"right... but i consider that laziness on the deployer\u0027s part. i understand in devstack we share the same conf file across services but ceilometer\u0027s services are designed to be independent and the conf settings we pass into one service doesn\u0027t and shouldn\u0027t reflect the settings we have in other services.","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0aa0ad7586043a817b8442a953de482c6e4e3eee","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027workload_partitioning\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable workload partitioning, allowing multiple \u0027"},{"line_number":47,"context_line":"                     \u0027notification agents to be run simultaneously.\u0027),"},{"line_number":48,"context_line":"    cfg.MultiStrOpt(\u0027messaging_urls\u0027,"},{"line_number":49,"context_line":"                    default\u003d[],"},{"line_number":50,"context_line":"                    help\u003d\"Messaging URLs to listen for notifications. \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_c6507c34","line":47,"in_reply_to":"3a961159_d471090d","updated":"2014-12-12 19:51:24.000000000","message":"yep, that\u0027s the reason i added the option. basically if the option is disabled, the agent(s) will blindly (roundrobin) pull from the queues and act individually (as it does today). if enabled, it\u0027ll start filtering the items into right pipe (with slight overhead of requeuing)","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"9e2f3a1fe10a925efeccca241bab057141eb4baa","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            # not a ceilometer, until we have a something to get"},{"line_number":103,"context_line":"            # the notification_topics in an other way"},{"line_number":104,"context_line":"            # we must create a transport to ensure the option have"},{"line_number":105,"context_line":"            # beeen registered by oslo.messaging"},{"line_number":106,"context_line":"            messaging.get_notifier(transport, \u0027\u0027)"},{"line_number":107,"context_line":"            transporter \u003d self.pipeline_manager"},{"line_number":108,"context_line":"            self.group_id \u003d None"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_75b405d1","line":105,"updated":"2014-12-11 13:51:40.000000000","message":"s/beeen/been","commit_id":"f4016f8742a773d417aacc5d33c575b9cfb0af6b"}],"ceilometer/plugin.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0055e31ddd09b6324f05e8e61a4c82728c9a3eff","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def __init__(self, transporter):"},{"line_number":48,"context_line":"        super(NotificationBase, self).__init__()"},{"line_number":49,"context_line":"        self.transporter \u003d transporter"},{"line_number":50,"context_line":"        self.requeue \u003d True if isinstance(transporter, list) else False"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @abc.abstractproperty"},{"line_number":53,"context_line":"    def event_types(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_916ea162","line":50,"updated":"2014-12-04 10:32:45.000000000","message":"Using type list to decide seems a little bit hacky, could we pass notifier and pipeline manager as different paramters? with default value of couse.","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"daa7ba4852a41088aacce917b8ce82b55fb73bd7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def __init__(self, transporter):"},{"line_number":48,"context_line":"        super(NotificationBase, self).__init__()"},{"line_number":49,"context_line":"        self.transporter \u003d transporter"},{"line_number":50,"context_line":"        self.requeue \u003d True if isinstance(transporter, list) else False"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @abc.abstractproperty"},{"line_number":53,"context_line":"    def event_types(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_701cbc77","line":50,"in_reply_to":"5a890539_916ea162","updated":"2014-12-04 19:30:59.000000000","message":"what if i did this but checked for pipelineManager instead of list? i wanted to avoid having a situation where one value is always None","commit_id":"72487b3660e386c146a5028def22d277b33847d7"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"51e44702d94f4342aa080d503aa704fa4767b333","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def __init__(self, transporter, requeue\u003dFalse):"},{"line_number":48,"context_line":"        super(NotificationBase, self).__init__()"},{"line_number":49,"context_line":"        self.transporter \u003d transporter"},{"line_number":50,"context_line":"        self.requeue \u003d requeue"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @abc.abstractproperty"},{"line_number":53,"context_line":"    def event_types(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_ed51a531","line":50,"updated":"2014-12-05 03:54:03.000000000","message":"it\u0027d better to do some checking here to avoid passing in pipeline_manager as transporter and true as requeue, also vise versa","commit_id":"d5c7184744699fbc49ae65451ce8e7c244824d15"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"9287fcf6121659ef0a498399018eefd8e0b1a8bc","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def __init__(self, transporter, requeue\u003dFalse):"},{"line_number":48,"context_line":"        super(NotificationBase, self).__init__()"},{"line_number":49,"context_line":"        self.transporter \u003d transporter"},{"line_number":50,"context_line":"        self.requeue \u003d requeue"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @abc.abstractproperty"},{"line_number":53,"context_line":"    def event_types(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_0fc1732f","line":50,"in_reply_to":"5a890539_ed51a531","updated":"2014-12-05 14:55:45.000000000","message":"hmm... but then we\u0027re just essentially doing what we did before where i checked to see if it was a list of notifiers... the requeue attr doesn\u0027t really matter if we\u0027re going to check transporter type... i\u0027ll check for type again and branch off that.","commit_id":"d5c7184744699fbc49ae65451ce8e7c244824d15"}],"ceilometer/tests/test_notification.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"51e44702d94f4342aa080d503aa704fa4767b333","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.setup_messaging(self.CONF)"},{"line_number":96,"context_line":"        self.srv \u003d notification.NotificationService()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def fake_get_notifications_manager(self, pm, requeue):"},{"line_number":99,"context_line":"        self.plugin \u003d instance.Instance(pm)"},{"line_number":100,"context_line":"        return extension.ExtensionManager.make_test_instance("},{"line_number":101,"context_line":"            ["}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_107fea6a","line":98,"updated":"2014-12-05 03:54:03.000000000","message":"seems you need the default value for requeue either","commit_id":"d5c7184744699fbc49ae65451ce8e7c244824d15"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"9287fcf6121659ef0a498399018eefd8e0b1a8bc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.setup_messaging(self.CONF)"},{"line_number":96,"context_line":"        self.srv \u003d notification.NotificationService()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def fake_get_notifications_manager(self, pm, requeue):"},{"line_number":99,"context_line":"        self.plugin \u003d instance.Instance(pm)"},{"line_number":100,"context_line":"        return extension.ExtensionManager.make_test_instance("},{"line_number":101,"context_line":"            ["}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_4fda9b1e","line":98,"in_reply_to":"5a890539_107fea6a","updated":"2014-12-05 14:55:45.000000000","message":"i\u0027m going to revert back and remove it.","commit_id":"d5c7184744699fbc49ae65451ce8e7c244824d15"}]}
