)]}'
{"ceilometer/compute/pollsters.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b068e71df8ecb0e34ddd5c01c06e532f1f3069c4","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    for name in INSTANCE_PROPERTIES:"},{"line_number":70,"context_line":"        metadata[name] \u003d getattr(instance, name, u\u0027\u0027)"},{"line_number":71,"context_line":"    return metadata"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _instance_name(instance):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FyoA%3D","line":71,"updated":"2013-06-21 07:02:13.000000000","message":"where is the original add_reserved_user_metadata() in instance.py?","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f8871337b91c8cc41db0063339c5481f2029628","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    for name in INSTANCE_PROPERTIES:"},{"line_number":70,"context_line":"        metadata[name] \u003d getattr(instance, name, u\u0027\u0027)"},{"line_number":71,"context_line":"    return metadata"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _instance_name(instance):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fyhk%3D","line":71,"in_reply_to":"AAAAPn%2F%2FyoA%3D","updated":"2013-06-21 08:18:07.000000000","message":"Damn, I missed that during the rebase as the warn wasn\u0027t obviousy. Thanks!","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1cd68aecfa77cf5a2971d95759af6c89428d2679","unresolved":false,"context_lines":[{"line_number":50,"context_line":"OPTS \u003d ["},{"line_number":51,"context_line":"    cfg.ListOpt(\u0027reserved_metadata_namespace\u0027,"},{"line_number":52,"context_line":"                default\u003d[\u0027metering.\u0027],"},{"line_number":53,"context_line":"                help\u003d\u0027list of metadata prefixes resevred for metering use\u0027),"},{"line_number":54,"context_line":"    cfg.IntOpt(\u0027reserved_metadata_length\u0027,"},{"line_number":55,"context_line":"               default\u003d256,"},{"line_number":56,"context_line":"               help\u003d\u0027limit on length of reserved metadata values\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FSqI%3D","line":53,"updated":"2013-07-04 21:36:21.000000000","message":"typo \"resevred\"","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce0ca4ddaf16e4fecd662e65ad763546b977152a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"OPTS \u003d ["},{"line_number":51,"context_line":"    cfg.ListOpt(\u0027reserved_metadata_namespace\u0027,"},{"line_number":52,"context_line":"                default\u003d[\u0027metering.\u0027],"},{"line_number":53,"context_line":"                help\u003d\u0027list of metadata prefixes resevred for metering use\u0027),"},{"line_number":54,"context_line":"    cfg.IntOpt(\u0027reserved_metadata_length\u0027,"},{"line_number":55,"context_line":"               default\u003d256,"},{"line_number":56,"context_line":"               help\u003d\u0027limit on length of reserved metadata values\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FRxc%3D","line":53,"in_reply_to":"AAAAPn%2F%2FSqI%3D","updated":"2013-07-05 11:35:51.000000000","message":"Done","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1cd68aecfa77cf5a2971d95759af6c89428d2679","unresolved":false,"context_lines":[{"line_number":59,"context_line":"cfg.CONF.register_opts(OPTS)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def add_reserved_user_metadata(instance, metadata):"},{"line_number":63,"context_line":"    limit \u003d cfg.CONF.reserved_metadata_length"},{"line_number":64,"context_line":"    user_metadata \u003d {}"},{"line_number":65,"context_line":"    for prefix in cfg.CONF.reserved_metadata_namespace:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FSqA%3D","line":62,"updated":"2013-07-04 21:36:21.000000000","message":"If this method is private to this module, its name should start with _.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce0ca4ddaf16e4fecd662e65ad763546b977152a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"cfg.CONF.register_opts(OPTS)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def add_reserved_user_metadata(instance, metadata):"},{"line_number":63,"context_line":"    limit \u003d cfg.CONF.reserved_metadata_length"},{"line_number":64,"context_line":"    user_metadata \u003d {}"},{"line_number":65,"context_line":"    for prefix in cfg.CONF.reserved_metadata_namespace:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FRuM%3D","line":62,"in_reply_to":"AAAAPn%2F%2FSqA%3D","updated":"2013-07-05 11:35:51.000000000","message":"Done","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1cd68aecfa77cf5a2971d95759af6c89428d2679","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    return metadata"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def get_metadata_from_object(instance):"},{"line_number":81,"context_line":"    \"\"\"Return a metadata dictionary for the instance."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":"    metadata \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FSqE%3D","line":80,"updated":"2013-07-04 21:36:21.000000000","message":"Same comment on name","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce0ca4ddaf16e4fecd662e65ad763546b977152a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    return metadata"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def get_metadata_from_object(instance):"},{"line_number":81,"context_line":"    \"\"\"Return a metadata dictionary for the instance."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":"    metadata \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FRxY%3D","line":80,"in_reply_to":"AAAAPn%2F%2FSqE%3D","updated":"2013-07-05 11:35:51.000000000","message":"Done","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"}],"ceilometer/counter.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"cc27a8a27fdb8b1749f6cdc1c1ebcfc1d07560ec","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"},{"line_number":77,"context_line":"    metadata[\u0027event_type\u0027] \u003d message[\u0027event_type\u0027]"},{"line_number":78,"context_line":"    metadata[\u0027host\u0027] \u003d message[\u0027publisher_id\u0027]"},{"line_number":79,"context_line":"    return cls(name\u003dname,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2FwwQ%3D","line":76,"updated":"2013-06-21 20:49:49.000000000","message":"Should we flatten the payload to allow for nested data structures? I can\u0027t remember if any of the notifications actually have any.","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"54a57b44db389ecea071d89194a0d68c95c780c1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"},{"line_number":77,"context_line":"    metadata[\u0027event_type\u0027] \u003d message[\u0027event_type\u0027]"},{"line_number":78,"context_line":"    metadata[\u0027host\u0027] \u003d message[\u0027publisher_id\u0027]"},{"line_number":79,"context_line":"    return cls(name\u003dname,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fusc%3D","line":76,"in_reply_to":"AAAAPn%2F%2FwwQ%3D","updated":"2013-06-24 09:48:35.000000000","message":"No. I thought so initially but this actually handled by the API.","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"cc27a8a27fdb8b1749f6cdc1c1ebcfc1d07560ec","unresolved":false,"context_lines":[{"line_number":87,"context_line":"               resource_metadata\u003dmetadata)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Counter.from_notification \u003d classmethod(from_notification)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fwws%3D","line":90,"updated":"2013-06-21 20:49:49.000000000","message":"I\u0027m not sure how I feel about this. If Counter wasn\u0027t a namedtuple, we would only have the function in one namespace but now we have it in 2. We\u0027re always accessing from_notification as counter.Counter.from_notification(), so we have the module namespace there anyway. Why make it a class method?","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"23008fab559ff9a09b185376bf19faac71fe14a0","unresolved":false,"context_lines":[{"line_number":87,"context_line":"               resource_metadata\u003dmetadata)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Counter.from_notification \u003d classmethod(from_notification)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fgoo%3D","line":90,"in_reply_to":"AAAAPn%2F%2FusU%3D","updated":"2013-06-28 20:22:02.000000000","message":"no strong preference in this scenario. either way works for me. i can understand adding it as class method as tighter coupling.","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"54a57b44db389ecea071d89194a0d68c95c780c1","unresolved":false,"context_lines":[{"line_number":87,"context_line":"               resource_metadata\u003dmetadata)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Counter.from_notification \u003d classmethod(from_notification)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2FusU%3D","line":90,"in_reply_to":"AAAAPn%2F%2Fwws%3D","updated":"2013-06-24 09:48:35.000000000","message":"Because it is a conceptually a class method and therefore that you\u0027ll be able to use it if you ever inherit from Counter?","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"754097bb16ca93a2932aa741a810316359ad5362","unresolved":false,"context_lines":[{"line_number":70,"context_line":"TYPE_CUMULATIVE \u003d \u0027cumulative\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FaUs%3D","line":73,"updated":"2013-07-02 14:35:33.000000000","message":"I like the refactoring, but I don\u0027t think Counters should know about notifications. Counters could be fabricated anywhere. This code really belong in notifications (notifications produce Counters), which is a cleaner separation imho.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"0da2d1949b7b915ecb9004729a51a9b18122374a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"TYPE_CUMULATIVE \u003d \u0027cumulative\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FRVA%3D","line":73,"in_reply_to":"AAAAPn%2F%2FRxM%3D","updated":"2013-07-05 15:11:23.000000000","message":"After a little more thought, I can see doing it this way. We\u0027re not changing the constructor for Counter, so a notification is not *required*, but by having a separate factory method it is much more convenient.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce0ca4ddaf16e4fecd662e65ad763546b977152a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"TYPE_CUMULATIVE \u003d \u0027cumulative\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FRxM%3D","line":73,"in_reply_to":"AAAAPn%2F%2FSqQ%3D","updated":"2013-07-05 11:35:51.000000000","message":"In my example I never mentioned there was Drummer class. :) Sure you can work around the limitation of the language regarding method dispatching with that.\n\nI really don\u0027t see any principle violation teaching Counter to be built from something else, that\u0027s a valid factory method design pattern application AFAIK.\n\nBut I\u0027m likely less opinionated than you on this so I can move, question is: where to?","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1cd68aecfa77cf5a2971d95759af6c89428d2679","unresolved":false,"context_lines":[{"line_number":70,"context_line":"TYPE_CUMULATIVE \u003d \u0027cumulative\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FSqQ%3D","line":73,"in_reply_to":"AAAAPn%2F%2FW30%3D","updated":"2013-07-04 21:36:21.000000000","message":"The Drummer uses a Drum and a Stick, so it\u0027s represented by a separate class. I agree with Sandy here, that we need to keep Counters separate from notifications. I\u0027m comfortable with this being a function, but I think it should live somewhere else.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"83593863775ca565a0cba24983d912fee14c5899","unresolved":false,"context_lines":[{"line_number":70,"context_line":"TYPE_CUMULATIVE \u003d \u0027cumulative\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def from_notification(cls, name, type, volume, unit,"},{"line_number":74,"context_line":"                      user_id, project_id, resource_id,"},{"line_number":75,"context_line":"                      message):"},{"line_number":76,"context_line":"    metadata \u003d copy.copy(message[\u0027payload\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FW30%3D","line":73,"in_reply_to":"AAAAPn%2F%2FaUs%3D","updated":"2013-07-03 12:35:54.000000000","message":"I understand your point of view, but this is the well known problem of object implementation in language like Python, also know as \"should I put the make_noise method on on the drum class or on the stick class\" :)","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"}],"ceilometer/image/notifications.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b068e71df8ecb0e34ddd5c01c06e532f1f3069c4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \u0027checksum\u0027,"},{"line_number":68,"context_line":"        \u0027is_public\u0027,"},{"line_number":69,"context_line":"        \u0027deleted_at\u0027,"},{"line_number":70,"context_line":"        \u0027min_ram\u0027,"},{"line_number":71,"context_line":"    ]"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FynY%3D","line":70,"updated":"2013-06-21 07:02:13.000000000","message":"metadata_keys are no longer needed.","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f8871337b91c8cc41db0063339c5481f2029628","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \u0027checksum\u0027,"},{"line_number":68,"context_line":"        \u0027is_public\u0027,"},{"line_number":69,"context_line":"        \u0027deleted_at\u0027,"},{"line_number":70,"context_line":"        \u0027min_ram\u0027,"},{"line_number":71,"context_line":"    ]"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FygM%3D","line":70,"in_reply_to":"AAAAPn%2F%2FynY%3D","updated":"2013-06-21 08:18:07.000000000","message":"Done","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"}],"ceilometer/volume/notifications.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b068e71df8ecb0e34ddd5c01c06e532f1f3069c4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        \"status\","},{"line_number":44,"context_line":"        \"display_name\","},{"line_number":45,"context_line":"        \"volume_type\","},{"line_number":46,"context_line":"        \"size\","},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FynI%3D","line":46,"updated":"2013-06-21 07:02:13.000000000","message":"no longer needed.","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f8871337b91c8cc41db0063339c5481f2029628","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        \"status\","},{"line_number":44,"context_line":"        \"display_name\","},{"line_number":45,"context_line":"        \"volume_type\","},{"line_number":46,"context_line":"        \"size\","},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FygI%3D","line":46,"in_reply_to":"AAAAPn%2F%2FynI%3D","updated":"2013-06-21 08:18:07.000000000","message":"Done","commit_id":"ec7518c86ba56643f7499cf0f2ff87409500d514"}],"tests/compute/test_pollsters.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"cc27a8a27fdb8b1749f6cdc1c1ebcfc1d07560ec","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        super(TestLocationMetadata, self).setUp()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # Mimics an instance returned from nova api call"},{"line_number":56,"context_line":"        self.INSTANCE_PROPERTIES \u003d {\u0027name\u0027: \u0027display name\u0027,"},{"line_number":57,"context_line":"                                    \u0027OS-EXT-SRV-ATTR:instance_name\u0027:"},{"line_number":58,"context_line":"                                    \u0027instance-000001\u0027,"},{"line_number":59,"context_line":"                                    \u0027reservation_id\u0027: \u0027reservation id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fwvc%3D","line":56,"updated":"2013-06-21 20:49:49.000000000","message":"Why use all caps for an instance attribute?","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"54a57b44db389ecea071d89194a0d68c95c780c1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        super(TestLocationMetadata, self).setUp()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # Mimics an instance returned from nova api call"},{"line_number":56,"context_line":"        self.INSTANCE_PROPERTIES \u003d {\u0027name\u0027: \u0027display name\u0027,"},{"line_number":57,"context_line":"                                    \u0027OS-EXT-SRV-ATTR:instance_name\u0027:"},{"line_number":58,"context_line":"                                    \u0027instance-000001\u0027,"},{"line_number":59,"context_line":"                                    \u0027reservation_id\u0027: \u0027reservation id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2FusQ%3D","line":56,"in_reply_to":"AAAAPn%2F%2Fwvc%3D","updated":"2013-06-24 09:48:35.000000000","message":"This is historical, not my code actually.","commit_id":"e53daef7dcd3f7d0b023360370f0a29cb214bf8c"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"754097bb16ca93a2932aa741a810316359ad5362","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        self.instance \u003d FauxInstance(**self.INSTANCE_PROPERTIES)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_metadata(self):"},{"line_number":83,"context_line":"        md \u003d pollsters.get_metadata_from_object(self.instance)"},{"line_number":84,"context_line":"        for prop, value in self.INSTANCE_PROPERTIES.iteritems():"},{"line_number":85,"context_line":"            if prop not in (\"metadata\"):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FaSk%3D","line":82,"updated":"2013-07-02 14:35:33.000000000","message":"There should be a separate test for add() and get() ... too many conditions to eyeball when it\u0027s all in one test.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"83593863775ca565a0cba24983d912fee14c5899","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        self.instance \u003d FauxInstance(**self.INSTANCE_PROPERTIES)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_metadata(self):"},{"line_number":83,"context_line":"        md \u003d pollsters.get_metadata_from_object(self.instance)"},{"line_number":84,"context_line":"        for prop, value in self.INSTANCE_PROPERTIES.iteritems():"},{"line_number":85,"context_line":"            if prop not in (\"metadata\"):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FW3g%3D","line":82,"in_reply_to":"AAAAPn%2F%2FaSk%3D","updated":"2013-07-03 12:35:54.000000000","message":"This is a refactor for the old test, not the purpose of this patch in the first place.","commit_id":"d5215d8854d10236ab95386e43fbf1013ec6826a"}]}
