)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make microversioned keypair schema full one"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now microversioned schema is not a full one, that means"},{"line_number":10,"context_line":"we can only test new functions with microversion, and if"},{"line_number":11,"context_line":"we set"},{"line_number":12,"context_line":"    min_microversion \u003d 2.53"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_9e9bb915","line":9,"range":{"start_line":9,"start_character":35,"end_line":9,"end_character":43},"updated":"2018-03-22 16:20:50.000000000","message":"I had to read this a few times to understand. You mean it\u0027s partial because it uses copy.deepcopy() instead of just inheriting directly from parent (previous microversion) schema?","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"068bb94fa9c0a542f1e82dfcfb3635893092b4d7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make microversioned keypair schema full one"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now microversioned schema is not a full one, that means"},{"line_number":10,"context_line":"we can only test new functions with microversion, and if"},{"line_number":11,"context_line":"we set"},{"line_number":12,"context_line":"    min_microversion \u003d 2.53"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_2096fef1","line":9,"range":{"start_line":9,"start_character":35,"end_line":9,"end_character":43},"in_reply_to":"df7087c5_9e9bb915","updated":"2018-03-23 01:00:20.000000000","message":"yes:)","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    max_microversion \u003d 2.53"},{"line_number":14,"context_line":"in tempest.conf, there will be many errors."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"But in fact we should be able to support that kind of"},{"line_number":17,"context_line":"configuration, i.e., we should be able to support running"},{"line_number":18,"context_line":"all testcases with any microversion, not just part of testcases"},{"line_number":19,"context_line":"with new microversion."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is to define schema as a class, then microversioned schema"},{"line_number":22,"context_line":"can automatically inherit all the attributes from the parent,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_beb9dd79","line":19,"range":{"start_line":16,"start_character":0,"end_line":19,"end_character":22},"updated":"2018-03-22 16:20:50.000000000","message":"If we can after this change, shouldn\u0027t we add a few unit tests (if possible) to verify this?","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"068bb94fa9c0a542f1e82dfcfb3635893092b4d7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    max_microversion \u003d 2.53"},{"line_number":14,"context_line":"in tempest.conf, there will be many errors."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"But in fact we should be able to support that kind of"},{"line_number":17,"context_line":"configuration, i.e., we should be able to support running"},{"line_number":18,"context_line":"all testcases with any microversion, not just part of testcases"},{"line_number":19,"context_line":"with new microversion."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is to define schema as a class, then microversioned schema"},{"line_number":22,"context_line":"can automatically inherit all the attributes from the parent,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_006f3afc","line":19,"range":{"start_line":16,"start_character":0,"end_line":19,"end_character":22},"in_reply_to":"df7087c5_beb9dd79","updated":"2018-03-23 01:00:20.000000000","message":"Because this patch doesn\u0027t change the input or output of any interface, so I think the current unit tests can cover this?","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25a69c89af418e615dbc99b6349a2bd75aeb2791","unresolved":false,"context_lines":[{"line_number":18,"context_line":"all testcases with any microversion, not just part of testcases"},{"line_number":19,"context_line":"with new microversion."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is to define schema as a class, then microversioned schema"},{"line_number":22,"context_line":"can automatically inherit all the attributes from the parent,"},{"line_number":23,"context_line":"and we only need to modify some attributes in the child class"},{"line_number":24,"context_line":"according to microversion functionality changelist."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This patch modified keypair schema as an experiment, if it\u0027s ok"},{"line_number":27,"context_line":"then we can modify other schemas step by step."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf659307_48f38b9f","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":51},"updated":"2018-03-26 07:50:04.000000000","message":"but that you can still achieve  with deepcopy, having class is not needed i think.\n\nbasic idea of scheme is to define as raw as possible. inheritance is really not good idea for schema case. \n\nError for microversion is due to not defined schema as logic of get_schema only looks into passed file not loop back into deep hierarchy of that file. Which is good and we should not change that otherwise it will be too magic to fetch the schema for microversions.\n\nwhat we can do is to define all missing schema in microversioned files. i will add one example for that","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"9a7fe8c1ea3e4dcde36d662c8f6aadd7a824b1ba","unresolved":false,"context_lines":[{"line_number":18,"context_line":"all testcases with any microversion, not just part of testcases"},{"line_number":19,"context_line":"with new microversion."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is to define schema as a class, then microversioned schema"},{"line_number":22,"context_line":"can automatically inherit all the attributes from the parent,"},{"line_number":23,"context_line":"and we only need to modify some attributes in the child class"},{"line_number":24,"context_line":"according to microversion functionality changelist."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This patch modified keypair schema as an experiment, if it\u0027s ok"},{"line_number":27,"context_line":"then we can modify other schemas step by step."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf659307_5df324e8","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":51},"in_reply_to":"bf659307_48f38b9f","updated":"2018-04-09 07:10:50.000000000","message":"If we don\u0027t use class inheritance, seems we\u0027ll have to repeat copying all schema fields everytime we\ndefine a new schema file? And some schema file has many fields and many versions, such as servers.py,\nso I really don\u0027t know what to do without class inheritance.\nI am eagerly waiting for your example:)","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":24,"context_line":"according to microversion functionality changelist."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This patch modified keypair schema as an experiment, if it\u0027s ok"},{"line_number":27,"context_line":"then we can modify other schemas step by step."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: Ifc505fe250a1f0f303c3f2fc14d46a53fb5899cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_5e7761d5","line":27,"updated":"2018-03-22 16:20:50.000000000","message":"Also it might be good to have a blueprint for this if this is going to be multi-part so we can track it better?","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"068bb94fa9c0a542f1e82dfcfb3635893092b4d7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"according to microversion functionality changelist."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This patch modified keypair schema as an experiment, if it\u0027s ok"},{"line_number":27,"context_line":"then we can modify other schemas step by step."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: Ifc505fe250a1f0f303c3f2fc14d46a53fb5899cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_204d9e99","line":27,"in_reply_to":"df7087c5_5e7761d5","updated":"2018-03-23 01:00:20.000000000","message":"Yeah, will do if we agree to go on like this","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"}],"tempest/lib/api_schema/response/compute/v2_2/keypairs.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"KeyPairV22.get_keypair \u003d copy.deepcopy(KeyPair.get_keypair)"},{"line_number":25,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":26,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":27,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_5e56815e","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":59},"updated":"2018-03-22 16:20:50.000000000","message":"This is inherited so can remove this.","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f4a00b0225c1cb8b1f30847625ca0e2e2233662","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"KeyPairV22.get_keypair \u003d copy.deepcopy(KeyPair.get_keypair)"},{"line_number":25,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":26,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":27,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_a0d449ea","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":59},"in_reply_to":"df7087c5_00ec1a8d","updated":"2018-03-23 05:02:57.000000000","message":"Am I missing something? Why would changing KeyPairV22.get_keypair change KeyPair.get_keypair?\n\n    \u003e\u003e\u003e class A(object):\n    ...     thing \u003d {\u0027foo\u0027: \u0027bar\u0027}\n    ... \n    \u003e\u003e\u003e class B(A):\n    ...     pass\n    ... \n    \u003e\u003e\u003e B.thing \u003d {\u0027baz\u0027: \u0027qux\u0027}\n    \u003e\u003e\u003e B.thing\n    {\u0027baz\u0027: \u0027qux\u0027}\n    \u003e\u003e\u003e A.thing\n    {\u0027foo\u0027: \u0027bar\u0027} # not changed\n    \u003e\u003e\u003e","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"068bb94fa9c0a542f1e82dfcfb3635893092b4d7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"KeyPairV22.get_keypair \u003d copy.deepcopy(KeyPair.get_keypair)"},{"line_number":25,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":26,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":27,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_00ec1a8d","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":59},"in_reply_to":"df7087c5_5e56815e","updated":"2018-03-23 01:00:20.000000000","message":"This is needed because we don\u0027t want to change the value in the parent class:)","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"6cf234f5f721eeb76dbb024f25b877e6180e79eb","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"KeyPairV22.get_keypair \u003d copy.deepcopy(KeyPair.get_keypair)"},{"line_number":25,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":26,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":27,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_40644d22","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":59},"in_reply_to":"df7087c5_a0d449ea","updated":"2018-03-23 05:20:45.000000000","message":"\u003e\u003e\u003e class A(object):\n...     thing \u003d {\u0027foo\u0027: \u0027bar\u0027}\n... \n\u003e\u003e\u003e class B(A):\n...     pass\n... \n\u003e\u003e\u003e B.thing[\u0027foo\u0027] \u003d \u0027qux\u0027\n\u003e\u003e\u003e A.thing\n{\u0027foo\u0027: \u0027qux\u0027}\n\u003e\u003e\u003e B.thing\n{\u0027foo\u0027: \u0027qux\u0027}\n\u003e\u003e\u003e \n:)","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":27,"context_line":"KeyPairV22.get_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":28,"context_line":"    \u0027required\u0027].append(\u0027type\u0027)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"KeyPairV22.create_keypair \u003d copy.deepcopy(KeyPair.create_keypair)"},{"line_number":31,"context_line":"KeyPairV22.create_keypair[\u0027status_code\u0027] \u003d [201]"},{"line_number":32,"context_line":"KeyPairV22.create_keypair[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":33,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_bed23dd0","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":65},"updated":"2018-03-22 16:20:50.000000000","message":"Ditto.","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e998e7790ae4346cfdce2258f7b27b284095e386","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \u0027status_code\u0027: [204],"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"KeyPairV22.list_keypairs \u003d copy.deepcopy(KeyPair.list_keypairs)"},{"line_number":42,"context_line":"KeyPairV22.list_keypairs[\u0027response_body\u0027][\u0027properties\u0027][\u0027keypairs\u0027]["},{"line_number":43,"context_line":"    \u0027items\u0027][\u0027properties\u0027][\u0027keypair\u0027]["},{"line_number":44,"context_line":"    \u0027properties\u0027].update({\u0027type\u0027: {\u0027type\u0027: \u0027string\u0027}})"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_1e4c89c6","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":63},"updated":"2018-03-22 16:20:50.000000000","message":"Ditto.","commit_id":"323c0e7717726f4755766da1a396cd0a1e02c603"}]}
