)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        iniset $IRONIC_CONF_FILE agent heartbeat_timeout 30"},{"line_number":450,"context_line":"    fi"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    # FIXME: this really needs to be tested in the gate.  For now, any"},{"line_number":453,"context_line":"    # test using the agent ramdisk should skip the erase_devices clean"},{"line_number":454,"context_line":"    # step  because it is too slow to run in the gate."},{"line_number":455,"context_line":"    iniset $IRONIC_CONF_FILE deploy erase_devices_priority $IRONIC_CLEANING_ERASE_DEVICE_PRIORITY"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"5a18252c_2cffb002","line":452,"updated":"2016-04-12 11:27:06.000000000","message":"this fixme is no longer valid","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        iniset $IRONIC_CONF_FILE agent heartbeat_timeout 30"},{"line_number":450,"context_line":"    fi"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    # FIXME: this really needs to be tested in the gate.  For now, any"},{"line_number":453,"context_line":"    # test using the agent ramdisk should skip the erase_devices clean"},{"line_number":454,"context_line":"    # step  because it is too slow to run in the gate."},{"line_number":455,"context_line":"    iniset $IRONIC_CONF_FILE deploy erase_devices_priority $IRONIC_CLEANING_ERASE_DEVICE_PRIORITY"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"5a18252c_cff9ce4f","line":452,"in_reply_to":"5a18252c_2cffb002","updated":"2016-04-13 07:55:48.000000000","message":"Done","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"}],"ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                           \u0027properties/memory_mb\u0027,"},{"line_number":223,"context_line":"                           \u0027driver\u0027,"},{"line_number":224,"context_line":"                           \u0027instance_uuid\u0027,"},{"line_number":225,"context_line":"                           \u0027maintenance\u0027)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        patch \u003d self._make_patch(node_attributes, **kwargs)"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_cc039c0e","line":225,"updated":"2016-04-12 11:27:06.000000000","message":"While this works both ways, might be good to introduce a new function for maintenance setting, as there is a separate endpoint for it, which will allow to also set maintenance_reason in one request:\n\ncurl -g -i -X PUT http://192.168.122.22:6385/v1/nodes/node-0/maintenance -H \"X-OpenStack-Ironic-API-Version: 1.9\" -H \"User-Agent: python-ironicclient\" -H \"Content-Type: application/json\" -H \"Accept: application/json\" -H \"X-Auth-Token: {SHA1}22dff01a8d077e25bd85fecbaef3a2a8876da675\" -d \u0027{\"reason\": null}\u0027","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                           \u0027properties/memory_mb\u0027,"},{"line_number":223,"context_line":"                           \u0027driver\u0027,"},{"line_number":224,"context_line":"                           \u0027instance_uuid\u0027,"},{"line_number":225,"context_line":"                           \u0027maintenance\u0027)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        patch \u003d self._make_patch(node_attributes, **kwargs)"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a6e8cfe3","line":225,"in_reply_to":"5a18252c_cc039c0e","updated":"2016-04-13 07:55:48.000000000","message":"Done","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            target[\u0027configdrive\u0027] \u003d configdrive"},{"line_number":366,"context_line":"        resp, body \u003d self._put_request("},{"line_number":367,"context_line":"            \u0027nodes/%s/states/provision\u0027 % node_uuid, target,"},{"line_number":368,"context_line":"            headers\u003d{\u0027x-openstack-ironic-api-version\u0027: \u00271.16\u0027},"},{"line_number":369,"context_line":"            extra_headers\u003dTrue)"},{"line_number":370,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":371,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_8cd884f1","line":368,"updated":"2016-04-12 11:27:06.000000000","message":"Why hardcode 1.16 here? I\u0027d rather add a parameter to this function specifying the version needed. Also for this test, 1.11 should be enough.","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            target[\u0027configdrive\u0027] \u003d configdrive"},{"line_number":366,"context_line":"        resp, body \u003d self._put_request("},{"line_number":367,"context_line":"            \u0027nodes/%s/states/provision\u0027 % node_uuid, target,"},{"line_number":368,"context_line":"            headers\u003d{\u0027x-openstack-ironic-api-version\u0027: \u00271.16\u0027},"},{"line_number":369,"context_line":"            extra_headers\u003dTrue)"},{"line_number":370,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":371,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_c2d88520","line":368,"in_reply_to":"5a18252c_8cd884f1","updated":"2016-04-13 07:55:48.000000000","message":"Yep, this function may be used to set different provision states which requires different api versions.","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        resp, body \u003d self._put_request("},{"line_number":367,"context_line":"            \u0027nodes/%s/states/provision\u0027 % node_uuid, target,"},{"line_number":368,"context_line":"            headers\u003d{\u0027x-openstack-ironic-api-version\u0027: \u00271.16\u0027},"},{"line_number":369,"context_line":"            extra_headers\u003dTrue)"},{"line_number":370,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":371,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_2c821053","line":369,"updated":"2016-04-12 11:27:06.000000000","message":"Is this extra_headers\u003dTrue needed?","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        resp, body \u003d self._put_request("},{"line_number":367,"context_line":"            \u0027nodes/%s/states/provision\u0027 % node_uuid, target,"},{"line_number":368,"context_line":"            headers\u003d{\u0027x-openstack-ironic-api-version\u0027: \u00271.16\u0027},"},{"line_number":369,"context_line":"            extra_headers\u003dTrue)"},{"line_number":370,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":371,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_42cf55b0","line":369,"in_reply_to":"5a18252c_2c821053","updated":"2016-04-13 07:55:48.000000000","message":"yes, it is needed, otherwise headers will not be updated with default headers.\nhttps://github.com/openstack/tempest/blob/master/tempest/lib/common/rest_client.py#L579","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"}],"ironic_tempest_plugin/tests/scenario/test_baremetal_cleaning.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                          partition_expected\u003dTrue):"},{"line_number":53,"context_line":"        \"\"\"Verify if disk contain partition\u0027s table\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        LOG.info(\"Looking for device %s\" % disk)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Validate we have a device with the given partition label"},{"line_number":58,"context_line":"        cmd \u003d \"sudo parted --script /dev/\u0027%s\u0027 print || exit 0\" % disk"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_ecadb889","line":55,"updated":"2016-04-12 11:27:06.000000000","message":"_LI","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                          partition_expected\u003dTrue):"},{"line_number":53,"context_line":"        \"\"\"Verify if disk contain partition\u0027s table\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        LOG.info(\"Looking for device %s\" % disk)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Validate we have a device with the given partition label"},{"line_number":58,"context_line":"        cmd \u003d \"sudo parted --script /dev/\u0027%s\u0027 print || exit 0\" % disk"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_452bdf30","line":55,"in_reply_to":"5a18252c_ecadb889","updated":"2016-04-13 07:55:48.000000000","message":"It is not used in tempest.","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # Validate we have a device with the given partition label"},{"line_number":58,"context_line":"        cmd \u003d \"sudo parted --script /dev/\u0027%s\u0027 print || exit 0\" % disk"},{"line_number":59,"context_line":"        result \u003d client.exec_command(cmd)"},{"line_number":60,"context_line":"        LOG.info(\"Partition table \u0027%s\u0027\", result)"},{"line_number":61,"context_line":"        wo_table \u003d \"Partition Table: unknown\""},{"line_number":62,"context_line":"        if partition_expected:"},{"line_number":63,"context_line":"            self.assertNotIn(wo_table, result)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_4c2b0c31","line":60,"updated":"2016-04-12 11:27:06.000000000","message":"_LI","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # Validate we have a device with the given partition label"},{"line_number":58,"context_line":"        cmd \u003d \"sudo parted --script /dev/\u0027%s\u0027 print || exit 0\" % disk"},{"line_number":59,"context_line":"        result \u003d client.exec_command(cmd)"},{"line_number":60,"context_line":"        LOG.info(\"Partition table \u0027%s\u0027\", result)"},{"line_number":61,"context_line":"        wo_table \u003d \"Partition Table: unknown\""},{"line_number":62,"context_line":"        if partition_expected:"},{"line_number":63,"context_line":"            self.assertNotIn(wo_table, result)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a520f34a","line":60,"in_reply_to":"5a18252c_4c2b0c31","updated":"2016-04-13 07:55:48.000000000","message":"ditto","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @test.services(\u0027baremetal\u0027, \u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":78,"context_line":"    def test_baremetal_cleaning(self):"},{"line_number":79,"context_line":"        self.add_keypair()"},{"line_number":80,"context_line":"        self.boot_instance()"},{"line_number":81,"context_line":"        self.terminate_instance()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        with open(CONF.baremetal.ramdisk_key_file) as f:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_ac3f4024","line":80,"updated":"2016-04-12 11:27:06.000000000","message":"Should we verify that partitions are created here?","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @test.services(\u0027baremetal\u0027, \u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":78,"context_line":"    def test_baremetal_cleaning(self):"},{"line_number":79,"context_line":"        self.add_keypair()"},{"line_number":80,"context_line":"        self.boot_instance()"},{"line_number":81,"context_line":"        self.terminate_instance()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        with open(CONF.baremetal.ramdisk_key_file) as f:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_65dd3b42","line":80,"in_reply_to":"5a18252c_ac3f4024","updated":"2016-04-13 07:55:48.000000000","message":"It is a good idea.","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        time.sleep(CONF.baremetal.bootstrap_timeout)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        failed_ips \u003d []"},{"line_number":99,"context_line":"        succed_ips \u003d []"},{"line_number":100,"context_line":"        for ip in self.get_node_ips(uuid):"},{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                self.check_vm_connectivity("}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_ec76583d","line":99,"updated":"2016-04-12 11:27:06.000000000","message":"This can be just a boolean, also did you mean succeeded_ips?","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        time.sleep(CONF.baremetal.bootstrap_timeout)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        failed_ips \u003d []"},{"line_number":99,"context_line":"        succed_ips \u003d []"},{"line_number":100,"context_line":"        for ip in self.get_node_ips(uuid):"},{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                self.check_vm_connectivity("}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a6cf2f7e","line":99,"in_reply_to":"5a18252c_ec76583d","updated":"2016-04-13 07:55:48.000000000","message":"Done","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8d6f13b327c61ecfc2cdc85773bb1e4dff037f6e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self.verify_partitions_disk_partitions("},{"line_number":114,"context_line":"                vm_client.ssh_client, \u0027vda\u0027, partition_expected\u003dFalse)"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            LOG.error(\"Unable to connect to port 22 on: %s\", failed_ips)"},{"line_number":117,"context_line":"            raise exceptions.ServerUnreachable()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_ac20e04a","line":116,"updated":"2016-04-12 11:27:06.000000000","message":"_LE","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"926113b0feead92551b208c58e64aae7ed1cf4a0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self.verify_partitions_disk_partitions("},{"line_number":114,"context_line":"                vm_client.ssh_client, \u0027vda\u0027, partition_expected\u003dFalse)"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            LOG.error(\"Unable to connect to port 22 on: %s\", failed_ips)"},{"line_number":117,"context_line":"            raise exceptions.ServerUnreachable()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a5b0f38c","line":116,"in_reply_to":"5a18252c_ac20e04a","updated":"2016-04-13 07:55:48.000000000","message":"ditto","commit_id":"949bbc5a6d4fff5f634bf84d50b74b27ab572437"}]}
