)]}'
{"tempest/api/baremetal/test_chassis.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"7ced30a1126787f9accca91997301a85e15378e9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPYs%3D","line":65,"updated":"2014-03-28 06:31:35.000000000","message":"unused variable \"resp\", can you change it on _, body ??","commit_id":"5b2947af07af4a69d6560ac49beb33f4d50ea575"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4fae289eb3be4fd22e97baf59a081a003e7a1c8d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOm8%3D","line":65,"updated":"2014-03-28 09:07:15.000000000","message":"whats about its response status?","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"16b681c6240d4633f8b98fa0b614d77952218548","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOb0%3D","line":65,"in_reply_to":"AAAAWH%2F%2BOc0%3D","updated":"2014-03-28 09:26:08.000000000","message":"Sure","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6c7b9574c13043f46cec8a9fbc6fee555ac30237","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOc0%3D","line":65,"in_reply_to":"AAAAWH%2F%2BOiI%3D","updated":"2014-03-28 09:23:22.000000000","message":"Add for this test in this patch. For other you can add later.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"87fbcb91f8ee895ab43daef48c8267dd1d457108","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOUc%3D","line":65,"in_reply_to":"AAAAWH%2F%2BOm8%3D","updated":"2014-03-28 09:44:28.000000000","message":"Hi,\n\nI observed that design implementation of this module is as they did not want any check for resp code.\nAlso documents for baremetal APIs does not concentrate/have any information regarding resp code.\n\nIn client design is as for all cases-\nreturn self._list_request(\u0027ports\u0027)\n\nSo they concentrate only on returned body not on resp code.\n\nI think I also do not need to check resp code.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"84bef3b371858e7c1cfc805921cfb34d0ece935a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOiI%3D","line":65,"in_reply_to":"AAAAWH%2F%2BOm8%3D","updated":"2014-03-28 09:14:49.000000000","message":"Remaining tests does not follow response code what you say on this ??\nIf it is also needed then I am going to add it for all with a new patch what you say ??","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4fae289eb3be4fd22e97baf59a081a003e7a1c8d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOm4%3D","line":68,"updated":"2014-03-28 09:07:15.000000000","message":"only uuid check is not enough. Can you please add check for all the attributes returned by \u0027create\u0027 in response of list_detail?","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"16b681c6240d4633f8b98fa0b614d77952218548","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BObc%3D","line":68,"in_reply_to":"AAAAWH%2F%2BOcQ%3D","updated":"2014-03-28 09:26:08.000000000","message":"Check in next patch","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"c406708bbe5eea8518ebe1919957124f2cd63563","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOX4%3D","line":68,"in_reply_to":"AAAAWH%2F%2BOcQ%3D","updated":"2014-03-28 09:37:41.000000000","message":"I think id verification is sufficient. The motive is to test API and for proper validation 1. URI 2. check whether all exists in list or not verification is required. and here both validations are being fulfilled.\nI think there is no need to change anything.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6c7b9574c13043f46cec8a9fbc6fee555ac30237","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOcQ%3D","line":68,"in_reply_to":"AAAAWH%2F%2BOgY%3D","updated":"2014-03-28 09:23:22.000000000","message":"whole set of attribute can be added which are present in list detail. I think create one should be subset of list detail.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"84bef3b371858e7c1cfc805921cfb34d0ece935a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOgY%3D","line":68,"in_reply_to":"AAAAWH%2F%2BOm4%3D","updated":"2014-03-28 09:14:49.000000000","message":"I think one more attribute additional to id can be added to validate sufficiency.\nSame time validation is also suggested by others.\nWill be done in next patch.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"90cc9db56ae7694559614456289c718894c46972","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9yQg%3D","line":66,"updated":"2014-04-02 06:33:14.000000000","message":"resp code can be checked here?","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"a107a9ca34642a36354f24bdfa98a6800c942aa6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        _, body \u003d self.client.list_chassis_with_detail()"},{"line_number":66,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for i in created_ids:"},{"line_number":69,"context_line":"            self.assertIn(i, loaded_ids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9w5o%3D","line":66,"in_reply_to":"AAAAWH%2F9yQg%3D","updated":"2014-04-02 09:34:43.000000000","message":"Done","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"f50f5038d45a45c38c1f5e45f1a075bfeb921c2f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9iM%3D","line":61,"updated":"2014-04-08 08:45:06.000000000","message":"I have a code re-factoring suggestion. \n\nWhenever there is duplicate implementations across methods, it would be a good idea to move the common implementation to third method (implementation), make the original methods as (wrappers) and call the implementation method from wrappers. It provides following advantages:\n1) Insulates interface from implementation.\n2) Improved maintainability - If there is little change inside implementation, this approach reduces the number of places which needs to be modified. \n\nIn original approach, the number of places which needs modification, becomes more prominent if more such methods are added in future.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"dbfc8e5895a12916b4384a964cc62d21ab703bc3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2Frpc%3D","line":61,"in_reply_to":"AAAAW3%2F%2FsUY%3D","updated":"2014-04-11 07:04:19.000000000","message":"Either of the wrapper or helper methods could be used but IMO objective should be to avoid duplicate code (especially implementation level) which if not done, might require more effort later (in the form increased coupling, chance of missing error handling at all duplicate instances etc.). It might not apparent now for 2 instances but the requirement can likely become more prominent provided more such _detail_ methods are introduced in future. It also becomes significant if more attributes are a required to be asserted.\n\nThe other part is to add more meaningful messages for assertions instead of \"x is not equal to y\". [optional - only applicable if the expected reason for assertion is known]","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"3e9c8f784396c5b796571b906352a50e4aeb754b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9Fg%3D","line":61,"in_reply_to":"AAAAWn%2F%2F9Rs%3D","updated":"2014-04-08 09:18:14.000000000","message":"Actually its your call to take decision. :)\n\nHowever IMO, postponing the code re-factoring decisions is like technical debt the interest (in the form of code maintenance effort) for which increases over the period. Its better you discuss this issue in the community soon. \n\nOn different perspective its not actually design but code re-factoring and its about ownership of the code. :)","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"182bcd2363345eeea90d8f3b8c99e73055290de5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9Rs%3D","line":61,"in_reply_to":"AAAAWn%2F%2F9iM%3D","updated":"2014-04-08 08:59:05.000000000","message":"I had talked many people over this in community.\nIt is good idea but in case it will be a bit complex to design.\n\nSo in later phase it will be better to discuss on design on repeated codes :)","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"fbce853903a61da23b962937f06ba5ca83cfb39a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FsUY%3D","line":61,"in_reply_to":"AAAAWn%2F%2F9iM%3D","updated":"2014-04-11 04:46:37.000000000","message":"In the detailed response more attribute could be asserted, so the final common part is minimal. A wrapper seams overkill here. Just using helper method for 2 usage can be considered, but IMHO it is also premature.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"33060b5d95cb6d1104f950584812826e7fe02cfd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9QQ%3D","line":66,"updated":"2014-04-08 09:00:55.000000000","message":"I think the code would be more readable if magic literal \u0027200\u0027 is replaced by the constant  name (status). Further it can also be wrapped as constants inside class or enum inside some namespace (e.g. class).","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"3e9c8f784396c5b796571b906352a50e4aeb754b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9Eg%3D","line":66,"updated":"2014-04-08 09:18:14.000000000","message":"http://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python\nI think above can help.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"7d2ce3a3b4857049517c0c0ac8cf0d5e34f7775b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FrY4%3D","line":66,"in_reply_to":"AAAAW3%2F%2FsUw%3D","updated":"2014-04-11 07:49:44.000000000","message":"Agreed. But in *near* future constants can be defined for these magic literals (even for implementation level code) and can be moved inside class level namespace.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"9297385ae7378ea97bddcc89a7374255fe8b9d64","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F81U%3D","line":66,"in_reply_to":"AAAAWn%2F%2F87g%3D","updated":"2014-04-08 09:42:52.000000000","message":"Will discuss about this in community.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"fbce853903a61da23b962937f06ba5ca83cfb39a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FsUw%3D","line":66,"in_reply_to":"AAAAWn%2F%2F9Eg%3D","updated":"2014-04-11 04:46:37.000000000","message":"In the long run the status code check should be part of json schema validation,\nlike this: \n https://review.openstack.org/#/c/83666/2/tempest/api_schema/compute/migrations.py\n\nThe SUCCESS code can be checked at the service side in another ways,\nbut the currently used patter is to use self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027]).","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7926,"name":"vishal yadav","email":"vyadav@advaoptical.com","username":"vishalcdac"},"change_message_id":"5e8b910d01bbc4622abf78babf2826cfc1113ffd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F87g%3D","line":66,"in_reply_to":"AAAAWn%2F%2F9LU%3D","updated":"2014-04-08 09:34:54.000000000","message":"Even though the code is not always 200 and it is action dependent, there will be fixed number of actions and respective return codes. So you can create classes based on actions and respective constants or enums and wrap these inside class. \n\nIts not an issue if you are not aware of the possible scenarios and respective return codes. Even if above is the case this is sure that you are aware that anything other than return code \u0027200\u0027 will assert. So you can do this for atleast \u0027200\u0027. \n\nOnce again its you call.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"d6f7beb83f72f9340a51eb96af978d93a32071ba","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F9LU%3D","line":66,"in_reply_to":"AAAAWn%2F%2F9QQ%3D","updated":"2014-04-08 09:08:07.000000000","message":"No, I should not be done.\nReturn status code is not always 200. it is action dependent.\nSo using fix values will be better to use.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"fbce853903a61da23b962937f06ba5ca83cfb39a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        for i in created_ids:"},{"line_number":71,"context_line":"            self.assertIn(i, loaded_ids)"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FsUM%3D","line":69,"updated":"2014-04-11 04:46:37.000000000","message":"If it is a detailed response more attribute existence should be asserted.","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"85e154b45550d1d98b9d8de7780761a10dcecab0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":61,"context_line":"    def test_chassis_detail(self):"},{"line_number":62,"context_line":"        created_ids \u003d [self.create_chassis()[\u0027chassis\u0027][\u0027uuid\u0027]"},{"line_number":63,"context_line":"                       for i in range(0, 5)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        resp, body \u003d self.client.list_chassis_detail()"},{"line_number":66,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_c59e7c56","line":63,"updated":"2014-04-30 14:00:10.000000000","message":"Why create five chassis? That doesn\u0027t have anything to do with this specific test case. It seems like an extraneous detail","commit_id":"b01c068d1e42b92aa3d5a0567f39f93490cd2155"}],"tempest/api/baremetal/test_nodes.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"7ced30a1126787f9accca91997301a85e15378e9","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        uuids \u003d [self.create_node(self.chassis[\u0027uuid\u0027])[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":78,"context_line":"                 for i in range(0, 5)]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        resp, body \u003d self.client.list_nodes_with_detail()"},{"line_number":81,"context_line":"        loaded_uuids \u003d [n[\u0027uuid\u0027] for n in body[\u0027nodes\u0027]]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        for u in uuids:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPYU%3D","line":80,"updated":"2014-03-28 06:31:35.000000000","message":"unused variable \"resp\"","commit_id":"5b2947af07af4a69d6560ac49beb33f4d50ea575"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4fae289eb3be4fd22e97baf59a081a003e7a1c8d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        for u in uuids:"},{"line_number":73,"context_line":"            self.assertIn(u, loaded_uuids)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":76,"context_line":"    def test_detailed_list_nodes(self):"},{"line_number":77,"context_line":"        uuids \u003d [self.create_node(self.chassis[\u0027uuid\u0027])[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":78,"context_line":"                 for i in range(0, 5)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOmo%3D","line":75,"updated":"2014-03-28 09:07:15.000000000","message":"same as in \u0027chassis\u0027","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"84bef3b371858e7c1cfc805921cfb34d0ece935a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        for u in uuids:"},{"line_number":73,"context_line":"            self.assertIn(u, loaded_uuids)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":76,"context_line":"    def test_detailed_list_nodes(self):"},{"line_number":77,"context_line":"        uuids \u003d [self.create_node(self.chassis[\u0027uuid\u0027])[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":78,"context_line":"                 for i in range(0, 5)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOgU%3D","line":75,"in_reply_to":"AAAAWH%2F%2BOmo%3D","updated":"2014-03-28 09:14:49.000000000","message":"same as chassis.","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"90cc9db56ae7694559614456289c718894c46972","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                 for i in range(0, 5)]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes_with_detail()"},{"line_number":81,"context_line":"        loaded_uuids \u003d [n[\u0027uuid\u0027] for n in body[\u0027nodes\u0027]]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        for u in uuids:"},{"line_number":84,"context_line":"            self.assertIn(u, loaded_uuids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9yQQ%3D","line":81,"updated":"2014-04-02 06:33:14.000000000","message":"Same as chassis.","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"a107a9ca34642a36354f24bdfa98a6800c942aa6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                 for i in range(0, 5)]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes_with_detail()"},{"line_number":81,"context_line":"        loaded_uuids \u003d [n[\u0027uuid\u0027] for n in body[\u0027nodes\u0027]]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        for u in uuids:"},{"line_number":84,"context_line":"            self.assertIn(u, loaded_uuids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9w5k%3D","line":81,"in_reply_to":"AAAAWH%2F9yQQ%3D","updated":"2014-04-02 09:34:43.000000000","message":"Done","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"85e154b45550d1d98b9d8de7780761a10dcecab0","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    @test.attr(type\u003d\"smoke\")"},{"line_number":76,"context_line":"    def test_list_nodes_detail(self):"},{"line_number":77,"context_line":"        uuids \u003d [self.create_node(self.chassis[\u0027uuid\u0027])[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":78,"context_line":"                 for i in range(0, 5)]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        resp, body \u003d self.client.list_nodes_detail()"},{"line_number":81,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_e5d0e0f9","line":78,"updated":"2014-04-30 14:00:10.000000000","message":"Again, why create five nodes? That doesn\u0027t have any bearing on what this test should be covering","commit_id":"b01c068d1e42b92aa3d5a0567f39f93490cd2155"}],"tempest/api/baremetal/test_ports.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"7ced30a1126787f9accca91997301a85e15378e9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        uuids \u003d [self.create_port(node_id\u003dnode_id)[\u0027port\u0027][\u0027uuid\u0027]"},{"line_number":79,"context_line":"                 for i in range(0, 5)]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resp, body \u003d self.client.list_ports_with_detail()"},{"line_number":82,"context_line":"        loaded_uuids \u003d [p[\u0027uuid\u0027] for p in body[\u0027ports\u0027]]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for u in uuids:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPYM%3D","line":81,"updated":"2014-03-28 06:31:35.000000000","message":"unused variable \"resp\"","commit_id":"5b2947af07af4a69d6560ac49beb33f4d50ea575"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4fae289eb3be4fd22e97baf59a081a003e7a1c8d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            self.assertIn(u, loaded_uuids)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":75,"context_line":"    def test_detailed_list_nodes(self):"},{"line_number":76,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        uuids \u003d [self.create_port(node_id\u003dnode_id)[\u0027port\u0027][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOng%3D","line":75,"updated":"2014-03-28 09:07:15.000000000","message":"same as in \u0027chassis\u0027","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"84bef3b371858e7c1cfc805921cfb34d0ece935a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            self.assertIn(u, loaded_uuids)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":75,"context_line":"    def test_detailed_list_nodes(self):"},{"line_number":76,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        uuids \u003d [self.create_port(node_id\u003dnode_id)[\u0027port\u0027][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BOgE%3D","line":75,"in_reply_to":"AAAAWH%2F%2BOng%3D","updated":"2014-03-28 09:14:49.000000000","message":"same as chassis","commit_id":"ddbd5c9f24d23780c632a028dc2c88d41e9ead0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"90cc9db56ae7694559614456289c718894c46972","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                 for i in range(0, 5)]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        _, body \u003d self.client.list_ports_with_detail()"},{"line_number":82,"context_line":"        loaded_uuids \u003d [p[\u0027uuid\u0027] for p in body[\u0027ports\u0027]]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for u in uuids:"},{"line_number":85,"context_line":"            self.assertIn(u, loaded_uuids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9yQE%3D","line":82,"updated":"2014-04-02 06:33:14.000000000","message":"same as chassis","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"a107a9ca34642a36354f24bdfa98a6800c942aa6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                 for i in range(0, 5)]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        _, body \u003d self.client.list_ports_with_detail()"},{"line_number":82,"context_line":"        loaded_uuids \u003d [p[\u0027uuid\u0027] for p in body[\u0027ports\u0027]]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for u in uuids:"},{"line_number":85,"context_line":"            self.assertIn(u, loaded_uuids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9w5g%3D","line":82,"in_reply_to":"AAAAWH%2F9yQE%3D","updated":"2014-04-02 09:34:43.000000000","message":"Done","commit_id":"d5b8f4eb6612660264f99e5a36370091866e1793"}],"tempest/services/baremetal/v1/base_v1.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"9ce84c3fa41ae055238962b834890216dbb26a87","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @base.handle_errors"},{"line_number":45,"context_line":"    def list_nodes_detail(self):"},{"line_number":46,"context_line":"        \"\"\"Details list all existing nodess.\"\"\""},{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/detail\u0027)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_chassis_detail(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXX%2F%2F9mY%3D","line":47,"updated":"2014-04-25 09:02:56.000000000","message":"Should enable to set parameters like nodes/detail?limit\u003d3\u0026chassis_uuid\u003dxxx... see http://docs.openstack.org/developer/ironic/webapi/v1.html#nodes","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"21b2a104e0019471608d5d18736e4a2c416669d0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @base.handle_errors"},{"line_number":45,"context_line":"    def list_nodes_detail(self):"},{"line_number":46,"context_line":"        \"\"\"Details list all existing nodess.\"\"\""},{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/detail\u0027)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_chassis_detail(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXX%2F%2FwnQ%3D","line":47,"in_reply_to":"AAAAXX%2F%2F9mY%3D","updated":"2014-04-28 07:21:25.000000000","message":"Done","commit_id":"377b31db9e3b33b36ed30c54717d42c5d6ac0d85"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"abc3cea76e41a3bf3cc48df488e8dd768758bd96","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/%s/states\u0027 % uuid)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_ports_detail(self, params:None):"},{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwgU%3D","line":50,"updated":"2014-04-28 07:48:30.000000000","message":"\"params\u003dNone\"?","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"cab4f439a2e21cd2b1b102ed1ea3cc347e859ad4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/%s/states\u0027 % uuid)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_ports_detail(self, params:None):"},{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2Fv94%3D","line":50,"in_reply_to":"AAAAXX%2F%2FwBI%3D","updated":"2014-04-30 09:37:19.000000000","message":"Thnaks :)","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"08c2e0a32dab96154ec2eedc88029551d0ebcd7b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/%s/states\u0027 % uuid)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_ports_detail(self, params:None):"},{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwBI%3D","line":50,"in_reply_to":"AAAAXX%2F%2FwDo%3D","updated":"2014-04-28 08:58:25.000000000","message":"\":\" is incorrect. Should use \"\u003d\"","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"eaf38acbf077eeff77b9db70c8ce711386680991","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self._list_request(\u0027/nodes/%s/states\u0027 % uuid)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @base.handle_errors"},{"line_number":50,"context_line":"    def list_ports_detail(self, params:None):"},{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwDo%3D","line":50,"in_reply_to":"AAAAXX%2F%2FwgU%3D","updated":"2014-04-28 08:50:09.000000000","message":"what you want to ask here ??","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"abc3cea76e41a3bf3cc48df488e8dd768758bd96","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"},{"line_number":54,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":55,"context_line":"        return self._list_request(url)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwgE%3D","line":54,"updated":"2014-04-28 07:48:30.000000000","message":"Need to import urllib.","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"eaf38acbf077eeff77b9db70c8ce711386680991","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"},{"line_number":54,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":55,"context_line":"        return self._list_request(url)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwDk%3D","line":54,"in_reply_to":"AAAAXX%2F%2FwgE%3D","updated":"2014-04-28 08:50:09.000000000","message":"Please elaborate a bit.","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"cab4f439a2e21cd2b1b102ed1ea3cc347e859ad4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Details list all existing ports.\"\"\""},{"line_number":52,"context_line":"        url \u003d \u0027/ports/detail\u0027"},{"line_number":53,"context_line":"        if params:"},{"line_number":54,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":55,"context_line":"        return self._list_request(url)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_dcc9fc5b","line":54,"in_reply_to":"AAAAXX%2F%2FwgE%3D","updated":"2014-04-30 09:37:19.000000000","message":"takada san - \nI think this portion should be added as if you see in baremetal/base.py client module then _list_request() method already implements it -\n\ndef _list_request(self, resource, permanent\u003dFalse, **kwargs):\n        \"\"\"\n        Get the list of objects of the specified type.\n\n        :param resource: The name of the REST resource, e.g., \u0027nodes\u0027.\n        \"param **kw: Parameters for the request.\n        :return: A tuple with the server response and deserialized JSON list\n                 of objects\n\n        \"\"\"\n        uri \u003d self._get_uri(resource, permanent\u003dpermanent)\n        if kwargs:\n            uri +\u003d \"?%s\" % urllib.urlencode(kwargs)\n\n        resp, body \u003d self.get(uri)\n\n        return resp, self.deserialize(body)","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"abc3cea76e41a3bf3cc48df488e8dd768758bd96","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        return self._list_request(url)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @base.handle_errors"},{"line_number":66,"context_line":"    def list_chassis_detail(self, param\u003dNone):"},{"line_number":67,"context_line":"        \"\"\"Details list all existing chassis.\"\"\""},{"line_number":68,"context_line":"        url \u003d \u0027/chassis/detail\u0027"},{"line_number":69,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwiE%3D","line":66,"updated":"2014-04-28 07:48:30.000000000","message":"not \"param\" but \"params\"?","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"eaf38acbf077eeff77b9db70c8ce711386680991","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        return self._list_request(url)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @base.handle_errors"},{"line_number":66,"context_line":"    def list_chassis_detail(self, param\u003dNone):"},{"line_number":67,"context_line":"        \"\"\"Details list all existing chassis.\"\"\""},{"line_number":68,"context_line":"        url \u003d \u0027/chassis/detail\u0027"},{"line_number":69,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2FwEA%3D","line":66,"in_reply_to":"AAAAXX%2F%2FwiE%3D","updated":"2014-04-28 08:50:09.000000000","message":"Thanks. I\u0027ll do it in next.","commit_id":"68926110cb642c025d361fcb9d0e9780f03a7f83"}]}
