)]}'
{"ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"bae2aedcc485c92dff4c254e6d47f67c7d000533","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_id is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_id"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"},{"line_number":213,"context_line":"            portgroup[\u0027address\u0027] \u003d kwargs[\u0027address\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_c9966def","line":210,"updated":"2017-03-03 11:00:37.000000000","message":"node_uuid is mandatory when creating portgroup, might be allow to set it to None to have possibility to add negative test in future?","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"84d432a88693f6e5306491a49e182847d60ba43e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_id is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_id"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"},{"line_number":213,"context_line":"            portgroup[\u0027address\u0027] \u003d kwargs[\u0027address\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_806a78b1","line":210,"in_reply_to":"ba2be162_c9966def","updated":"2017-03-03 16:12:45.000000000","message":"Thanks for idea! So i set default value for node_id\u003dNone.","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"8ddd2f47ecd5ab3e7ded000841e73240317cb31f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_id is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_id"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"},{"line_number":213,"context_line":"            portgroup[\u0027address\u0027] \u003d kwargs[\u0027address\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_b87c0ab6","line":210,"range":{"start_line":210,"start_character":37,"end_line":210,"end_character":44},"updated":"2017-03-10 15:50:31.000000000","message":"Just a question:\nso node_uuid or node_id?\ndon\u0027t you meant portgroup[\u0027node_id\u0027] \u003d node_id ? Either update a docstring or the key value of portgroup dict","commit_id":"1b56f69acbcf47b7235bed774fa61a35d3ee9d70"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"704965699094fd6a47f3d552c220588cb25290a9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_id is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_id"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"},{"line_number":213,"context_line":"            portgroup[\u0027address\u0027] \u003d kwargs[\u0027address\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_221aa817","line":210,"range":{"start_line":210,"start_character":37,"end_line":210,"end_character":44},"in_reply_to":"9a30ddce_b87c0ab6","updated":"2017-03-10 16:13:03.000000000","message":"Thanks, i changed id to uuid.","commit_id":"1b56f69acbcf47b7235bed774fa61a35d3ee9d70"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a1aea5b79ab0ec345c324b671b1d49a5a2ef7d51","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        return self._create_request(\u0027ports\u0027, port)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    @base.handle_errors"},{"line_number":197,"context_line":"    def create_portgroup(self, node_uuid\u003dNone, **kwargs):"},{"line_number":198,"context_line":"        \"\"\"Create a port group with the specified parameters."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        :param node_uuid: The UUID of the node which owns the port group."}],"source_content_type":"text/x-python","patch_set":9,"id":"7a25e98e_5bad8787","line":197,"updated":"2017-03-13 20:51:57.000000000","message":"node_uuid is mandatory when creating a portgroup","commit_id":"64e1f4edf587728cd94faadd5ef262485299a153"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3da25ddf60dd0243a95df30ef46dca7e96c50804","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        return self._create_request(\u0027ports\u0027, port)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    @base.handle_errors"},{"line_number":197,"context_line":"    def create_portgroup(self, node_uuid\u003dNone, **kwargs):"},{"line_number":198,"context_line":"        \"\"\"Create a port group with the specified parameters."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        :param node_uuid: The UUID of the node which owns the port group."}],"source_content_type":"text/x-python","patch_set":9,"id":"3a1ff146_d6e1f0ff","line":197,"in_reply_to":"7a25e98e_5bad8787","updated":"2017-03-16 13:17:09.000000000","message":"Done","commit_id":"64e1f4edf587728cd94faadd5ef262485299a153"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a1aea5b79ab0ec345c324b671b1d49a5a2ef7d51","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\""},{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_uuid is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_uuid"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a25e98e_dbafb77b","line":209,"updated":"2017-03-13 20:51:57.000000000","message":"ditto","commit_id":"64e1f4edf587728cd94faadd5ef262485299a153"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"3da25ddf60dd0243a95df30ef46dca7e96c50804","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\""},{"line_number":207,"context_line":"        portgroup \u003d {\u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027foo\u0027: \u0027bar\u0027})}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if node_uuid is not None:"},{"line_number":210,"context_line":"            portgroup[\u0027node_uuid\u0027] \u003d node_uuid"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if kwargs.get(\u0027address\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a1ff146_f6e8ace4","line":209,"in_reply_to":"7a25e98e_dbafb77b","updated":"2017-03-16 13:17:09.000000000","message":"Done","commit_id":"64e1f4edf587728cd94faadd5ef262485299a153"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f4ea2fa35f879510c0bf12100749b48c1e8e1fb3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        \"\"\""},{"line_number":158,"context_line":"        chassis \u003d {\u0027description\u0027: kwargs.get(\u0027description\u0027, \u0027test-chassis\u0027)}"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        if \u0027uuid\u0027 in kwargs:"},{"line_number":161,"context_line":"            chassis.update({\u0027uuid\u0027: kwargs.get(\u0027uuid\u0027)})"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        return self._create_request(\u0027chassis\u0027, chassis)"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_f0f1d2ce","side":"PARENT","line":161,"range":{"start_line":160,"start_character":7,"end_line":161,"end_character":56},"updated":"2017-03-17 12:53:15.000000000","message":"test are failing due to issue during rebase","commit_id":"8d7b4319e98c6dbd6f68bf0d47d8072d5d3c6dd5"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"4c22a67898233f47576c8506dec90a85f0dd791d","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        \"\"\""},{"line_number":158,"context_line":"        chassis \u003d {\u0027description\u0027: kwargs.get(\u0027description\u0027, \u0027test-chassis\u0027)}"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        if \u0027uuid\u0027 in kwargs:"},{"line_number":161,"context_line":"            chassis.update({\u0027uuid\u0027: kwargs.get(\u0027uuid\u0027)})"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        return self._create_request(\u0027chassis\u0027, chassis)"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_30952ae4","side":"PARENT","line":161,"range":{"start_line":160,"start_character":7,"end_line":161,"end_character":56},"in_reply_to":"1a1ced50_f0f1d2ce","updated":"2017-03-17 13:20:29.000000000","message":"Thank you for your help, Vasyl!","commit_id":"8d7b4319e98c6dbd6f68bf0d47d8072d5d3c6dd5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f4ea2fa35f879510c0bf12100749b48c1e8e1fb3","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        request \u003d {\u0027boot_device\u0027: boot_device, \u0027persistent\u0027: persistent}"},{"line_number":362,"context_line":"        resp, body \u003d self._put_request(\u0027nodes/%s/management/boot_device\u0027 %"},{"line_number":363,"context_line":"                                       node_uuid, request)"},{"line_number":364,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":365,"context_line":"        return body"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_10ef4ee9","line":364,"range":{"start_line":364,"start_character":30,"end_line":364,"end_character":33},"updated":"2017-03-17 12:53:15.000000000","message":"wrong rebase","commit_id":"76b24cf28d07f4f6a0846eb7f303c91436cdbfad"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f4ea2fa35f879510c0bf12100749b48c1e8e1fb3","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        \"\"\""},{"line_number":374,"context_line":"        path \u003d \u0027nodes/%s/management/boot_device\u0027 % node_uuid"},{"line_number":375,"context_line":"        resp, body \u003d self._list_request(path)"},{"line_number":376,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":377,"context_line":"        return body"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_30ba8ae2","line":376,"updated":"2017-03-17 12:53:15.000000000","message":"ditto","commit_id":"76b24cf28d07f4f6a0846eb7f303c91436cdbfad"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f4ea2fa35f879510c0bf12100749b48c1e8e1fb3","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        path \u003d \u0027nodes/%s/management/boot_device/supported\u0027 % node_uuid"},{"line_number":387,"context_line":"        resp, body \u003d self._list_request(path)"},{"line_number":388,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":389,"context_line":"        return body"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_50bf06d0","line":388,"updated":"2017-03-17 12:53:15.000000000","message":"ditto","commit_id":"76b24cf28d07f4f6a0846eb7f303c91436cdbfad"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f4ea2fa35f879510c0bf12100749b48c1e8e1fb3","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        \"\"\""},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"        resp, body \u003d self._show_request(\u0027nodes/states/console\u0027, node_uuid)"},{"line_number":400,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":401,"context_line":"        return resp, body"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    @base.handle_errors"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_90b97eec","line":400,"updated":"2017-03-17 12:53:15.000000000","message":"ditto","commit_id":"76b24cf28d07f4f6a0846eb7f303c91436cdbfad"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1daf65cd471d22331d3fab8396f9e550d6c44e9a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        return self._show_request(\u0027ports\u0027, uuid)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @base.handle_errors"},{"line_number":113,"context_line":"    def show_portgroup(self, uuid):"},{"line_number":114,"context_line":"        \"\"\"Gets a specific port group."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        :param uuid: Unique identifier of the port group in UUID format."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_38314ced","line":113,"range":{"start_line":113,"start_character":29,"end_line":113,"end_character":33},"updated":"2017-03-20 17:49:38.000000000","message":"this can be a name","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5f6b8ee27cc3bc7e097b9ff00aa489a59a2710d5","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        return self._show_request(\u0027ports\u0027, uuid)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @base.handle_errors"},{"line_number":113,"context_line":"    def show_portgroup(self, uuid):"},{"line_number":114,"context_line":"        \"\"\"Gets a specific port group."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        :param uuid: Unique identifier of the port group in UUID format."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_b297f946","line":113,"range":{"start_line":113,"start_character":29,"end_line":113,"end_character":33},"in_reply_to":"1a1ced50_38314ced","updated":"2017-03-21 11:02:27.000000000","message":"Done","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1daf65cd471d22331d3fab8396f9e550d6c44e9a","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        :param node_uuid: The UUID of the node which owns the port group."},{"line_number":206,"context_line":"        :param kwargs:"},{"line_number":207,"context_line":"            address: MAC address of the port group. Optional."},{"line_number":208,"context_line":"            extra: Meta data of the port group. Default: {\u0027foo\u0027: \u0027bar\u0027}."},{"line_number":209,"context_line":"            uuid: UUID of the port group. Optional."},{"line_number":210,"context_line":"        :return: A tuple with the server response and the created port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_186490e2","line":207,"updated":"2017-03-20 17:49:38.000000000","message":"might make sense to add name here too.","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5f6b8ee27cc3bc7e097b9ff00aa489a59a2710d5","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        :param node_uuid: The UUID of the node which owns the port group."},{"line_number":206,"context_line":"        :param kwargs:"},{"line_number":207,"context_line":"            address: MAC address of the port group. Optional."},{"line_number":208,"context_line":"            extra: Meta data of the port group. Default: {\u0027foo\u0027: \u0027bar\u0027}."},{"line_number":209,"context_line":"            uuid: UUID of the port group. Optional."},{"line_number":210,"context_line":"        :return: A tuple with the server response and the created port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_d2947544","line":207,"in_reply_to":"1a1ced50_186490e2","updated":"2017-03-21 11:02:27.000000000","message":"Done","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1daf65cd471d22331d3fab8396f9e550d6c44e9a","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        return self._delete_request(\u0027ports\u0027, uuid)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    @base.handle_errors"},{"line_number":252,"context_line":"    def delete_portgroup(self, uuid):"},{"line_number":253,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        :param uuid: The unique identifier of the port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_986fa0c4","line":252,"range":{"start_line":252,"start_character":31,"end_line":252,"end_character":35},"updated":"2017-03-20 17:49:38.000000000","message":"ditto","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5f6b8ee27cc3bc7e097b9ff00aa489a59a2710d5","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        return self._delete_request(\u0027ports\u0027, uuid)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    @base.handle_errors"},{"line_number":252,"context_line":"    def delete_portgroup(self, uuid):"},{"line_number":253,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        :param uuid: The unique identifier of the port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_d2c9d55a","line":252,"range":{"start_line":252,"start_character":31,"end_line":252,"end_character":35},"in_reply_to":"1a1ced50_986fa0c4","updated":"2017-03-21 11:02:27.000000000","message":"Done","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0ac90953b59e2cd7c7417f1f9854a832093a8022","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    def show_portgroup(self, portgroup_id):"},{"line_number":114,"context_line":"        \"\"\"Gets a specific port group."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        :param portgroup_id: Name or UUID of the port group."},{"line_number":117,"context_line":"        :return: Serialized port group as a dictionary."},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        return self._show_request(\u0027portgroups\u0027, portgroup_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_0bafb3e2","line":116,"updated":"2017-03-21 13:31:54.000000000","message":"might be portgroup_ident than?","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0ac90953b59e2cd7c7417f1f9854a832093a8022","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        return self._delete_request(\u0027ports\u0027, uuid)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    @base.handle_errors"},{"line_number":253,"context_line":"    def delete_portgroup(self, portgroup_id):"},{"line_number":254,"context_line":"        \"\"\"Deletes a port group having the specified UUID or name."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        :param portgroup_id: Name or UUID of the port group."}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_0b96d392","line":253,"updated":"2017-03-21 13:31:54.000000000","message":"ditto about portgroup_ident","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"8b121072ac207cf42acc819a37fa1afd94076128","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                           \u0027properties/memory_mb\u0027,"},{"line_number":277,"context_line":"                           \u0027driver\u0027,"},{"line_number":278,"context_line":"                           \u0027instance_uuid\u0027)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        if not patch:"},{"line_number":281,"context_line":"            patch \u003d self._make_patch(node_attributes, **kwargs)"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_a19c055e","line":279,"updated":"2017-03-21 12:41:06.000000000","message":"nit: extra line","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0ac90953b59e2cd7c7417f1f9854a832093a8022","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                           \u0027properties/memory_mb\u0027,"},{"line_number":277,"context_line":"                           \u0027driver\u0027,"},{"line_number":278,"context_line":"                           \u0027instance_uuid\u0027)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        if not patch:"},{"line_number":281,"context_line":"            patch \u003d self._make_patch(node_attributes, **kwargs)"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_abf13f03","line":279,"in_reply_to":"1a1ced50_a19c055e","updated":"2017-03-21 13:31:54.000000000","message":"+1 not related","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8dfba27c9ddf013bb4edecc9c1ec873964125df1","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        :param kwargs:"},{"line_number":207,"context_line":"            address: MAC address of the port group. Optional."},{"line_number":208,"context_line":"            extra: Meta data of the port group. Default: {\u0027foo\u0027: \u0027bar\u0027}."},{"line_number":209,"context_line":"            name: Name of the port group. Optional."},{"line_number":210,"context_line":"            uuid: UUID of the port group. Optional."},{"line_number":211,"context_line":"        :return: A tuple with the server response and the created port group."},{"line_number":212,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a1ced50_a1c69765","line":209,"range":{"start_line":209,"start_character":12,"end_line":209,"end_character":51},"updated":"2017-03-22 10:33:59.000000000","message":"It is not handled at all as of now. If you pass it, there will still be no name in the requested portgroup. You can just add the same logic as is present for address.","commit_id":"c3f14baa302e1b6eb65a6eae00fb99cbe4c4b57e"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"fd14605ed7f0fb62f1fe2ad8ab0c417e800e053d","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        :param kwargs:"},{"line_number":207,"context_line":"            address: MAC address of the port group. Optional."},{"line_number":208,"context_line":"            extra: Meta data of the port group. Default: {\u0027foo\u0027: \u0027bar\u0027}."},{"line_number":209,"context_line":"            name: Name of the port group. Optional."},{"line_number":210,"context_line":"            uuid: UUID of the port group. Optional."},{"line_number":211,"context_line":"        :return: A tuple with the server response and the created port group."},{"line_number":212,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a1ced50_be0ead89","line":209,"range":{"start_line":209,"start_character":12,"end_line":209,"end_character":51},"in_reply_to":"1a1ced50_a1c69765","updated":"2017-03-22 12:37:24.000000000","message":"Done","commit_id":"c3f14baa302e1b6eb65a6eae00fb99cbe4c4b57e"}],"ironic_tempest_plugin/tests/api/admin/base.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c8ae9b2e31b692e186c9b5196355812987a366d0","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        \"\"\""},{"line_number":201,"context_line":"        extra \u003d extra or {}"},{"line_number":202,"context_line":"        address \u003d address or data_utils.rand_mac_address()"},{"line_number":203,"context_line":"        resp, body \u003d cls.client.create_portgroup("},{"line_number":204,"context_line":"            address\u003daddress, node_id\u003dnode_id, extra\u003dextra, uuid\u003duuid)"},{"line_number":205,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_ffe27c9e","line":202,"range":{"start_line":202,"start_character":8,"end_line":202,"end_character":15},"updated":"2017-03-01 10:32:42.000000000","message":"The address is optional from portgroup standpoint.","commit_id":"989694f48908edbe03531e0102bec2cf4e5fd4e8"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"e44291c8e0fba677f6c20d67e91830e548c00235","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        \"\"\""},{"line_number":201,"context_line":"        extra \u003d extra or {}"},{"line_number":202,"context_line":"        address \u003d address or data_utils.rand_mac_address()"},{"line_number":203,"context_line":"        resp, body \u003d cls.client.create_portgroup("},{"line_number":204,"context_line":"            address\u003daddress, node_id\u003dnode_id, extra\u003dextra, uuid\u003duuid)"},{"line_number":205,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_1bd4761e","line":202,"range":{"start_line":202,"start_character":8,"end_line":202,"end_character":15},"in_reply_to":"ba2be162_ffe27c9e","updated":"2017-03-02 14:55:26.000000000","message":"Done","commit_id":"989694f48908edbe03531e0102bec2cf4e5fd4e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"bae2aedcc485c92dff4c254e6d47f67c7d000533","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    def delete_portgroup(cls, portgroup_uuid):"},{"line_number":249,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        :param portgroup_uuid: The UUID of the port."},{"line_number":252,"context_line":"        :return: Server response."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        resp, body \u003d cls.client.delete_portgroup(portgroup_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_49b27d95","line":251,"range":{"start_line":251,"start_character":47,"end_line":251,"end_character":51},"updated":"2017-03-03 11:00:37.000000000","message":"s/port/port group","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"84d432a88693f6e5306491a49e182847d60ba43e","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    def delete_portgroup(cls, portgroup_uuid):"},{"line_number":249,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        :param portgroup_uuid: The UUID of the port."},{"line_number":252,"context_line":"        :return: Server response."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        resp, body \u003d cls.client.delete_portgroup(portgroup_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_956718e8","line":251,"range":{"start_line":251,"start_character":47,"end_line":251,"end_character":51},"in_reply_to":"ba2be162_49b27d95","updated":"2017-03-03 16:12:45.000000000","message":"Done","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a8616189791f6e08899e67996c6138e88a704931","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\"Wrapper utility for creating test port groups."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        :param node_uuid: The unique identifier of the node."},{"line_number":209,"context_line":"        :return: Created port group."},{"line_number":210,"context_line":"        \"\"\""},{"line_number":211,"context_line":"        resp, body \u003d cls.client.create_portgroup(node_uuid\u003dnode_uuid, **kwargs)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_fc6ed6c7","line":209,"range":{"start_line":209,"start_character":8,"end_line":209,"end_character":36},"updated":"2017-03-20 14:03:42.000000000","message":"nit: this returns tuple with responce and body, but other places have the same typo in docstring.","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"e7fb930cfc40886c62db1dac53ec2e51093fe90c","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\"Wrapper utility for creating test port groups."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        :param node_uuid: The unique identifier of the node."},{"line_number":209,"context_line":"        :return: Created port group."},{"line_number":210,"context_line":"        \"\"\""},{"line_number":211,"context_line":"        resp, body \u003d cls.client.create_portgroup(node_uuid\u003dnode_uuid, **kwargs)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_43fe2238","line":209,"range":{"start_line":209,"start_character":8,"end_line":209,"end_character":36},"in_reply_to":"1a1ced50_fc6ed6c7","updated":"2017-03-20 16:02:23.000000000","message":"Thank you, now i have added a follow-up to fix this: https://review.openstack.org/#/c/447565/","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1daf65cd471d22331d3fab8396f9e550d6c44e9a","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        return resp"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    @classmethod"},{"line_number":264,"context_line":"    def delete_portgroup(cls, portgroup_uuid):"},{"line_number":265,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        :param portgroup_uuid: The UUID of the port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_5b5fe2e4","line":264,"range":{"start_line":264,"start_character":30,"end_line":264,"end_character":44},"updated":"2017-03-20 17:49:38.000000000","message":"ditto, can be name","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"5f6b8ee27cc3bc7e097b9ff00aa489a59a2710d5","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        return resp"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    @classmethod"},{"line_number":264,"context_line":"    def delete_portgroup(cls, portgroup_uuid):"},{"line_number":265,"context_line":"        \"\"\"Deletes a port group having the specified UUID."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        :param portgroup_uuid: The UUID of the port group."}],"source_content_type":"text/x-python","patch_set":13,"id":"1a1ced50_728101c3","line":264,"range":{"start_line":264,"start_character":30,"end_line":264,"end_character":44},"in_reply_to":"1a1ced50_5b5fe2e4","updated":"2017-03-21 11:02:27.000000000","message":"Done","commit_id":"5d8f2a2046ba79f57d10432e3e4431dcfb0cd855"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0ac90953b59e2cd7c7417f1f9854a832093a8022","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\"Wrapper utility for creating test port groups."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        :param node_uuid: The unique identifier of the node."},{"line_number":209,"context_line":"        :return: Created port group."},{"line_number":210,"context_line":"        \"\"\""},{"line_number":211,"context_line":"        resp, body \u003d cls.client.create_portgroup(node_uuid\u003dnode_uuid, **kwargs)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_2be62f44","line":209,"updated":"2017-03-21 13:31:54.000000000","message":"tuple with response and body","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"e756a64971452e0bd5f2f6707d90891c4cb099c7","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \"\"\"Wrapper utility for creating test port groups."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        :param node_uuid: The unique identifier of the node."},{"line_number":209,"context_line":"        :return: Created port group."},{"line_number":210,"context_line":"        \"\"\""},{"line_number":211,"context_line":"        resp, body \u003d cls.client.create_portgroup(node_uuid\u003dnode_uuid, **kwargs)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_0e68a1b8","line":209,"in_reply_to":"1a1ced50_2be62f44","updated":"2017-03-21 13:46:06.000000000","message":"There is patch for fixing it here and in other places of code: https://review.openstack.org/#/c/447565/","commit_id":"60139d4cac383737e8050e5c7f6d45561236e15a"}],"ironic_tempest_plugin/tests/api/admin/test_portgroups.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c8ae9b2e31b692e186c9b5196355812987a366d0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    @decorators.idempotent_id(\u0027110cd302-256b-4ddc-be10-fc6c9ad8e649\u0027)"},{"line_number":35,"context_line":"    def test_create_portgroup(self):"},{"line_number":36,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":37,"context_line":"        address \u003d data_utils.rand_mac_address()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dnode_id, address\u003daddress)"},{"line_number":40,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_9f8980cd","line":37,"updated":"2017-03-01 10:32:42.000000000","message":"Please add a test that creates portgroup without mac address.","commit_id":"989694f48908edbe03531e0102bec2cf4e5fd4e8"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"e44291c8e0fba677f6c20d67e91830e548c00235","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    @decorators.idempotent_id(\u0027110cd302-256b-4ddc-be10-fc6c9ad8e649\u0027)"},{"line_number":35,"context_line":"    def test_create_portgroup(self):"},{"line_number":36,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":37,"context_line":"        address \u003d data_utils.rand_mac_address()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dnode_id, address\u003daddress)"},{"line_number":40,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_284bb288","line":37,"in_reply_to":"ba2be162_9f8980cd","updated":"2017-03-02 14:55:26.000000000","message":"Done","commit_id":"989694f48908edbe03531e0102bec2cf4e5fd4e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"bae2aedcc485c92dff4c254e6d47f67c7d000533","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":37,"context_line":"        address \u003d data_utils.rand_mac_address()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dnode_id, address\u003daddress)"},{"line_number":40,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        self._assertExpected(portgroup, body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_9b2758b5","line":39,"updated":"2017-03-03 11:00:37.000000000","message":"nit: This test is a combination of portgroup setup and portgroup_show","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"84d432a88693f6e5306491a49e182847d60ba43e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        node_id \u003d self.node[\u0027uuid\u0027]"},{"line_number":37,"context_line":"        address \u003d data_utils.rand_mac_address()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dnode_id, address\u003daddress)"},{"line_number":40,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        self._assertExpected(portgroup, body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_d5bfd0a7","line":39,"in_reply_to":"ba2be162_9b2758b5","updated":"2017-03-03 16:12:45.000000000","message":"Ok, then i shrink this test case to address checking of port group from setup only.","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"bae2aedcc485c92dff4c254e6d47f67c7d000533","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dself.node[\u0027uuid\u0027])"},{"line_number":48,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self._assertExpected(portgroup, body)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u00278378c69f-f806-454b-8ddd-6b7fd93ab12b\u0027)"},{"line_number":53,"context_line":"    def test_delete_portgroup(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_6924a1c4","line":50,"updated":"2017-03-03 11:00:37.000000000","message":"I think here should be something that checks that address is actually None.","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"84d432a88693f6e5306491a49e182847d60ba43e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dself.node[\u0027uuid\u0027])"},{"line_number":48,"context_line":"        _, body \u003d self.client.show_portgroup(portgroup[\u0027uuid\u0027])"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self._assertExpected(portgroup, body)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u00278378c69f-f806-454b-8ddd-6b7fd93ab12b\u0027)"},{"line_number":53,"context_line":"    def test_delete_portgroup(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_d51510e5","line":50,"in_reply_to":"ba2be162_6924a1c4","updated":"2017-03-03 16:12:45.000000000","message":"thanks!","commit_id":"fd39f7705b4c87b8fe1450426c227efaf73a5edb"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"714acbe645ccc3212110779c3de44858d957f592","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestPortGroups(base.BaseBaremetalTest):"},{"line_number":22,"context_line":"    \"\"\"Tests for port groups.\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(TestPortGroups, self).setUp()"},{"line_number":26,"context_line":"        self.useFixture("},{"line_number":27,"context_line":"            api_microversion_fixture.APIMicroversionFixture(\u00271.25\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_957fe813","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":14},"updated":"2017-03-13 08:54:42.000000000","message":"What about tearDown?","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"13604a39b865aa944b5ed9eccb6057e74ab5b319","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestPortGroups(base.BaseBaremetalTest):"},{"line_number":22,"context_line":"    \"\"\"Tests for port groups.\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(TestPortGroups, self).setUp()"},{"line_number":26,"context_line":"        self.useFixture("},{"line_number":27,"context_line":"            api_microversion_fixture.APIMicroversionFixture(\u00271.25\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_bde12e2c","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":14},"in_reply_to":"9a30ddce_957fe813","updated":"2017-03-13 10:59:21.000000000","message":"It\u0027s implemented in resource_cleanup method in base.py and with usage of @creates decorator.","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"714acbe645ccc3212110779c3de44858d957f592","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            self.node[\u0027uuid\u0027], address\u003ddata_utils.rand_mac_address())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @decorators.idempotent_id(\u0027110cd302-256b-4ddc-be10-fc6c9ad8e649\u0027)"},{"line_number":34,"context_line":"    def test_create_portgroup_with_address(self):"},{"line_number":35,"context_line":"        \"\"\"Create a port group with specific MAC address.\"\"\""},{"line_number":36,"context_line":"        _, body \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":37,"context_line":"        self.assertEqual(self.portgroup[\u0027address\u0027], body[\u0027address\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_95236855","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":42},"updated":"2017-03-13 08:54:42.000000000","message":"Please add test with invalid MAC address","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"13604a39b865aa944b5ed9eccb6057e74ab5b319","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            self.node[\u0027uuid\u0027], address\u003ddata_utils.rand_mac_address())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @decorators.idempotent_id(\u0027110cd302-256b-4ddc-be10-fc6c9ad8e649\u0027)"},{"line_number":34,"context_line":"    def test_create_portgroup_with_address(self):"},{"line_number":35,"context_line":"        \"\"\"Create a port group with specific MAC address.\"\"\""},{"line_number":36,"context_line":"        _, body \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":37,"context_line":"        self.assertEqual(self.portgroup[\u0027address\u0027], body[\u0027address\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_1d579aca","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":42},"in_reply_to":"9a30ddce_95236855","updated":"2017-03-13 10:59:21.000000000","message":"Negative tests will be added in follow-up patch. I\u0027ll repost your suggestions there to keep them.","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"714acbe645ccc3212110779c3de44858d957f592","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        _, body \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":37,"context_line":"        self.assertEqual(self.portgroup[\u0027address\u0027], body[\u0027address\u0027])"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @decorators.idempotent_id(\u00274336fa0f-da86-4cec-b788-89f59a7635a5\u0027)"},{"line_number":40,"context_line":"    def test_create_portgroup_no_address(self):"},{"line_number":41,"context_line":"        \"\"\"Create a port group without setting MAC address.\"\"\""},{"line_number":42,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dself.node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_f5c2e451","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":15},"updated":"2017-03-13 08:54:42.000000000","message":"Why you don\u0027t use  @test.attr(type\u003d\u0027negative\u0027) here?","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"13604a39b865aa944b5ed9eccb6057e74ab5b319","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        _, body \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":37,"context_line":"        self.assertEqual(self.portgroup[\u0027address\u0027], body[\u0027address\u0027])"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @decorators.idempotent_id(\u00274336fa0f-da86-4cec-b788-89f59a7635a5\u0027)"},{"line_number":40,"context_line":"    def test_create_portgroup_no_address(self):"},{"line_number":41,"context_line":"        \"\"\"Create a port group without setting MAC address.\"\"\""},{"line_number":42,"context_line":"        _, portgroup \u003d self.create_portgroup(node_id\u003dself.node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_bd14cee8","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":15},"in_reply_to":"9a30ddce_f5c2e451","updated":"2017-03-13 10:59:21.000000000","message":"This case is also positive. Without address port-group should be created without any errors.","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"714acbe645ccc3212110779c3de44858d957f592","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertIsNone(body[\u0027address\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @decorators.idempotent_id(\u00278378c69f-f806-454b-8ddd-6b7fd93ab12b\u0027)"},{"line_number":49,"context_line":"    def test_delete_portgroup(self):"},{"line_number":50,"context_line":"        \"\"\"Delete a port group.\"\"\""},{"line_number":51,"context_line":"        self.delete_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":52,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.show_portgroup,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_75b274e6","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":29},"updated":"2017-03-13 08:54:42.000000000","message":"What about:\ndelete non-existent portgroup\ndelete portgroup with invalid uuid","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"13604a39b865aa944b5ed9eccb6057e74ab5b319","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertIsNone(body[\u0027address\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @decorators.idempotent_id(\u00278378c69f-f806-454b-8ddd-6b7fd93ab12b\u0027)"},{"line_number":49,"context_line":"    def test_delete_portgroup(self):"},{"line_number":50,"context_line":"        \"\"\"Delete a port group.\"\"\""},{"line_number":51,"context_line":"        self.delete_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":52,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.show_portgroup,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_fdd80655","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":29},"in_reply_to":"9a30ddce_75b274e6","updated":"2017-03-13 10:59:21.000000000","message":"Thanks, i\u0027ll add them to negative tests patch.","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"714acbe645ccc3212110779c3de44858d957f592","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.show_portgroup,"},{"line_number":53,"context_line":"                          self.portgroup[\u0027uuid\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @decorators.idempotent_id(\u0027f6be5e70-3e3b-435c-b2fc-bbb2cc9b3185\u0027)"},{"line_number":56,"context_line":"    def test_show_portgroup(self):"},{"line_number":57,"context_line":"        \"\"\"Show a specified port group.\"\"\""},{"line_number":58,"context_line":"        _, portgroup \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":59,"context_line":"        self._assertExpected(self.portgroup, portgroup)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @decorators.idempotent_id(\u0027cf2dfd95-5ea1-4109-8ad3-297cd76aa5d3\u0027)"},{"line_number":62,"context_line":"    def test_list_portgroups(self):"},{"line_number":63,"context_line":"        \"\"\"List port groups.\"\"\""},{"line_number":64,"context_line":"        _, body \u003d self.client.list_portgroups()"},{"line_number":65,"context_line":"        self.assertIn(self.portgroup[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_b53dcc2c","line":62,"range":{"start_line":55,"start_character":0,"end_line":62,"end_character":35},"updated":"2017-03-13 08:54:42.000000000","message":"Add some negative tests here","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"13604a39b865aa944b5ed9eccb6057e74ab5b319","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.show_portgroup,"},{"line_number":53,"context_line":"                          self.portgroup[\u0027uuid\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @decorators.idempotent_id(\u0027f6be5e70-3e3b-435c-b2fc-bbb2cc9b3185\u0027)"},{"line_number":56,"context_line":"    def test_show_portgroup(self):"},{"line_number":57,"context_line":"        \"\"\"Show a specified port group.\"\"\""},{"line_number":58,"context_line":"        _, portgroup \u003d self.client.show_portgroup(self.portgroup[\u0027uuid\u0027])"},{"line_number":59,"context_line":"        self._assertExpected(self.portgroup, portgroup)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @decorators.idempotent_id(\u0027cf2dfd95-5ea1-4109-8ad3-297cd76aa5d3\u0027)"},{"line_number":62,"context_line":"    def test_list_portgroups(self):"},{"line_number":63,"context_line":"        \"\"\"List port groups.\"\"\""},{"line_number":64,"context_line":"        _, body \u003d self.client.list_portgroups()"},{"line_number":65,"context_line":"        self.assertIn(self.portgroup[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_5dd11222","line":62,"range":{"start_line":55,"start_character":0,"end_line":62,"end_character":35},"in_reply_to":"9a30ddce_b53dcc2c","updated":"2017-03-13 10:59:21.000000000","message":"They will be here: https://review.openstack.org/#/c/437535/","commit_id":"6643765d47b5a4882100e1685a8e09ddfc7877d0"}]}
