)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f2d833ea5edaf2638624eab373bd5e4b44a14fcc","unresolved":false,"context_lines":[{"line_number":10,"context_line":"newly refactored classes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Additionally, it adds several properties to the Server resource that"},{"line_number":13,"context_line":"have been documented since it was originally implmented. Several of"},{"line_number":14,"context_line":"these have been requested lately by users, including security_groups,"},{"line_number":15,"context_line":"availability_zone, and admin_password."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3aaa91ec_909f7b4f","line":13,"range":{"start_line":13,"start_character":45,"end_line":13,"end_character":55},"updated":"2016-06-23 14:22:07.000000000","message":"typo","commit_id":"b23cf785e68fc0955fb873abb0d64f4d04f7cd96"}],"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        flv \u003d _flavor.FlavorDetail if details else _flavor.Flavor"},{"line_number":122,"context_line":"        return self._list(flv, paginated\u003dTrue, **query)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def update_flavor(self, flavor, **attrs):"},{"line_number":125,"context_line":"        \"\"\"Update a flavor"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        :param flavor: Either the ID of a flavor or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_572fbef5","side":"PARENT","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":21},"updated":"2016-04-19 06:25:53.000000000","message":"\"update_flavor\" raises HttpException: Bad Request as Nova does not support update_flavor API yet.","commit_id":"13244eb46fbe8fb8264cc59e0f7694ac60607539"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        if \"changes_since\" in query:"},{"line_number":441,"context_line":"            query[\"changes-since\"] \u003d query.pop(\"changes_since\")"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        return self._list(srv, paginated\u003dTrue, **query)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    def update_server(self, server, **attrs):"},{"line_number":446,"context_line":"        \"\"\"Update a server"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_17d8a61c","side":"PARENT","line":443,"range":{"start_line":443,"start_character":8,"end_line":443,"end_character":14},"updated":"2016-04-19 06:25:53.000000000","message":"generator object returned by this api does not stop iterations and returns repeated results on calling .next()","commit_id":"13244eb46fbe8fb8264cc59e0f7694ac60607539"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        else:"},{"line_number":198,"context_line":"            return base({\"id\": res})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def get_image_metadata(self, image):"},{"line_number":201,"context_line":"        \"\"\"Return a dictionary of metadata for an image"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param image: Either the ID of an image or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_5a86c365","line":200,"range":{"start_line":200,"start_character":8,"end_line":200,"end_character":26},"updated":"2016-04-19 06:25:53.000000000","message":"raising NotFoundException","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        result \u003d _image.Image.existing(id\u003dres.id, metadata\u003dmetadata)"},{"line_number":215,"context_line":"        return result"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def set_image_metadata(self, image, **metadata):"},{"line_number":218,"context_line":"        \"\"\"Update metadata for an image"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        :param image: Either the ID of an image or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_fa97cf8d","line":217,"range":{"start_line":217,"start_character":8,"end_line":217,"end_character":26},"updated":"2016-04-19 06:25:53.000000000","message":"raising NotFoundException","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f2d833ea5edaf2638624eab373bd5e4b44a14fcc","unresolved":false,"context_lines":[{"line_number":536,"context_line":""},{"line_number":537,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":538,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":539,"context_line":"        :param security_group: Either the ID of a server or a"},{"line_number":540,"context_line":"            :class:`~openstack.network.v2.security_group.SecurityGroup`"},{"line_number":541,"context_line":"            instance."},{"line_number":542,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_2b961cf0","line":539,"range":{"start_line":539,"start_character":50,"end_line":539,"end_character":56},"updated":"2016-06-23 14:22:07.000000000","message":"security group","commit_id":"b23cf785e68fc0955fb873abb0d64f4d04f7cd96"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f2d833ea5edaf2638624eab373bd5e4b44a14fcc","unresolved":false,"context_lines":[{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":553,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":554,"context_line":"        :param security_group: Either the ID of a server or a"},{"line_number":555,"context_line":"            :class:`~openstack.network.v2.security_group.SecurityGroup`"},{"line_number":556,"context_line":"            instance."},{"line_number":557,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_ebfd343b","line":554,"range":{"start_line":554,"start_character":50,"end_line":554,"end_character":56},"updated":"2016-06-23 14:22:07.000000000","message":"security group","commit_id":"b23cf785e68fc0955fb873abb0d64f4d04f7cd96"}],"openstack/compute/v2/extension.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    id_attribute \u003d \"alias\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # capabilities"},{"line_number":26,"context_line":"    allow_retrieve \u003d True"},{"line_number":27,"context_line":"    allow_list \u003d True"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # Properties"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_37220201","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":18},"updated":"2016-04-19 06:25:53.000000000","message":"Should be allow_get \u003d True","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"}],"openstack/compute/v2/flavor.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    # capabilities"},{"line_number":24,"context_line":"    allow_create \u003d True"},{"line_number":25,"context_line":"    allow_retrieve \u003d True"},{"line_number":26,"context_line":"    allow_update \u003d True"},{"line_number":27,"context_line":"    allow_delete \u003d True"},{"line_number":28,"context_line":"    allow_list \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_577dfee5","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":18},"updated":"2016-04-19 06:25:53.000000000","message":"Should be allow_get \u003d True","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f2d833ea5edaf2638624eab373bd5e4b44a14fcc","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    allow_delete \u003d True"},{"line_number":28,"context_line":"    allow_list \u003d True"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    _query_mapping \u003d resource2.QueryParameters(\"sort_key\", \"sort_dir\","},{"line_number":31,"context_line":"                                               min_disk\u003d\"minDisk\","},{"line_number":32,"context_line":"                                               min_ram\u003d\"minRam\")"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_f5ab511b","line":30,"updated":"2016-06-23 14:22:07.000000000","message":"General suggestion: Add unit tests for the query mappings.","commit_id":"b23cf785e68fc0955fb873abb0d64f4d04f7cd96"}],"openstack/compute/v2/image.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    service \u003d compute_service.ComputeService()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # capabilities"},{"line_number":26,"context_line":"    allow_retrieve \u003d True"},{"line_number":27,"context_line":"    allow_delete \u003d True"},{"line_number":28,"context_line":"    allow_list \u003d True"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_f76eca2d","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":18},"updated":"2016-04-19 06:25:53.000000000","message":"Should be allow_get \u003d True","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"}],"openstack/compute/v2/server.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f2d833ea5edaf2638624eab373bd5e4b44a14fcc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    #: The name of this server."},{"line_number":36,"context_line":"    name \u003d resource2.Body(\u0027name\u0027)"},{"line_number":37,"context_line":"    #: The ID of this server."},{"line_number":38,"context_line":"    id \u003d resource2.Body(\u0027id\u0027)"},{"line_number":39,"context_line":"    #: A list of dictionaries holding links relevant to this server."},{"line_number":40,"context_line":"    links \u003d resource2.Body(\u0027links\u0027)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_46455d15","line":38,"updated":"2016-06-23 14:22:07.000000000","message":"Is it necessary to parse \u0027id\u0027 from the body?  It thought this would be automatic.","commit_id":"b23cf785e68fc0955fb873abb0d64f4d04f7cd96"}],"openstack/tests/unit/compute/v2/test_server_ip.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.assertEqual(4, len(ips))"},{"line_number":58,"context_line":"        ips \u003d sorted(ips, key\u003dlambda ip: ip.version)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        self.assertEqual(type(ips[0]), server_ip.ServerIP)"},{"line_number":61,"context_line":"        self.assertEqual(ips[0].network_label, \"label1\")"},{"line_number":62,"context_line":"        self.assertEqual(ips[0].address, \"a1\")"},{"line_number":63,"context_line":"        self.assertEqual(ips[0].version, 1)"},{"line_number":64,"context_line":"        self.assertEqual(type(ips[1]), server_ip.ServerIP)"},{"line_number":65,"context_line":"        self.assertEqual(ips[1].network_label, \"label1\")"},{"line_number":66,"context_line":"        self.assertEqual(ips[1].address, \"a2\")"},{"line_number":67,"context_line":"        self.assertEqual(ips[1].version, 2)"},{"line_number":68,"context_line":"        self.assertEqual(type(ips[2]), server_ip.ServerIP)"},{"line_number":69,"context_line":"        self.assertEqual(ips[2].network_label, \"label2\")"},{"line_number":70,"context_line":"        self.assertEqual(ips[2].address, \"a3\")"},{"line_number":71,"context_line":"        self.assertEqual(ips[2].version, 3)"},{"line_number":72,"context_line":"        self.assertEqual(type(ips[3]), server_ip.ServerIP)"},{"line_number":73,"context_line":"        self.assertEqual(ips[3].network_label, \"label2\")"},{"line_number":74,"context_line":"        self.assertEqual(ips[3].address, \"a4\")"},{"line_number":75,"context_line":"        self.assertEqual(ips[3].version, 4)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_list_network_label(self):"},{"line_number":78,"context_line":"        label \u003d \"label1\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_17f9c64d","line":75,"range":{"start_line":60,"start_character":8,"end_line":75,"end_character":43},"updated":"2016-04-19 06:25:53.000000000","message":"The correct order is self.assertEqual(expected, actual)","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"c3172ddd584cdcdb5648ea8505cce9b65557910b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertEqual(2, len(ips))"},{"line_number":91,"context_line":"        ips \u003d sorted(ips, key\u003dlambda ip: ip.version)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.assertEqual(type(ips[0]), server_ip.ServerIP)"},{"line_number":94,"context_line":"        self.assertEqual(ips[0].network_label, label)"},{"line_number":95,"context_line":"        self.assertEqual(ips[0].address, \"a1\")"},{"line_number":96,"context_line":"        self.assertEqual(ips[0].version, 1)"},{"line_number":97,"context_line":"        self.assertEqual(type(ips[1]), server_ip.ServerIP)"},{"line_number":98,"context_line":"        self.assertEqual(ips[1].network_label, label)"},{"line_number":99,"context_line":"        self.assertEqual(ips[1].address, \"a2\")"},{"line_number":100,"context_line":"        self.assertEqual(ips[1].version, 2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_b7a0d244","line":100,"range":{"start_line":93,"start_character":0,"end_line":100,"end_character":43},"updated":"2016-04-19 06:25:53.000000000","message":"Same as above.","commit_id":"a07eddd87bb9eb5b2c7d42cb5138ba73c1ac72ad"}]}
