)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4e3ebafe6f87f5dad63854a67c4b38f2a43afde2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"* add rally job to list baymodels"},{"line_number":10,"context_line":"* add baymodels to cleanup resources"},{"line_number":11,"context_line":"* add baymodel context"},{"line_number":12,"context_line":"* add util methods to list, create, get and delete baymodels"},{"line_number":13,"context_line":"* add sample tasks"},{"line_number":14,"context_line":"* add unit tests"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9ad45d7e_c1158f49","line":12,"updated":"2016-08-10 18:15:00.000000000","message":"this line is outdated","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"bbd082c878ef2d0de5f0df4b3331828f1daa486d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"* add rally job to list baymodels"},{"line_number":10,"context_line":"* add baymodels to cleanup resources"},{"line_number":11,"context_line":"* add baymodel context"},{"line_number":12,"context_line":"* add util methods to list, create, get and delete baymodels"},{"line_number":13,"context_line":"* add sample tasks"},{"line_number":14,"context_line":"* add unit tests"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9ad45d7e_1c4eea3a","line":12,"in_reply_to":"9ad45d7e_c1158f49","updated":"2016-08-10 21:31:57.000000000","message":"Done","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"}],"rally-jobs/rally-magnum.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c8b6d194a5bcc3346769ea7ec038f7a371600f31","unresolved":false,"context_lines":[{"line_number":33,"context_line":"          flavor-id: \"m1.small\""},{"line_number":34,"context_line":"          docker-volume-size: 5"},{"line_number":35,"context_line":"          network-driver: \"docker\""},{"line_number":36,"context_line":"          coe: \"swarm\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9abb7d3a_3da67b53","line":36,"updated":"2016-06-03 16:26:37.000000000","message":"Please add sla section here to each subtask\n\nsla:\n  failurte_rate:\n    max: 0","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"d16361f3ffe720dbf264047320197e156c34833b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"          flavor-id: \"m1.small\""},{"line_number":34,"context_line":"          docker-volume-size: 5"},{"line_number":35,"context_line":"          network-driver: \"docker\""},{"line_number":36,"context_line":"          coe: \"swarm\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9abb7d3a_f6f9adc9","line":36,"in_reply_to":"9abb7d3a_3da67b53","updated":"2016-06-07 00:00:34.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":33,"context_line":"          flavor-id: \"m1.small\""},{"line_number":34,"context_line":"          docker-volume-size: 5"},{"line_number":35,"context_line":"          network-driver: \"docker\""},{"line_number":36,"context_line":"          coe: \"swarm\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_4976c13e","line":36,"in_reply_to":"9abb7d3a_f6f9adc9","updated":"2016-08-01 12:58:31.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8823fef47ce22143f4e85ee3575bc3c5176b8089","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""},{"line_number":6,"context_line":"        times: 1"},{"line_number":7,"context_line":"        concurrency: 1"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3ac371cc_3fe6c9e8","line":6,"updated":"2016-08-18 23:40:48.000000000","message":"Why it so small? - Lets increase it to at least 40 and concurrency 20","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"425ac4119fd55a42d00a57b05ecb7b1cb0ca1f04","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""},{"line_number":6,"context_line":"        times: 1"},{"line_number":7,"context_line":"        concurrency: 1"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3ac371cc_65d0b2f8","line":6,"in_reply_to":"3ac371cc_3fe6c9e8","updated":"2016-08-19 00:46:50.000000000","message":"Done","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8823fef47ce22143f4e85ee3575bc3c5176b8089","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      runner:"},{"line_number":29,"context_line":"        type: \"constant\""},{"line_number":30,"context_line":"        times: 1"},{"line_number":31,"context_line":"        concurrency: 1"},{"line_number":32,"context_line":"      context:"},{"line_number":33,"context_line":"        users:"},{"line_number":34,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3ac371cc_ff29d1f3","line":31,"updated":"2016-08-18 23:40:48.000000000","message":"as well as 6 line","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"425ac4119fd55a42d00a57b05ecb7b1cb0ca1f04","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      runner:"},{"line_number":29,"context_line":"        type: \"constant\""},{"line_number":30,"context_line":"        times: 1"},{"line_number":31,"context_line":"        concurrency: 1"},{"line_number":32,"context_line":"      context:"},{"line_number":33,"context_line":"        users:"},{"line_number":34,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3ac371cc_25e6bae8","line":31,"in_reply_to":"3ac371cc_ff29d1f3","updated":"2016-08-19 00:46:50.000000000","message":"Done","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"}],"rally/plugins/openstack/cleanup/resources.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"# MAGNUM"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":61,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_996e91c7","line":60,"updated":"2016-05-16 05:14:48.000000000","message":"We have project\u0027s section sorted by there order in this file. So please move it after HEAT","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"# MAGNUM"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":61,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_8a9e6654","line":60,"in_reply_to":"dab17558_996e91c7","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c8b6d194a5bcc3346769ea7ec038f7a371600f31","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# MAGNUM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":79,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_586d4d97","line":78,"updated":"2016-06-03 16:26:37.000000000","message":"As I understand magnum require heat and neutron due to http://docs.openstack.org/developer/magnum/dev/dev-manual-devstack.html So we need to have magnum cleanup order lower then heat and neutron","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"434c5fcd6e4b72a755617466385e3867faddaae2","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# MAGNUM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":79,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_91853e5b","line":78,"in_reply_to":"7aa08908_28c5a98d","updated":"2016-06-09 10:08:09.000000000","message":"A magnum bay is essentially a heat stack. When bays are created you can see the new stacks in heat db. Then, rally cleanups the resources and you can see that the stacks are deleted, (in the db they have action: DELETE status:COMPLETE). \n\nNow, magnum has lower order than neutron, right? What is going to change if we set magnum\u0027s order less than heat? (less order\u003d100)","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# MAGNUM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":79,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_098049f4","line":78,"in_reply_to":"7aa08908_91853e5b","updated":"2016-08-01 12:58:31.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"d16361f3ffe720dbf264047320197e156c34833b","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# MAGNUM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d160, tenant_resource\u003dTrue)"},{"line_number":79,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def id(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_28c5a98d","line":78,"in_reply_to":"9abb7d3a_586d4d97","updated":"2016-06-07 00:00:34.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def id(self):"},{"line_number":75,"context_line":"        \"\"\"Returns id of resource.\"\"\""},{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# HEAT"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_025ab0f1","line":77,"updated":"2016-08-02 08:55:14.000000000","message":"https://github.com/openstack/python-magnumclient/blob/master/magnumclient/v1/baymodels.py#L50 List operation should be overridden","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def id(self):"},{"line_number":75,"context_line":"        \"\"\"Returns id of resource.\"\"\""},{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# HEAT"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_8d43456c","line":77,"in_reply_to":"bacf61ea_025ab0f1","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8823fef47ce22143f4e85ee3575bc3c5176b8089","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"3ac371cc_ff86f114","line":79,"updated":"2016-08-18 23:40:48.000000000","message":"No. This is wrong we should set it to 0. https://github.com/openstack/python-magnumclient/blob/master/magnumclient/v1/baymodels.py#L50\nHere we will delete at least 100000 baymodels","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9178324340a463a2cc09fbf41f3924b5209c4204","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"3ac371cc_91afe92a","line":79,"in_reply_to":"3ac371cc_45d776bf","updated":"2016-08-19 04:55:14.000000000","message":"ah. Bad behavior. Okey, lets use CONF.benchmark.magnum_list_limit and set it to something really big - float(\u0027Infinity\u0027)","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"ef76ca84fb66ce8cbc70acadccbb0e3bde89d65a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_b903e5b7","line":79,"in_reply_to":"3ac371cc_91afe92a","updated":"2016-08-26 05:32:13.000000000","message":"@Roman: magnum doesn\u0027t allow to send in float as the value for \"limit\", it need to be an integer.","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"726e330a9b480fdabd9677dabc48ea4fff3c8709","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_49413239","line":79,"in_reply_to":"3ac371cc_91afe92a","updated":"2016-08-25 22:32:25.000000000","message":"Done","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"425ac4119fd55a42d00a57b05ecb7b1cb0ca1f04","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"3ac371cc_45d776bf","line":79,"in_reply_to":"3ac371cc_ff86f114","updated":"2016-08-19 00:46:50.000000000","message":"Magnum no longer support limit\u003d0, limit need to be greater than 0 or not set at all. If limit\u003dNone then it will use the Magnum\u0027s api.max_limit which by default is set to 1000. I just try to set a large number here so it will guarantee that it return all the baymodel.","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"e820892e6be9799a1db57092782ac0a2155bed7b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        return self._manager().list(limit\u003d100000)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# HEAT"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_057d3ee7","line":79,"in_reply_to":"fa7ab95a_b903e5b7","updated":"2016-08-31 11:58:23.000000000","message":"As discussed with Andrey and Roman on irc we need the following spinet as in nova [1].\n###\nresult \u003d []\nmarker \u003d None\nwhile True:\n  servers \u003d self._manager().list(limit\u003d1000)\n  if not servers:\n    break\n  result.extend(servers)\n  marker \u003d servers[-1].id\nreturn result\n###\n\n[1] https://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/resources.py#L131-L139","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"a593d5892de2792e65a6adced20c40be6394a587","unresolved":false,"context_lines":[{"line_number":71,"context_line":"@base.resource(\"magnum\", \"baymodels\", order\u003d80, tenant_resource\u003dTrue)"},{"line_number":72,"context_line":"class MagnumBaymodel(base.ResourceManager):"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def id(self):"},{"line_number":75,"context_line":"        \"\"\"Returns id of resource.\"\"\""},{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa7ab95a_7131e6ec","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":10},"updated":"2016-09-02 08:28:57.000000000","message":"We can test id like so [1]\n\n[1] https://github.com/openstack/rally/blob/master/tests/unit/plugins/openstack/cleanup/test_resources.py#L169","commit_id":"52cd8d6d8c6835e459d79842b52a4fea740b1722"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"a593d5892de2792e65a6adced20c40be6394a587","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Returns id of resource.\"\"\""},{"line_number":76,"context_line":"        return self.raw_resource.uuid"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        result \u003d []"},{"line_number":80,"context_line":"        marker \u003d None"},{"line_number":81,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa7ab95a_11225aa3","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":12},"updated":"2016-09-02 08:28:57.000000000","message":"To keep coverage we need to test list like this [1].\n\n[1] https://github.com/openstack/rally/blob/master/tests/unit/plugins/openstack/cleanup/test_resources.py#L70","commit_id":"52cd8d6d8c6835e459d79842b52a4fea740b1722"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7a6da5a6e0ec34e8a46ce7f1981636e0d0167109","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        result \u003d []"},{"line_number":80,"context_line":"        marker \u003d None"},{"line_number":81,"context_line":"        while True:"},{"line_number":82,"context_line":"            baymodels \u003d self._manager().list(marker\u003dmarker)"},{"line_number":83,"context_line":"            if not baymodels:"},{"line_number":84,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a89bdaa_265472fd","line":81,"updated":"2016-09-07 15:50:54.000000000","message":"How can we be sure to not fail into infinity loop?","commit_id":"eb48bbcb936d22cc905dd7ea7ead6f5d1ef0c610"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"43bee49e8447f755569252257f0c9489b300e845","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        result \u003d []"},{"line_number":80,"context_line":"        marker \u003d None"},{"line_number":81,"context_line":"        while True:"},{"line_number":82,"context_line":"            baymodels \u003d self._manager().list(marker\u003dmarker)"},{"line_number":83,"context_line":"            if not baymodels:"},{"line_number":84,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a89bdaa_fa3772fc","line":81,"in_reply_to":"9a89bdaa_265472fd","updated":"2016-09-07 19:08:29.000000000","message":"@Alexander: The purpose of the loop is simply to copy the full list of baymodels from Magnum, and we have to do it this way because Magnum list operation does not support returning the full list.  The number of items to return on each query is configurable but finite, and the marker will iterate to the next set.  The number of baymodels comes from the context setting and is also finite, so we can guarantee that the loop will finish.","commit_id":"eb48bbcb936d22cc905dd7ea7ead6f5d1ef0c610"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"c91e1bfd487c6d568e8cef4a33a1961a6a06f877","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def list(self):"},{"line_number":79,"context_line":"        result \u003d []"},{"line_number":80,"context_line":"        marker \u003d None"},{"line_number":81,"context_line":"        while True:"},{"line_number":82,"context_line":"            baymodels \u003d self._manager().list(marker\u003dmarker)"},{"line_number":83,"context_line":"            if not baymodels:"},{"line_number":84,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a89bdaa_d527e1b3","line":81,"in_reply_to":"9a89bdaa_fa3772fc","updated":"2016-09-07 19:11:22.000000000","message":"+1 Ton","commit_id":"eb48bbcb936d22cc905dd7ea7ead6f5d1ef0c610"}],"rally/plugins/openstack/context/magnum/baymodels.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@context.configure(name\u003d\"baymodels\", order\u003d460)"},{"line_number":29,"context_line":"class BaymodelsGenerator(context.Context):"},{"line_number":30,"context_line":"    \"\"\"Context class for generating temporary bay model for benchmarks.\"\"\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_79a80ddc","line":28,"updated":"2016-05-16 05:14:48.000000000","message":"rally/plugins/openstack/context/ec2/servers.py Ec2 server have the same order so please change it to something differ from the others","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@context.configure(name\u003d\"baymodels\", order\u003d460)"},{"line_number":29,"context_line":"class BaymodelsGenerator(context.Context):"},{"line_number":30,"context_line":"    \"\"\"Context class for generating temporary bay model for benchmarks.\"\"\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_8a466621","line":28,"in_reply_to":"dab17558_79a80ddc","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":71,"context_line":"                self.context[\"users\"]):"},{"line_number":72,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":73,"context_line":"            keypair \u003d nova_client.keypairs.create(name\u003d\"testkey\")"},{"line_number":74,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"},{"line_number":75,"context_line":"                \"private\": keypair.private_key,"},{"line_number":76,"context_line":"                \"public\": keypair.public_key,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_67298437","line":73,"updated":"2016-05-16 05:14:48.000000000","message":"you need to pass here generate_random_name() this is needed for the future cleanup Rally purpose","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":71,"context_line":"                self.context[\"users\"]):"},{"line_number":72,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":73,"context_line":"            keypair \u003d nova_client.keypairs.create(name\u003d\"testkey\")"},{"line_number":74,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"},{"line_number":75,"context_line":"                \"private\": keypair.private_key,"},{"line_number":76,"context_line":"                \"public\": keypair.public_key,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_ea4bb229","line":73,"in_reply_to":"dab17558_67298437","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodels\"] \u003d []"},{"line_number":82,"context_line":"            for baymodel_config in self.config:"},{"line_number":83,"context_line":"                baymodel \u003d magnum_scenario._create_baymodel("},{"line_number":84,"context_line":"                    baymodel_config.get(\"name\", \"k8sbaymodel\"),"},{"line_number":85,"context_line":"                    baymodel_config.get(\"image-id\","},{"line_number":86,"context_line":"                                        \"fedora-23-atomic-20160405\"),"},{"line_number":87,"context_line":"                    keypair.name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_071b581c","line":84,"updated":"2016-05-16 05:14:48.000000000","message":"the same as in 73 https://github.com/openstack/rally/blob/master/rally/common/utils.py#L297","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodels\"] \u003d []"},{"line_number":82,"context_line":"            for baymodel_config in self.config:"},{"line_number":83,"context_line":"                baymodel \u003d magnum_scenario._create_baymodel("},{"line_number":84,"context_line":"                    baymodel_config.get(\"name\", \"k8sbaymodel\"),"},{"line_number":85,"context_line":"                    baymodel_config.get(\"image-id\","},{"line_number":86,"context_line":"                                        \"fedora-23-atomic-20160405\"),"},{"line_number":87,"context_line":"                    keypair.name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_ca486e30","line":84,"in_reply_to":"dab17558_071b581c","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def setup(self):"},{"line_number":64,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":65,"context_line":"                self.context[\"users\"]):"},{"line_number":66,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":67,"context_line":"            key_name \u003d self.generate_random_name()"},{"line_number":68,"context_line":"            keypair \u003d nova_client.keypairs.create(key_name)"},{"line_number":69,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_fba16347","line":66,"updated":"2016-05-31 17:18:10.000000000","message":"Lets use https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/nova/utils.py#L517\nnova_utils.NovaScenario(\n                {\"user\": user, \"task\": self.context[\"task\"]}\nnova_utils._create_keypair(...","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                self.context[\"users\"]):"},{"line_number":66,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":67,"context_line":"            key_name \u003d self.generate_random_name()"},{"line_number":68,"context_line":"            keypair \u003d nova_client.keypairs.create(key_name)"},{"line_number":69,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"},{"line_number":70,"context_line":"                \"private\": keypair.private_key,"},{"line_number":71,"context_line":"                \"public\": keypair.public_key,"},{"line_number":72,"context_line":"                \"name\": keypair.name,"},{"line_number":73,"context_line":"                \"id\": keypair.id}"},{"line_number":74,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("},{"line_number":75,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":76,"context_line":"            baymodel \u003d magnum_scenario._create_baymodel("}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_5b606f01","line":73,"range":{"start_line":68,"start_character":9,"end_line":73,"end_character":33},"updated":"2016-05-31 17:18:10.000000000","message":"Just thoughts - This is great please to use required context validator for that but we still working on it(","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Baymodel`\"))"},{"line_number":88,"context_line":"    def cleanup(self):"},{"line_number":89,"context_line":"        resource_manager.cleanup("},{"line_number":90,"context_line":"            names\u003d[\"magnum.baymodels\"],"},{"line_number":91,"context_line":"            users\u003dself.context.get(\"users\", []))"},{"line_number":92,"context_line":"        resource_manager.cleanup("},{"line_number":93,"context_line":"            names\u003d[\"nova.keypairs\"],"},{"line_number":94,"context_line":"            users\u003dself.context.get(\"users\", []))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_8e51fc38","line":94,"range":{"start_line":89,"start_character":8,"end_line":94,"end_character":48},"updated":"2016-05-31 17:18:10.000000000","message":"resource_manager.cleanup(\n            names\u003d[\"magnum.baymodels\", \"nova.keypairs\"],\n            users\u003dself.context.get(\"users\", []))\nThis should work","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"type\": \"object\","},{"line_number":34,"context_line":"        \"$schema\": consts.JSON_SCHEMA,"},{"line_number":35,"context_line":"        \"properties\": {"},{"line_number":36,"context_line":"            \"image-id\": {"},{"line_number":37,"context_line":"                \"type\": \"string\""},{"line_number":38,"context_line":"            },"},{"line_number":39,"context_line":"            \"external-network-id\": {"},{"line_number":40,"context_line":"                \"type\": \"string\""},{"line_number":41,"context_line":"            },"},{"line_number":42,"context_line":"            \"dns-nameserver\": {"},{"line_number":43,"context_line":"                \"type\": \"string\""},{"line_number":44,"context_line":"            },"},{"line_number":45,"context_line":"            \"flavor-id\": {"},{"line_number":46,"context_line":"                \"type\": \"string\""},{"line_number":47,"context_line":"            },"},{"line_number":48,"context_line":"            \"docker-volume-size\": {"},{"line_number":49,"context_line":"                \"type\": \"integer\""},{"line_number":50,"context_line":"            },"},{"line_number":51,"context_line":"            \"network-driver\": {"},{"line_number":52,"context_line":"                \"type\": \"string\""},{"line_number":53,"context_line":"            },"},{"line_number":54,"context_line":"            \"coe\": {"},{"line_number":55,"context_line":"                \"type\": \"string\""},{"line_number":56,"context_line":"            }"},{"line_number":57,"context_line":"        },"},{"line_number":58,"context_line":"        \"required\": [\"image-id\", \"external-network-id\", \"coe\"],"},{"line_number":59,"context_line":"        \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_a90e5d89","line":56,"range":{"start_line":36,"start_character":0,"end_line":56,"end_character":13},"updated":"2016-08-01 12:58:31.000000000","message":"We should add all the available attributes.","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c8b6d194a5bcc3346769ea7ec038f7a371600f31","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def setup(self):"},{"line_number":64,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":65,"context_line":"                self.context[\"users\"]):"},{"line_number":66,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":67,"context_line":"            key_name \u003d self.generate_random_name()"},{"line_number":68,"context_line":"            keypair \u003d nova_client.keypairs.create(key_name)"},{"line_number":69,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_5821cdfa","line":66,"updated":"2016-06-03 16:26:37.000000000","message":"Here was comments in 5th patchset","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def setup(self):"},{"line_number":64,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":65,"context_line":"                self.context[\"users\"]):"},{"line_number":66,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":67,"context_line":"            key_name \u003d self.generate_random_name()"},{"line_number":68,"context_line":"            keypair \u003d nova_client.keypairs.create(key_name)"},{"line_number":69,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_8992794a","line":66,"in_reply_to":"7aa08908_881bfd7f","updated":"2016-08-01 12:58:31.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"d16361f3ffe720dbf264047320197e156c34833b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def setup(self):"},{"line_number":64,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":65,"context_line":"                self.context[\"users\"]):"},{"line_number":66,"context_line":"            nova_client \u003d osclients.Clients(user[\"credential\"]).nova()"},{"line_number":67,"context_line":"            key_name \u003d self.generate_random_name()"},{"line_number":68,"context_line":"            keypair \u003d nova_client.keypairs.create(key_name)"},{"line_number":69,"context_line":"            self.context[\"tenants\"][tenant_id][\"keypair\"] \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_881bfd7f","line":66,"in_reply_to":"9abb7d3a_5821cdfa","updated":"2016-06-07 00:00:34.000000000","message":"Done","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("},{"line_number":75,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":76,"context_line":"            baymodel \u003d magnum_scenario._create_baymodel("},{"line_number":77,"context_line":"                self.config.get(\"image-id\", \"fedora-atomic-latest\"),"},{"line_number":78,"context_line":"                keypair.name,"},{"line_number":79,"context_line":"                self.config.get(\"external-network-id\", \"public\"),"},{"line_number":80,"context_line":"                self.config.get(\"dns-nameserver\", \"8.8.8.8\"),"},{"line_number":81,"context_line":"                self.config.get(\"flavor-id\", \"m1.small\"),"},{"line_number":82,"context_line":"                self.config.get(\"docker-volume-size\", 5),"},{"line_number":83,"context_line":"                self.config.get(\"network-driver\", \"flannel\"),"},{"line_number":84,"context_line":"                self.config.get(\"coe\", \"kubernetes\"))"},{"line_number":85,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodel\"] \u003d baymodel.uuid"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Baymodel`\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_49f2419b","line":84,"range":{"start_line":77,"start_character":16,"end_line":84,"end_character":53},"updated":"2016-08-01 12:58:31.000000000","message":"we don\u0027t need to pass defaults in rally code. Magnum is going to assign the necessary defaults.","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Baymodel`\"))"},{"line_number":88,"context_line":"    def cleanup(self):"},{"line_number":89,"context_line":"        resource_manager.cleanup("},{"line_number":90,"context_line":"            names\u003d[\"magnum.baymodels\"],"},{"line_number":91,"context_line":"            users\u003dself.context.get(\"users\", []))"},{"line_number":92,"context_line":"        resource_manager.cleanup("},{"line_number":93,"context_line":"            names\u003d[\"nova.keypairs\"],"},{"line_number":94,"context_line":"            users\u003dself.context.get(\"users\", []))"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_c934714b","line":94,"range":{"start_line":89,"start_character":0,"end_line":94,"end_character":48},"updated":"2016-08-01 12:58:31.000000000","message":"Done for patch-set 5","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            \"master_lb_enabled\": {"},{"line_number":100,"context_line":"                \"type\": \"boolean\""},{"line_number":101,"context_line":"            }"},{"line_number":102,"context_line":"        },"},{"line_number":103,"context_line":"        \"required\": [\"image_id\", \"external_network_id\", \"coe\"],"},{"line_number":104,"context_line":"        \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_c2f37871","line":101,"updated":"2016-08-02 08:55:14.000000000","message":"You forgot to pass keypair_id https://github.com/openstack/python-magnumclient/blob/master/magnumclient/v1/baymodels.py#L19","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            \"master_lb_enabled\": {"},{"line_number":100,"context_line":"                \"type\": \"boolean\""},{"line_number":101,"context_line":"            }"},{"line_number":102,"context_line":"        },"},{"line_number":103,"context_line":"        \"required\": [\"image_id\", \"external_network_id\", \"coe\"],"},{"line_number":104,"context_line":"        \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_2af2ff6f","line":101,"in_reply_to":"bacf61ea_c2f37871","updated":"2016-08-03 00:58:45.000000000","message":"key will be generated in the setup, user don\u0027t need to create key before the test.","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                volume_driver\u003dself.config.get(\"volume_driver\"),"},{"line_number":140,"context_line":"                server_type\u003dself.config.get(\"server_type\"),"},{"line_number":141,"context_line":"                docker_storage_driver\u003dself.config.get(\"docker_storage_driver\"),"},{"line_number":142,"context_line":"                master_lb_enabled\u003dself.config.get(\"master_lb_enabled\"))"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodel\"] \u003d baymodel.uuid"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_4275c8c8","line":142,"updated":"2016-08-02 08:55:14.000000000","message":"Lets use here the power of **kwargs \u003d)","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e4a78d733f1fa224db990f1c643ba4e3ee55684c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                volume_driver\u003dself.config.get(\"volume_driver\"),"},{"line_number":136,"context_line":"                server_type\u003dself.config.get(\"server_type\"),"},{"line_number":137,"context_line":"                docker_storage_driver\u003dself.config.get(\"docker_storage_driver\"),"},{"line_number":138,"context_line":"                master_lb_enabled\u003dself.config.get(\"master_lb_enabled\"))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodel\"] \u003d baymodel.uuid"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9ad45d7e_6192e3f7","line":138,"updated":"2016-08-10 18:14:12.000000000","message":"In 9th patchset I\u0027ve wrote to use here **self.config.\nWhat is the reason behind ignore of this comment?","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"bbd082c878ef2d0de5f0df4b3331828f1daa486d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                volume_driver\u003dself.config.get(\"volume_driver\"),"},{"line_number":136,"context_line":"                server_type\u003dself.config.get(\"server_type\"),"},{"line_number":137,"context_line":"                docker_storage_driver\u003dself.config.get(\"docker_storage_driver\"),"},{"line_number":138,"context_line":"                master_lb_enabled\u003dself.config.get(\"master_lb_enabled\"))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            self.context[\"tenants\"][tenant_id][\"baymodel\"] \u003d baymodel.uuid"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9ad45d7e_e74b7e85","line":138,"in_reply_to":"9ad45d7e_6192e3f7","updated":"2016-08-10 21:31:57.000000000","message":"Done","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8823fef47ce22143f4e85ee3575bc3c5176b8089","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                self.context[\"users\"]):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            nova_scenario \u003d nova_utils.NovaScenario("},{"line_number":110,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":111,"context_line":"            keypair \u003d nova_scenario._create_keypair()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("}],"source_content_type":"text/x-python","patch_set":13,"id":"3ac371cc_df7cd5ed","line":110,"updated":"2016-08-18 23:40:48.000000000","message":"Here we should pass api_context too","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"726e330a9b480fdabd9677dabc48ea4fff3c8709","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                self.context[\"users\"]):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            nova_scenario \u003d nova_utils.NovaScenario("},{"line_number":110,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":111,"context_line":"            keypair \u003d nova_scenario._create_keypair()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_7c9f995f","line":110,"in_reply_to":"3ac371cc_df7cd5ed","updated":"2016-08-25 22:32:25.000000000","message":"@Roman: may you please explain a little more about what api_context you are referring here? Thanks","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"e820892e6be9799a1db57092782ac0a2155bed7b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                self.context[\"users\"]):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            nova_scenario \u003d nova_utils.NovaScenario("},{"line_number":110,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":111,"context_line":"            keypair \u003d nova_scenario._create_keypair()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_9e2a792b","line":110,"in_reply_to":"fa7ab95a_366d2205","updated":"2016-08-31 11:58:23.000000000","message":"This will do:\nnova_scenario \u003d nova_utils.NovaScenario({\n    \"user\": user,\n    \"task\": self.context[\"task\"],\n    \"config\": {\n        \"api_versions\": self.context[\"config\"].get(\n            \"api_versions\", [])}\n})","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"39820aefab4ef58aabe7b1b05f83c17e17c1269e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                self.context[\"users\"]):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            nova_scenario \u003d nova_utils.NovaScenario("},{"line_number":110,"context_line":"                {\"user\": user, \"task\": self.context[\"task\"]})"},{"line_number":111,"context_line":"            keypair \u003d nova_scenario._create_keypair()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            magnum_scenario \u003d magnum_utils.MagnumScenario("}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_366d2205","line":110,"in_reply_to":"fa7ab95a_7c9f995f","updated":"2016-08-26 05:14:28.000000000","message":"https://github.com/openstack/rally/blob/master/rally/plugins/openstack/context/manila/manila_share_networks.py#L196-L197\nThis add possibility to specify client version through task config","commit_id":"b1f8f636eb7d87026ee7838fd36b9c132037fb1f"}],"rally/plugins/openstack/scenarios/magnum/baymodels.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"01adf096794bf2ac9312d0c3ea104abb80063007","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from rally.task import validation"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class MagnumBaymodels(utils.MagnumScenario):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_b9f044ca","line":22,"updated":"2016-08-02 03:10:20.000000000","message":"THIS does not used. Please remove it. And \"from...import..\" unused.","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from rally.task import validation"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class MagnumBaymodels(utils.MagnumScenario):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_84b3220a","line":22,"in_reply_to":"bacf61ea_b9f044ca","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        Measure the \"magnum baymodel-list\" command performance."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        :param kwargs: optional additional arguments for baymodels listing"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        self._list_baymodels(**kwargs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_1d8171fb","line":36,"updated":"2016-08-02 08:55:14.000000000","message":"I think we should add the mention about https://github.com/openstack/python-magnumclient/blob/master/magnumclient/v1/baymodels.py#L49-L53","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        Measure the \"magnum baymodel-list\" command performance."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        :param kwargs: optional additional arguments for baymodels listing"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        self._list_baymodels(**kwargs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_24beb6d4","line":36,"in_reply_to":"bacf61ea_1d8171fb","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"ece4ef6259738c96028da56347795524ae2649b7","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        Measure the \"magnum baymodel-list\" command performance."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":33,"context_line":"                      request, if:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"            1) limit \u003e 0, the maximum number of baymodels to return."}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_9e12ff60","line":32,"updated":"2016-08-04 08:34:43.000000000","message":"The limit param is actually missed in list_baymodels arguments.","commit_id":"b0a61ff489c9659a70a777c7e5fcbc180d0e6924"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"ea52e1b06d84b43fa4cc18ec947a701c964c64d9","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        Measure the \"magnum baymodel-list\" command performance."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":33,"context_line":"                      request, if:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"            1) limit \u003e 0, the maximum number of baymodels to return."}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_7b3d6e8e","line":32,"in_reply_to":"bacf61ea_9e12ff60","updated":"2016-08-04 22:47:24.000000000","message":"limit is an optional arguments, it will be handle by kwargs","commit_id":"b0a61ff489c9659a70a777c7e5fcbc180d0e6924"}],"rally/plugins/openstack/scenarios/magnum/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":48,"context_line":"CONF.register_opts(MAGNUM_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def get_from_manager(error_statuses\u003dNone):"},{"line_number":52,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":53,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_d6d292ff","line":51,"updated":"2016-05-16 05:14:48.000000000","message":"I can\u0027t get why we need this function. We have already similar function https://github.com/openstack/rally/blob/master/rally/task/utils.py#L174","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"CONF.register_opts(MAGNUM_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def get_from_manager(error_statuses\u003dNone):"},{"line_number":52,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":53,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_486e4797","line":51,"in_reply_to":"dab17558_d6d292ff","updated":"2016-05-20 00:57:39.000000000","message":"I need to use \"res \u003d resource.manager.get(resource.uuid)\" instead of \"res \u003d resource.manager.get(resource.id)\" in _get_from_manager. Is there a better way to accomplish this?","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        baymodels \u003d self.clients(\"magnum\").baymodels.list(**kwargs)"},{"line_number":92,"context_line":"        LOG.info(\"Baymodels defined on the system: \")"},{"line_number":93,"context_line":"        for baymodel in baymodels:"},{"line_number":94,"context_line":"            model \u003d baymodel.to_dict()"},{"line_number":95,"context_line":"            LOG.info(model[\"name\"])"},{"line_number":96,"context_line":"            for k in model.keys():"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_16741a34","line":93,"updated":"2016-05-16 05:14:48.000000000","message":"This will add great overhead to the atomic, also we will output of all baymodels in the logs, this could garbage the logs.","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        baymodels \u003d self.clients(\"magnum\").baymodels.list(**kwargs)"},{"line_number":92,"context_line":"        LOG.info(\"Baymodels defined on the system: \")"},{"line_number":93,"context_line":"        for baymodel in baymodels:"},{"line_number":94,"context_line":"            model \u003d baymodel.to_dict()"},{"line_number":95,"context_line":"            LOG.info(model[\"name\"])"},{"line_number":96,"context_line":"            for k in model.keys():"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_28aca39f","line":93,"in_reply_to":"dab17558_16741a34","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec6793b7553cd52196ef52d34cfd20fca8125463","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                         **kwargs):"},{"line_number":105,"context_line":"        \"\"\"Create a baymodel"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :param name: Name of the baymodel to create"},{"line_number":108,"context_line":"        :param image: base image to customize for the bay"},{"line_number":109,"context_line":"        :param keypair: SSH keypair to load into the Bay nodes"},{"line_number":110,"context_line":"        :param external_network: external Neutron network to"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_d6cbb251","line":107,"updated":"2016-05-16 05:14:48.000000000","message":"Allowing to specify the name is critical for Rally disaster cleanup, we should not allow this https://blueprints.launchpad.net/rally/+spec/cleanup-refactoring The name should be generated randomly with specific prefix","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"09dd25ac3397ba6e496e5ab01bd57a2fa2c5d68b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                         **kwargs):"},{"line_number":105,"context_line":"        \"\"\"Create a baymodel"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :param name: Name of the baymodel to create"},{"line_number":108,"context_line":"        :param image: base image to customize for the bay"},{"line_number":109,"context_line":"        :param keypair: SSH keypair to load into the Bay nodes"},{"line_number":110,"context_line":"        :param external_network: external Neutron network to"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_fceeabb2","line":107,"in_reply_to":"dab17558_d6cbb251","updated":"2016-05-20 00:57:39.000000000","message":"Done","commit_id":"6bcfaa0eedb0e957e6770bee05721f57e268956e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def get_from_manager(error_statuses\u003dNone):"},{"line_number":25,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":26,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _get_from_manager(resource):"},{"line_number":29,"context_line":"        # catch client side errors"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            res \u003d resource.manager.get(resource.uuid)"},{"line_number":32,"context_line":"        except Exception as e:"},{"line_number":33,"context_line":"            if getattr(e, \"code\", getattr(e, \"http_status\", 400)) \u003d\u003d 404:"},{"line_number":34,"context_line":"                raise exceptions.GetResourceNotFound(resource\u003dresource)"},{"line_number":35,"context_line":"            raise exceptions.GetResourceFailure(resource\u003dresource, err\u003de)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # catch abnormal status, such as \"no valid host\" for servers"},{"line_number":38,"context_line":"        status \u003d utils.get_status(res)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if status in (\"DELETED\", \"DELETE_COMPLETE\"):"},{"line_number":41,"context_line":"            raise exceptions.GetResourceNotFound(resource\u003dres)"},{"line_number":42,"context_line":"        if status in error_statuses:"},{"line_number":43,"context_line":"            raise exceptions.GetResourceErrorStatus("},{"line_number":44,"context_line":"                resource\u003dres, status\u003dstatus,"},{"line_number":45,"context_line":"                fault\u003dgetattr(res, \"fault\", \"n/a\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return res"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return _get_from_manager"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class MagnumScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_2ed1f023","line":49,"range":{"start_line":24,"start_character":0,"end_line":49,"end_character":28},"updated":"2016-05-31 17:18:10.000000000","message":"Looks like this code is redundant. Please delete it","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        return self.clients(\"magnum\").baymodels.get(baymodel)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @atomic.action_timer(\"magnum.delete_baymodel\")"},{"line_number":104,"context_line":"    def _delete_baymodel(self, baymodel):"},{"line_number":105,"context_line":"        \"\"\"Delete the given baymodel."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :param baymodel: baymodel object"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_9ee3e5a3","line":104,"updated":"2016-05-31 17:18:10.000000000","message":"Where delete is used? Looks like you add it just because you can) \nThe same is for show in 95 line. If so lets delete those methods from this patch because they are untested functionally and not used","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c8b6d194a5bcc3346769ea7ec038f7a371600f31","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":26,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _get_from_manager(resource):"},{"line_number":29,"context_line":"        # catch client side errors"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            res \u003d resource.manager.get(resource.uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_186e252f","line":28,"updated":"2016-06-03 16:26:37.000000000","message":"Here was comments in 5th patchset","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":26,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _get_from_manager(resource):"},{"line_number":29,"context_line":"        # catch client side errors"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            res \u003d resource.manager.get(resource.uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_492081f7","line":28,"in_reply_to":"7aa08908_a3fffaff","updated":"2016-08-01 12:58:31.000000000","message":"Done, it works with id.","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"d16361f3ffe720dbf264047320197e156c34833b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":26,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _get_from_manager(resource):"},{"line_number":29,"context_line":"        # catch client side errors"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            res \u003d resource.manager.get(resource.uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_a3fffaff","line":28,"in_reply_to":"9abb7d3a_186e252f","updated":"2016-06-07 00:00:34.000000000","message":"I need to use \"res \u003d resource.manager.get(resource.uuid)\" instead of \"res \u003d resource.manager.get(resource.id)\" in _get_from_manager. Is there a better way to accomplish this?","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return self.clients(\"magnum\").baymodels.list(**kwargs)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @atomic.action_timer(\"magnum.create_baymodel\")"},{"line_number":67,"context_line":"    def _create_baymodel(self, image, keypair,"},{"line_number":68,"context_line":"                         external_network, dns_nameserver, flavor,"},{"line_number":69,"context_line":"                         docker_volume_size, network_driver, coe,"},{"line_number":70,"context_line":"                         **kwargs):"},{"line_number":71,"context_line":"        \"\"\"Create a baymodel"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_09b4c97d","line":69,"range":{"start_line":67,"start_character":31,"end_line":69,"end_character":65},"updated":"2016-08-01 12:58:31.000000000","message":"we can pass kwargs only","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"cb669c056c3a2a035f141b55434ebff5633712dd","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            network_driver\u003dnetwork_driver, coe\u003dcoe, **kwargs)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @atomic.action_timer(\"magnum.show_baymodel\")"},{"line_number":95,"context_line":"    def _show_baymodel(self, baymodel):"},{"line_number":96,"context_line":"        \"\"\"Return details of the specify baymodel."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        :param baymodel: ID or name of the baymodel to show"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_a9eadd71","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":22},"updated":"2016-08-01 12:58:31.000000000","message":"this is a get","commit_id":"bf40921c1799a05e3a5a89033ccd926fdcd46a56"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"01adf096794bf2ac9312d0c3ea104abb80063007","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from rally.plugins.openstack import scenario"},{"line_number":17,"context_line":"from rally.task import atomic"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class MagnumScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_99a740a6","line":19,"updated":"2016-08-02 03:10:20.000000000","message":"Please remove this line.","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from rally.plugins.openstack import scenario"},{"line_number":17,"context_line":"from rally.task import atomic"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class MagnumScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_44dc8a18","line":19,"in_reply_to":"bacf61ea_99a740a6","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    def _list_baymodels(self, **kwargs):"},{"line_number":27,"context_line":"        \"\"\"Return list of baymodels."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param kwargs: Optional additional arguments for baymodels listing"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        :returns: baymodels list"},{"line_number":32,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_7deb4ddc","line":29,"updated":"2016-08-02 08:55:14.000000000","message":"I think we should add the mention about \nhttps://github.com/openstack/python-magnumclient/blob/master/magnumclient/v1/baymodels.py#L49-L53\nAlso it will be useful to see some possible arguments in the doc","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    def _list_baymodels(self, **kwargs):"},{"line_number":27,"context_line":"        \"\"\"Return list of baymodels."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param kwargs: Optional additional arguments for baymodels listing"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        :returns: baymodels list"},{"line_number":32,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_04773203","line":29,"in_reply_to":"bacf61ea_7deb4ddc","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if not kwargs.get(\"name\"):"},{"line_number":45,"context_line":"            kwargs[\"name\"] \u003d self.generate_random_name()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return self.clients(\"magnum\").baymodels.create(**kwargs)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_3df715d4","line":45,"updated":"2016-08-02 08:55:14.000000000","message":"we shouldn\u0027t allow specifying resource name this is critical for our cleanup in the future","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if not kwargs.get(\"name\"):"},{"line_number":45,"context_line":"            kwargs[\"name\"] \u003d self.generate_random_name()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return self.clients(\"magnum\").baymodels.create(**kwargs)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_8443226c","line":45,"in_reply_to":"bacf61ea_3df715d4","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self.clients(\"magnum\").baymodels.create(**kwargs)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @atomic.action_timer(\"magnum.get_baymodel\")"},{"line_number":50,"context_line":"    def _get_baymodel(self, baymodel):"},{"line_number":51,"context_line":"        \"\"\"Return details of the specify baymodel."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        :param baymodel: ID or name of the baymodel to show"},{"line_number":54,"context_line":"        :returns: baymodel detail"},{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":"        return self.clients(\"magnum\").baymodels.get(baymodel)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @atomic.action_timer(\"magnum.delete_baymodel\")"},{"line_number":59,"context_line":"    def _delete_baymodel(self, baymodel):"},{"line_number":60,"context_line":"        \"\"\"Delete the given baymodel."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param baymodel: baymodel object"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        baymodel.delete()"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_5dfbe978","line":64,"range":{"start_line":50,"start_character":3,"end_line":64,"end_character":25},"updated":"2016-08-02 08:55:14.000000000","message":"I don\u0027t see any usage of this functions in this patch. I think we need to remove them from that patch and add when its needed","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return self.clients(\"magnum\").baymodels.create(**kwargs)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @atomic.action_timer(\"magnum.get_baymodel\")"},{"line_number":50,"context_line":"    def _get_baymodel(self, baymodel):"},{"line_number":51,"context_line":"        \"\"\"Return details of the specify baymodel."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        :param baymodel: ID or name of the baymodel to show"},{"line_number":54,"context_line":"        :returns: baymodel detail"},{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":"        return self.clients(\"magnum\").baymodels.get(baymodel)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @atomic.action_timer(\"magnum.delete_baymodel\")"},{"line_number":59,"context_line":"    def _delete_baymodel(self, baymodel):"},{"line_number":60,"context_line":"        \"\"\"Delete the given baymodel."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param baymodel: baymodel object"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        baymodel.delete()"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_44300a08","line":64,"range":{"start_line":50,"start_character":3,"end_line":64,"end_character":25},"in_reply_to":"bacf61ea_5dfbe978","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"ece4ef6259738c96028da56347795524ae2649b7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def _list_baymodels(self, **kwargs):"},{"line_number":24,"context_line":"        \"\"\"Return list of baymodels."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":27,"context_line":"                      request, if:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"            1) limit \u003e 0, the maximum number of baymodels to return."}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_61ffae01","line":26,"updated":"2016-08-04 08:34:43.000000000","message":"same here","commit_id":"b0a61ff489c9659a70a777c7e5fcbc180d0e6924"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"ea52e1b06d84b43fa4cc18ec947a701c964c64d9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def _list_baymodels(self, **kwargs):"},{"line_number":24,"context_line":"        \"\"\"Return list of baymodels."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":27,"context_line":"                      request, if:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"            1) limit \u003e 0, the maximum number of baymodels to return."}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_bb436612","line":26,"in_reply_to":"bacf61ea_61ffae01","updated":"2016-08-04 22:47:24.000000000","message":"same here","commit_id":"b0a61ff489c9659a70a777c7e5fcbc180d0e6924"}],"tests/unit/plugins/openstack/cleanup/test_resources.py":[{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"523bb63d644aee50725ee856d69e17d32a6d660d","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        watcher.list()"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"        self.assertEqual(\"action_plan\", watcher._resource)"},{"line_number":898,"context_line":"        watcher._manager().list.assert_called_once_with(limit\u003d0)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_0d7c9071","line":898,"updated":"2016-09-03 13:41:08.000000000","message":"remove new line","commit_id":"a3714a05ff74211a7770338958bdf8c15606bdee"}],"tests/unit/plugins/openstack/context/magnum/test_baymodels.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        baymodel_ctx \u003d baymodels.BaymodelGenerator(self.context)"},{"line_number":70,"context_line":"        baymodel_ctx.setup()"},{"line_number":71,"context_line":"        self.assertEqual(tenants_count,"},{"line_number":72,"context_line":"                         mock_magnum_scenario__create_baymodel.call_count)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # check that stack ids have been saved in context"},{"line_number":75,"context_line":"        for ten_id in self.context[\"tenants\"].keys():"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_fd5bbd83","line":72,"updated":"2016-08-02 08:55:14.000000000","message":"Please check with what arguments it was called and that create_keypair was called","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        baymodel_ctx \u003d baymodels.BaymodelGenerator(self.context)"},{"line_number":70,"context_line":"        baymodel_ctx.setup()"},{"line_number":71,"context_line":"        self.assertEqual(tenants_count,"},{"line_number":72,"context_line":"                         mock_magnum_scenario__create_baymodel.call_count)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # check that stack ids have been saved in context"},{"line_number":75,"context_line":"        for ten_id in self.context[\"tenants\"].keys():"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_e745c0b3","line":72,"in_reply_to":"bacf61ea_fd5bbd83","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"}],"tests/unit/plugins/openstack/scenarios/magnum/test_baymodels.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f3d88614a1bfc17e5c1708a48f4c0f335f25bcdc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        scenario._list_baymodels.assert_called_once_with()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_list_baymodels_with_arg(self):"},{"line_number":32,"context_line":"        scenario \u003d baymodels.MagnumBaymodels()"},{"line_number":33,"context_line":"        scenario._list_baymodels \u003d mock.Mock()"},{"line_number":34,"context_line":"        kwargs \u003d {\"fakearg\": \"f\"}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_be506933","line":31,"updated":"2016-05-31 17:18:10.000000000","message":"Methods in 23 and 31 are pretty similar. Please use ddt module for them. Also I don\u0027t see here test for create for example","commit_id":"325f77a5e493aa99f6bba0fdc1f1bbe1f843e839"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class MagnumBaymodelsTestCase(test.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_baymodels(self):"},{"line_number":24,"context_line":"        scenario \u003d baymodels.MagnumBaymodels()"},{"line_number":25,"context_line":"        scenario._list_baymodels \u003d mock.Mock()"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_ddf07969","line":23,"updated":"2016-08-02 08:55:14.000000000","message":"Please use ddt module to not to duplicate those tests","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class MagnumBaymodelsTestCase(test.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_baymodels(self):"},{"line_number":24,"context_line":"        scenario \u003d baymodels.MagnumBaymodels()"},{"line_number":25,"context_line":"        scenario._list_baymodels \u003d mock.Mock()"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_caf883c7","line":23,"in_reply_to":"bacf61ea_ddf07969","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"}],"tests/unit/plugins/openstack/scenarios/magnum/test_utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":37,"context_line":"                                       \"magnum.list_baymodels\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_create_baymodel(self):"},{"line_number":40,"context_line":"        fake_baymodel \u003d self.baymodel"},{"line_number":41,"context_line":"        self.clients(\"magnum\").baymodels.create.return_value \u003d fake_baymodel"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_bd4f8590","line":39,"updated":"2016-08-02 08:55:14.000000000","message":"Please check that generate_random_name was called","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":37,"context_line":"                                       \"magnum.list_baymodels\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_create_baymodel(self):"},{"line_number":40,"context_line":"        fake_baymodel \u003d self.baymodel"},{"line_number":41,"context_line":"        self.clients(\"magnum\").baymodels.create.return_value \u003d fake_baymodel"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_0a4e1bc1","line":39,"in_reply_to":"bacf61ea_bd4f8590","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"01adf096794bf2ac9312d0c3ea104abb80063007","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.assertEqual(fake_baymodel, return_baymodel)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        args, kwargs \u003d self.clients(\"magnum\").baymodels.create.call_args"},{"line_number":56,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":57,"context_line":"                                       \"magnum.create_baymodel\")"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_bcacb28c","line":55,"updated":"2016-08-02 03:10:20.000000000","message":"args and kwargs are not used.","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.assertEqual(fake_baymodel, return_baymodel)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        args, kwargs \u003d self.clients(\"magnum\").baymodels.create.call_args"},{"line_number":56,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":57,"context_line":"                                       \"magnum.create_baymodel\")"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_0a49fbd0","line":55,"in_reply_to":"bacf61ea_bcacb28c","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"01adf096794bf2ac9312d0c3ea104abb80063007","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":57,"context_line":"                                       \"magnum.create_baymodel\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_get_baymodel(self):"},{"line_number":60,"context_line":"        scenario \u003d utils.MagnumScenario(self.context)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        fake_baymodel \u003d self.baymodel"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_9c144ee9","line":59,"updated":"2016-08-02 03:10:20.000000000","message":"\"self.clients(\"magnum\").baymodels.get\" is not validated if called.","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"18a9caa9dbc9252c0bd4060ee26f99e584fddce1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":57,"context_line":"                                       \"magnum.create_baymodel\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_get_baymodel(self):"},{"line_number":60,"context_line":"        scenario \u003d utils.MagnumScenario(self.context)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        fake_baymodel \u003d self.baymodel"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_2a167fa7","line":59,"in_reply_to":"bacf61ea_9c144ee9","updated":"2016-08-03 00:58:45.000000000","message":"Done","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5749b71a5b747f125c76cbddc4751d2cd4d75841","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":57,"context_line":"                                       \"magnum.create_baymodel\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_get_baymodel(self):"},{"line_number":60,"context_line":"        scenario \u003d utils.MagnumScenario(self.context)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        fake_baymodel \u003d self.baymodel"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        self.clients(\"magnum\").baymodels.get.return_value \u003d fake_baymodel"},{"line_number":65,"context_line":"        return_baymodel \u003d scenario._get_baymodel(fake_baymodel)"},{"line_number":66,"context_line":"        self.assertEqual(fake_baymodel, return_baymodel)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":69,"context_line":"                                       \"magnum.get_baymodel\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_delete_baymodel(self):"},{"line_number":72,"context_line":"        scenario \u003d utils.MagnumScenario(self.context)"},{"line_number":73,"context_line":"        scenario._delete_baymodel(self.baymodel)"},{"line_number":74,"context_line":"        self.baymodel.delete.assert_called_once_with()"},{"line_number":75,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":76,"context_line":"                                       \"magnum.delete_baymodel\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_7df6ad5d","line":76,"range":{"start_line":59,"start_character":3,"end_line":76,"end_character":64},"updated":"2016-08-02 08:55:14.000000000","message":"This are redundant in this patch","commit_id":"b10155fe434f8357682471be998f7d2712c5173d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"ece4ef6259738c96028da56347795524ae2649b7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        fake_baymodel \u003d self.baymodel"},{"line_number":43,"context_line":"        self.clients(\"magnum\").baymodels.create.return_value \u003d fake_baymodel"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return_baymodel \u003d self.scenario._create_baymodel("},{"line_number":46,"context_line":"            image\u003d\"test_image\","},{"line_number":47,"context_line":"            keypair\u003d\"test_key\","},{"line_number":48,"context_line":"            external_network\u003d\"public\","}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_442f183e","line":45,"updated":"2016-08-04 08:34:43.000000000","message":"name argument is created by self.generate_random_name(). I think it needs be validated.","commit_id":"b0a61ff489c9659a70a777c7e5fcbc180d0e6924"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e4a78d733f1fa224db990f1c643ba4e3ee55684c","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.assertEqual(fake_baymodel, return_baymodel)"},{"line_number":56,"context_line":"        args, kwargs \u003d self.clients(\"magnum\").baymodels.create.call_args"},{"line_number":57,"context_line":"        self.assertEqual(kwargs[\"name\"], \"generated_name\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":60,"context_line":"                                       \"magnum.create_baymodel\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"9ad45d7e_016de730","line":57,"updated":"2016-08-10 18:14:12.000000000","message":"wrong order of parameters. First should be expected then actual","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"},{"author":{"_account_id":9577,"name":"Winnie Tsang","email":"wtsang@us.ibm.com","username":"wtsang"},"change_message_id":"bbd082c878ef2d0de5f0df4b3331828f1daa486d","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.assertEqual(fake_baymodel, return_baymodel)"},{"line_number":56,"context_line":"        args, kwargs \u003d self.clients(\"magnum\").baymodels.create.call_args"},{"line_number":57,"context_line":"        self.assertEqual(kwargs[\"name\"], \"generated_name\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":60,"context_line":"                                       \"magnum.create_baymodel\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"9ad45d7e_7c3e068d","line":57,"in_reply_to":"9ad45d7e_016de730","updated":"2016-08-10 21:31:57.000000000","message":"Done","commit_id":"4f1d01499a1ebeca7365ea5de2259bf9f4b4c173"}]}
