)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":7,"context_line":"API: Get a subset of fields from Ports and Chassis"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since this feature is enabled for nodes we should make other resources"},{"line_number":10,"context_line":"to consistently support the same features so, this patch allows users"},{"line_number":11,"context_line":"to specify a list of fields that will be returned when GET\u0027ing a port"},{"line_number":12,"context_line":"or chassis (or a collection of those)"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a016987_51114303","line":10,"updated":"2015-05-28 21:47:27.000000000","message":"support this feature, so this patch allows users","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"}],"ironic/api/controllers/v1/chassis.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from ironic import objects"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_DEFAULT_COLLECTION_FIELDS \u003d [\u0027uuid\u0027, \u0027description\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ChassisPatchType(types.JsonPatchType):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_91321ba6","line":35,"updated":"2015-05-28 21:47:27.000000000","message":"nit: Could be a tuple to help it remain as a const.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        # fields the \"uuid\" can be unset, so we need to save it in another"},{"line_number":78,"context_line":"        # variable to use when building the links"},{"line_number":79,"context_line":"        chassis_uuid \u003d chassis.uuid"},{"line_number":80,"context_line":"        if fields:"},{"line_number":81,"context_line":"            chassis.unset_fields_except(fields)"},{"line_number":82,"context_line":"        else:"},{"line_number":83,"context_line":"            chassis.nodes \u003d [link.Link.make_link(\u0027self\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_d1c2d352","line":80,"updated":"2015-05-28 21:47:27.000000000","message":"nit:  I like but feel free to ignore\n\n if fields is not None:\n\nI notice it was done that way on line 107","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                     description\u003d\u0027Sample chassis\u0027, created_at\u003dtime,"},{"line_number":119,"context_line":"                     updated_at\u003dtime)"},{"line_number":120,"context_line":"        return cls._convert_with_links(sample, \u0027http://localhost:6385\u0027,"},{"line_number":121,"context_line":"                                       fields)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"class ChassisCollection(collection.Collection):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_910a1b89","line":121,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    @staticmethod"},{"line_number":134,"context_line":"    def convert_with_links(chassis, limit, url\u003dNone, fields\u003dNone, **kwargs):"},{"line_number":135,"context_line":"        collection \u003d ChassisCollection()"},{"line_number":136,"context_line":"        collection.chassis \u003d [Chassis.convert_with_links(ch, fields)"},{"line_number":137,"context_line":"                              for ch in chassis]"},{"line_number":138,"context_line":"        url \u003d url or None"},{"line_number":139,"context_line":"        collection.next \u003d collection.get_next(limit, url\u003durl, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_911e9b6e","line":136,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        \"\"\""},{"line_number":233,"context_line":"        rpc_chassis \u003d objects.Chassis.get_by_uuid(pecan.request.context,"},{"line_number":234,"context_line":"                                                  chassis_uuid)"},{"line_number":235,"context_line":"        return Chassis.convert_with_links(rpc_chassis, fields)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @expose.expose(Chassis, body\u003dChassis, status_code\u003d201)"},{"line_number":238,"context_line":"    def post(self, chassis):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_6c06a41d","line":235,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"}],"ironic/api/controllers/v1/port.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from ironic import objects"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_DEFAULT_COLLECTION_FIELDS \u003d [\u0027uuid\u0027, \u0027address\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class PortPatchType(types.JsonPatchType):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_ac27fcb4","line":35,"updated":"2015-05-28 21:47:27.000000000","message":"nit: Could be a tuple to help it remain as a const.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # fields the \"uuid\" can be unset, so we need to save it in another"},{"line_number":117,"context_line":"        # variable to use when building the links"},{"line_number":118,"context_line":"        port_uuid \u003d port.uuid"},{"line_number":119,"context_line":"        if fields:"},{"line_number":120,"context_line":"            port.unset_fields_except(fields)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # never expose the node_id attribute"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_6c5464fd","line":119,"updated":"2015-05-28 21:47:27.000000000","message":"nit:  I like but feel free to ignore\n\n if fields is not None:\n\nI notice it was done that way on line 137","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            api_utils.check_for_invalid_fields(fields, port_dict)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        port \u003d Port(**port_dict)"},{"line_number":141,"context_line":"        return cls._convert_with_links(port, pecan.request.host_url, fields)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def sample(cls, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_ec8df47c","line":141,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        # NOTE(lucasagomes): node_uuid getter() method look at the"},{"line_number":151,"context_line":"        # _node_uuid variable"},{"line_number":152,"context_line":"        sample._node_uuid \u003d \u00277ae81bb3-dec3-4289-8d6c-da80bd8001ae\u0027"},{"line_number":153,"context_line":"        return cls._convert_with_links(sample, \u0027http://localhost:6385\u0027, fields)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"class PortCollection(collection.Collection):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_cc8a3864","line":153,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    @staticmethod"},{"line_number":166,"context_line":"    def convert_with_links(rpc_ports, limit, url\u003dNone, fields\u003dNone, **kwargs):"},{"line_number":167,"context_line":"        collection \u003d PortCollection()"},{"line_number":168,"context_line":"        collection.ports \u003d [Port.convert_with_links(p, fields)"},{"line_number":169,"context_line":"                            for p in rpc_ports]"},{"line_number":170,"context_line":"        collection.next \u003d collection.get_next(limit, url\u003durl, **kwargs)"},{"line_number":171,"context_line":"        return collection"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_acea5c0d","line":168,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"b88b62beac3248ae2297c50088b9e54827eb5eb6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":268,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":269,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":270,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":271,"context_line":"                       be returned."},{"line_number":272,"context_line":"        \"\"\""},{"line_number":273,"context_line":"        if fields is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_54b33f4d","line":270,"updated":"2015-05-30 04:50:05.000000000","message":"fields doesn\u0027t come here as a comma separated string, it comes as a list.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":268,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":269,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":270,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":271,"context_line":"                       be returned."},{"line_number":272,"context_line":"        \"\"\""},{"line_number":273,"context_line":"        if fields is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_2f0ec934","line":270,"in_reply_to":"7a016987_54b33f4d","updated":"2015-06-02 10:50:23.000000000","message":"Right, but that\u0027s because the @expose decorator with the types.listtype converts it from a string to list.\n\nThe user input from the API still a comma separated string of fields","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"b88b62beac3248ae2297c50088b9e54827eb5eb6","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        \"\"\"Retrieve information about the given port."},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        :param port_uuid: UUID of a port."},{"line_number":332,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":333,"context_line":"                       be returned."},{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        if self.from_nodes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_34832358","line":332,"updated":"2015-05-30 04:50:05.000000000","message":"fields doesn\u0027t come here as a comma separated string, it comes as a list.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        \"\"\"Retrieve information about the given port."},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        :param port_uuid: UUID of a port."},{"line_number":332,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":333,"context_line":"                       be returned."},{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        if self.from_nodes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_af1ab96c","line":332,"in_reply_to":"7a016987_34832358","updated":"2015-06-02 10:50:23.000000000","message":"ditto","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            raise exception.OperationNotPermitted"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        rpc_port \u003d objects.Port.get_by_uuid(pecan.request.context, port_uuid)"},{"line_number":339,"context_line":"        return Port.convert_with_links(rpc_port, fields)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @expose.expose(Port, body\u003dPort, status_code\u003d201)"},{"line_number":342,"context_line":"    def post(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_0cdcd071","line":339,"updated":"2015-05-28 21:47:27.000000000","message":"nit: fields\u003dfields   seems safer/better","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"e6c3b80aab139a6526739a111477d018bd3f89e5","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":271,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":272,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":273,"context_line":"                       be returned."},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        api_utils.check_allow_specify_fields(fields)"},{"line_number":276,"context_line":"        if fields is None:"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_00bc8904","line":273,"updated":"2015-06-23 22:09:27.000000000","message":"to be consistent with the other ones, \"Optional, a list with a specified set of fields of the resource to be returned.\"","commit_id":"0e3a070de8a12e9d7111328970b179e4a8128a25"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"44bc184f0a5c6477bd90bbb74c90da05d86070d8","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":271,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":272,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":273,"context_line":"                       be returned."},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        api_utils.check_allow_specify_fields(fields)"},{"line_number":276,"context_line":"        if fields is None:"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_6bcf6a56","line":273,"in_reply_to":"fa32b979_00bc8904","updated":"2015-06-24 08:12:28.000000000","message":"Done","commit_id":"0e3a070de8a12e9d7111328970b179e4a8128a25"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"e6c3b80aab139a6526739a111477d018bd3f89e5","unresolved":false,"context_lines":[{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        :param port_uuid: UUID of a port."},{"line_number":335,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":336,"context_line":"                       be returned."},{"line_number":337,"context_line":"        \"\"\""},{"line_number":338,"context_line":"        if self.from_nodes:"},{"line_number":339,"context_line":"            raise exception.OperationNotPermitted"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_8055f9c2","line":336,"updated":"2015-06-23 22:09:27.000000000","message":"ditto","commit_id":"0e3a070de8a12e9d7111328970b179e4a8128a25"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"44bc184f0a5c6477bd90bbb74c90da05d86070d8","unresolved":false,"context_lines":[{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        :param port_uuid: UUID of a port."},{"line_number":335,"context_line":"        :param fields: Optional, a comma separated string of fields to"},{"line_number":336,"context_line":"                       be returned."},{"line_number":337,"context_line":"        \"\"\""},{"line_number":338,"context_line":"        if self.from_nodes:"},{"line_number":339,"context_line":"            raise exception.OperationNotPermitted"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_0bd81e1d","line":336,"in_reply_to":"fa32b979_8055f9c2","updated":"2015-06-24 08:12:28.000000000","message":"Done","commit_id":"0e3a070de8a12e9d7111328970b179e4a8128a25"}],"ironic/tests/api/v1/test_chassis.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"b88b62beac3248ae2297c50088b9e54827eb5eb6","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.assertIn(\u0027extra\u0027, data)"},{"line_number":62,"context_line":"        self.assertIn(\u0027nodes\u0027, data)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_get_one_custom_fields(self):"},{"line_number":65,"context_line":"        chassis \u003d obj_utils.create_test_chassis(self.context)"},{"line_number":66,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":67,"context_line":"        data \u003d self.get_json(\u0027/chassis/%s?fields\u003d%s\u0027 % (chassis.uuid, fields))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_14882770","line":64,"updated":"2015-05-30 04:50:05.000000000","message":"Same as the one in node, can we have a test case without uuid as there is some code to handle that case.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.assertIn(\u0027extra\u0027, data)"},{"line_number":62,"context_line":"        self.assertIn(\u0027nodes\u0027, data)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_get_one_custom_fields(self):"},{"line_number":65,"context_line":"        chassis \u003d obj_utils.create_test_chassis(self.context)"},{"line_number":66,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":67,"context_line":"        data \u003d self.get_json(\u0027/chassis/%s?fields\u003d%s\u0027 % (chassis.uuid, fields))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_af5f590d","line":64,"in_reply_to":"7a016987_14882770","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":67,"context_line":"        data \u003d self.get_json(\u0027/chassis/%s?fields\u003d%s\u0027 % (chassis.uuid, fields))"},{"line_number":68,"context_line":"        # We always append \"links\""},{"line_number":69,"context_line":"        self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(data))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_get_collection_custom_fields(self):"},{"line_number":72,"context_line":"        fields \u003d \u0027uuid,extra\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_ec0054ad","line":69,"updated":"2015-05-28 21:47:27.000000000","message":"If desired could do:\n\n self.assertItemsEqual([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027], data)","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":67,"context_line":"        data \u003d self.get_json(\u0027/chassis/%s?fields\u003d%s\u0027 % (chassis.uuid, fields))"},{"line_number":68,"context_line":"        # We always append \"links\""},{"line_number":69,"context_line":"        self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(data))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_get_collection_custom_fields(self):"},{"line_number":72,"context_line":"        fields \u003d \u0027uuid,extra\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_8f9b7dc9","line":69,"in_reply_to":"7a016987_ec0054ad","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        self.assertEqual(3, len(data[\u0027chassis\u0027]))"},{"line_number":80,"context_line":"        for ch in data[\u0027chassis\u0027]:"},{"line_number":81,"context_line":"            # We always append \"links\""},{"line_number":82,"context_line":"            self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(ch))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_get_custom_fields_invalid_fields(self):"},{"line_number":85,"context_line":"        chassis \u003d obj_utils.create_test_chassis(self.context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_4c288833","line":82,"updated":"2015-05-28 21:47:27.000000000","message":"If desired could do:\n\n self.assertItemsEqual([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027], data)","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        self.assertEqual(3, len(data[\u0027chassis\u0027]))"},{"line_number":80,"context_line":"        for ch in data[\u0027chassis\u0027]:"},{"line_number":81,"context_line":"            # We always append \"links\""},{"line_number":82,"context_line":"            self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(ch))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_get_custom_fields_invalid_fields(self):"},{"line_number":85,"context_line":"        chassis \u003d obj_utils.create_test_chassis(self.context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_6fa041f5","line":82,"in_reply_to":"7a016987_4c288833","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"}],"ironic/tests/api/v1/test_ports.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"b88b62beac3248ae2297c50088b9e54827eb5eb6","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # never expose the node_id"},{"line_number":86,"context_line":"        self.assertNotIn(\u0027node_id\u0027, data)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_get_one_custom_fields(self):"},{"line_number":89,"context_line":"        port \u003d obj_utils.create_test_port(self.context, node_id\u003dself.node.id)"},{"line_number":90,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":91,"context_line":"        data \u003d self.get_json(\u0027/ports/%s?fields\u003d%s\u0027 % (port.uuid, fields))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_f478eb7f","line":88,"updated":"2015-05-30 04:50:05.000000000","message":"Same as the one in node, can we have a test case without uuid as there is some code to handle that case.","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # never expose the node_id"},{"line_number":86,"context_line":"        self.assertNotIn(\u0027node_id\u0027, data)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_get_one_custom_fields(self):"},{"line_number":89,"context_line":"        port \u003d obj_utils.create_test_port(self.context, node_id\u003dself.node.id)"},{"line_number":90,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":91,"context_line":"        data \u003d self.get_json(\u0027/ports/%s?fields\u003d%s\u0027 % (port.uuid, fields))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_4f6ea5ca","line":88,"in_reply_to":"7a016987_f478eb7f","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":91,"context_line":"        data \u003d self.get_json(\u0027/ports/%s?fields\u003d%s\u0027 % (port.uuid, fields))"},{"line_number":92,"context_line":"        # We always append \"links\""},{"line_number":93,"context_line":"        self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(data))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_get_collection_custom_fields(self):"},{"line_number":96,"context_line":"        fields \u003d \u0027uuid,extra\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_0c1f3009","line":93,"updated":"2015-05-28 21:47:27.000000000","message":"If desired could do:\n\n self.assertItemsEqual([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027], data)","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        fields \u003d \u0027uuid,extra\u0027"},{"line_number":91,"context_line":"        data \u003d self.get_json(\u0027/ports/%s?fields\u003d%s\u0027 % (port.uuid, fields))"},{"line_number":92,"context_line":"        # We always append \"links\""},{"line_number":93,"context_line":"        self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(data))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_get_collection_custom_fields(self):"},{"line_number":96,"context_line":"        fields \u003d \u0027uuid,extra\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_2f7369b3","line":93,"in_reply_to":"7a016987_0c1f3009","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7832ae90a21114d34bf2c6891f1be5d6369f5e79","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(3, len(data[\u0027ports\u0027]))"},{"line_number":106,"context_line":"        for port in data[\u0027ports\u0027]:"},{"line_number":107,"context_line":"            # We always append \"links\""},{"line_number":108,"context_line":"            self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(port))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_get_custom_fields_invalid_fields(self):"},{"line_number":111,"context_line":"        port \u003d obj_utils.create_test_port(self.context, node_id\u003dself.node.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_cc1478ea","line":108,"updated":"2015-05-28 21:47:27.000000000","message":"If desired could do:\n\n self.assertItemsEqual([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027], data)","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3957ae1ab1a4fb5f58bf463f5f7a3818b7ac543a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(3, len(data[\u0027ports\u0027]))"},{"line_number":106,"context_line":"        for port in data[\u0027ports\u0027]:"},{"line_number":107,"context_line":"            # We always append \"links\""},{"line_number":108,"context_line":"            self.assertEqual(sorted([\u0027uuid\u0027, \u0027extra\u0027, \u0027links\u0027]), sorted(port))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_get_custom_fields_invalid_fields(self):"},{"line_number":111,"context_line":"        port \u003d obj_utils.create_test_port(self.context, node_id\u003dself.node.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_cf6295d8","line":108,"in_reply_to":"7a016987_cc1478ea","updated":"2015-06-02 10:50:23.000000000","message":"Done","commit_id":"38962beb52bc9eea5cc917e205b8008a343a7675"}]}
