)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"b5b60a602f673d4913844e83d3f4248bb977fce2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Co-Authored-By: Chet Burgess \u003ccheburge@cisco.com\u003e"},{"line_number":19,"context_line":"DocImpact"},{"line_number":20,"context_line":"Closes-Bug: 1366139"},{"line_number":21,"context_line":"Implements: blueprint configurable-metadata-cache-time"},{"line_number":22,"context_line":"Change-Id: I4e829ec52cf1445339f325b5895987c82dc7a8f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba7be1f8_a7306be9","line":21,"updated":"2015-02-27 21:33:10.000000000","message":"just drop the blueprint line here.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"}],"nova/api/metadata/handler.py":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a39073c9eefb6fda22fb87242c061189aa2fd12c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"metadata_opts \u003d ["},{"line_number":54,"context_line":"    cfg.IntOpt(\u0027metadata_cache_expiration\u0027,"},{"line_number":55,"context_line":"               default\u003d15,"},{"line_number":56,"context_line":"               help\u003d\u0027seconds to cache metadata for\u0027)"},{"line_number":57,"context_line":"]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"CONF.register_opts(metadata_proxy_opts, \u0027neutron\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_1e47f24c","line":56,"updated":"2015-02-27 00:51:07.000000000","message":"Can you expand the help message, explain why you may want to change it etc. The valid range etc.","commit_id":"10028c18c1ab1601eb3a8f7f8b33e1df18067bed"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"5b7a8af16ee33ed6a4032fa169d9864e293d9a6b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"metadata_opts \u003d ["},{"line_number":54,"context_line":"    cfg.IntOpt(\u0027metadata_cache_expiration\u0027,"},{"line_number":55,"context_line":"               default\u003d15,"},{"line_number":56,"context_line":"               help\u003d\u0027seconds to cache metadata for\u0027)"},{"line_number":57,"context_line":"]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"CONF.register_opts(metadata_proxy_opts, \u0027neutron\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_15e6cf16","line":56,"in_reply_to":"ba7be1f8_1e47f24c","updated":"2015-02-27 16:00:41.000000000","message":"Done","commit_id":"10028c18c1ab1601eb3a8f7f8b33e1df18067bed"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a39073c9eefb6fda22fb87242c061189aa2fd12c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % address"},{"line_number":77,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":78,"context_line":"        if data:"},{"line_number":79,"context_line":"            LOG.debug(\"Using cached metadata for %s\" % address)"},{"line_number":80,"context_line":"            return data"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_fe605ed1","line":79,"updated":"2015-02-27 00:51:07.000000000","message":"Is the extra log message really needed? If so that is fine. but concerned with filling up the logs with tons of data.","commit_id":"10028c18c1ab1601eb3a8f7f8b33e1df18067bed"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"5b7a8af16ee33ed6a4032fa169d9864e293d9a6b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % address"},{"line_number":77,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":78,"context_line":"        if data:"},{"line_number":79,"context_line":"            LOG.debug(\"Using cached metadata for %s\" % address)"},{"line_number":80,"context_line":"            return data"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_d5aa7784","line":79,"in_reply_to":"ba7be1f8_fe605ed1","updated":"2015-02-27 16:00:41.000000000","message":"It\u0027s nice to know when the cache is hitting. Presumably someone logging at the debug level isn\u0027t too worried about tons of data (or has a mitigation plan).","commit_id":"10028c18c1ab1601eb3a8f7f8b33e1df18067bed"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"b5b60a602f673d4913844e83d3f4248bb977fce2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.IntOpt(\u0027metadata_cache_expiration\u0027,"},{"line_number":55,"context_line":"               default\u003d15,"},{"line_number":56,"context_line":"               help\u003d\u0027Time in seconds to cache metadata for. Increasing this \u0027"},{"line_number":57,"context_line":"                    \u0027should increase response time of the metadata API when \u0027"},{"line_number":58,"context_line":"                    \u0027under heavy load. Higher values may increase memory \u0027"},{"line_number":59,"context_line":"                    \u0027usage and result in longer times for host metadata \u0027"},{"line_number":60,"context_line":"                    \u0027changes to take effect.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_8c2e2ea4","line":57,"updated":"2015-02-27 21:33:10.000000000","message":"increasing this should *improve\" response time of the ... ?\n\nit currently sounds like this upping this value will make things slower.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"98e1685f9668b05cbe0cb5e5de0e6fc48a7eecee","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.IntOpt(\u0027metadata_cache_expiration\u0027,"},{"line_number":55,"context_line":"               default\u003d15,"},{"line_number":56,"context_line":"               help\u003d\u0027Time in seconds to cache metadata for. Increasing this \u0027"},{"line_number":57,"context_line":"                    \u0027should increase response time of the metadata API when \u0027"},{"line_number":58,"context_line":"                    \u0027under heavy load. Higher values may increase memory \u0027"},{"line_number":59,"context_line":"                    \u0027usage and result in longer times for host metadata \u0027"},{"line_number":60,"context_line":"                    \u0027changes to take effect.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_102faca2","line":57,"in_reply_to":"ba7be1f8_8c2e2ea4","updated":"2015-02-27 23:19:59.000000000","message":"Done","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c66afd663c8d0bbb51eb4f8675758e9e099568f","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        except exception.NotFound:"},{"line_number":89,"context_line":"            return None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if CONF.metadata_cache_expiration \u003e 0:"},{"line_number":92,"context_line":"            self._cache.set(cache_key, data, CONF.metadata_cache_expiration)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_ac021209","line":91,"updated":"2015-02-27 21:30:40.000000000","message":"Do you want to put anything in the config option help about setting to \u003c\u003d 0 to disable caching?","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"98e1685f9668b05cbe0cb5e5de0e6fc48a7eecee","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        except exception.NotFound:"},{"line_number":89,"context_line":"            return None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if CONF.metadata_cache_expiration \u003e 0:"},{"line_number":92,"context_line":"            self._cache.set(cache_key, data, CONF.metadata_cache_expiration)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_d02434c8","line":91,"in_reply_to":"ba7be1f8_ac021209","updated":"2015-02-27 23:19:59.000000000","message":"Done","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"b5b60a602f673d4913844e83d3f4248bb977fce2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % instance_id"},{"line_number":98,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":99,"context_line":"        if data:"},{"line_number":100,"context_line":"            LOG.debug(\"Using cached metadata for instance %s\" % instance_id)"},{"line_number":101,"context_line":"            return data"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_873367f5","line":100,"updated":"2015-02-27 21:33:10.000000000","message":"Only 11 hits for \"Using cached metadata for\" in http://logs.openstack.org/64/159264/3/check/check-tempest-dsvm-full/9454b28/logs/screen-n-api.txt.gz\n\nSo I think these additional logs should be fine.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e92087044297f3291cf88cc1f44f0f60ba903fad","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % address"},{"line_number":82,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":83,"context_line":"        if data:"},{"line_number":84,"context_line":"            LOG.debug(\"Using cached metadata for %s\" % address)"},{"line_number":85,"context_line":"            return data"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_264f0fc0","line":84,"updated":"2015-02-28 17:17:21.000000000","message":"please use , instead instead of %","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % address"},{"line_number":82,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":83,"context_line":"        if data:"},{"line_number":84,"context_line":"            LOG.debug(\"Using cached metadata for %s\" % address)"},{"line_number":85,"context_line":"            return data"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_1cc5fa3c","line":84,"in_reply_to":"ba7be1f8_264f0fc0","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e92087044297f3291cf88cc1f44f0f60ba903fad","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % instance_id"},{"line_number":99,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":100,"context_line":"        if data:"},{"line_number":101,"context_line":"            LOG.debug(\"Using cached metadata for instance %s\" % instance_id)"},{"line_number":102,"context_line":"            return data"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_464ec3c2","line":101,"updated":"2015-02-28 17:17:21.000000000","message":"ditto","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        cache_key \u003d \u0027metadata-%s\u0027 % instance_id"},{"line_number":99,"context_line":"        data \u003d self._cache.get(cache_key)"},{"line_number":100,"context_line":"        if data:"},{"line_number":101,"context_line":"            LOG.debug(\"Using cached metadata for instance %s\" % instance_id)"},{"line_number":102,"context_line":"            return data"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_3cc47e3f","line":101,"in_reply_to":"ba7be1f8_464ec3c2","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"}],"nova/tests/unit/test_metadata.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0629f5140cafccbe87c8cc9a7d2dd1af706f2133","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            hashlib.sha256).hexdigest()"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        self.flags(service_metadata_proxy\u003dTrue, group\u003d\u0027neutron\u0027)"},{"line_number":812,"context_line":"        self.stubs.Set(base, \"get_metadata_by_instance_id\","},{"line_number":813,"context_line":"                       lambda api, instance_id, address: self.mdinst)"},{"line_number":814,"context_line":"        response \u003d fake_request("},{"line_number":815,"context_line":"            None, self.mdinst,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_e72a637d","line":812,"updated":"2015-02-27 21:32:40.000000000","message":"nit: use mock for new tests","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0629f5140cafccbe87c8cc9a7d2dd1af706f2133","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                     \u0027X-Tenant-ID\u0027: \u0027test\u0027,"},{"line_number":821,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: signed})"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":824,"context_line":"        self.assertEqual(response.body,"},{"line_number":825,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_27255bab","line":823,"updated":"2015-02-27 21:32:40.000000000","message":"args should be (expected, actual)","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f9516417e963f4ad38fb026c29159ed38c271973","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                     \u0027X-Tenant-ID\u0027: \u0027test\u0027,"},{"line_number":821,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: signed})"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":824,"context_line":"        self.assertEqual(response.body,"},{"line_number":825,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_a75eab10","line":823,"in_reply_to":"ba7be1f8_27255bab","updated":"2015-02-27 21:34:30.000000000","message":"enforcing this is a nightmare, IMHO we should just give up on enforcing this.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cae12833fd2e2a97137ac982bcb58d6da1759732","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                     \u0027X-Tenant-ID\u0027: \u0027test\u0027,"},{"line_number":821,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: signed})"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":824,"context_line":"        self.assertEqual(response.body,"},{"line_number":825,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_c7cf1fb2","line":823,"in_reply_to":"ba7be1f8_a75eab10","updated":"2015-02-27 21:36:55.000000000","message":"It\u0027s important and we should do it wherever we can, IMHO.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"98e1685f9668b05cbe0cb5e5de0e6fc48a7eecee","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                     \u0027X-Tenant-ID\u0027: \u0027test\u0027,"},{"line_number":821,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: signed})"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":824,"context_line":"        self.assertEqual(response.body,"},{"line_number":825,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_9012bc60","line":823,"in_reply_to":"ba7be1f8_c7cf1fb2","updated":"2015-02-27 23:19:59.000000000","message":"Done","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0629f5140cafccbe87c8cc9a7d2dd1af706f2133","unresolved":false,"context_lines":[{"line_number":825,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":"    def test_metadata_handler_with_instance_id(self):"},{"line_number":828,"context_line":"        # test twice to ensure that the cache works"},{"line_number":829,"context_line":"        self._metadata_handler_with_instance_id()"},{"line_number":830,"context_line":"        self._metadata_handler_with_instance_id()"},{"line_number":831,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_275c7b25","line":828,"updated":"2015-02-27 21:32:40.000000000","message":"How is this asserted?  I don\u0027t see anything doing a stub and asserting the number of calls on a thing to make sure it\u0027s only 1.","commit_id":"d46282daa1fbec76ba249cbd190725d7c5246ecc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83144f0c3d2e93c9b97ea86ad596a66b500c372a","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        self.assertEqual(base64.b64decode(self.instance[\u0027user_data\u0027]),"},{"line_number":826,"context_line":"                         response.body)"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_instance_id\u0027)"},{"line_number":829,"context_line":"    def test_metadata_handler_with_instance_id(self, get_by_uuid):"},{"line_number":830,"context_line":"        # test twice to ensure that the cache works"},{"line_number":831,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_196c379c","line":828,"updated":"2015-02-28 01:07:14.000000000","message":"You can use @mock.patch.object(base, \u0027get_metadata_by_instance_id\u0027) since \"base\" is already imported. Generally @mock.patch is only used when that\u0027s not the case (the thing you\u0027re patching isn\u0027t directly imported).","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"699e7530301ebc0ce18e82c3ed52c98e5216d643","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        self.assertEqual(base64.b64decode(self.instance[\u0027user_data\u0027]),"},{"line_number":826,"context_line":"                         response.body)"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_instance_id\u0027)"},{"line_number":829,"context_line":"    def test_metadata_handler_with_instance_id(self, get_by_uuid):"},{"line_number":830,"context_line":"        # test twice to ensure that the cache works"},{"line_number":831,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_d9d0dff9","line":828,"in_reply_to":"ba7be1f8_196c379c","updated":"2015-02-28 01:17:49.000000000","message":"As you wish.","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83144f0c3d2e93c9b97ea86ad596a66b500c372a","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":836,"context_line":"        self.assertEqual(1, get_by_uuid.call_count)"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_instance_id\u0027)"},{"line_number":839,"context_line":"    def test_metadata_handler_with_instance_id_no_cache(self, get_by_uuid):"},{"line_number":840,"context_line":"        # test twice to ensure that disabling the cache works"},{"line_number":841,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_190357b9","line":838,"updated":"2015-02-28 01:07:14.000000000","message":"same","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"699e7530301ebc0ce18e82c3ed52c98e5216d643","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":836,"context_line":"        self.assertEqual(1, get_by_uuid.call_count)"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_instance_id\u0027)"},{"line_number":839,"context_line":"    def test_metadata_handler_with_instance_id_no_cache(self, get_by_uuid):"},{"line_number":840,"context_line":"        # test twice to ensure that disabling the cache works"},{"line_number":841,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_f9cbe347","line":838,"in_reply_to":"ba7be1f8_190357b9","updated":"2015-02-28 01:17:49.000000000","message":"Done","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83144f0c3d2e93c9b97ea86ad596a66b500c372a","unresolved":false,"context_lines":[{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_address\u0027)"},{"line_number":860,"context_line":"    def test_metadata_handler_with_remote_address(self, get_by_uuid):"},{"line_number":861,"context_line":"        # test twice to ensure that the cache works"},{"line_number":862,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_592cef4a","line":859,"updated":"2015-02-28 01:07:14.000000000","message":"same","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"699e7530301ebc0ce18e82c3ed52c98e5216d643","unresolved":false,"context_lines":[{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_address\u0027)"},{"line_number":860,"context_line":"    def test_metadata_handler_with_remote_address(self, get_by_uuid):"},{"line_number":861,"context_line":"        # test twice to ensure that the cache works"},{"line_number":862,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_19db571c","line":859,"in_reply_to":"ba7be1f8_592cef4a","updated":"2015-02-28 01:17:49.000000000","message":"Done","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83144f0c3d2e93c9b97ea86ad596a66b500c372a","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        self._metadata_handler_with_remote_address(hnd, get_by_uuid)"},{"line_number":867,"context_line":"        self.assertEqual(1, get_by_uuid.call_count)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_address\u0027)"},{"line_number":870,"context_line":"    def test_metadata_handler_with_remote_address_no_cache(self, get_by_uuid):"},{"line_number":871,"context_line":"        # test twice to ensure that disabling the cache works"},{"line_number":872,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_792ff33e","line":869,"updated":"2015-02-28 01:07:14.000000000","message":"same","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"699e7530301ebc0ce18e82c3ed52c98e5216d643","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        self._metadata_handler_with_remote_address(hnd, get_by_uuid)"},{"line_number":867,"context_line":"        self.assertEqual(1, get_by_uuid.call_count)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch(\u0027nova.api.metadata.base.get_metadata_by_address\u0027)"},{"line_number":870,"context_line":"    def test_metadata_handler_with_remote_address_no_cache(self, get_by_uuid):"},{"line_number":871,"context_line":"        # test twice to ensure that disabling the cache works"},{"line_number":872,"context_line":"        get_by_uuid.return_value \u003d self.mdinst"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_5904ef7d","line":869,"in_reply_to":"ba7be1f8_792ff33e","updated":"2015-02-28 01:17:49.000000000","message":"Done","commit_id":"ab8450aba531d25c152e610e7e46ee66350c5e0b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2953ee2bd152ce12caf79a61be3e2dd9fbdcc4d8","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"def fake_request(stubs, mdinst, relpath, address\u003d\"127.0.0.1\","},{"line_number":113,"context_line":"                 fake_get_metadata\u003dNone, headers\u003dNone,"},{"line_number":114,"context_line":"                 fake_get_metadata_by_instance_id\u003dNone, app\u003dNone):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_metadata_by_remote_address(address):"},{"line_number":117,"context_line":"        return mdinst"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_791b7380","line":114,"updated":"2015-02-28 01:43:03.000000000","message":"Why is the app kwarg added here? It appears everywhere you pass handler.MetadataRequestHandler() anyway.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"195271a8d76991c224ec2520e8a47595a3f5442c","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"def fake_request(stubs, mdinst, relpath, address\u003d\"127.0.0.1\","},{"line_number":113,"context_line":"                 fake_get_metadata\u003dNone, headers\u003dNone,"},{"line_number":114,"context_line":"                 fake_get_metadata_by_instance_id\u003dNone, app\u003dNone):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_metadata_by_remote_address(address):"},{"line_number":117,"context_line":"        return mdinst"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_c4a8f6dd","line":114,"in_reply_to":"ba7be1f8_791b7380","updated":"2015-02-28 01:53:19.000000000","message":"Because the new tests aren\u0027t the only users of fake_request().  By default, it will instantiate a new request handler on every request, which implicitly destroys the cache.  The new tests are expressly testing caching, so that\u0027s a bad idea, and needs to be an optional behavior.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2953ee2bd152ce12caf79a61be3e2dd9fbdcc4d8","unresolved":false,"context_lines":[{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        _test_metadata_path(\u0027/2009-04-04/meta-data\u0027)"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    def _metadata_handler_with_instance_id(self, hnd, get_by_uuid):"},{"line_number":805,"context_line":"        expected_instance_id \u003d \u0027a-b-c-d\u0027"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        signed \u003d hmac.new("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_c42396a5","line":804,"updated":"2015-02-28 01:43:03.000000000","message":"Why do you take get_by_uuid here? It appears you don\u0027t use it.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38d70b3eb3eb2ed4d89b8da1bb3512d55966db88","unresolved":false,"context_lines":[{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        _test_metadata_path(\u0027/2009-04-04/meta-data\u0027)"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    def _metadata_handler_with_instance_id(self, hnd, get_by_uuid):"},{"line_number":805,"context_line":"        expected_instance_id \u003d \u0027a-b-c-d\u0027"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        signed \u003d hmac.new("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_e644171d","line":804,"in_reply_to":"ba7be1f8_a4f30209","updated":"2015-02-28 16:13:12.000000000","message":"Let\u0027s just clean it up so someone else doesn\u0027t push a patch a year from now to do the same.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"195271a8d76991c224ec2520e8a47595a3f5442c","unresolved":false,"context_lines":[{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        _test_metadata_path(\u0027/2009-04-04/meta-data\u0027)"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    def _metadata_handler_with_instance_id(self, hnd, get_by_uuid):"},{"line_number":805,"context_line":"        expected_instance_id \u003d \u0027a-b-c-d\u0027"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        signed \u003d hmac.new("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_a4f30209","line":804,"in_reply_to":"ba7be1f8_c42396a5","updated":"2015-02-28 01:53:19.000000000","message":"I used to set the retval on the mocked method in here; I moved it out to the calling method at some point and neglected to update the signatures.\n\nIt doesn\u0027t hurt anything to leave it here, but if it absolutely, positively needs to come out, I can do that.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        _test_metadata_path(\u0027/2009-04-04/meta-data\u0027)"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    def _metadata_handler_with_instance_id(self, hnd, get_by_uuid):"},{"line_number":805,"context_line":"        expected_instance_id \u003d \u0027a-b-c-d\u0027"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        signed \u003d hmac.new("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_5cbf72aa","line":804,"in_reply_to":"ba7be1f8_e644171d","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2953ee2bd152ce12caf79a61be3e2dd9fbdcc4d8","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":846,"context_line":"        self.assertEqual(2, get_by_uuid.call_count)"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"    def _metadata_handler_with_remote_address(self, hnd, get_by_uuid):"},{"line_number":849,"context_line":"        response \u003d fake_request("},{"line_number":850,"context_line":"            None, self.mdinst,"},{"line_number":851,"context_line":"            fake_get_metadata\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_243472dd","line":848,"updated":"2015-02-28 01:43:03.000000000","message":"Same comment as above, you don\u0027t seem to be using get_by_uuid?","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"195271a8d76991c224ec2520e8a47595a3f5442c","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":846,"context_line":"        self.assertEqual(2, get_by_uuid.call_count)"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"    def _metadata_handler_with_remote_address(self, hnd, get_by_uuid):"},{"line_number":849,"context_line":"        response \u003d fake_request("},{"line_number":850,"context_line":"            None, self.mdinst,"},{"line_number":851,"context_line":"            fake_get_metadata\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_24e71242","line":848,"in_reply_to":"ba7be1f8_243472dd","updated":"2015-02-28 01:53:19.000000000","message":"Same as above; fairly benign code drift.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38d70b3eb3eb2ed4d89b8da1bb3512d55966db88","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":846,"context_line":"        self.assertEqual(2, get_by_uuid.call_count)"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"    def _metadata_handler_with_remote_address(self, hnd, get_by_uuid):"},{"line_number":849,"context_line":"        response \u003d fake_request("},{"line_number":850,"context_line":"            None, self.mdinst,"},{"line_number":851,"context_line":"            fake_get_metadata\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_c641d30c","line":848,"in_reply_to":"ba7be1f8_24e71242","updated":"2015-02-28 16:13:12.000000000","message":"Let\u0027s just remove it, unused method args aren\u0027t fun.","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        self._metadata_handler_with_instance_id(hnd, get_by_uuid)"},{"line_number":846,"context_line":"        self.assertEqual(2, get_by_uuid.call_count)"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"    def _metadata_handler_with_remote_address(self, hnd, get_by_uuid):"},{"line_number":849,"context_line":"        response \u003d fake_request("},{"line_number":850,"context_line":"            None, self.mdinst,"},{"line_number":851,"context_line":"            fake_get_metadata\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_fcd026f9","line":848,"in_reply_to":"ba7be1f8_c641d30c","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38d70b3eb3eb2ed4d89b8da1bb3512d55966db88","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            app\u003dhnd,"},{"line_number":853,"context_line":"            relpath\u003d\"/2009-04-04/user-data\","},{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_c658f3fc","line":855,"updated":"2015-02-28 16:13:12.000000000","message":"Args should be (expected, actual), so:\n\nself.assertEqual(200, response.status_int)","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            app\u003dhnd,"},{"line_number":853,"context_line":"            relpath\u003d\"/2009-04-04/user-data\","},{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_5cd692f2","line":855,"in_reply_to":"ba7be1f8_c658f3fc","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38d70b3eb3eb2ed4d89b8da1bb3512d55966db88","unresolved":false,"context_lines":[{"line_number":853,"context_line":"            relpath\u003d\"/2009-04-04/user-data\","},{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(base, \u0027get_metadata_by_address\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_e65b37f4","line":856,"updated":"2015-02-28 16:13:12.000000000","message":"same","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":853,"context_line":"            relpath\u003d\"/2009-04-04/user-data\","},{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(base, \u0027get_metadata_by_address\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_7c04367e","line":856,"in_reply_to":"ba7be1f8_e65b37f4","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e92087044297f3291cf88cc1f44f0f60ba903fad","unresolved":false,"context_lines":[{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(base, \u0027get_metadata_by_address\u0027)"},{"line_number":860,"context_line":"    def test_metadata_handler_with_remote_address(self, get_by_uuid):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_06dbebed","line":857,"updated":"2015-02-28 17:17:21.000000000","message":"please use self.instance.user_data instead of self.instance[\u0027user_data\u0027]","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1ddb9c5e5e24acae76b82d0e01e5dcb13cff4820","unresolved":false,"context_lines":[{"line_number":854,"context_line":"            address\u003d\"192.192.192.2\")"},{"line_number":855,"context_line":"        self.assertEqual(response.status_int, 200)"},{"line_number":856,"context_line":"        self.assertEqual(response.body,"},{"line_number":857,"context_line":"                         base64.b64decode(self.instance[\u0027user_data\u0027]))"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(base, \u0027get_metadata_by_address\u0027)"},{"line_number":860,"context_line":"    def test_metadata_handler_with_remote_address(self, get_by_uuid):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_9c072a81","line":857,"in_reply_to":"ba7be1f8_06dbebed","updated":"2015-02-28 21:12:52.000000000","message":"Done","commit_id":"662e1b9bc0fb07079b06be717f0d57faf3db7f3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"225056f4df697faec5b622c4b0ce28cbe2718025","unresolved":false,"context_lines":[{"line_number":822,"context_line":"                     \u0027X-Instance-ID-Signature\u0027: signed})"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        self.assertEqual(200, response.status_int)"},{"line_number":825,"context_line":"        self.assertEqual(base64.b64decode(self.instance[\u0027user_data\u0027]),"},{"line_number":826,"context_line":"                         response.body)"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"    @mock.patch.object(base, \u0027get_metadata_by_instance_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_49b6ccdd","line":825,"updated":"2015-03-02 01:23:44.000000000","message":"If you respin, change this to self.instance.user_data.","commit_id":"5a93bfd484ec8402f906f13fefd4d03f04426d99"}]}
