)]}'
{"ironicclient/tests/functional/osc/__init__.py":[{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"f0a8af5c2a85d67e17b319ed45deec9835a21edd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"5a8bc5a2_5375c3f7","line":1,"updated":"2016-09-26 13:48:50.000000000","message":"nit:why you are putting not changed init module here?","commit_id":"1d8ce073ad2bb094dfc5d25280654aedeef08a45"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"ffa429afbe9e47074aae0318788e4e103f8e5e60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"3a98d1f4_b69963c6","line":1,"in_reply_to":"5a8bc5a2_5375c3f7","updated":"2016-10-03 15:53:20.000000000","message":"It is created right in this patch.","commit_id":"1d8ce073ad2bb094dfc5d25280654aedeef08a45"}],"ironicclient/tests/functional/osc/exceptions.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3ea69abc364b8a0a205a17497c24c0c8f6fa1b8e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class CommandFailed(Exception):"},{"line_number":15,"context_line":"    def __init__(self, returncode, cmd, output, stderr):"},{"line_number":16,"context_line":"        super(CommandFailed, self).__init__()"},{"line_number":17,"context_line":"        self.returncode \u003d returncode"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_51dd5313","line":14,"updated":"2016-04-12 16:28:50.000000000","message":"ditto why copy it","commit_id":"8a346e6377e38c1683183b5495b33246502a11a2"}],"ironicclient/tests/functional/osc/test.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3ea69abc364b8a0a205a17497c24c0c8f6fa1b8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_71b5efcb","line":1,"updated":"2016-04-12 16:28:50.000000000","message":"Why do we need to copypaste this from openstack client? You could just import it.","commit_id":"8a346e6377e38c1683183b5495b33246502a11a2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"4d91854370370a7c07407e1aedaa5f8a8862a16f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_c537b4ae","line":1,"in_reply_to":"5a18252c_71b5efcb","updated":"2016-04-13 11:19:30.000000000","message":"I have no idea how to import from python-openstackclient/tree/master/functional \nOnly imports from python-openstackclient/tree/master/openstackclient work.","commit_id":"8a346e6377e38c1683183b5495b33246502a11a2"}],"ironicclient/tests/functional/osc/v1/base.py":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"9fcf6c96f886d61b67eb0bff383209ac67aad760","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def get_show_opts(self, fields):"},{"line_number":24,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_list_opts(self, headers):"},{"line_number":27,"context_line":"        return \u0027 -f csv \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":30,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_8e59c2ff","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":68},"updated":"2016-06-14 14:29:16.000000000","message":"it also returns header, why not -f value?","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5da34c58a93ef29ad57ce5bc417bd93ff3ae0d49","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def get_show_opts(self, fields):"},{"line_number":24,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_list_opts(self, headers):"},{"line_number":27,"context_line":"        return \u0027 -f csv \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":30,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_6bf22fd4","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":68},"in_reply_to":"7aa08908_8e59c2ff","updated":"2016-06-22 11:37:23.000000000","message":"I took it from OSC tests https://github.com/openstack/python-openstackclient/blob/master/functional/common/test.py#L66\nand both options work.","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"9fcf6c96f886d61b67eb0bff383209ac67aad760","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":36,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":37,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":38,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"},{"line_number":39,"context_line":"                                    .format(driver, name, node_uuid))"},{"line_number":40,"context_line":"        self.addCleanup(self.baremetal_delete, node_uuid, True)"},{"line_number":41,"context_line":"        if not raw_output:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_0e70323f","line":38,"range":{"start_line":38,"start_character":50,"end_line":38,"end_character":54},"updated":"2016-06-14 14:29:16.000000000","message":"uuid is not mandatory arg","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5da34c58a93ef29ad57ce5bc417bd93ff3ae0d49","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":36,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":37,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":38,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"},{"line_number":39,"context_line":"                                    .format(driver, name, node_uuid))"},{"line_number":40,"context_line":"        self.addCleanup(self.baremetal_delete, node_uuid, True)"},{"line_number":41,"context_line":"        if not raw_output:"}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_962b3eeb","line":38,"range":{"start_line":38,"start_character":50,"end_line":38,"end_character":54},"in_reply_to":"7aa08908_0e70323f","updated":"2016-06-22 11:37:23.000000000","message":"Done","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"763bed776473e9833ba4c88bf57e4aaf075aec04","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def baremetal_list(self, params):"},{"line_number":56,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":57,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":59,"context_line":"        return raw_output"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_0f8d427b","line":59,"range":{"start_line":58,"start_character":8,"end_line":59,"end_character":25},"updated":"2016-06-23 08:19:52.000000000","message":"\u0027raw_output\u0027 seems redundant.\n\nreturn self.openstack(\u0027baremetal node list {0}\u0027.format(opts))","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":15307,"name":"Muawia Khan","email":"amuawiakhan@gmail.com","username":"muawiakhan"},"change_message_id":"66d8860d8fbf30841388001e540f386cda3cb86a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def baremetal_list(self, params):"},{"line_number":56,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":57,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":59,"context_line":"        return raw_output"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_cff4da88","line":59,"range":{"start_line":58,"start_character":8,"end_line":59,"end_character":25},"in_reply_to":"3aaa91ec_0f8d427b","updated":"2016-06-23 08:28:55.000000000","message":"+1","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"30c0aeeffcb1a29344745737e6b64b9241bd4391","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def baremetal_list(self, params):"},{"line_number":56,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":57,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":59,"context_line":"        return raw_output"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_14526ddd","line":59,"range":{"start_line":58,"start_character":8,"end_line":59,"end_character":25},"in_reply_to":"3aaa91ec_0f8d427b","updated":"2016-06-23 10:24:47.000000000","message":"Done","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"30c0aeeffcb1a29344745737e6b64b9241bd4391","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def baremetal_list(self, params):"},{"line_number":56,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":57,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":59,"context_line":"        return raw_output"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_5486b565","line":59,"range":{"start_line":58,"start_character":8,"end_line":59,"end_character":25},"in_reply_to":"3aaa91ec_cff4da88","updated":"2016-06-23 10:24:47.000000000","message":"Done","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"763bed776473e9833ba4c88bf57e4aaf075aec04","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""},{"line_number":63,"context_line":"        opts \u003d self.get_show_opts(params)"},{"line_number":64,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0} {1}\u0027"},{"line_number":65,"context_line":"                                    .format(opts, name))"},{"line_number":66,"context_line":"        return raw_output"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def baremetal_delete(self, identifier, ignore_exceptions\u003dFalse):"},{"line_number":69,"context_line":"        \"\"\"Try to delete baremetal node by name or UUID.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_efdef66b","line":66,"range":{"start_line":64,"start_character":8,"end_line":66,"end_character":25},"updated":"2016-06-23 08:19:52.000000000","message":"ditto: \u0027raw_output\u0027 seems redundant.","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"30c0aeeffcb1a29344745737e6b64b9241bd4391","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def baremetal_show(self, name, params):"},{"line_number":62,"context_line":"        \"\"\"Show specified server by name.\"\"\""},{"line_number":63,"context_line":"        opts \u003d self.get_show_opts(params)"},{"line_number":64,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0} {1}\u0027"},{"line_number":65,"context_line":"                                    .format(opts, name))"},{"line_number":66,"context_line":"        return raw_output"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def baremetal_delete(self, identifier, ignore_exceptions\u003dFalse):"},{"line_number":69,"context_line":"        \"\"\"Try to delete baremetal node by name or UUID.\"\"\""}],"source_content_type":"text/x-python","patch_set":18,"id":"3aaa91ec_94801d48","line":66,"range":{"start_line":64,"start_character":8,"end_line":66,"end_character":25},"in_reply_to":"3aaa91ec_efdef66b","updated":"2016-06-23 10:24:47.000000000","message":"Done","commit_id":"ffe67711c0146b95fe91dfeee6c5f65d43ded6b8"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_show_opts(self, fields):"},{"line_number":27,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_list_opts(self, headers):"},{"line_number":30,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":33,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_d4ac97ef","line":30,"range":{"start_line":26,"start_character":0,"end_line":30,"end_character":70},"updated":"2016-07-04 17:10:44.000000000","message":"looks like this methods identical","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_show_opts(self, fields):"},{"line_number":27,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_list_opts(self, headers):"},{"line_number":30,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":33,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_8cffa3a9","line":30,"range":{"start_line":26,"start_character":0,"end_line":30,"end_character":70},"in_reply_to":"1aa78d24_d4ac97ef","updated":"2016-07-04 20:39:39.000000000","message":"Done","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def get_list_opts(self, headers):"},{"line_number":30,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":33,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""},{"line_number":34,"context_line":"        for item in items:"},{"line_number":35,"context_line":"            for field in field_names:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_1401ffae","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":30},"updated":"2016-07-04 17:10:44.000000000","message":"nit: base class asserts follow unittest asserts style - assertTableStructure. Also I thought there was same assert somewhere","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def get_list_opts(self, headers):"},{"line_number":30,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in headers])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":33,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""},{"line_number":34,"context_line":"        for item in items:"},{"line_number":35,"context_line":"            for field in field_names:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_cc024b09","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":30},"in_reply_to":"1aa78d24_1401ffae","updated":"2016-07-04 20:39:39.000000000","message":"And this method is unused in current patch, so i remove it for now.","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":20522,"name":"Aline Bousquet","email":"albousque@gmail.com","username":"alineb"},"change_message_id":"479f0b45fcd070b56f4aacb40fb36987544d9257","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields):"},{"line_number":27,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":30,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_37a73c0c","line":27,"range":{"start_line":27,"start_character":20,"end_line":27,"end_character":25},"updated":"2016-07-07 12:45:03.000000000","message":"Why not pass the format as a parameter that defaults to \"value\"? That way, other tests could use different formats.","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"7388726a04c609a45e37508448adc00180efecb2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields):"},{"line_number":27,"context_line":"        return \u0027 -f value \u0027 + \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields])"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":30,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_833d0dc6","line":27,"range":{"start_line":27,"start_character":20,"end_line":27,"end_character":25},"in_reply_to":"1aa78d24_37a73c0c","updated":"2016-07-07 14:26:30.000000000","message":"Aline, thanks good idea! I took this code from openstackclient, so i`ll also propose your idea to OSC tests.","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":20522,"name":"Aline Bousquet","email":"albousque@gmail.com","username":"alineb"},"change_message_id":"479f0b45fcd070b56f4aacb40fb36987544d9257","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        if name is None:"},{"line_number":33,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"},{"line_number":36,"context_line":"                                    \u0027--driver {0} --name {1} {2}\u0027"},{"line_number":37,"context_line":"                                    .format(driver, name, params))"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_f7bf74cd","line":35,"range":{"start_line":35,"start_character":62,"end_line":35,"end_character":66},"updated":"2016-07-07 12:45:03.000000000","message":"ditto, why not have format\u003d\u0027json\u0027 as a parameter?","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"7388726a04c609a45e37508448adc00180efecb2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        if name is None:"},{"line_number":33,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"},{"line_number":36,"context_line":"                                    \u0027--driver {0} --name {1} {2}\u0027"},{"line_number":37,"context_line":"                                    .format(driver, name, params))"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_80618307","line":35,"range":{"start_line":35,"start_character":62,"end_line":35,"end_character":66},"in_reply_to":"1aa78d24_f7bf74cd","updated":"2016-07-07 14:26:30.000000000","message":"Here i use openstackclient\u0027s output formatter \u0027-f json\u0027 to get dictionary easily with json.loads() avoiding additional code for conversion of console output to dictionary.","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b0761533336f9bbb91c0520a30242a363eeeb9ab","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def baremetal_node_show(self, name, params):"},{"line_number":52,"context_line":"        \"\"\"Show specified baremetal node by name.\"\"\""},{"line_number":53,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":54,"context_line":"        return self.openstack(\u0027baremetal node show {0} {1}\u0027"},{"line_number":55,"context_line":"                              .format(opts, name))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def baremetal_node_delete(self, identifier, ignore_exceptions\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1aa78d24_4dbaa7e2","line":54,"updated":"2016-07-11 14:24:42.000000000","message":"It would be consistent to do -f json here too and do json.loads","commit_id":"c46a32d9412ce58a956bc37092c097ae333dc699"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3b8e5b7d868eeb02fbcd316564183d165d7ddbec","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def baremetal_node_show(self, name, params):"},{"line_number":52,"context_line":"        \"\"\"Show specified baremetal node by name.\"\"\""},{"line_number":53,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":54,"context_line":"        return self.openstack(\u0027baremetal node show {0} {1}\u0027"},{"line_number":55,"context_line":"                              .format(opts, name))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def baremetal_node_delete(self, identifier, ignore_exceptions\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_08baa323","line":54,"in_reply_to":"1aa78d24_4dbaa7e2","updated":"2016-07-18 13:59:30.000000000","message":"Done","commit_id":"c46a32d9412ce58a956bc37092c097ae333dc699"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"b489e39db0dcae60208342d62ce7037f960377ca","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":28,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_93b7a8d7","line":26,"range":{"start_line":26,"start_character":12,"end_line":26,"end_character":16},"updated":"2016-07-19 15:20:15.000000000","message":"Didn\u0027t get a point what is opts\u003d)","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3c1001151a28a11037fa15d2d19147aaab726569","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":28,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_d63bc936","line":26,"range":{"start_line":26,"start_character":12,"end_line":26,"end_character":16},"in_reply_to":"dada55a8_93b7a8d7","updated":"2016-07-19 16:45:28.000000000","message":"It means options :)","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"b489e39db0dcae60208342d62ce7037f960377ca","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":31,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if name is None:"},{"line_number":34,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_53f370d6","line":33,"range":{"start_line":33,"start_character":7,"end_line":33,"end_character":24},"updated":"2016-07-19 15:20:15.000000000","message":"Just use\nif not name:","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3c1001151a28a11037fa15d2d19147aaab726569","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":31,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if name is None:"},{"line_number":34,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_164601bf","line":33,"range":{"start_line":33,"start_character":7,"end_line":33,"end_character":24},"in_reply_to":"dada55a8_53f370d6","updated":"2016-07-19 16:45:28.000000000","message":"Done","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3aacab5d209bf0293edf1d56e8a6b86405eba732","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not name:"},{"line_number":34,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"},{"line_number":37,"context_line":"                                    \u0027--driver {0} --name {1} {2}\u0027"},{"line_number":38,"context_line":"                                    .format(driver, name, params))"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_4fe6dd15","line":36,"range":{"start_line":36,"start_character":59,"end_line":36,"end_character":66},"updated":"2016-07-20 16:43:20.000000000","message":"Should be get_opts call now?","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c3bdd8f999440706629c3743c066c3a6d0cd810a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not name:"},{"line_number":34,"context_line":"            name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create -f json \u0027"},{"line_number":37,"context_line":"                                    \u0027--driver {0} --name {1} {2}\u0027"},{"line_number":38,"context_line":"                                    .format(driver, name, params))"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_5d1f7f5a","line":36,"range":{"start_line":36,"start_character":59,"end_line":36,"end_character":66},"in_reply_to":"dada55a8_4fe6dd15","updated":"2016-07-21 15:55:48.000000000","message":"Done","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"347d443eae3aeca51b7e3d6423388f154dcbe937","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields\u003dNone, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        if not fields:"},{"line_number":28,"context_line":"            return \u0027 -f {0}\u0027.format(format)"},{"line_number":29,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_3ec82822","line":26,"range":{"start_line":26,"start_character":23,"end_line":26,"end_character":29},"updated":"2016-07-29 14:14:57.000000000","message":"This is confusing (see following comments), please add a docstring on what is expected here.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields\u003dNone, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        if not fields:"},{"line_number":28,"context_line":"            return \u0027 -f {0}\u0027.format(format)"},{"line_number":29,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_98716579","line":26,"range":{"start_line":26,"start_character":23,"end_line":26,"end_character":29},"in_reply_to":"bacf61ea_3ec82822","updated":"2016-07-29 15:53:59.000000000","message":"Done","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"347d443eae3aeca51b7e3d6423388f154dcbe937","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":30,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":33,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if not name:"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_be037841","line":32,"range":{"start_line":32,"start_character":62,"end_line":32,"end_character":68},"updated":"2016-07-29 14:14:57.000000000","message":"Here params is a string like \"-i ipmi_password\u003d1234 -i ipmi_username\u003dabc\" right? Please describe what is it.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":30,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":33,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if not name:"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_f86a2180","line":32,"range":{"start_line":32,"start_character":62,"end_line":32,"end_character":68},"in_reply_to":"bacf61ea_be037841","updated":"2016-07-29 15:53:59.000000000","message":"Done","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"347d443eae3aeca51b7e3d6423388f154dcbe937","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return json.loads(raw_output)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def baremetal_node_list(self, params):"},{"line_number":50,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":51,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":52,"context_line":"        return self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_7eb74086","line":49,"range":{"start_line":49,"start_character":34,"end_line":49,"end_character":40},"updated":"2016-07-29 14:14:57.000000000","message":"It seems that here params is a list of output columns to be displayed, like [\u0027UUID\u0027, \u0027Name\u0027], while node list itself supports much more things: filters like --maintenance, --provision-state, --associated,... which cannot be passed here? I\u0027d add another \u0027params\u0027 parameter to be able to specify these the way it\u0027s done on L40.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return json.loads(raw_output)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def baremetal_node_list(self, params):"},{"line_number":50,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":51,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":52,"context_line":"        return self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_7e24595f","line":49,"range":{"start_line":49,"start_character":34,"end_line":49,"end_character":40},"in_reply_to":"bacf61ea_7eb74086","updated":"2016-07-29 15:53:59.000000000","message":"Possibly i have misunderstood this comment, please look one more time in update.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"347d443eae3aeca51b7e3d6423388f154dcbe937","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":52,"context_line":"        return self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def baremetal_node_show(self, name, params\u003dNone):"},{"line_number":55,"context_line":"        \"\"\"Show specified baremetal node by name.\"\"\""},{"line_number":56,"context_line":"        opts \u003d self.get_opts(params, format\u003d\u0027json\u0027)"},{"line_number":57,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_f9350ada","line":54,"range":{"start_line":54,"start_character":40,"end_line":54,"end_character":46},"updated":"2016-07-29 14:14:57.000000000","message":"Here params to be used with -c should be fine, tho there is another possibility to do \"baremetal node show --instance \u003cinstance UUID\u003e\".","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        opts \u003d self.get_opts(params)"},{"line_number":52,"context_line":"        return self.openstack(\u0027baremetal node list {0}\u0027.format(opts))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def baremetal_node_show(self, name, params\u003dNone):"},{"line_number":55,"context_line":"        \"\"\"Show specified baremetal node by name.\"\"\""},{"line_number":56,"context_line":"        opts \u003d self.get_opts(params, format\u003d\u0027json\u0027)"},{"line_number":57,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_3e3941a5","line":54,"range":{"start_line":54,"start_character":40,"end_line":54,"end_character":46},"in_reply_to":"bacf61ea_f9350ada","updated":"2016-07-29 15:53:59.000000000","message":"Vlad, \"-c\" option is added by get_opts method.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"10c57219e464d4be6167fbea521218e4152dc025","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return json.loads(raw_output)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def baremetal_node_list(self, params\u003d\u0027\u0027):"},{"line_number":61,"context_line":"        \"\"\"List baremetal nodes."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param String params: Additional args and kwargs"}],"source_content_type":"text/x-python","patch_set":32,"id":"bacf61ea_cc283fe5","line":60,"updated":"2016-07-29 16:33:13.000000000","message":"I\u0027ve explained it in private, just posting it here for the record :) In this case params is not args and kwargs, it is a list of columns to print.\n\nbaremetal_node_list([\u0027Name\u0027, \u0027UUID\u0027]) will be doing\n\n openstack baremetal node list -c Name -c UUID -f value\n\nunder the hood. What I wanted this function to do is also to be able to pass real filter arguments, so the command could look like\n\n openstack baremetal node list -c Name -c UUID -f value --provision-state CLEANFAIL --maintenance True","commit_id":"115b62d652d94d6f3410ba86667e08f9e411511f"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f7a84c51c24626b3a856951cd6c346490dc9c04a","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return json.loads(raw_output)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def baremetal_node_list(self, params\u003d\u0027\u0027):"},{"line_number":61,"context_line":"        \"\"\"List baremetal nodes."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param String params: Additional args and kwargs"}],"source_content_type":"text/x-python","patch_set":32,"id":"bacf61ea_47d5481a","line":60,"in_reply_to":"bacf61ea_cc283fe5","updated":"2016-07-29 16:50:22.000000000","message":"Done","commit_id":"115b62d652d94d6f3410ba86667e08f9e411511f"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"10c57219e464d4be6167fbea521218e4152dc025","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \"\"\"Show specified baremetal node."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param String identifier: Name or UUID of the node"},{"line_number":73,"context_line":"        :param String params: Additional args and kwargs"},{"line_number":74,"context_line":"        :return: JSON object of node"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        opts \u003d self.get_opts(params, format\u003d\u0027json\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"bacf61ea_6c8673dc","line":73,"updated":"2016-07-29 16:33:13.000000000","message":"ditto, it\u0027s a list of columns to output.","commit_id":"115b62d652d94d6f3410ba86667e08f9e411511f"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f7a84c51c24626b3a856951cd6c346490dc9c04a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \"\"\"Show specified baremetal node."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param String identifier: Name or UUID of the node"},{"line_number":73,"context_line":"        :param String params: Additional args and kwargs"},{"line_number":74,"context_line":"        :return: JSON object of node"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        opts \u003d self.get_opts(params, format\u003d\u0027json\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"bacf61ea_c715b840","line":73,"in_reply_to":"bacf61ea_6c8673dc","updated":"2016-07-29 16:50:22.000000000","message":"Done","commit_id":"115b62d652d94d6f3410ba86667e08f9e411511f"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"fea34ed8a5c6c0ad178c83fc5e3773c39ad331d6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields\u003dNone, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        \"\"\"Get options for OSC output fields format."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param List fields: List of fields to get"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_ff9a1461","line":26,"range":{"start_line":26,"start_character":44,"end_line":26,"end_character":49},"updated":"2016-09-02 12:46:39.000000000","message":"nit: looks like you will use json mainly, so maybe json by default","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def openstack(self, *args, **kwargs):"},{"line_number":24,"context_line":"        return self.clients.openstack(*args, **kwargs)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def get_opts(self, fields\u003dNone, format\u003d\u0027value\u0027):"},{"line_number":27,"context_line":"        \"\"\"Get options for OSC output fields format."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param List fields: List of fields to get"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_d6529234","line":26,"range":{"start_line":26,"start_character":44,"end_line":26,"end_character":49},"in_reply_to":"fa7ab95a_ff9a1461","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"fea34ed8a5c6c0ad178c83fc5e3773c39ad331d6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return \u0027 -f {0}\u0027.format(format)"},{"line_number":35,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":36,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":39,"context_line":"        \"\"\"Create baremetal node and add cleanup."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        :param String driver: Driver for a new node"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_3f755cca","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":29},"updated":"2016-09-02 12:46:39.000000000","message":"Maybe put down the word \u0027baremetal\u0027 in action methods, wdyt?","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return \u0027 -f {0}\u0027.format(format)"},{"line_number":35,"context_line":"        return \u0027 -f {0} {1}\u0027.format(format,"},{"line_number":36,"context_line":"                                    \u0027 \u0027.join([\u0027-c \u0027 + it for it in fields]))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def baremetal_node_create(self, driver\u003d\u0027fake\u0027, name\u003dNone, params\u003d\u0027\u0027):"},{"line_number":39,"context_line":"        \"\"\"Create baremetal node and add cleanup."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        :param String driver: Driver for a new node"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_b048b65d","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"fa7ab95a_3f755cca","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return json.loads(raw_output)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def baremetal_node_list(self, fields, params\u003d\u0027\u0027):"},{"line_number":61,"context_line":"        \"\"\"List baremetal nodes."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_092226a3","line":60,"range":{"start_line":60,"start_character":34,"end_line":60,"end_character":40},"updated":"2016-09-02 11:47:40.000000000","message":"let\u0027s not make it obligatory.","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return json.loads(raw_output)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def baremetal_node_list(self, fields, params\u003d\u0027\u0027):"},{"line_number":61,"context_line":"        \"\"\"List baremetal nodes."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_50220aa4","line":60,"range":{"start_line":60,"start_character":34,"end_line":60,"end_character":40},"in_reply_to":"fa7ab95a_092226a3","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"},{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: string of raw output"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        return self.openstack(\u0027baremetal node list {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_2927ea12","line":65,"updated":"2016-09-02 11:47:40.000000000","message":"raw values output","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"},{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: string of raw output"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        return self.openstack(\u0027baremetal node list {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_903812d5","line":65,"in_reply_to":"fa7ab95a_2927ea12","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return self.openstack(\u0027baremetal node list {0} {1}\u0027"},{"line_number":69,"context_line":"                              .format(opts, params))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def baremetal_node_show(self, identifier, fields, params\u003d\u0027\u0027):"},{"line_number":72,"context_line":"        \"\"\"Show specified baremetal node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param String identifier: Name or UUID of the node"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_a99bfac7","line":71,"range":{"start_line":71,"start_character":46,"end_line":71,"end_character":52},"updated":"2016-09-02 11:47:40.000000000","message":"ditto","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return self.openstack(\u0027baremetal node list {0} {1}\u0027"},{"line_number":69,"context_line":"                              .format(opts, params))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def baremetal_node_show(self, identifier, fields, params\u003d\u0027\u0027):"},{"line_number":72,"context_line":"        \"\"\"Show specified baremetal node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param String identifier: Name or UUID of the node"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_3054a6fc","line":71,"range":{"start_line":71,"start_character":46,"end_line":71,"end_character":52},"in_reply_to":"fa7ab95a_a99bfac7","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"591746b5cdcf224ebc0a8b009d74713275c5f83b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: raw values output"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        return self.openstack(\u0027baremetal node list {0} {1}\u0027"},{"line_number":69,"context_line":"                              .format(opts, params))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def node_show(self, identifier, fields\u003dNone, params\u003d\u0027\u0027):"},{"line_number":72,"context_line":"        \"\"\"Show specified baremetal node."}],"source_content_type":"text/x-python","patch_set":41,"id":"fa6399be_1ece315a","line":69,"range":{"start_line":67,"start_character":8,"end_line":69,"end_character":52},"updated":"2016-10-12 16:17:18.000000000","message":"Let\u0027s change it to return json too.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"5de581d99f3e53444a77cf8c334b49b3578f85c6","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"},{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: raw values output"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        output \u003d self.openstack(\u0027baremetal node list {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"fa6399be_3e883171","line":65,"range":{"start_line":65,"start_character":17,"end_line":65,"end_character":34},"updated":"2016-10-20 08:07:44.000000000","message":"nit: JSON object of node","commit_id":"c9889ab563ae3790fa212ad773d11eae0fa59b0e"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"8ffe432d094b802f2eff9e361a796f8b2826b6f9","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"},{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: raw values output"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        output \u003d self.openstack(\u0027baremetal node list {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"fa6399be_7946437c","line":65,"range":{"start_line":65,"start_character":17,"end_line":65,"end_character":34},"in_reply_to":"fa6399be_3e883171","updated":"2016-10-20 09:06:06.000000000","message":"Thanks for catch!","commit_id":"c9889ab563ae3790fa212ad773d11eae0fa59b0e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7e36d85aaa7e6709cad9926c988c26eb0dccbaa2","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param List fields: List of fields to show"},{"line_number":64,"context_line":"        :param String params: Additional kwargs"},{"line_number":65,"context_line":"        :return: JSON object of node"},{"line_number":66,"context_line":"        \"\"\""},{"line_number":67,"context_line":"        opts \u003d self.get_opts(fields\u003dfields)"},{"line_number":68,"context_line":"        output \u003d self.openstack(\u0027baremetal node list {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":47,"id":"9a629dbe_d6ba35c0","line":65,"updated":"2016-11-07 12:25:51.000000000","message":"I\u0027d say \"list of JSON node objects\"","commit_id":"bde76bd2ab765c148ef2bce02dfec0a005560118"}],"ironicclient/tests/functional/osc/v1/test.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"caba96bd11897aa0c621b0ac1b572d86e92f09ad","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def assertOutput(self, expected, actual):"},{"line_number":34,"context_line":"        if expected !\u003d actual:"},{"line_number":35,"context_line":"            raise Exception(expected + \u0027 !\u003d \u0027 + actual)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":38,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_355a332b","line":35,"updated":"2016-05-13 10:48:23.000000000","message":"this method is not needed - just use self.assertEqual instead","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"6b2cca253bb56d80002597ce68b5ebb656c501e2","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def assertOutput(self, expected, actual):"},{"line_number":34,"context_line":"        if expected !\u003d actual:"},{"line_number":35,"context_line":"            raise Exception(expected + \u0027 !\u003d \u0027 + actual)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def assert_table_structure(self, items, field_names):"},{"line_number":38,"context_line":"        \"\"\"Verify that all items have keys listed in field_names.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_2c6dbd32","line":35,"in_reply_to":"dab17558_355a332b","updated":"2016-05-13 15:57:09.000000000","message":"Done","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"}],"ironicclient/tests/functional/osc/v1/test_baremetal_basic.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"caba96bd11897aa0c621b0ac1b572d86e92f09ad","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":28,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":29,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal create\u0027 +"},{"line_number":30,"context_line":"                                    \u0027 --driver {0}\u0027.format(driver) +"},{"line_number":31,"context_line":"                                    \u0027 --name {0}\u0027.format(name) +"},{"line_number":32,"context_line":"                                    \u0027 --uuid {0}\u0027.format(node_uuid))"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_3544f319","line":29,"updated":"2016-05-13 10:48:23.000000000","message":"IMO would be better to use string formatting instead of string concatenation, in all methods here","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"6b2cca253bb56d80002597ce68b5ebb656c501e2","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":28,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":29,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal create\u0027 +"},{"line_number":30,"context_line":"                                    \u0027 --driver {0}\u0027.format(driver) +"},{"line_number":31,"context_line":"                                    \u0027 --name {0}\u0027.format(name) +"},{"line_number":32,"context_line":"                                    \u0027 --uuid {0}\u0027.format(node_uuid))"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_0329a737","line":29,"in_reply_to":"dab17558_3544f319","updated":"2016-05-13 15:57:09.000000000","message":"Done","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"caba96bd11897aa0c621b0ac1b572d86e92f09ad","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                                    \u0027 --name {0}\u0027.format(name) +"},{"line_number":32,"context_line":"                                    \u0027 --uuid {0}\u0027.format(node_uuid))"},{"line_number":33,"context_line":"        self.addCleanup(self.baremetal_delete, name, True)"},{"line_number":34,"context_line":"        if not raw_output:"},{"line_number":35,"context_line":"            self.fail(\u0027Baremetal node has not been created!\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def baremetal_list(self, params\u003d[]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_15b60fdc","line":34,"updated":"2016-05-13 10:48:23.000000000","message":"does the raw_output contain only stdout and not stdin? would an error reported still considered as non-empty raw_output?","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"6b2cca253bb56d80002597ce68b5ebb656c501e2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                                    \u0027 --name {0}\u0027.format(name) +"},{"line_number":32,"context_line":"                                    \u0027 --uuid {0}\u0027.format(node_uuid))"},{"line_number":33,"context_line":"        self.addCleanup(self.baremetal_delete, name, True)"},{"line_number":34,"context_line":"        if not raw_output:"},{"line_number":35,"context_line":"            self.fail(\u0027Baremetal node has not been created!\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def baremetal_list(self, params\u003d[]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_96aaf717","line":34,"in_reply_to":"dab17558_15b60fdc","updated":"2016-05-13 15:57:09.000000000","message":"stdin does not get to raw_output. \nIf you meant stderr, then i`ll ask openstackclient developers to clarify this question. But it should not take stderr as this check used many times in openstackclient functional tests.","commit_id":"77ca384fc6e9ce968b79f2b3568868a3d60364e2"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class BaremetalTests(test.TestCase):"},{"line_number":25,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":28,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":29,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal create --driver {0} --name {1}\u0027"},{"line_number":30,"context_line":"                                    \u0027 --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_b9e22c2d","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"updated":"2016-06-01 06:26:20.000000000","message":"Would it be better to perpend underscore \u0027_\u0027 to the method name if this method is private?","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f6504b2ab7f54d5c56c971208d4470ed908ecd03","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class BaremetalTests(test.TestCase):"},{"line_number":25,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def baremetal_create(self, driver, node_uuid, name):"},{"line_number":28,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":29,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal create --driver {0} --name {1}\u0027"},{"line_number":30,"context_line":"                                    \u0027 --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_e7df4b38","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":24},"in_reply_to":"9abb7d3a_b9e22c2d","updated":"2016-06-03 14:54:53.000000000","message":"Done","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not raw_output:"},{"line_number":34,"context_line":"            self.fail(\u0027Baremetal node has not been created!\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def baremetal_list(self, params\u003d[]):"},{"line_number":37,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":38,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_b9d6acee","line":36,"range":{"start_line":36,"start_character":29,"end_line":36,"end_character":38},"updated":"2016-06-01 06:26:20.000000000","message":"It would not be good practice to use mutable data in default argument.","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not raw_output:"},{"line_number":34,"context_line":"            self.fail(\u0027Baremetal node has not been created!\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def baremetal_list(self, params\u003d[]):"},{"line_number":37,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":38,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_39cd9cb7","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":22},"updated":"2016-06-01 06:26:20.000000000","message":"ditto","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f6504b2ab7f54d5c56c971208d4470ed908ecd03","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not raw_output:"},{"line_number":34,"context_line":"            self.fail(\u0027Baremetal node has not been created!\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def baremetal_list(self, params\u003d[]):"},{"line_number":37,"context_line":"        \"\"\"List baremetal nodes.\"\"\""},{"line_number":38,"context_line":"        opts \u003d self.get_list_opts(params)"},{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_a6126407","line":36,"range":{"start_line":36,"start_character":29,"end_line":36,"end_character":38},"in_reply_to":"9abb7d3a_b9d6acee","updated":"2016-06-03 14:54:53.000000000","message":"Done","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"},{"line_number":40,"context_line":"        return raw_output"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def baremetal_show(self, name, params\u003d[]):"},{"line_number":43,"context_line":"        \"\"\"Show specified server by name.\"\"\""},{"line_number":44,"context_line":"        opts \u003d self.get_show_opts(params)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal show {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_1906d885","line":42,"range":{"start_line":42,"start_character":35,"end_line":42,"end_character":44},"updated":"2016-06-01 06:26:20.000000000","message":"ditto","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"},{"line_number":40,"context_line":"        return raw_output"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def baremetal_show(self, name, params\u003d[]):"},{"line_number":43,"context_line":"        \"\"\"Show specified server by name.\"\"\""},{"line_number":44,"context_line":"        opts \u003d self.get_show_opts(params)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal show {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_f93dd48f","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":22},"updated":"2016-06-01 06:26:20.000000000","message":"ditto","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f6504b2ab7f54d5c56c971208d4470ed908ecd03","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal list {0}\u0027.format(opts))"},{"line_number":40,"context_line":"        return raw_output"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def baremetal_show(self, name, params\u003d[]):"},{"line_number":43,"context_line":"        \"\"\"Show specified server by name.\"\"\""},{"line_number":44,"context_line":"        opts \u003d self.get_show_opts(params)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal show {0} {1}\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_27c9537a","line":42,"range":{"start_line":42,"start_character":35,"end_line":42,"end_character":44},"in_reply_to":"9abb7d3a_1906d885","updated":"2016-06-03 14:54:53.000000000","message":"Done","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"4a1d9fc11b48afefebe9f2e2d2dc0b57bfc55beb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                    .format(opts, name))"},{"line_number":47,"context_line":"        return raw_output"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def baremetal_delete(self, name, ignore_exceptions\u003dFalse):"},{"line_number":50,"context_line":"        \"\"\"Try to delete baremetal node by name.\"\"\""},{"line_number":51,"context_line":"        try:"},{"line_number":52,"context_line":"            self.openstack(\u0027baremetal delete {0}\u0027.format(name))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_593fc086","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":24},"updated":"2016-06-01 06:26:20.000000000","message":"ditto","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"f6504b2ab7f54d5c56c971208d4470ed908ecd03","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                    .format(opts, name))"},{"line_number":47,"context_line":"        return raw_output"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def baremetal_delete(self, name, ignore_exceptions\u003dFalse):"},{"line_number":50,"context_line":"        \"\"\"Try to delete baremetal node by name.\"\"\""},{"line_number":51,"context_line":"        try:"},{"line_number":52,"context_line":"            self.openstack(\u0027baremetal delete {0}\u0027.format(name))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_e7b62bf8","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":24},"in_reply_to":"9abb7d3a_593fc086","updated":"2016-06-03 14:54:53.000000000","message":"Done","commit_id":"40c93272bc8505c8c00c493d5ad2c61b57da19d1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"daa7ff1297083bffe84a024674b571159f9dae53","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class BaremetalTests(base.TestCase):"},{"line_number":24,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def _baremetal_create(self, driver, node_uuid, name):"},{"line_number":27,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":28,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":29,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_f2d5551b","line":26,"updated":"2016-06-10 13:42:45.000000000","message":"I\u0027d rather move these basic functions to some base class. Also, why are they private?","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class BaremetalTests(base.TestCase):"},{"line_number":24,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def _baremetal_create(self, driver, node_uuid, name):"},{"line_number":27,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":28,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":29,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_57dd3b41","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":9},"updated":"2016-06-10 13:54:54.000000000","message":"Maybe good idea to move all \u0027_\u0027 `private` methods to base class","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class BaremetalTests(base.TestCase):"},{"line_number":24,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def _baremetal_create(self, driver, node_uuid, name):"},{"line_number":27,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":28,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":29,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_414c0ec8","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":9},"in_reply_to":"7aa08908_57dd3b41","updated":"2016-06-13 14:39:12.000000000","message":"Done","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class BaremetalTests(base.TestCase):"},{"line_number":24,"context_line":"    \"\"\"Functional tests for baremetal commands.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def _baremetal_create(self, driver, node_uuid, name):"},{"line_number":27,"context_line":"        \"\"\"Create baremetal node and add cleanup.\"\"\""},{"line_number":28,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":29,"context_line":"                                    \u0027--name {1} --uuid {2}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_0156865b","line":26,"in_reply_to":"7aa08908_f2d5551b","updated":"2016-06-13 14:39:12.000000000","message":"Done","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.driver \u003d \"fake\""},{"line_number":61,"context_line":"        self._baremetal_create(self.driver, self.uuid, self.name)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_baremetal_create(self):"},{"line_number":64,"context_line":"        \"\"\"Check baremetal create command."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_37018f6b","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":29},"updated":"2016-06-10 13:54:54.000000000","message":"Test is called test_baremetal_create() and you are checking `node in nodes list by name.` what is the point?","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.driver \u003d \"fake\""},{"line_number":61,"context_line":"        self._baremetal_create(self.driver, self.uuid, self.name)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_baremetal_create(self):"},{"line_number":64,"context_line":"        \"\"\"Check baremetal create command."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_76e3cfa4","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":29},"in_reply_to":"7aa08908_37018f6b","updated":"2016-06-13 14:39:12.000000000","message":"OK, changed description of step","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":105,"context_line":"        items \u003d parser.listing(raw_output)"},{"line_number":106,"context_line":"        self.assert_table_structure(items,"},{"line_number":107,"context_line":"                                    [\u0027UUID\u0027, \u0027Name\u0027, \u0027Instance UUID\u0027,"},{"line_number":108,"context_line":"                                     \u0027Power State\u0027, \u0027Provisioning State\u0027,"},{"line_number":109,"context_line":"                                     \u0027Maintenance\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_722165fc","line":106,"range":{"start_line":106,"start_character":36,"end_line":106,"end_character":41},"updated":"2016-06-10 13:54:54.000000000","message":"Is it possible that `items` return in different position in the list?","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":105,"context_line":"        items \u003d parser.listing(raw_output)"},{"line_number":106,"context_line":"        self.assert_table_structure(items,"},{"line_number":107,"context_line":"                                    [\u0027UUID\u0027, \u0027Name\u0027, \u0027Instance UUID\u0027,"},{"line_number":108,"context_line":"                                     \u0027Power State\u0027, \u0027Provisioning State\u0027,"},{"line_number":109,"context_line":"                                     \u0027Maintenance\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_6932d0f3","line":106,"range":{"start_line":106,"start_character":36,"end_line":106,"end_character":41},"in_reply_to":"7aa08908_722165fc","updated":"2016-06-13 14:39:12.000000000","message":"List of items returned can be supplemented with \"--column COLUMN\" option.\nMove this check to separate path.","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                                     \u0027Maintenance\u0027])"},{"line_number":110,"context_line":"        self.assertIn(self.name, raw_output)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_baremetal_set_unset_name(self):"},{"line_number":113,"context_line":"        \"\"\"Check baremetal set and unset commands with --name option."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_92b0518d","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":37},"updated":"2016-06-10 13:54:54.000000000","message":"I feel tis test is not `basic`. Basic tests could be:\n1. test_baremetal_set\n2. test_baremetal_unset","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                                     \u0027Maintenance\u0027])"},{"line_number":110,"context_line":"        self.assertIn(self.name, raw_output)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_baremetal_set_unset_name(self):"},{"line_number":113,"context_line":"        \"\"\"Check baremetal set and unset commands with --name option."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_a2316aef","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":37},"in_reply_to":"7aa08908_92b0518d","updated":"2016-06-13 14:39:12.000000000","message":"Done","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":132,"context_line":"        self.assertNotIn(prop_value, self._baremetal_show(self.uuid, [prop]))"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_baremetal_set_unset_properties(self):"},{"line_number":135,"context_line":"        \"\"\"Check baremetal set and unset command with --properties option."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_1263c11b","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":43},"updated":"2016-06-10 13:54:54.000000000","message":"ditto","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":132,"context_line":"        self.assertNotIn(prop_value, self._baremetal_show(self.uuid, [prop]))"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_baremetal_set_unset_properties(self):"},{"line_number":135,"context_line":"        \"\"\"Check baremetal set and unset command with --properties option."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_423886d3","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":43},"in_reply_to":"7aa08908_1263c11b","updated":"2016-06-13 14:39:12.000000000","message":"Done","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node set --property {0}\u003d{1} {2}\u0027"},{"line_number":149,"context_line":"                                    .format(prop, prop_value, self.name))"},{"line_number":150,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":151,"context_line":"        self.assertIn(str(prop_dict),"},{"line_number":152,"context_line":"                      self._baremetal_show(self.name, [\u0027properties\u0027]))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node unset --property {0} {1}\u0027"},{"line_number":155,"context_line":"                                    .format(prop, self.name))"},{"line_number":156,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":157,"context_line":"        self.assertNotIn(str(prop_dict),"},{"line_number":158,"context_line":"                         self._baremetal_show(self.name, [\u0027properties\u0027]))"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_baremetal_show(self):"},{"line_number":161,"context_line":"        \"\"\"Check baremetal show command."}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_b22aad8e","line":158,"range":{"start_line":150,"start_character":0,"end_line":158,"end_character":73},"updated":"2016-06-10 13:54:54.000000000","message":"Try to use 1 assert / 1 test :)","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node set --property {0}\u003d{1} {2}\u0027"},{"line_number":149,"context_line":"                                    .format(prop, prop_value, self.name))"},{"line_number":150,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":151,"context_line":"        self.assertIn(str(prop_dict),"},{"line_number":152,"context_line":"                      self._baremetal_show(self.name, [\u0027properties\u0027]))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node unset --property {0} {1}\u0027"},{"line_number":155,"context_line":"                                    .format(prop, self.name))"},{"line_number":156,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"},{"line_number":157,"context_line":"        self.assertNotIn(str(prop_dict),"},{"line_number":158,"context_line":"                         self._baremetal_show(self.name, [\u0027properties\u0027]))"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_baremetal_show(self):"},{"line_number":161,"context_line":"        \"\"\"Check baremetal show command."}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_822eee89","line":158,"range":{"start_line":150,"start_character":0,"end_line":158,"end_character":73},"in_reply_to":"7aa08908_b22aad8e","updated":"2016-06-13 14:39:12.000000000","message":"Done","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"8003630a30e7b21d3c766dfacc9862a1f62e24d7","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        Test steps:"},{"line_number":164,"context_line":"        1) Create baremetal node in setUp."},{"line_number":165,"context_line":"        2) Show baremetal node properties."},{"line_number":166,"context_line":"        3) Check output table structure."},{"line_number":167,"context_line":"        4) Check node name in nodes list."},{"line_number":168,"context_line":"        \"\"\""},{"line_number":169,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_94395ea6","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":40},"updated":"2016-06-10 13:54:54.000000000","message":"The way I see it is write tests for checking table structure in different module.","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c98cec633d639cfbbbd0c927ac502c94188b96ab","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        Test steps:"},{"line_number":164,"context_line":"        1) Create baremetal node in setUp."},{"line_number":165,"context_line":"        2) Show baremetal node properties."},{"line_number":166,"context_line":"        3) Check output table structure."},{"line_number":167,"context_line":"        4) Check node name in nodes list."},{"line_number":168,"context_line":"        \"\"\""},{"line_number":169,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_33c6799a","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":40},"in_reply_to":"7aa08908_94395ea6","updated":"2016-06-13 14:39:12.000000000","message":"Good idea, thanks!","commit_id":"72a05854bd75a6435e9850d008849f271e5fdc69"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"9fcf6c96f886d61b67eb0bff383209ac67aad760","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from ironicclient.tests.functional.osc.v1 import base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class BaremetalTests(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_2ef1ae95","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":47},"updated":"2016-06-14 14:29:16.000000000","message":"import order, 3d party lib first please","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"9fcf6c96f886d61b67eb0bff383209ac67aad760","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(BaremetalTests, self).setUp()"},{"line_number":26,"context_line":"        self.name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":27,"context_line":"        self.uuid \u003d data_utils.rand_uuid()"},{"line_number":28,"context_line":"        self.driver \u003d \"fake\""},{"line_number":29,"context_line":"        self.baremetal_create(self.driver, self.uuid, self.name)"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_4e9a3a15","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":42},"updated":"2016-06-14 14:29:16.000000000","message":"why do you need to generate uuid here?","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5da34c58a93ef29ad57ce5bc417bd93ff3ae0d49","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(BaremetalTests, self).setUp()"},{"line_number":26,"context_line":"        self.name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":27,"context_line":"        self.uuid \u003d data_utils.rand_uuid()"},{"line_number":28,"context_line":"        self.driver \u003d \"fake\""},{"line_number":29,"context_line":"        self.baremetal_create(self.driver, self.uuid, self.name)"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_0b5c4b4a","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":42},"in_reply_to":"7aa08908_4e9a3a15","updated":"2016-06-22 11:37:23.000000000","message":"I`d like to have UUIDs for set and unset commands tests.","commit_id":"372ecb95bb1f81b13a105894bf3ea02ede55ddc2"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"3771920c40b69d3ec50dfe5e4726d2eef6786c53","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        3) Check that node successfully created."},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":39,"context_line":"                       \u0027--name {1}\u0027.format(self.driver, name))"},{"line_number":40,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":41,"context_line":"                        .format(name))"},{"line_number":42,"context_line":"        self.assertIn(name, self.baremetal_list([\u0027Name\u0027]))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_baremetal_delete(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_a627e110","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":38},"updated":"2016-06-23 14:31:03.000000000","message":"you have baremetal_create, you can use it; also you have already create node in setup, why do you need one more?","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"17b58dee2a2a50a265aa11f7adcd8df141a01893","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        3) Check that node successfully created."},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":39,"context_line":"                       \u0027--name {1}\u0027.format(self.driver, name))"},{"line_number":40,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":41,"context_line":"                        .format(name))"},{"line_number":42,"context_line":"        self.assertIn(name, self.baremetal_list([\u0027Name\u0027]))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_baremetal_delete(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_d0157c40","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":38},"in_reply_to":"3aaa91ec_a5a23497","updated":"2016-06-23 15:18:18.000000000","message":"ok, i`ll add --uuid argument.","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"488ad55ff54d3b4358f45048edd2a2c09624025f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        3) Check that node successfully created."},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":39,"context_line":"                       \u0027--name {1}\u0027.format(self.driver, name))"},{"line_number":40,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":41,"context_line":"                        .format(name))"},{"line_number":42,"context_line":"        self.assertIn(name, self.baremetal_list([\u0027Name\u0027]))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_baremetal_delete(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_c522e051","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":38},"in_reply_to":"3aaa91ec_a627e110","updated":"2016-06-23 15:09:33.000000000","message":"Better to remove testcase or supplement it with some options for node create command?","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"a2b314039e8755b627afe7aea2a361399e340f5f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        3) Check that node successfully created."},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":39,"context_line":"                       \u0027--name {1}\u0027.format(self.driver, name))"},{"line_number":40,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":41,"context_line":"                        .format(name))"},{"line_number":42,"context_line":"        self.assertIn(name, self.baremetal_list([\u0027Name\u0027]))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_baremetal_delete(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_a5a23497","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":38},"in_reply_to":"3aaa91ec_c522e051","updated":"2016-06-23 15:12:15.000000000","message":"Yeah, you can add some arguments to extend create cmd","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"3771920c40b69d3ec50dfe5e4726d2eef6786c53","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        3) Check that node has no more name."},{"line_number":92,"context_line":"        \"\"\""},{"line_number":93,"context_line":"        prop \u003d \"name\""},{"line_number":94,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":95,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":96,"context_line":"                       .format(self.name))"},{"line_number":97,"context_line":"        self.assertNotIn(prop_value,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_6645f96e","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":56},"updated":"2016-06-23 14:31:03.000000000","message":"nit: looks odd, you generate this name and looking it in show output, how does it could get there?","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"480954727a40e783162b7b0a451874a437a4e050","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        3) Check that node has no more name."},{"line_number":92,"context_line":"        \"\"\""},{"line_number":93,"context_line":"        prop \u003d \"name\""},{"line_number":94,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":95,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":96,"context_line":"                       .format(self.name))"},{"line_number":97,"context_line":"        self.assertNotIn(prop_value,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_c2b2d693","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":56},"in_reply_to":"3aaa91ec_6645f96e","updated":"2016-06-23 15:04:40.000000000","message":"I use this prop_value within \"assertNotIn()\", thus we check that it is not there after \u0027unset\u0027.","commit_id":"eca6abbc0293e1c994ed9cbce8bf0937bf066ff7"}],"ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"cb76ee22158d5e6a4b3f114555f8362fe342fae2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":39,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":40,"context_line":"                       \u0027--name {1} --uuid {2}\u0027"},{"line_number":41,"context_line":"                       .format(self.driver, name, uuid))"},{"line_number":42,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":43,"context_line":"                        .format(name))"},{"line_number":44,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_baremetal_node_delete(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_0a6c7e06","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":38},"updated":"2016-06-27 10:50:54.000000000","message":"it would be better to hide this in baremetal_create, which accept custom args, like:\n\nbaremetal_create(name, \u0027--uuid fake-uuid\u0027)","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5dc0d48500e9bedc773fc8e51685525ecab75afe","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":39,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":40,"context_line":"                       \u0027--name {1} --uuid {2}\u0027"},{"line_number":41,"context_line":"                       .format(self.driver, name, uuid))"},{"line_number":42,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":43,"context_line":"                        .format(name))"},{"line_number":44,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_baremetal_node_delete(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_6a56a9d3","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":38},"in_reply_to":"3aaa91ec_0a6c7e06","updated":"2016-07-04 13:09:00.000000000","message":"Done","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c77bff21b6d974c90a807aaa204ea5850dd9a5b7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal\u0027)"},{"line_number":38,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":39,"context_line":"        self.openstack(\u0027baremetal node create --driver {0} \u0027"},{"line_number":40,"context_line":"                       \u0027--name {1} --uuid {2}\u0027"},{"line_number":41,"context_line":"                       .format(self.driver, name, uuid))"},{"line_number":42,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":43,"context_line":"                        .format(name))"},{"line_number":44,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_baremetal_node_delete(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_ffe20b9f","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":38},"in_reply_to":"3aaa91ec_0a6c7e06","updated":"2016-06-29 12:25:21.000000000","message":"Will work on it. Possibly better to leave command explicit in this one test but move \nself.name \u003d data_utils.rand_name(\u0027baremetal\u0027)\nself.driver \u003d \"fake\"\nfrom setUp() to baremetal_node_create.","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"cb76ee22158d5e6a4b3f114555f8362fe342fae2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                       .format(self.driver, name, uuid))"},{"line_number":42,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":43,"context_line":"                        .format(name))"},{"line_number":44,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_baremetal_node_delete(self):"},{"line_number":47,"context_line":"        \"\"\"Check baremetal node delete command."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_4516774c","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":63},"updated":"2016-06-27 10:50:54.000000000","message":"I guess assert uuid?, otherwise same test case as in test_baremetal_node_list","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c77bff21b6d974c90a807aaa204ea5850dd9a5b7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                       .format(self.driver, name, uuid))"},{"line_number":42,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {}\u0027"},{"line_number":43,"context_line":"                        .format(name))"},{"line_number":44,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_baremetal_node_delete(self):"},{"line_number":47,"context_line":"        \"\"\"Check baremetal node delete command."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_dfa74fa5","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":63},"in_reply_to":"3aaa91ec_4516774c","updated":"2016-06-29 12:25:21.000000000","message":"Done","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"cb76ee22158d5e6a4b3f114555f8362fe342fae2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":80,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":81,"context_line":"                       .format(prop_value, self.name))"},{"line_number":82,"context_line":"        self.assertNotIn(self.name,"},{"line_number":83,"context_line":"                         self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":84,"context_line":"        self.assertIn(prop_value,"},{"line_number":85,"context_line":"                      self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_baremetal_node_unset(self):"},{"line_number":88,"context_line":"        \"\"\"Check baremetal node unset command (with --name option)."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_85333ff5","line":85,"range":{"start_line":82,"start_character":0,"end_line":85,"end_character":74},"updated":"2016-06-27 10:50:54.000000000","message":"no need to call node show 2 times here, nothing was changed","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c77bff21b6d974c90a807aaa204ea5850dd9a5b7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":80,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":81,"context_line":"                       .format(prop_value, self.name))"},{"line_number":82,"context_line":"        self.assertNotIn(self.name,"},{"line_number":83,"context_line":"                         self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":84,"context_line":"        self.assertIn(prop_value,"},{"line_number":85,"context_line":"                      self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_baremetal_node_unset(self):"},{"line_number":88,"context_line":"        \"\"\"Check baremetal node unset command (with --name option)."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_bff9a382","line":85,"range":{"start_line":82,"start_character":0,"end_line":85,"end_character":74},"in_reply_to":"3aaa91ec_85333ff5","updated":"2016-06-29 12:25:21.000000000","message":"Done","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"cb76ee22158d5e6a4b3f114555f8362fe342fae2","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":97,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":98,"context_line":"                       .format(self.name))"},{"line_number":99,"context_line":"        self.assertNotIn(prop_value,"},{"line_number":100,"context_line":"                         self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":101,"context_line":"        self.assertIn(\"None\","},{"line_number":102,"context_line":"                      self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_baremetal_node_show(self):"},{"line_number":105,"context_line":"        \"\"\"Check baremetal node show command."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_05562f05","line":102,"range":{"start_line":99,"start_character":0,"end_line":102,"end_character":74},"updated":"2016-06-27 10:50:54.000000000","message":"ditto","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c77bff21b6d974c90a807aaa204ea5850dd9a5b7","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":97,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":98,"context_line":"                       .format(self.name))"},{"line_number":99,"context_line":"        self.assertNotIn(prop_value,"},{"line_number":100,"context_line":"                         self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":101,"context_line":"        self.assertIn(\"None\","},{"line_number":102,"context_line":"                      self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop]))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_baremetal_node_show(self):"},{"line_number":105,"context_line":"        \"\"\"Check baremetal node show command."}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_5f37df4c","line":102,"range":{"start_line":99,"start_character":0,"end_line":102,"end_character":74},"in_reply_to":"3aaa91ec_05562f05","updated":"2016-06-29 12:25:21.000000000","message":"Done","commit_id":"3f15889022ddb468b0f22a9334b8c9a66000f731"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":36,"context_line":"        node \u003d self.baremetal_node_create(params\u003d\u0027--uuid {0}\u0027.format(uuid))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {0}\u0027"},{"line_number":39,"context_line":"                        .format(node[\u0027uuid\u0027]))"},{"line_number":40,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_baremetal_node_delete(self):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_b4b46bf2","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":46},"updated":"2016-07-04 17:10:44.000000000","message":"cleanup is already in baremetal_node_create","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":36,"context_line":"        node \u003d self.baremetal_node_create(params\u003d\u0027--uuid {0}\u0027.format(uuid))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        self.addCleanup(self.openstack, \u0027baremetal node delete {0}\u0027"},{"line_number":39,"context_line":"                        .format(node[\u0027uuid\u0027]))"},{"line_number":40,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_baremetal_node_delete(self):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_0c2a932c","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":46},"in_reply_to":"1aa78d24_b4b46bf2","updated":"2016-07-04 20:39:39.000000000","message":"Done","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_baremetal_node_set(self):"},{"line_number":67,"context_line":"        \"\"\"Check baremetal node set command (with --name option)."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        Test steps:"},{"line_number":70,"context_line":"        1) Create baremetal node in setUp."}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_b4e74be3","line":67,"range":{"start_line":67,"start_character":50,"end_line":67,"end_character":57},"updated":"2016-07-04 17:10:44.000000000","message":"do we have tests for other options?","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_baremetal_node_set(self):"},{"line_number":67,"context_line":"        \"\"\"Check baremetal node set command (with --name option)."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        Test steps:"},{"line_number":70,"context_line":"        1) Create baremetal node in setUp."}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_0cb8d3e4","line":67,"range":{"start_line":67,"start_character":50,"end_line":67,"end_character":57},"in_reply_to":"1aa78d24_b4e74be3","updated":"2016-07-04 20:39:39.000000000","message":"I\u0027d like to keep this test for very basic tests for each command, desirable 1 test per 1 command. Other options will be covered in further patches.","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":76,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":77,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":78,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop])"},{"line_number":79,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], show_prop)"},{"line_number":80,"context_line":"        self.assertIn(prop_value, show_prop)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_54a6e7c1","line":78,"range":{"start_line":78,"start_character":65,"end_line":78,"end_character":69},"updated":"2016-07-04 17:10:44.000000000","message":"nit: \u0027name\u0027 and rm prop value","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":76,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":77,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":78,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop])"},{"line_number":79,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], show_prop)"},{"line_number":80,"context_line":"        self.assertIn(prop_value, show_prop)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_6c96b74d","line":78,"range":{"start_line":78,"start_character":65,"end_line":78,"end_character":69},"in_reply_to":"1aa78d24_54a6e7c1","updated":"2016-07-04 20:39:39.000000000","message":"Done","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":92,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":93,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":94,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop])"},{"line_number":95,"context_line":"        self.assertNotIn(prop_value, show_prop)"},{"line_number":96,"context_line":"        self.assertIn(\"None\", show_prop)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_b4abcb88","line":94,"range":{"start_line":94,"start_character":65,"end_line":94,"end_character":69},"updated":"2016-07-04 17:10:44.000000000","message":"ditto","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        prop_value \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":92,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":93,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":94,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [prop])"},{"line_number":95,"context_line":"        self.assertNotIn(prop_value, show_prop)"},{"line_number":96,"context_line":"        self.assertIn(\"None\", show_prop)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_cc8b6b1d","line":94,"range":{"start_line":94,"start_character":65,"end_line":94,"end_character":69},"in_reply_to":"1aa78d24_b4abcb88","updated":"2016-07-04 20:39:39.000000000","message":"Done","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e531704cf9c3b5536554e48bbdbaad5c536b0b5d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        \"\"\""},{"line_number":106,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":107,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":108,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_b482abfe","line":108,"range":{"start_line":108,"start_character":33,"end_line":108,"end_character":38},"updated":"2016-07-04 17:10:44.000000000","message":"maybe more values uuid, driver","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"59516acff17d00c6515b270eea80104c4fc59094","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        \"\"\""},{"line_number":106,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":107,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":108,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_8c9b2372","line":108,"range":{"start_line":108,"start_character":33,"end_line":108,"end_character":38},"in_reply_to":"1aa78d24_b482abfe","updated":"2016-07-04 20:39:39.000000000","message":"Done","commit_id":"ce6fa25404c8cfd6fa2a8e7f775447dca3776c55"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"2f13067221c5a7dac9475dddd7deaf784afe2928","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":103,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":104,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":105,"context_line":"        self.assertIn(self.node[\u0027driver\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_f22c3e4c","line":105,"updated":"2016-07-04 22:08:58.000000000","message":"nit: these basic test cases looks fine, can we add more negative tests for testing these osc commands?","commit_id":"8fe0f256198fc4087a7231151b408b835cf16142"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"0b78afbeb12034dba28bf1ff0da1ec2249cd58d0","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":103,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":104,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":105,"context_line":"        self.assertIn(self.node[\u0027driver\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_264b07cb","line":105,"in_reply_to":"1aa78d24_f22c3e4c","updated":"2016-07-05 15:15:46.000000000","message":"Hello! I have added new patch for negative tests: https://review.openstack.org/#/c/337719/ Feel free to review and share ideas for more tests :)","commit_id":"8fe0f256198fc4087a7231151b408b835cf16142"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"35eb596c1f890a3ee3c98f1b01561c134e27ea8f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        Test steps:"},{"line_number":97,"context_line":"        1) Create baremetal node in setUp."},{"line_number":98,"context_line":"        2) Show baremetal node properties."},{"line_number":99,"context_line":"        3) Check node name in nodes list."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":102,"context_line":"                                    .format(self.node[\u0027name\u0027]))"}],"source_content_type":"text/x-python","patch_set":25,"id":"1aa78d24_d08ee777","line":99,"range":{"start_line":99,"start_character":22,"end_line":99,"end_character":26},"updated":"2016-07-06 19:39:11.000000000","message":"nit: name, uuid, driver","commit_id":"ab35a3321bd2263fd437ef1e3b9ddcb6365d4f78"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"a9b3878e75fae3e9181b55977864f8f0aa51a113","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        Test steps:"},{"line_number":97,"context_line":"        1) Create baremetal node in setUp."},{"line_number":98,"context_line":"        2) Show baremetal node properties."},{"line_number":99,"context_line":"        3) Check node name in nodes list."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":102,"context_line":"                                    .format(self.node[\u0027name\u0027]))"}],"source_content_type":"text/x-python","patch_set":25,"id":"1aa78d24_2be367da","line":99,"range":{"start_line":99,"start_character":22,"end_line":99,"end_character":26},"in_reply_to":"1aa78d24_d08ee777","updated":"2016-07-07 08:15:51.000000000","message":"Done","commit_id":"ab35a3321bd2263fd437ef1e3b9ddcb6365d4f78"},{"author":{"_account_id":20522,"name":"Aline Bousquet","email":"albousque@gmail.com","username":"alineb"},"change_message_id":"479f0b45fcd070b56f4aacb40fb36987544d9257","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":88,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":89,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertNotIn(prop_value, show_prop)"},{"line_number":91,"context_line":"        self.assertIn(\"None\", show_prop)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_baremetal_node_show(self):"}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_1a8b4520","line":90,"range":{"start_line":90,"start_character":8,"end_line":90,"end_character":47},"updated":"2016-07-07 12:45:03.000000000","message":"I\u0027m not sure why this line is needed, since prop_value isn\u0027t used in this test.","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"85bb4de8a6cb5e7646c74d4c3b5f73036073e05c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":88,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":89,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertNotIn(prop_value, show_prop)"},{"line_number":91,"context_line":"        self.assertIn(\"None\", show_prop)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_baremetal_node_show(self):"}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_995c5a1a","line":90,"range":{"start_line":90,"start_character":8,"end_line":90,"end_character":47},"in_reply_to":"1aa78d24_1a8b4520","updated":"2016-07-07 15:10:37.000000000","message":"Done","commit_id":"1c2722af707e2382c054ac4e92d1706bb53bd278"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"04d2afdeb124cf41f537ebdf973d0008ec16db10","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":73,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":74,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":75,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":76,"context_line":"        self.assertIn(prop_value, show_prop[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_baremetal_node_unset(self):"}],"source_content_type":"text/x-python","patch_set":28,"id":"dada55a8_9fca1d19","line":75,"updated":"2016-07-19 10:01:31.000000000","message":"should be assertNotEqual now","commit_id":"c1aeb84b58adc5309b3e3d92f0a371245d5404f0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"04d2afdeb124cf41f537ebdf973d0008ec16db10","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":74,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":75,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":76,"context_line":"        self.assertIn(prop_value, show_prop[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_baremetal_node_unset(self):"},{"line_number":79,"context_line":"        \"\"\"Check baremetal node unset command (with --name option)."}],"source_content_type":"text/x-python","patch_set":28,"id":"dada55a8_ffd199ce","line":76,"updated":"2016-07-19 10:01:31.000000000","message":"assertEqual","commit_id":"c1aeb84b58adc5309b3e3d92f0a371245d5404f0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"04d2afdeb124cf41f537ebdf973d0008ec16db10","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":88,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":89,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_baremetal_node_show(self):"},{"line_number":93,"context_line":"        \"\"\"Check baremetal node show command."}],"source_content_type":"text/x-python","patch_set":28,"id":"dada55a8_dfd495be","line":90,"updated":"2016-07-19 10:01:31.000000000","message":"ditto","commit_id":"c1aeb84b58adc5309b3e3d92f0a371245d5404f0"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"b489e39db0dcae60208342d62ce7037f960377ca","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        super(BaremetalNodeTests, self).setUp()"},{"line_number":25,"context_line":"        self.node \u003d self.baremetal_node_create()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_baremetal_node_create_uuid(self):"},{"line_number":28,"context_line":"        \"\"\"Check baremetal node create command (with --uuid option)."}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_1643a643","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":48},"updated":"2016-07-19 15:20:15.000000000","message":"You don\u0027t use this node in each test.\nBest practices is use objects from setUp in each test-case","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3c1001151a28a11037fa15d2d19147aaab726569","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        super(BaremetalNodeTests, self).setUp()"},{"line_number":25,"context_line":"        self.node \u003d self.baremetal_node_create()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_baremetal_node_create_uuid(self):"},{"line_number":28,"context_line":"        \"\"\"Check baremetal node create command (with --uuid option)."}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_f6dc0de6","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":48},"in_reply_to":"dada55a8_1643a643","updated":"2016-07-19 16:45:28.000000000","message":"Right, but also i create another node to have explicitly created one in separate testscase just to have full CRUD operations set in tests suite.","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"b489e39db0dcae60208342d62ce7037f960377ca","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":88,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":89,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertEqual(show_prop[\u0027name\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_baremetal_node_show(self):"},{"line_number":93,"context_line":"        \"\"\"Check baremetal node show command."}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_13b29894","line":90,"range":{"start_line":90,"start_character":7,"end_line":90,"end_character":43},"updated":"2016-07-19 15:20:15.000000000","message":"I feel something missed here","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3c1001151a28a11037fa15d2d19147aaab726569","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":88,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":89,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertEqual(show_prop[\u0027name\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_baremetal_node_show(self):"},{"line_number":93,"context_line":"        \"\"\"Check baremetal node show command."}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_36e7c5b1","line":90,"range":{"start_line":90,"start_character":7,"end_line":90,"end_character":43},"in_reply_to":"dada55a8_13b29894","updated":"2016-07-19 16:45:28.000000000","message":"Thanks!","commit_id":"1aa378b211e7456f7685cd6a744a41bb7518511b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3aacab5d209bf0293edf1d56e8a6b86405eba732","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":73,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":74,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":75,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":76,"context_line":"        self.assertEqual(prop_value, show_prop[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_baremetal_node_unset(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_efd19158","line":75,"updated":"2016-07-20 16:43:20.000000000","message":"ditto","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c3bdd8f999440706629c3743c066c3a6d0cd810a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":73,"context_line":"                       .format(prop_value, self.node[\u0027name\u0027]))"},{"line_number":74,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":75,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":76,"context_line":"        self.assertEqual(prop_value, show_prop[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_baremetal_node_unset(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_5d565f06","line":75,"in_reply_to":"dada55a8_efd19158","updated":"2016-07-21 15:55:48.000000000","message":"Done","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3aacab5d209bf0293edf1d56e8a6b86405eba732","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":87,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":88,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":89,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_baremetal_node_show(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_2ff1e901","line":89,"updated":"2016-07-20 16:43:20.000000000","message":"I feel like this assert is redundant now, you already assert it\u0027s None","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c3bdd8f999440706629c3743c066c3a6d0cd810a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":87,"context_line":"                       .format(self.node[\u0027name\u0027]))"},{"line_number":88,"context_line":"        show_prop \u003d self.baremetal_node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":89,"context_line":"        self.assertNotEqual(self.node[\u0027name\u0027], show_prop[\u0027name\u0027])"},{"line_number":90,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_baremetal_node_show(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_3d59eb35","line":89,"in_reply_to":"dada55a8_2ff1e901","updated":"2016-07-21 15:55:48.000000000","message":"Done","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"3aacab5d209bf0293edf1d56e8a6b86405eba732","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        2) Show baremetal node properties."},{"line_number":98,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":101,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":102,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":103,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_2ffc4971","line":100,"updated":"2016-07-20 16:43:20.000000000","message":"So in some places baremetal_node_show function is used while here it\u0027s still self.openstack(...). What\u0027s the intent here? If you want to test both output cases, a format parameters should be added to baremetal_node_show function I think.","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"c3bdd8f999440706629c3743c066c3a6d0cd810a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        2) Show baremetal node properties."},{"line_number":98,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node show {0}\u0027"},{"line_number":101,"context_line":"                                    .format(self.node[\u0027name\u0027]))"},{"line_number":102,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":103,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"}],"source_content_type":"text/x-python","patch_set":30,"id":"dada55a8_60af387d","line":100,"in_reply_to":"dada55a8_2ffc4971","updated":"2016-07-21 15:55:48.000000000","message":"I reworked baremetal_node_show() and get_opts() methods to make possible to show all node\u0027s fields without selection of specific field. Please check, does this look better.","commit_id":"f458f89ae6b7bd6d97ae3c42d66aafa730b89d80"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"72b9e38d581abaf4c54698509ef948b717a7eb57","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":36,"context_line":"        self.baremetal_node_create(params\u003d\u0027--uuid {0}\u0027.format(uuid))"},{"line_number":37,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_baremetal_node_delete(self):"},{"line_number":40,"context_line":"        \"\"\"Check baremetal node delete command."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"dada55a8_2586b265","line":38,"updated":"2016-07-22 16:21:05.000000000","message":"The tests below are good but we should also test uuid.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":36,"context_line":"        self.baremetal_node_create(params\u003d\u0027--uuid {0}\u0027.format(uuid))"},{"line_number":37,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_baremetal_node_delete(self):"},{"line_number":40,"context_line":"        \"\"\"Check baremetal node delete command."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_b497178f","line":38,"in_reply_to":"dada55a8_2586b265","updated":"2016-07-29 15:53:59.000000000","message":"Added more asserts and tests calling nodes by UUIDs and names both ways.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d130fd4c1632841208c38635d41716a65d4fdacd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":36,"context_line":"        self.baremetal_node_create(params\u003d\u0027--uuid {0}\u0027.format(uuid))"},{"line_number":37,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_baremetal_node_delete(self):"},{"line_number":40,"context_line":"        \"\"\"Check baremetal node delete command."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"dada55a8_9dcf617e","line":38,"in_reply_to":"dada55a8_2586b265","updated":"2016-07-26 21:07:02.000000000","message":"Chris, i\u0027m going to add more patches with tests in nearest future.","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"347d443eae3aeca51b7e3d6423388f154dcbe937","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        node \u003d self.baremetal_node_show(self.node[\u0027name\u0027])"},{"line_number":99,"context_line":"        self.assertIn(self.node[\u0027name\u0027], node[\u0027name\u0027])"},{"line_number":100,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], node[\u0027uuid\u0027])"},{"line_number":101,"context_line":"        self.assertIn(self.node[\u0027driver\u0027], node[\u0027driver\u0027])"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_ded74ceb","line":99,"range":{"start_line":99,"start_character":13,"end_line":99,"end_character":21},"updated":"2016-07-29 14:14:57.000000000","message":"assertEqual here and for following 2 lines?","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"9c5b609918f3f0d89b8cb7501a6ed31bc647b086","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        node \u003d self.baremetal_node_show(self.node[\u0027name\u0027])"},{"line_number":99,"context_line":"        self.assertIn(self.node[\u0027name\u0027], node[\u0027name\u0027])"},{"line_number":100,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], node[\u0027uuid\u0027])"},{"line_number":101,"context_line":"        self.assertIn(self.node[\u0027driver\u0027], node[\u0027driver\u0027])"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_d4b56b31","line":99,"range":{"start_line":99,"start_character":13,"end_line":99,"end_character":21},"in_reply_to":"bacf61ea_ded74ceb","updated":"2016-07-29 15:53:59.000000000","message":"Done","commit_id":"51832e024e6dcea48eaa914f77991bbfc116c3d3"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e2fcf7a306c9758c28eafceef7dc03d1b778b7cc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal-node\u0027)"},{"line_number":38,"context_line":"        self.baremetal_node_create(params\u003d\u0027--uuid {0} --name {1}\u0027"},{"line_number":39,"context_line":"                                   .format(uuid, name))"},{"line_number":40,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":41,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"9ad45d7e_33aa8686","line":39,"updated":"2016-08-12 14:46:14.000000000","message":"let\u0027s also check the output of the \"create\" command","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"50ab6fe8d1c6b88384d4cc99cb462fcdf4a0fd99","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":37,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal-node\u0027)"},{"line_number":38,"context_line":"        self.baremetal_node_create(params\u003d\u0027--uuid {0} --name {1}\u0027"},{"line_number":39,"context_line":"                                   .format(uuid, name))"},{"line_number":40,"context_line":"        self.assertIn(uuid, self.baremetal_node_list([\u0027UUID\u0027]))"},{"line_number":41,"context_line":"        self.assertIn(name, self.baremetal_node_list([\u0027Name\u0027]))"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"fa7ab95a_aadb68ec","line":39,"in_reply_to":"9ad45d7e_33aa8686","updated":"2016-08-26 15:25:12.000000000","message":"Done","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e2fcf7a306c9758c28eafceef7dc03d1b778b7cc","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        2) List baremetal nodes."},{"line_number":75,"context_line":"        3) Check node name in nodes list."},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":78,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":79,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"9ad45d7e_13af8295","line":77,"updated":"2016-08-12 14:46:14.000000000","message":"we can use JSON output (-f json) and verify the result properly. also why don\u0027t you use your baremetal_node_list helper?","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"50ab6fe8d1c6b88384d4cc99cb462fcdf4a0fd99","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        2) List baremetal nodes."},{"line_number":75,"context_line":"        3) Check node name in nodes list."},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":78,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":79,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"fa7ab95a_e68844ea","line":77,"in_reply_to":"9ad45d7e_13af8295","updated":"2016-08-26 15:25:12.000000000","message":"Unfortunately, baremetal_node_list helper returns raw output, so I see no advantages to use it.","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"f533befa07c11fdc2bdf5fb82f1ef595fdfd669f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        2) Show baremetal node calling it with name and UUID arguments."},{"line_number":141,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":142,"context_line":"        \"\"\""},{"line_number":143,"context_line":"        args \u003d [\u0027name\u0027, \u0027uuid\u0027]"},{"line_number":144,"context_line":"        for arg in args:"},{"line_number":145,"context_line":"            node \u003d self.baremetal_node_show(self.node[arg],"},{"line_number":146,"context_line":"                                            [\u0027name\u0027, \u0027uuid\u0027, \u0027driver\u0027])"}],"source_content_type":"text/x-python","patch_set":34,"id":"bacf61ea_323330ad","line":143,"updated":"2016-07-29 17:08:56.000000000","message":"Same can be done for set/unset tests.","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"50ab6fe8d1c6b88384d4cc99cb462fcdf4a0fd99","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        2) Show baremetal node calling it with name and UUID arguments."},{"line_number":141,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":142,"context_line":"        \"\"\""},{"line_number":143,"context_line":"        args \u003d [\u0027name\u0027, \u0027uuid\u0027]"},{"line_number":144,"context_line":"        for arg in args:"},{"line_number":145,"context_line":"            node \u003d self.baremetal_node_show(self.node[arg],"},{"line_number":146,"context_line":"                                            [\u0027name\u0027, \u0027uuid\u0027, \u0027driver\u0027])"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa7ab95a_261eac0c","line":143,"in_reply_to":"bacf61ea_323330ad","updated":"2016-08-26 15:25:12.000000000","message":"Thank you!\nNope, it can\u0027t be done, because we\u0027ll try to set/unset some property (name) after it has been set/unset before (self.node was created on setUp step)\nBut, I catch the idea, so I decide to use ddt here, review it please.","commit_id":"495d8a2cdac62847e08675f3220be698371813de"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":39,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal-node\u0027)"},{"line_number":40,"context_line":"        node_info \u003d self.baremetal_node_create("},{"line_number":41,"context_line":"            params\u003d\u0027--uuid {0} --name {1}\u0027.format(uuid, name))"},{"line_number":42,"context_line":"        self.assertEqual(node_info[\u0027uuid\u0027], uuid)"},{"line_number":43,"context_line":"        self.assertEqual(node_info[\u0027name\u0027], name)"},{"line_number":44,"context_line":"        self.assertEqual(node_info[\u0027driver\u0027], \u0027fake\u0027)"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_690012ac","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":37},"updated":"2016-09-02 11:47:40.000000000","message":"Please pass name as name\u003d argument, otherwise there will be two --name in the command.","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":39,"context_line":"        name \u003d data_utils.rand_name(\u0027baremetal-node\u0027)"},{"line_number":40,"context_line":"        node_info \u003d self.baremetal_node_create("},{"line_number":41,"context_line":"            params\u003d\u0027--uuid {0} --name {1}\u0027.format(uuid, name))"},{"line_number":42,"context_line":"        self.assertEqual(node_info[\u0027uuid\u0027], uuid)"},{"line_number":43,"context_line":"        self.assertEqual(node_info[\u0027name\u0027], name)"},{"line_number":44,"context_line":"        self.assertEqual(node_info[\u0027driver\u0027], \u0027fake\u0027)"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_ebeecf89","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":37},"in_reply_to":"fa7ab95a_690012ac","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        2) Delete baremetal node by name/UUID."},{"line_number":56,"context_line":"        3) Check that node deleted successfully."},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node delete {0}\u0027"},{"line_number":59,"context_line":"                                    .format(self.node[key]))"},{"line_number":60,"context_line":"        self.assertIn(\u0027Deleted node {0}\u0027.format(self.node[key]), raw_output)"},{"line_number":61,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], self.baremetal_node_list([\u0027Name\u0027]))"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_8970f641","line":58,"range":{"start_line":58,"start_character":26,"end_line":58,"end_character":35},"updated":"2016-09-02 11:47:40.000000000","message":"you can use a base class method now.","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        2) Delete baremetal node by name/UUID."},{"line_number":56,"context_line":"        3) Check that node deleted successfully."},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node delete {0}\u0027"},{"line_number":59,"context_line":"                                    .format(self.node[key]))"},{"line_number":60,"context_line":"        self.assertIn(\u0027Deleted node {0}\u0027.format(self.node[key]), raw_output)"},{"line_number":61,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], self.baremetal_node_list([\u0027Name\u0027]))"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_10c0824f","line":58,"range":{"start_line":58,"start_character":26,"end_line":58,"end_character":35},"in_reply_to":"fa7ab95a_8970f641","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e339487d2837a9d9c5ae5b79160d1031a0692596","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        2) List baremetal nodes."},{"line_number":70,"context_line":"        3) Check node name in nodes list."},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":73,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":74,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_49a18e93","line":72,"range":{"start_line":72,"start_character":26,"end_line":72,"end_character":35},"updated":"2016-09-02 11:47:40.000000000","message":"ditto, why not base class method? You could reuse it if it was allowed to override the format to json.","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        2) List baremetal nodes."},{"line_number":70,"context_line":"        3) Check node name in nodes list."},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":"        raw_output \u003d self.openstack(\u0027baremetal node list\u0027)"},{"line_number":73,"context_line":"        self.assertIn(self.node[\u0027name\u0027], raw_output)"},{"line_number":74,"context_line":"        self.assertIn(self.node[\u0027uuid\u0027], raw_output)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_f0887e24","line":72,"range":{"start_line":72,"start_character":26,"end_line":72,"end_character":35},"in_reply_to":"fa7ab95a_49a18e93","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"fea34ed8a5c6c0ad178c83fc5e3773c39ad331d6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        args \u003d [\u0027name\u0027, \u0027uuid\u0027]"},{"line_number":114,"context_line":"        for arg in args:"},{"line_number":115,"context_line":"            node \u003d self.baremetal_node_show(self.node[arg],"},{"line_number":116,"context_line":"                                            [\u0027name\u0027, \u0027uuid\u0027, \u0027driver\u0027])"},{"line_number":117,"context_line":"            self.assertEqual(self.node[\u0027name\u0027], node[\u0027name\u0027])"},{"line_number":118,"context_line":"            self.assertEqual(self.node[\u0027uuid\u0027], node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_1af98680","line":115,"range":{"start_line":114,"start_character":7,"end_line":115,"end_character":59},"updated":"2016-09-02 12:46:39.000000000","message":"why not using ddt here too?","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"d0bb6f7af58ada7ec4bfc8a677fe8e1c269295c6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        3) Check name, uuid and driver in node show output."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        args \u003d [\u0027name\u0027, \u0027uuid\u0027]"},{"line_number":114,"context_line":"        for arg in args:"},{"line_number":115,"context_line":"            node \u003d self.baremetal_node_show(self.node[arg],"},{"line_number":116,"context_line":"                                            [\u0027name\u0027, \u0027uuid\u0027, \u0027driver\u0027])"},{"line_number":117,"context_line":"            self.assertEqual(self.node[\u0027name\u0027], node[\u0027name\u0027])"},{"line_number":118,"context_line":"            self.assertEqual(self.node[\u0027uuid\u0027], node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa7ab95a_705f0e41","line":115,"range":{"start_line":114,"start_character":7,"end_line":115,"end_character":59},"in_reply_to":"fa7ab95a_1af98680","updated":"2016-09-02 14:36:47.000000000","message":"Done","commit_id":"c59ac94ce258c1afdf0bc395dc657dde3f1fffe1"},{"author":{"_account_id":20675,"name":"Sofiia Andriichenko","email":"sofiia.andriichenko@gmail.com","username":"SofiiaAndriichenko"},"change_message_id":"5ef727c0542e0c7be1de84f97849437f7257b713","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertIn(uuid, self.node_list([\u0027UUID\u0027]))"},{"line_number":47,"context_line":"        self.assertIn(name, self.node_list([\u0027Name\u0027]))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @ddt.data(\u0027name\u0027, \u0027uuid\u0027)"},{"line_number":50,"context_line":"    def test_delete(self, key):"},{"line_number":51,"context_line":"        \"\"\"Check baremetal node delete command with name/UUID argument."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa6399be_197e8ee4","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":29},"updated":"2016-10-11 11:46:26.000000000","message":"You can use one \"data\" for several test cases, for example https://review.openstack.org/#/c/361583/7/ironicclient/tests/functional/test_node_negative.py","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"591746b5cdcf224ebc0a8b009d74713275c5f83b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertIn(uuid, self.node_list([\u0027UUID\u0027]))"},{"line_number":47,"context_line":"        self.assertIn(name, self.node_list([\u0027Name\u0027]))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @ddt.data(\u0027name\u0027, \u0027uuid\u0027)"},{"line_number":50,"context_line":"    def test_delete(self, key):"},{"line_number":51,"context_line":"        \"\"\"Check baremetal node delete command with name/UUID argument."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa6399be_3ec69548","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":29},"in_reply_to":"fa6399be_197e8ee4","updated":"2016-10-12 16:17:18.000000000","message":"There are two ways of using data with ddt: \n- declare data once and unpack it before each test.\n- declare data before each test.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35e7e05daab18668e99c46ee9c79322ee46308aa","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], self.node_list([\u0027Name\u0027]))"},{"line_number":61,"context_line":"        self.assertNotIn(self.node[\u0027uuid\u0027], self.node_list([\u0027UUID\u0027]))"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_list(self):"},{"line_number":64,"context_line":"        \"\"\"Check baremetal node list command."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_68c9b8ab","line":63,"updated":"2016-10-10 10:11:53.000000000","message":"It would be good to add a test to list specific fields also.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"8b6de70887041ddece5e0a755d722c08fee07ec0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertNotIn(self.node[\u0027name\u0027], self.node_list([\u0027Name\u0027]))"},{"line_number":61,"context_line":"        self.assertNotIn(self.node[\u0027uuid\u0027], self.node_list([\u0027UUID\u0027]))"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_list(self):"},{"line_number":64,"context_line":"        \"\"\"Check baremetal node list command."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_cdd80756","line":63,"in_reply_to":"1a95cdbc_68c9b8ab","updated":"2016-10-10 17:11:25.000000000","message":"Thanks for good idea!","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35e7e05daab18668e99c46ee9c79322ee46308aa","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        3) Check that baremetal node name was changed."},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        new_name \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":85,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":86,"context_line":"                       .format(new_name, self.node[key]))"},{"line_number":87,"context_line":"        show_prop \u003d self.node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":88,"context_line":"        self.assertEqual(new_name, show_prop[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_2885f058","line":85,"updated":"2016-10-10 10:11:53.000000000","message":"it should return an updated node object no need to call node_show in this case.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"8b6de70887041ddece5e0a755d722c08fee07ec0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        3) Check that baremetal node name was changed."},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        new_name \u003d data_utils.rand_name(\u0027newnodename\u0027)"},{"line_number":85,"context_line":"        self.openstack(\u0027baremetal node set --name {0} {1}\u0027"},{"line_number":86,"context_line":"                       .format(new_name, self.node[key]))"},{"line_number":87,"context_line":"        show_prop \u003d self.node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":88,"context_line":"        self.assertEqual(new_name, show_prop[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_0d282f32","line":85,"in_reply_to":"1a95cdbc_2885f058","updated":"2016-10-10 17:11:25.000000000","message":"Vasyl, set and unset commands for nodes work silently when no error occur:\n\n$ openstack baremetal node set nodetest --name lolnode\n$ openstack baremetal node unset lolnode --name\n$ \n\nAlso set/unset and delete commands do not support formatters, so we can not specify output in JSON format for them.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35e7e05daab18668e99c46ee9c79322ee46308aa","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        2) Unset name of baremetal node calling it by node name/UUID."},{"line_number":97,"context_line":"        3) Check that node has no more name."},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":100,"context_line":"                       .format(self.node[key]))"},{"line_number":101,"context_line":"        show_prop \u003d self.node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":102,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_887e0468","line":99,"updated":"2016-10-10 10:11:53.000000000","message":"ditto","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"8b6de70887041ddece5e0a755d722c08fee07ec0","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        2) Unset name of baremetal node calling it by node name/UUID."},{"line_number":97,"context_line":"        3) Check that node has no more name."},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        self.openstack(\u0027baremetal node unset --name {0}\u0027"},{"line_number":100,"context_line":"                       .format(self.node[key]))"},{"line_number":101,"context_line":"        show_prop \u003d self.node_show(self.node[\u0027uuid\u0027], [\u0027name\u0027])"},{"line_number":102,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_6d19b321","line":99,"in_reply_to":"1a95cdbc_887e0468","updated":"2016-10-10 17:11:25.000000000","message":"Here also i should call \u0027show\u0027 because \u0027unset\u0027 is silent.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35e7e05daab18668e99c46ee9c79322ee46308aa","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @ddt.data(\u0027name\u0027, \u0027uuid\u0027)"},{"line_number":105,"context_line":"    def test_show(self, key):"},{"line_number":106,"context_line":"        \"\"\"Check baremetal node show command with name and UUID arguments."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_6840d807","line":105,"updated":"2016-10-10 10:11:53.000000000","message":"Would be good to have a test to show only specific fields also.","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"8b6de70887041ddece5e0a755d722c08fee07ec0","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        self.assertIsNone(show_prop[\u0027name\u0027])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @ddt.data(\u0027name\u0027, \u0027uuid\u0027)"},{"line_number":105,"context_line":"    def test_show(self, key):"},{"line_number":106,"context_line":"        \"\"\"Check baremetal node show command with name and UUID arguments."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        Test steps:"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a95cdbc_2dea4bdb","line":105,"in_reply_to":"1a95cdbc_6840d807","updated":"2016-10-10 17:11:25.000000000","message":"Thanks!","commit_id":"a3f266dd891685dd396a27b1a20c8d284d9d7353"}]}
