)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"a854e82f2479a4970fd601af5961b85dba269cc0","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie30ab9acddb9734ab88c06af3f4687a2506aa531"},{"line_number":13,"context_line":"Implements: blueprint api-support-regexp-based-querying"},{"line_number":14,"context_line":"Closes-Bug: #1526319"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a7e1126_d974d2d0","line":14,"range":{"start_line":14,"start_character":13,"end_line":14,"end_character":20},"updated":"2015-12-17 07:12:17.000000000","message":"nit: as you mention that there is a name-wildcards\u003d\u003cNAME_WILDCARDS\u003e will be added, here should be partial-bug.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"ff5aefff4763dee2cd7cab62e24c51c615a51f46","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie30ab9acddb9734ab88c06af3f4687a2506aa531"},{"line_number":13,"context_line":"Implements: blueprint api-support-regexp-based-querying"},{"line_number":14,"context_line":"Closes-Bug: #1526319"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a7e1126_ed23fe03","line":14,"range":{"start_line":14,"start_character":13,"end_line":14,"end_character":20},"in_reply_to":"3a7e1126_d974d2d0","updated":"2015-12-17 09:52:23.000000000","message":"Lin, I think WILDCARDS is not useful than REGEX, so will not support, I updated the bug/bp desc also.\nSo we just cover REGEX only.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"da5f06d97f77994c07a2207eb99c31b6f3805824","unresolved":false,"context_lines":[{"line_number":10,"context_line":"support to filter nodes by regex string."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie30ab9acddb9734ab88c06af3f4687a2506aa531"},{"line_number":13,"context_line":"Implements: blueprint api-support-regexp-based-querying"},{"line_number":14,"context_line":"Closes-Bug: #1526319"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3a7e1126_acd08a54","line":13,"updated":"2015-12-17 12:32:56.000000000","message":"This is not needed now, just closes-bug is enough.","commit_id":"e7d0e403bfefafc8674e13920f82521fbb8895e2"}],"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"a854e82f2479a4970fd601af5961b85dba269cc0","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"    def _get_nodes_collection(self, chassis_uuid, instance_uuid, associated,"},{"line_number":884,"context_line":"                              maintenance, provision_state, marker, limit,"},{"line_number":885,"context_line":"                              sort_key, sort_dir, name, resource_url\u003dNone,"},{"line_number":886,"context_line":"                              fields\u003dNone):"},{"line_number":887,"context_line":"        if self.from_chassis and not chassis_uuid:"},{"line_number":888,"context_line":"            raise exception.MissingParameterValue("}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_14f8dfe4","line":885,"range":{"start_line":885,"start_character":50,"end_line":885,"end_character":54},"updated":"2015-12-17 07:12:17.000000000","message":"Although it\u0027s an internal function, make name\u003dNone should better.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"512d47be7bab537fb7f64bc07bb57867de66b0dc","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"    def _get_nodes_collection(self, chassis_uuid, instance_uuid, associated,"},{"line_number":884,"context_line":"                              maintenance, provision_state, marker, limit,"},{"line_number":885,"context_line":"                              sort_key, sort_dir, name, resource_url\u003dNone,"},{"line_number":886,"context_line":"                              fields\u003dNone):"},{"line_number":887,"context_line":"        if self.from_chassis and not chassis_uuid:"},{"line_number":888,"context_line":"            raise exception.MissingParameterValue("}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_b3ad5e8a","line":885,"range":{"start_line":885,"start_character":50,"end_line":885,"end_character":54},"in_reply_to":"3a7e1126_14f8dfe4","updated":"2015-12-17 08:10:40.000000000","message":"ok, good idea.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"a854e82f2479a4970fd601af5961b85dba269cc0","unresolved":false,"context_lines":[{"line_number":997,"context_line":"    def get_all(self, chassis_uuid\u003dNone, instance_uuid\u003dNone, associated\u003dNone,"},{"line_number":998,"context_line":"                maintenance\u003dNone, provision_state\u003dNone, marker\u003dNone,"},{"line_number":999,"context_line":"                limit\u003dNone, sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, fields\u003dNone,"},{"line_number":1000,"context_line":"                name\u003dNone):"},{"line_number":1001,"context_line":"        \"\"\"Retrieve a list of nodes."},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"        :param chassis_uuid: Optional UUID of a chassis, to get only nodes for"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_d9093233","line":1000,"range":{"start_line":1000,"start_character":25,"end_line":1000,"end_character":27},"updated":"2015-12-17 07:12:17.000000000","message":"A version bump and a reno is definitely needed.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"512d47be7bab537fb7f64bc07bb57867de66b0dc","unresolved":false,"context_lines":[{"line_number":997,"context_line":"    def get_all(self, chassis_uuid\u003dNone, instance_uuid\u003dNone, associated\u003dNone,"},{"line_number":998,"context_line":"                maintenance\u003dNone, provision_state\u003dNone, marker\u003dNone,"},{"line_number":999,"context_line":"                limit\u003dNone, sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, fields\u003dNone,"},{"line_number":1000,"context_line":"                name\u003dNone):"},{"line_number":1001,"context_line":"        \"\"\"Retrieve a list of nodes."},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"        :param chassis_uuid: Optional UUID of a chassis, to get only nodes for"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_33b08edd","line":1000,"range":{"start_line":1000,"start_character":25,"end_line":1000,"end_character":27},"in_reply_to":"3a7e1126_d9093233","updated":"2015-12-17 08:10:40.000000000","message":"Yes, will add change history.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"a854e82f2479a4970fd601af5961b85dba269cc0","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":1019,"context_line":"        :param fields: Optional, a list with a specified set of fields"},{"line_number":1020,"context_line":"            of the resource to be returned."},{"line_number":1021,"context_line":"        :param name: node\u0027s name"},{"line_number":1022,"context_line":"        \"\"\""},{"line_number":1023,"context_line":"        api_utils.check_allow_specify_fields(fields)"},{"line_number":1024,"context_line":"        api_utils.check_for_invalid_state_and_allow_filter(provision_state)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_945fef0d","line":1021,"range":{"start_line":1021,"start_character":28,"end_line":1021,"end_character":32},"updated":"2015-12-17 07:12:17.000000000","message":"node\u0027s name is not so clear. This could be name regexp if I understand.","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"512d47be7bab537fb7f64bc07bb57867de66b0dc","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":1019,"context_line":"        :param fields: Optional, a list with a specified set of fields"},{"line_number":1020,"context_line":"            of the resource to be returned."},{"line_number":1021,"context_line":"        :param name: node\u0027s name"},{"line_number":1022,"context_line":"        \"\"\""},{"line_number":1023,"context_line":"        api_utils.check_allow_specify_fields(fields)"},{"line_number":1024,"context_line":"        api_utils.check_for_invalid_state_and_allow_filter(provision_state)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_93e2a2d4","line":1021,"range":{"start_line":1021,"start_character":28,"end_line":1021,"end_character":32},"in_reply_to":"3a7e1126_945fef0d","updated":"2015-12-17 08:10:40.000000000","message":"yes, ok","commit_id":"3badf2a6fd27957b68d203f315ac6c7935847fab"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"8fd6bcef3df1ac6a76228e2d1a43e95272ac758f","unresolved":false,"context_lines":[{"line_number":1053,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":1054,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":1055,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":1056,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":1057,"context_line":"        \"\"\""},{"line_number":1058,"context_line":"        api_utils.check_for_invalid_state_and_allow_filter(provision_state)"},{"line_number":1059,"context_line":"        # /detail should only work against collections"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a7b0d38_8030df02","line":1056,"updated":"2015-12-24 09:35:37.000000000","message":"please also add \u0027:param name:...\u0027 here","commit_id":"6a308c002043ed429d2498538a5bd53fd8367503"}],"ironic/db/sqlalchemy/api.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"ce80970ad823f5aa309fa653778d7f40ed08fd2f","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                query \u003d query.filter("},{"line_number":209,"context_line":"                    name_column.op(regexp_op)(filters[\u0027name\u0027]))"},{"line_number":210,"context_line":"            else:"},{"line_number":211,"context_line":"                query \u003d query.filter_by(name\u003dfilters[\u0027name\u0027])"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        return query"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a7b0d38_cae9191c","line":211,"updated":"2015-12-24 14:11:10.000000000","message":"This behavior should be mentioned in log warning l161, like  \"...will not support regexp query. Equals filter will be used.\"","commit_id":"6a308c002043ed429d2498538a5bd53fd8367503"}],"ironic/tests/unit/api/v1/test_nodes.py":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"8fd6bcef3df1ac6a76228e2d1a43e95272ac758f","unresolved":false,"context_lines":[{"line_number":850,"context_line":"                                   uuid\u003duuidutils.generate_uuid(),"},{"line_number":851,"context_line":"                                   name\u003d\u0027node-01\u0027)"},{"line_number":852,"context_line":"        data \u003d self.get_json(\u0027/nodes?name\u003dnode-02\u0027)"},{"line_number":853,"context_line":"        self.assertEqual(0, len(data[\u0027nodes\u0027]))"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"class TestPatch(test_api_base.BaseApiTest):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a7b0d38_fbb072df","line":853,"updated":"2015-12-24 09:35:37.000000000","message":"AFAIK, it\u0027s better to use self.assertThat(data[\u0027nodes\u0027], HasLength(0))","commit_id":"6a308c002043ed429d2498538a5bd53fd8367503"}]}
