)]}'
{"novaclient/v1_1/aggregates.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack LLC."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9uI%3D","line":1,"updated":"2012-01-26 14:36:19.000000000","message":"shouldn\u0027t this be 2012? I know this is easy to miss ;)","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                              \u0027availability_zone\u0027: availability_zone}}"},{"line_number":61,"context_line":"        return self._create(\u0027/os-aggregates\u0027, body, \u0027aggregate\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get_details(self, arggregate):"},{"line_number":64,"context_line":"        \"\"\"Get details of the specified aggregate.\"\"\""},{"line_number":65,"context_line":"        return self._get(\u0027/os-aggregates/%s\u0027"},{"line_number":66,"context_line":"                            % (base.getid(arggregate)),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9uE%3D","line":63,"updated":"2012-01-26 14:36:19.000000000","message":"arggregate should really be aggregate, here and below.","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"3ac207c28bc12de8d7da4003108c4205a5c172c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        return \"\u003cAggregate: %s\u003e\" % self.id"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def _add_details(self, info):"},{"line_number":28,"context_line":"        dico \u003d \u0027os-aggregate\u0027 in info and \\"},{"line_number":29,"context_line":"            info[\u0027os-aggregate\u0027] or info"},{"line_number":30,"context_line":"        for (k, v) in dico.items():"},{"line_number":31,"context_line":"            setattr(self, k, v)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAEH%2F%2F9pw%3D","line":28,"updated":"2012-01-26 17:55:35.000000000","message":"It would be cleaner to ensure you always pass in the same data structure here rather than handling the case of {\u0027os-aggregate\u0027: {...}} or {...}.","commit_id":"f69635d04b6e3ead42088fda91d29730ecd374f4"}],"novaclient/v1_1/shell.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":380,"context_line":"def do_image_meta(cs, args):"},{"line_number":381,"context_line":"    \"\"\"Set or Delete metadata on an image.\"\"\""},{"line_number":382,"context_line":"    image \u003d _find_image(cs, args.image)"},{"line_number":383,"context_line":"    metadata \u003d _extract_metadata(args)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    if args.action \u003d\u003d \u0027set\u0027:"},{"line_number":386,"context_line":"        cs.images.set_meta(image, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9uA%3D","line":383,"updated":"2012-01-26 14:36:19.000000000","message":"are you sure that these changes are intentional?","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            value \u003d None"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        metadata[key] \u003d value"},{"line_number":403,"context_line":"    return metadata"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"def _print_image(image):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9t8%3D","line":403,"updated":"2012-01-26 14:36:19.000000000","message":"and this?","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":684,"context_line":"def do_meta(cs, args):"},{"line_number":685,"context_line":"    \"\"\"Set or Delete metadata on a server.\"\"\""},{"line_number":686,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":687,"context_line":"    metadata \u003d _extract_metadata(args)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    if args.action \u003d\u003d \u0027set\u0027:"},{"line_number":690,"context_line":"        cs.servers.set_meta(server, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9t4%3D","line":687,"updated":"2012-01-26 14:36:19.000000000","message":"and this?","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"@utils.arg(\u0027availability_zone\u0027, metavar\u003d\u0027\u003cavailability_zone\u003e\u0027,"},{"line_number":1454,"context_line":"           help\u003d\u0027The availablity zone of the aggregate.\u0027)"},{"line_number":1455,"context_line":"def do_aggregate_create(cs, args):"},{"line_number":1456,"context_line":"    \"\"\"Create a new aggregate with the specified details\"\"\""},{"line_number":1457,"context_line":"    name \u003d args.name"},{"line_number":1458,"context_line":"    availability_zone \u003d args.availability_zone"},{"line_number":1459,"context_line":"    aggregate \u003d cs.aggregates.create(name, availability_zone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9t0%3D","line":1456,"updated":"2012-01-26 14:36:19.000000000","message":"niggley bit...missing period at the end of the docstring","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":1463,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cid\u003e\u0027, help\u003d\u0027Aggregate id to delete.\u0027)"},{"line_number":1464,"context_line":"def do_aggregate_delete(cs, args):"},{"line_number":1465,"context_line":"    \"\"\"Delete the aggregate by its id\"\"\""},{"line_number":1466,"context_line":"    id \u003d args.id  # TODO - find by name or id?"},{"line_number":1467,"context_line":"    cs.aggregates.delete(id)"},{"line_number":1468,"context_line":"    print \"Aggregate %s has been succesfully deleted.\" % id"},{"line_number":1469,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9tw%3D","line":1466,"updated":"2012-01-26 14:36:19.000000000","message":"I don\u0027t understand this todo. Could you elaborate?","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"3ac207c28bc12de8d7da4003108c4205a5c172c8","unresolved":false,"context_lines":[{"line_number":1504,"context_line":"@utils.arg(\u0027host\u0027, metavar\u003d\u0027\u003chost\u003e\u0027, help\u003d\u0027The host to add to the aggregate.\u0027)"},{"line_number":1505,"context_line":"def do_aggregate_add_host(cs, args):"},{"line_number":1506,"context_line":"    \"\"\"Add the host to the specified aggregate.\"\"\""},{"line_number":1507,"context_line":"    id \u003d args.id  # TODO - find by name or id?"},{"line_number":1508,"context_line":"    host \u003d args.host"},{"line_number":1509,"context_line":"    aggregate \u003d cs.aggregates.add_host(id, host)"},{"line_number":1510,"context_line":"    print \"Aggregate %s has been succesfully updated.\" % id"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAEH%2F%2F9ps%3D","line":1507,"updated":"2012-01-26 17:55:35.000000000","message":"It really isn\u0027t necessary to create local variables like this","commit_id":"f69635d04b6e3ead42088fda91d29730ecd374f4"}],"tests/v1_1/fakes.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            {\u0027id\u0027: 1, \u0027fixed_ip\u0027: \u002710.0.0.1\u0027, \u0027ip\u0027: \u002711.0.0.1\u0027}"},{"line_number":373,"context_line":"        })"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def post_os_floating_ips(self, body, **kw):"},{"line_number":376,"context_line":"        return (202, self.get_os_floating_ips_1()[1])"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def post_os_floating_ips(self, body):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9ts%3D","side":"PARENT","line":375,"updated":"2012-01-26 14:36:19.000000000","message":"are you sure you want to delete this?","commit_id":"36be4bf5759ae1f22c6eeeff5be01cf20e068bf3"}],"tests/v1_1/test_aggregates.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from novaclient.v1_1 import aggregates"},{"line_number":2,"context_line":"from tests import utils"},{"line_number":3,"context_line":"from tests.v1_1 import fakes"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9to%3D","line":1,"updated":"2012-01-26 14:36:19.000000000","message":"some of the test files have the copyright notes some don\u0027t. I\u0027d err on the side of caution and add it.","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"060ad7023d636d0852497e6cb12ad70473a2e008","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/os-aggregates/1/action\u0027, body)"},{"line_number":103,"context_line":"        self.assertTrue(isinstance(result3, aggregates.Aggregate))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_delete_aggregate(self):"},{"line_number":106,"context_line":"        aggregate \u003d cs.aggregates.list()[0]"},{"line_number":107,"context_line":"        aggregate.delete()"},{"line_number":108,"context_line":"        cs.assert_called(\u0027DELETE\u0027, \u0027/os-aggregates/1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F9tk%3D","line":105,"updated":"2012-01-26 14:36:19.000000000","message":"why are you calling delete three times with the same id? Maybe a docstring on top of each test will make things easier to read.","commit_id":"4fee4f34b22b395646239eced83c02bd36ebec2a"}]}
