)]}'
{"doc/source/contributor/vendor-passthru.rst":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fd6976a2d6cc3c1b37ffd918776678d07b88c937","unresolved":false,"context_lines":[{"line_number":123,"context_line":".. _VendorInterface: ../api/ironic.drivers.base.html#ironic.drivers.base.VendorInterface"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":126,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"The node vendor passthru decorator (`@passthru`) also accepts the following"},{"line_number":129,"context_line":"parameter:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_76c72547","line":126,"updated":"2018-03-27 11:14:22.000000000","message":"it defaults to None now, and if it is None, it defaults to async value. I think you need to mention both async_call and async parameters here, but say that async is deprectated","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"b0a7a6a9122bab7e2c50091c451d3fd1fff63fd6","unresolved":false,"context_lines":[{"line_number":123,"context_line":".. _VendorInterface: ../api/ironic.drivers.base.html#ironic.drivers.base.VendorInterface"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":126,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"The node vendor passthru decorator (`@passthru`) also accepts the following"},{"line_number":129,"context_line":"parameter:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_91e763e5","line":126,"in_reply_to":"bf659307_76c72547","updated":"2018-03-27 11:45:14.000000000","message":"Done","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13d6c35a41434ec955638b3405941f313be84ad5","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":".. _VendorInterface: ../api/ironic.drivers.base.html#ironic.drivers.base.VendorInterface"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* async: A boolean value to determine whether this method should run"},{"line_number":126,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":127,"context_line":"  Deprecated, please use async_call instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":130,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f1f33f72","line":127,"range":{"start_line":125,"start_character":0,"end_line":127,"end_character":44},"updated":"2018-03-27 11:54:22.000000000","message":"Let\u0027s maybe remove it, we don\u0027t really need to document deprecated params here","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"438674e7b01a0b5492285cdc3341747db2fe1ed3","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":".. _VendorInterface: ../api/ironic.drivers.base.html#ironic.drivers.base.VendorInterface"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* async: A boolean value to determine whether this method should run"},{"line_number":126,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":127,"context_line":"  Deprecated, please use async_call instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":130,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_2c55e01d","line":127,"range":{"start_line":125,"start_character":0,"end_line":127,"end_character":44},"in_reply_to":"bf659307_f1f33f72","updated":"2018-03-27 12:37:01.000000000","message":"Done","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13d6c35a41434ec955638b3405941f313be84ad5","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  Deprecated, please use async_call instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":130,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The node vendor passthru decorator (`@passthru`) also accepts the following"},{"line_number":133,"context_line":"parameter:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_b1edc78c","line":130,"updated":"2018-03-27 11:54:22.000000000","message":"of we can have a note here:\n\n .. note:: This parameter was previously called \"async\".","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"438674e7b01a0b5492285cdc3341747db2fe1ed3","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  Deprecated, please use async_call instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":130,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The node vendor passthru decorator (`@passthru`) also accepts the following"},{"line_number":133,"context_line":"parameter:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_cc31c40d","line":130,"in_reply_to":"bf659307_b1edc78c","updated":"2018-03-27 12:37:01.000000000","message":"Done","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e1a6789abbaecdd4006d98b408c7357f284fae2d","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* async_call: A boolean value to determine whether this method should run"},{"line_number":126,"context_line":"  asynchronously or synchronously. Defaults to True (Asynchronously)."},{"line_number":127,"context_line":"  .. note:: This parameter was previously called \"async\"."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"The node vendor passthru decorator (`@passthru`) also accepts the following"},{"line_number":130,"context_line":"parameter:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf659307_0dd0fa4f","line":127,"updated":"2018-03-28 08:48:15.000000000","message":"please add a new line before this one, right now it is not rendered properly -- http://logs.openstack.org/18/556818/6/check/build-openstack-sphinx-docs/9e30870/html/contributor/vendor-passthru.html","commit_id":"181bf5b61eb2378747e7299779d766a2eb312cf3"}],"ironic/drivers/base.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fd6976a2d6cc3c1b37ffd918776678d07b88c937","unresolved":false,"context_lines":[{"line_number":689,"context_line":""},{"line_number":690,"context_line":"def passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":691,"context_line":"             attach\u003dFalse, require_exclusive_lock\u003dTrue, async_call\u003dNone):"},{"line_number":692,"context_line":"    if async_call is None:"},{"line_number":693,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":694,"context_line":"        async_call \u003d async"},{"line_number":695,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_567781d5","line":692,"updated":"2018-03-27 11:14:22.000000000","message":"here is the problem: if async is true by default, it means that if neither async nor async_call were provided in passthru call, it will trigger printing the warning. what we could do to get the desired behavior and not break anything is change the default value of async to None as well, and change this condition to the following:\n\n if async_call is None:\n   if async is not None:\n     LOG.warning...\n     async_call \u003d async\n   else:\n     async_call \u003d True","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"b0a7a6a9122bab7e2c50091c451d3fd1fff63fd6","unresolved":false,"context_lines":[{"line_number":689,"context_line":""},{"line_number":690,"context_line":"def passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":691,"context_line":"             attach\u003dFalse, require_exclusive_lock\u003dTrue, async_call\u003dNone):"},{"line_number":692,"context_line":"    if async_call is None:"},{"line_number":693,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":694,"context_line":"        async_call \u003d async"},{"line_number":695,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_31c1b72f","line":692,"in_reply_to":"bf659307_567781d5","updated":"2018-03-27 11:45:14.000000000","message":"Done","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fd6976a2d6cc3c1b37ffd918776678d07b88c937","unresolved":false,"context_lines":[{"line_number":690,"context_line":"def passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":691,"context_line":"             attach\u003dFalse, require_exclusive_lock\u003dTrue, async_call\u003dNone):"},{"line_number":692,"context_line":"    if async_call is None:"},{"line_number":693,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":694,"context_line":"        async_call \u003d async"},{"line_number":695,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dFalse,"},{"line_number":696,"context_line":"                     description\u003ddescription, attach\u003dattach,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_36c1ad2f","line":693,"updated":"2018-03-27 11:14:22.000000000","message":"line too long. you can also add that it will be removed next cycle","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"b0a7a6a9122bab7e2c50091c451d3fd1fff63fd6","unresolved":false,"context_lines":[{"line_number":690,"context_line":"def passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":691,"context_line":"             attach\u003dFalse, require_exclusive_lock\u003dTrue, async_call\u003dNone):"},{"line_number":692,"context_line":"    if async_call is None:"},{"line_number":693,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":694,"context_line":"        async_call \u003d async"},{"line_number":695,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dFalse,"},{"line_number":696,"context_line":"                     description\u003ddescription, attach\u003dattach,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_d1dddb14","line":693,"in_reply_to":"bf659307_36c1ad2f","updated":"2018-03-27 11:45:14.000000000","message":"Done","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fd6976a2d6cc3c1b37ffd918776678d07b88c937","unresolved":false,"context_lines":[{"line_number":700,"context_line":"def driver_passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":701,"context_line":"                    attach\u003dFalse, async_call\u003dNone):"},{"line_number":702,"context_line":"    if async_call is None:"},{"line_number":703,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":704,"context_line":"        async_call \u003d async"},{"line_number":705,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dTrue,"},{"line_number":706,"context_line":"                     description\u003ddescription, attach\u003dattach)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_b6ea9da9","line":703,"updated":"2018-03-27 11:14:22.000000000","message":"ditto","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"b0a7a6a9122bab7e2c50091c451d3fd1fff63fd6","unresolved":false,"context_lines":[{"line_number":700,"context_line":"def driver_passthru(http_methods, method\u003dNone, async\u003dTrue, description\u003dNone,"},{"line_number":701,"context_line":"                    attach\u003dFalse, async_call\u003dNone):"},{"line_number":702,"context_line":"    if async_call is None:"},{"line_number":703,"context_line":"        LOG.warning(\u0027async parameter is deprecated, please use async_call instead.\u0027)"},{"line_number":704,"context_line":"        async_call \u003d async"},{"line_number":705,"context_line":"    return _passthru(http_methods, method, async_call, driver_passthru\u003dTrue,"},{"line_number":706,"context_line":"                     description\u003ddescription, attach\u003dattach)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_f1e01fcf","line":703,"in_reply_to":"bf659307_b6ea9da9","updated":"2018-03-27 11:45:14.000000000","message":"Done","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13d6c35a41434ec955638b3405941f313be84ad5","unresolved":false,"context_lines":[{"line_number":635,"context_line":"    :param http_methods: A list of supported HTTP methods by the vendor"},{"line_number":636,"context_line":"                         function."},{"line_number":637,"context_line":"    :param method: an arbitrary string describing the action to be taken."},{"line_number":638,"context_line":"    :param async: Boolean value. If True invoke the passthru function"},{"line_number":639,"context_line":"                  asynchronously; if False, synchronously. If a passthru"},{"line_number":640,"context_line":"                  function touches the BMC we strongly recommend it to"},{"line_number":641,"context_line":"                  run asynchronously. Defaults to True."},{"line_number":642,"context_line":"                  Deprecated, please use async_call instead."},{"line_number":643,"context_line":"    :param async_call: Boolean value. If True invoke the passthru function"},{"line_number":644,"context_line":"                  asynchronously; if False, synchronously. If a passthru"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_5189cbc7","line":641,"range":{"start_line":638,"start_character":18,"end_line":641,"end_character":55},"updated":"2018-03-27 11:54:22.000000000","message":"Let\u0027s remove the whole description and only leave the deprecation note","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"438674e7b01a0b5492285cdc3341747db2fe1ed3","unresolved":false,"context_lines":[{"line_number":635,"context_line":"    :param http_methods: A list of supported HTTP methods by the vendor"},{"line_number":636,"context_line":"                         function."},{"line_number":637,"context_line":"    :param method: an arbitrary string describing the action to be taken."},{"line_number":638,"context_line":"    :param async: Boolean value. If True invoke the passthru function"},{"line_number":639,"context_line":"                  asynchronously; if False, synchronously. If a passthru"},{"line_number":640,"context_line":"                  function touches the BMC we strongly recommend it to"},{"line_number":641,"context_line":"                  run asynchronously. Defaults to True."},{"line_number":642,"context_line":"                  Deprecated, please use async_call instead."},{"line_number":643,"context_line":"    :param async_call: Boolean value. If True invoke the passthru function"},{"line_number":644,"context_line":"                  asynchronously; if False, synchronously. If a passthru"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_4c04d44a","line":641,"range":{"start_line":638,"start_character":18,"end_line":641,"end_character":55},"in_reply_to":"bf659307_5189cbc7","updated":"2018-03-27 12:37:01.000000000","message":"Done","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13d6c35a41434ec955638b3405941f313be84ad5","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                                   The node remains locked during execution"},{"line_number":659,"context_line":"                                   for a synchronous passthru method. If False,"},{"line_number":660,"context_line":"                                   don\u0027t lock the node. Defaults to True."},{"line_number":661,"context_line":"    \"\"\""},{"line_number":662,"context_line":"    if async_call is None:"},{"line_number":663,"context_line":"        if async is not None:"},{"line_number":664,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_d195dbe5","line":661,"updated":"2018-03-27 11:54:22.000000000","message":"let\u0027s raise some exception (TypeError?) if both async and async_call are not None","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"438674e7b01a0b5492285cdc3341747db2fe1ed3","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                                   The node remains locked during execution"},{"line_number":659,"context_line":"                                   for a synchronous passthru method. If False,"},{"line_number":660,"context_line":"                                   don\u0027t lock the node. Defaults to True."},{"line_number":661,"context_line":"    \"\"\""},{"line_number":662,"context_line":"    if async_call is None:"},{"line_number":663,"context_line":"        if async is not None:"},{"line_number":664,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_6c5bd853","line":661,"in_reply_to":"bf659307_d195dbe5","updated":"2018-03-27 12:37:01.000000000","message":"Added TypeError exception with message describing the situation.","commit_id":"4e3c8fbff83c89bff5d02fd08da5e3f92956eb95"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e1a6789abbaecdd4006d98b408c7357f284fae2d","unresolved":false,"context_lines":[{"line_number":668,"context_line":"        if async is not None:"},{"line_number":669,"context_line":"            raise TypeError("},{"line_number":670,"context_line":"                \"async_call and async parameters couldn\u0027t be used together, \""},{"line_number":671,"context_line":"                \"use async_call. instead of async\""},{"line_number":672,"context_line":"            )"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def handle_passthru(func):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_0d455a17","line":671,"range":{"start_line":671,"start_character":31,"end_line":671,"end_character":32},"updated":"2018-03-28 08:48:15.000000000","message":"no dot here :)","commit_id":"181bf5b61eb2378747e7299779d766a2eb312cf3"}],"ironic/drivers/modules/fake.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fd6976a2d6cc3c1b37ffd918776678d07b88c937","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                raise exception.MissingParameterValue(_("},{"line_number":150,"context_line":"                    \"Parameter \u0027bar\u0027 not passed to method \u0027%s\u0027.\") % method)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":153,"context_line":"                   description\u003d_(\"Test if the value of bar is kazoo\"))"},{"line_number":154,"context_line":"    def second_method(self, task, http_method, bar):"},{"line_number":155,"context_line":"        return True if bar \u003d\u003d \u0027kazoo\u0027 else False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_f6f33572","line":152,"updated":"2018-03-27 11:14:22.000000000","message":"you need to add async_call\u003dTrue here I guess, so that an operator does not see a warning about using async argument","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"b0a7a6a9122bab7e2c50091c451d3fd1fff63fd6","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                raise exception.MissingParameterValue(_("},{"line_number":150,"context_line":"                    \"Parameter \u0027bar\u0027 not passed to method \u0027%s\u0027.\") % method)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":153,"context_line":"                   description\u003d_(\"Test if the value of bar is kazoo\"))"},{"line_number":154,"context_line":"    def second_method(self, task, http_method, bar):"},{"line_number":155,"context_line":"        return True if bar \u003d\u003d \u0027kazoo\u0027 else False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_f109ff94","line":152,"in_reply_to":"bf659307_f6f33572","updated":"2018-03-27 11:45:14.000000000","message":"Changed the logic.","commit_id":"d3ea53c90d2feb6540d8561bda703b5a56a0c013"}],"releasenotes/notes/async-deprecate-b3d81d7968ea47e5.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"052ca4730066dcf6d5810a0670ce70f0f7ddf659","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"    async parameter of passthru and driver_passthru decorators is deprecated"},{"line_number":4,"context_line":"    and will be removed in next cycle. async_call should be used instead."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bf659307_75fb4d46","line":3,"updated":"2018-03-29 17:29:55.000000000","message":"Each section must be a list, not a string. But apparently the reno tool can handle it.","commit_id":"0267c271d0a3ee8df3f13e7e843e4f4bd46ec2b9"}]}
