)]}'
{"api-guide/source/server_concepts.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":972,"context_line":"Nova provides a metadata api for servers to retrieve server specific metadata."},{"line_number":973,"context_line":"Neutron ensures this metadata api can be accessed through a predefined ip"},{"line_number":974,"context_line":"address (169.254.169.254). For more details, see :nova-doc:`Metadata Service"},{"line_number":975,"context_line":"\u003cuser/metadata-service.html\u003e`."},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"Config Drive"},{"line_number":978,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7f9a18b9","side":"PARENT","line":975,"updated":"2019-06-13 21:11:52.000000000","message":"redirect check: https://review.opendev.org/#/c/640730/7/doc/source/_extra/.htaccess@70","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":972,"context_line":"Nova provides a metadata api for servers to retrieve server specific metadata."},{"line_number":973,"context_line":"Neutron ensures this metadata api can be accessed through a predefined ip"},{"line_number":974,"context_line":"address (169.254.169.254). For more details, see :nova-doc:`Metadata Service"},{"line_number":975,"context_line":"\u003cuser/metadata-service.html\u003e`."},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"Config Drive"},{"line_number":978,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3571725","side":"PARENT","line":975,"in_reply_to":"9fb8cfa7_7f9a18b9","updated":"2019-06-14 14:14:19.000000000","message":"I assume this was a note for self","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":981,"context_line":"to the server when it boots. The server can mount this drive and read files"},{"line_number":982,"context_line":"from it to get information that is normally available through the metadata"},{"line_number":983,"context_line":"service. For more details, see :nova-doc:`Config Drive"},{"line_number":984,"context_line":"\u003cuser/config-drive.html\u003e`."},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"User data"},{"line_number":987,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5f8b9466","side":"PARENT","line":984,"updated":"2019-06-13 21:11:52.000000000","message":"redirect check: https://review.opendev.org/#/c/640730/7/doc/source/_extra/.htaccess@69","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":981,"context_line":"to the server when it boots. The server can mount this drive and read files"},{"line_number":982,"context_line":"from it to get information that is normally available through the metadata"},{"line_number":983,"context_line":"service. For more details, see :nova-doc:`Config Drive"},{"line_number":984,"context_line":"\u003cuser/config-drive.html\u003e`."},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"User data"},{"line_number":987,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d3369303","side":"PARENT","line":984,"in_reply_to":"9fb8cfa7_5f8b9466","updated":"2019-06-14 14:14:19.000000000","message":"ditto","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"}],"doc/source/_extra/.htaccess":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# The following is generated with:"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# git log --follow --name-status --format\u003d\u0027%H\u0027 2d0dfc632f.. -- doc/source | \\"},{"line_number":4,"context_line":"#   grep ^R | grep .rst | cut -f2- | \\"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9fb8cfa7_5f5dd412","side":"PARENT","line":1,"updated":"2019-06-13 21:11:52.000000000","message":"Why remove this?","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# The following is generated with:"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# git log --follow --name-status --format\u003d\u0027%H\u0027 2d0dfc632f.. -- doc/source | \\"},{"line_number":4,"context_line":"#   grep ^R | grep .rst | cut -f2- | \\"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9fb8cfa7_78a30401","side":"PARENT","line":1,"in_reply_to":"9fb8cfa7_5f5dd412","updated":"2019-06-14 14:14:19.000000000","message":"Because it\u0027s no longer true. There are quite a few manual entries in here that weren\u0027t generated this way. This probably should have been included in the commit message the first day and not here","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"redirectmatch 301 ^/nova/([^/]+)/vendordata.html$ /nova/$1/user/vendordata.html"},{"line_number":76,"context_line":"redirectmatch 301 ^/nova/([^/]+)/vmstates.html$ /nova/$1/reference/vm-states.html"},{"line_number":77,"context_line":"redirectmatch 301 ^/nova/([^/]+)/wsgi.html$ /nova/$1/user/wsgi.html"},{"line_number":78,"context_line":"redirectmatch 301 ^/nova/([^/]+)/user/cellsv2_layout.html$ /nova/$1/user/cellsv2-layout.html"},{"line_number":79,"context_line":"redirectmatch 301 ^/nova/latest/user/placement.html$ /placement/latest/"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9fb8cfa7_1fef5c1e","side":"PARENT","line":78,"updated":"2019-06-13 21:11:52.000000000","message":"I guess you moved these to keep things in order?","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":75,"context_line":"redirectmatch 301 ^/nova/([^/]+)/vendordata.html$ /nova/$1/user/vendordata.html"},{"line_number":76,"context_line":"redirectmatch 301 ^/nova/([^/]+)/vmstates.html$ /nova/$1/reference/vm-states.html"},{"line_number":77,"context_line":"redirectmatch 301 ^/nova/([^/]+)/wsgi.html$ /nova/$1/user/wsgi.html"},{"line_number":78,"context_line":"redirectmatch 301 ^/nova/([^/]+)/user/cellsv2_layout.html$ /nova/$1/user/cellsv2-layout.html"},{"line_number":79,"context_line":"redirectmatch 301 ^/nova/latest/user/placement.html$ /placement/latest/"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9fb8cfa7_b89dfcbc","side":"PARENT","line":78,"in_reply_to":"9fb8cfa7_1fef5c1e","updated":"2019-06-14 14:14:19.000000000","message":"Correct. Figured you\u0027d appreciate it too :)","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"}],"doc/source/admin/config-drive.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Configuration drives"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Configuration drives are special drives that are attached to an instance when it"},{"line_number":6,"context_line":"boots. The instance can mount this drive and read files from it to get"},{"line_number":7,"context_line":"information that is normally available through the metadata service."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_33e6d518","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":20},"updated":"2019-03-06 17:44:54.000000000","message":"Let me just say that I\u0027ve never heard anyone say this spelled out fully. So every time I read it in the following paragraphs it sounds super weird to me. Could be just me being a developer, but.. it\u0027s weird. In my very humble opinion, these are \"Config Drives\" not \"Configuration Drives\".","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Configuration drives"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Configuration drives are special drives that are attached to an instance when it"},{"line_number":6,"context_line":"boots. The instance can mount this drive and read files from it to get"},{"line_number":7,"context_line":"information that is normally available through the metadata service."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_a22b3a92","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":20},"in_reply_to":"5fc1f717_33e6d518","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"configuration when you do not use DHCP to assign IP addresses to instances. For"},{"line_number":11,"context_line":"example, you might pass the IP address configuration for the instance through"},{"line_number":12,"context_line":"the configuration drive, which the instance can mount and access before you"},{"line_number":13,"context_line":"configure the network settings for the instance."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Any modern guest operating system that is capable of mounting an ISO 9660 or"},{"line_number":16,"context_line":"VFAT file system can use the configuration drive."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_9313090e","line":13,"updated":"2019-03-06 17:44:54.000000000","message":"If you want to actually list some other reasons, one common one is load. If you run the openstack puppet providers in your instances, they hammer (the f**k out of) the metadata servers every fifteen minutes, simultaneously for every instance you have. They\u0027re just checking in, and building facts, but it\u0027s not insignificant load. With config-drive, that becomes a local (cached) disk read.\n\nAlso, it means that you\u0027re not dependent on the metadata service being up, reachable, or performing well to do things like reboot your instance that runs cloud-init at the beginning.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":10,"context_line":"configuration when you do not use DHCP to assign IP addresses to instances. For"},{"line_number":11,"context_line":"example, you might pass the IP address configuration for the instance through"},{"line_number":12,"context_line":"the configuration drive, which the instance can mount and access before you"},{"line_number":13,"context_line":"configure the network settings for the instance."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Any modern guest operating system that is capable of mounting an ISO 9660 or"},{"line_number":16,"context_line":"VFAT file system can use the configuration drive."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_e22142b6","line":13,"in_reply_to":"5fc1f717_9313090e","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  :command:`qemu-img` command installation."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"- To use configuration drive with PowerVM or the Bare Metal service, you do not"},{"line_number":45,"context_line":"  need to prepare anything because these treat the configuration drive properly."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. rubric:: Image requirements"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_73277d66","line":45,"range":{"start_line":45,"start_character":41,"end_line":45,"end_character":46},"updated":"2019-03-06 17:44:54.000000000","message":"This seems like an odd word to use. Maybe just \"handle the config drive without any additional configuration\" ?","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  :command:`qemu-img` command installation."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"- To use configuration drive with PowerVM or the Bare Metal service, you do not"},{"line_number":45,"context_line":"  need to prepare anything because these treat the configuration drive properly."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. rubric:: Image requirements"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_421a967d","line":45,"range":{"start_line":45,"start_character":41,"end_line":45,"end_character":46},"in_reply_to":"5fc1f717_73277d66","updated":"2019-03-07 16:18:24.000000000","message":"This was mostly copy-paste, but I just removed this piece.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"image does not have the cloud-init package installed, you must customize the"},{"line_number":54,"context_line":"image to run a script that mounts the configuration drive on boot, reads the"},{"line_number":55,"context_line":"data from the drive, and takes appropriate action such as adding the public key"},{"line_number":56,"context_line":"to an account. You can read more details about how data is organized on the"},{"line_number":57,"context_line":"configuration drive."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_73b53dee","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":32},"updated":"2019-03-06 17:44:54.000000000","message":"Where? :)","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":53,"context_line":"image does not have the cloud-init package installed, you must customize the"},{"line_number":54,"context_line":"image to run a script that mounts the configuration drive on boot, reads the"},{"line_number":55,"context_line":"data from the drive, and takes appropriate action such as adding the public key"},{"line_number":56,"context_line":"to an account. You can read more details about how data is organized on the"},{"line_number":57,"context_line":"configuration drive."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_c5121059","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":32},"in_reply_to":"5fc1f717_73b53dee","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    force_config_drive \u003d True"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    [api]"},{"line_number":89,"context_line":"    config_drive_skip_versions \u003d 2018-08-27,2017-02-22"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":".. note::"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_13c63969","line":89,"updated":"2019-03-06 17:44:54.000000000","message":"Huh, I didn\u0027t know about this. And also.. How odd.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Config drives are special drives that are attached to an instance when it boots."},{"line_number":12,"context_line":"The instance can mount this drive and read files from it to get information that"},{"line_number":13,"context_line":"is normally available through the metadata service."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"There are many use cases for the config drive. One such use case is to pass a"},{"line_number":16,"context_line":"networking configuration when you do not use DHCP to assign IP addresses to"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_1fd8bc78","line":13,"range":{"start_line":13,"start_character":34,"end_line":13,"end_character":50},"updated":"2019-06-13 21:11:52.000000000","message":"Seems you could link to https://review.opendev.org/#/c/640730/7/doc/source/admin/metadata-service.rst here right?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Config drives are special drives that are attached to an instance when it boots."},{"line_number":12,"context_line":"The instance can mount this drive and read files from it to get information that"},{"line_number":13,"context_line":"is normally available through the metadata service."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"There are many use cases for the config drive. One such use case is to pass a"},{"line_number":16,"context_line":"networking configuration when you do not use DHCP to assign IP addresses to"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_18a52847","line":13,"range":{"start_line":13,"start_character":34,"end_line":13,"end_character":50},"in_reply_to":"9fb8cfa7_1fd8bc78","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"reason to use config drives is load. If running something like the OpenStack"},{"line_number":21,"context_line":"puppet providers in your instances, they can hit the :doc:`metadata servers"},{"line_number":22,"context_line":"\u003c/admin/metadata-service\u003e` every fifteen minutes, simultaneously for every"},{"line_number":23,"context_line":"instance you have. They\u0027re just checking in, and building facts, but it\u0027s not"},{"line_number":24,"context_line":"insignificant load. With a config drive, that becomes a local (cached) disk"},{"line_number":25,"context_line":"read. Finally, using a config drive means you\u0027re not dependent on the metadata"},{"line_number":26,"context_line":"service being up, reachable, or performing well to do things like reboot your"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_3fbee0fe","line":23,"range":{"start_line":23,"start_character":19,"end_line":23,"end_character":26},"updated":"2019-06-13 21:11:52.000000000","message":"nit: avoid contractions in docs for non-native English speakers.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"reason to use config drives is load. If running something like the OpenStack"},{"line_number":21,"context_line":"puppet providers in your instances, they can hit the :doc:`metadata servers"},{"line_number":22,"context_line":"\u003c/admin/metadata-service\u003e` every fifteen minutes, simultaneously for every"},{"line_number":23,"context_line":"instance you have. They\u0027re just checking in, and building facts, but it\u0027s not"},{"line_number":24,"context_line":"insignificant load. With a config drive, that becomes a local (cached) disk"},{"line_number":25,"context_line":"read. Finally, using a config drive means you\u0027re not dependent on the metadata"},{"line_number":26,"context_line":"service being up, reachable, or performing well to do things like reboot your"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_98b9187a","line":23,"range":{"start_line":23,"start_character":19,"end_line":23,"end_character":26},"in_reply_to":"9fb8cfa7_3fbee0fe","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Any modern guest operating system that is capable of mounting an ISO 9660 or"},{"line_number":30,"context_line":"VFAT file system can use the config drive."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Requirements and guidelines"},{"line_number":34,"context_line":"---------------------------"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_df5b04f3","line":32,"updated":"2019-06-13 21:11:52.000000000","message":"It might be better for the user docs about config drive, but there are several limitations with config drive as well particularly with certain move operations where the server gets rebuilt on another host and the config drive gets rebuilt as well so you could be missing some things like personality files (though we have tried to steer people away from personality files). That said, using the metadata API isn\u0027t fool-proof either because in some cases we transfer to config drive (cold migrate/resize) to the dest host so you won\u0027t lose personality files, but with the metadata API you would since we don\u0027t persist personality files. I\u0027m just doing a brain dump and it\u0027s maybe worth reporting a bug for adding some document somewhere about the pros/cons of metadata API vs config drive based on use case.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. rubric:: Compute host requirements"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The following hypervisors support the config drive: libvirt, XenServer, Hyper-V,"},{"line_number":42,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":43,"context_line":"the config drive."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5ffcf4b3","line":41,"updated":"2019-06-13 21:11:52.000000000","message":"This seems like information for the feature support matrix and I\u0027m surprised we don\u0027t have an entry for that already:\n\nhttps://docs.openstack.org/nova/latest/user/support-matrix.html\n\nAlso, doesn\u0027t the zVM driver support config drive somehow?\n\nhttps://github.com/openstack/nova/blob/0919ea6390e24ee359106ef76b922ec5a4e7a013/nova/virt/zvm/driver.py#L160","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  install the :command:`genisoimage` package on each compute host. Use the"},{"line_number":47,"context_line":"  :oslo.config:option:`mkisofs_cmd` config option to set the path where you"},{"line_number":48,"context_line":"  install the :command:`genisoimage` program. If :command:`genisoimage` is in"},{"line_number":49,"context_line":"  same path as the :program:`nova-compute` service, you do not need to set this"},{"line_number":50,"context_line":"  flag."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- To use config drives with Hyper-V, you must set the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_ffd5a81c","line":49,"range":{"start_line":49,"start_character":2,"end_line":49,"end_character":6},"updated":"2019-06-13 21:11:52.000000000","message":"the same path","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  install the :command:`genisoimage` package on each compute host. Use the"},{"line_number":47,"context_line":"  :oslo.config:option:`mkisofs_cmd` config option to set the path where you"},{"line_number":48,"context_line":"  install the :command:`genisoimage` program. If :command:`genisoimage` is in"},{"line_number":49,"context_line":"  same path as the :program:`nova-compute` service, you do not need to set this"},{"line_number":50,"context_line":"  flag."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- To use config drives with Hyper-V, you must set the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_73a32701","line":49,"range":{"start_line":49,"start_character":2,"end_line":49,"end_character":6},"in_reply_to":"9fb8cfa7_ffd5a81c","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. rubric:: Image requirements"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"An image built with a recent version of the cloud-init package can automatically"},{"line_number":64,"context_line":"access metadata passed through the config drive. The cloud-init package version"},{"line_number":65,"context_line":"0.7.1 works with Ubuntu, Fedora based images (such as Red Hat Enterprise Linux)"},{"line_number":66,"context_line":"and openSUSE based images (such as SUSE Linux Enterprise Server). If an image"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_dfdea43c","line":63,"range":{"start_line":63,"start_character":44,"end_line":63,"end_character":54},"updated":"2019-06-13 21:11:52.000000000","message":"nit: maybe we should link to https://cloudinit.readthedocs.io/en/latest/","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. rubric:: Image requirements"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"An image built with a recent version of the cloud-init package can automatically"},{"line_number":64,"context_line":"access metadata passed through the config drive. The cloud-init package version"},{"line_number":65,"context_line":"0.7.1 works with Ubuntu, Fedora based images (such as Red Hat Enterprise Linux)"},{"line_number":66,"context_line":"and openSUSE based images (such as SUSE Linux Enterprise Server). If an image"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3b6373e","line":63,"range":{"start_line":63,"start_character":44,"end_line":63,"end_character":54},"in_reply_to":"9fb8cfa7_dfdea43c","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"If using the libvirt compute driver, the following additional options are"},{"line_number":84,"context_line":"supported:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"- :oslo.config:option:`config_drive_format`"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If using the HyperV compute driver, the following additional options are"},{"line_number":89,"context_line":"supported:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_9f926c56","line":86,"updated":"2019-06-13 21:11:52.000000000","message":"I\u0027m not sure this is just restricted to the libvirt driver...I think it\u0027s used generically isn\u0027t it?\n\nhttps://github.com/openstack/nova/blob/0919ea6390e24ee359106ef76b922ec5a4e7a013/nova/virt/configdrive.py#L141","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"If using the libvirt compute driver, the following additional options are"},{"line_number":84,"context_line":"supported:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"- :oslo.config:option:`config_drive_format`"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If using the HyperV compute driver, the following additional options are"},{"line_number":89,"context_line":"supported:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d3d7734a","line":86,"in_reply_to":"9fb8cfa7_9f926c56","updated":"2019-06-14 14:14:19.000000000","message":"Hmm, good point. The references to libvirt in the help text threw me. Removed the previous lines","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"For example, to ensure nova always provides a config drive to instances but"},{"line_number":94,"context_line":"versions ``2018-08-27`` (Rocky) and ``2017-02-22`` (Ocata) are skipped, add the"},{"line_number":95,"context_line":"following to :file:`nova-compute.ini`:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":".. code-block:: ini"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_df854408","line":95,"range":{"start_line":95,"start_character":13,"end_line":95,"end_character":38},"updated":"2019-06-13 21:11:52.000000000","message":"nova.conf?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"For example, to ensure nova always provides a config drive to instances but"},{"line_number":94,"context_line":"versions ``2018-08-27`` (Rocky) and ``2017-02-22`` (Ocata) are skipped, add the"},{"line_number":95,"context_line":"following to :file:`nova-compute.ini`:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":".. code-block:: ini"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5395c385","line":95,"range":{"start_line":95,"start_character":13,"end_line":95,"end_character":38},"in_reply_to":"9fb8cfa7_df854408","updated":"2019-06-14 14:14:19.000000000","message":"Yeah, not sure what this was about","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    force_config_drive \u003d True"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    [api]"},{"line_number":103,"context_line":"    config_drive_skip_versions \u003d 2018-08-27,2017-02-22"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. note::"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_1f951c33","line":103,"range":{"start_line":103,"start_character":43,"end_line":103,"end_character":44},"updated":"2019-06-13 21:11:52.000000000","message":"This is wrong - the option says it\u0027s supposed to be space-separated rather than comma-separated:\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#api.config_drive_skip_versions","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    force_config_drive \u003d True"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    [api]"},{"line_number":103,"context_line":"    config_drive_skip_versions \u003d 2018-08-27,2017-02-22"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. note::"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d3ee9320","line":103,"range":{"start_line":103,"start_character":43,"end_line":103,"end_character":44},"in_reply_to":"9fb8cfa7_1f951c33","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":20754,"name":"Donny Davis","email":"donny@fortnebula.com","username":"donnydavis"},"change_message_id":"ae71783d02f68a3c61de4f1b6c05a3b8dd798821","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rubric:: Compute host requirements"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following hypervisors support the config drive: libvirt, XenServer, Hyper-V,"},{"line_number":43,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":44,"context_line":"the config drive."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_d6e43c3e","line":42,"range":{"start_line":42,"start_character":52,"end_line":42,"end_character":59},"updated":"2019-06-14 18:29:48.000000000","message":"The linux hypervisor KVM is what is referenced in other places throughout the docs and calling it something different may confuse people\n\nKVM ?","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rubric:: Compute host requirements"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following hypervisors support the config drive: libvirt, XenServer, Hyper-V,"},{"line_number":43,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":44,"context_line":"the config drive."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_623fae87","line":42,"range":{"start_line":42,"start_character":52,"end_line":42,"end_character":59},"in_reply_to":"9fb8cfa7_56db6c4d","updated":"2019-06-17 20:57:17.000000000","message":"This is just copied from elsewhere but this is talking about virt drivers so Eric\u0027s suggestion makes more sense here.","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e338e297d085b1379afe658dfb18c37a4223648a","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rubric:: Compute host requirements"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following hypervisors support the config drive: libvirt, XenServer, Hyper-V,"},{"line_number":43,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":44,"context_line":"the config drive."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_4ae921b5","line":42,"range":{"start_line":42,"start_character":52,"end_line":42,"end_character":59},"in_reply_to":"9fb8cfa7_623fae87","updated":"2019-06-20 17:27:43.000000000","message":"Done","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"14c750aadfdafd50e38d7398a94d4979c7873a5a","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rubric:: Compute host requirements"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following hypervisors support the config drive: libvirt, XenServer, Hyper-V,"},{"line_number":43,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":44,"context_line":"the config drive."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_56db6c4d","line":42,"range":{"start_line":42,"start_character":52,"end_line":42,"end_character":59},"in_reply_to":"9fb8cfa7_d6e43c3e","updated":"2019-06-14 18:32:22.000000000","message":"or s/hypervisors/virt drivers/ ?","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":20754,"name":"Donny Davis","email":"donny@fortnebula.com","username":"donnydavis"},"change_message_id":"ae71783d02f68a3c61de4f1b6c05a3b8dd798821","unresolved":false,"context_lines":[{"line_number":43,"context_line":"VMware, and (since 17.0.0 Queens) PowerVM. The Bare Metal service also supports"},{"line_number":44,"context_line":"the config drive."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"- To use config drives with libvirt, XenServer, or VMware, you must first"},{"line_number":47,"context_line":"  install the :command:`genisoimage` package on each compute host. Use the"},{"line_number":48,"context_line":"  :oslo.config:option:`mkisofs_cmd` config option to set the path where you"},{"line_number":49,"context_line":"  install the :command:`genisoimage` program. If :command:`genisoimage` is in"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_d6bd1c02","line":46,"range":{"start_line":46,"start_character":28,"end_line":46,"end_character":35},"updated":"2019-06-14 18:29:48.000000000","message":"Same as above -  KVM?","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"}],"doc/source/admin/metadata-service.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"The metadata service"},{"line_number":21,"context_line":"--------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The metadata API service is responsible for serving all metadata API requests."},{"line_number":24,"context_line":"It can be run globally, as part of the :program:`nova-api` service, or on a"},{"line_number":25,"context_line":"per-cell basis, as part of the standalone :program:`nova-api-metadata` service."},{"line_number":26,"context_line":"A detailed comparison is provided in the :ref:`cells V2 guide"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_d38e712d","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":77},"updated":"2019-03-06 17:44:54.000000000","message":"This seems redundant, but also it\u0027s not necessarily true. If you\u0027re running a unified api server, that handles REST and metadata API functions and there is no standalone metadata service.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":20,"context_line":"The metadata service"},{"line_number":21,"context_line":"--------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The metadata API service is responsible for serving all metadata API requests."},{"line_number":24,"context_line":"It can be run globally, as part of the :program:`nova-api` service, or on a"},{"line_number":25,"context_line":"per-cell basis, as part of the standalone :program:`nova-api-metadata` service."},{"line_number":26,"context_line":"A detailed comparison is provided in the :ref:`cells V2 guide"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_454dc070","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":77},"in_reply_to":"5fc1f717_d38e712d","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"It can be run globally, as part of the :program:`nova-api` service, or on a"},{"line_number":25,"context_line":"per-cell basis, as part of the standalone :program:`nova-api-metadata` service."},{"line_number":26,"context_line":"A detailed comparison is provided in the :ref:`cells V2 guide"},{"line_number":27,"context_line":"\u003ccells-v2-layout-metadata-api\u003e` but, in summary, the former should be used"},{"line_number":28,"context_line":"except in large deployments where multiple cells are in use."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":".. versionchanged:: 19.0.0"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_539fe14f","line":28,"range":{"start_line":27,"start_character":49,"end_line":28,"end_character":27},"updated":"2019-03-06 17:44:54.000000000","message":"I dunno about this. I think a lot of people do (or have) run multiple metadata services closer to the compute nodes to solve availability concerns, and certainly people who strictly firewall their compute nodes (Yahoo, famously) would not allow computes to access the public API servers on principle.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":24,"context_line":"It can be run globally, as part of the :program:`nova-api` service, or on a"},{"line_number":25,"context_line":"per-cell basis, as part of the standalone :program:`nova-api-metadata` service."},{"line_number":26,"context_line":"A detailed comparison is provided in the :ref:`cells V2 guide"},{"line_number":27,"context_line":"\u003ccells-v2-layout-metadata-api\u003e` but, in summary, the former should be used"},{"line_number":28,"context_line":"except in large deployments where multiple cells are in use."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":".. versionchanged:: 19.0.0"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_457620a7","line":28,"range":{"start_line":27,"start_character":49,"end_line":28,"end_character":27},"in_reply_to":"5fc1f717_539fe14f","updated":"2019-03-07 16:18:24.000000000","message":"Fair. I just removed this summary.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   The ability to run the nova metadata API service on a per-cell basis was"},{"line_number":33,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":34,"context_line":"   standalone :program:`nova-api-metadata` service."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":37,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_f3ab6d72","line":34,"range":{"start_line":34,"start_character":43,"end_line":34,"end_character":50},"updated":"2019-03-06 17:44:54.000000000","message":"...for multiple cells?","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   The ability to run the nova metadata API service on a per-cell basis was"},{"line_number":33,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":34,"context_line":"   standalone :program:`nova-api-metadata` service."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":37,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_1913a1b7","line":34,"range":{"start_line":34,"start_character":43,"end_line":34,"end_character":50},"in_reply_to":"5fc1f717_f3ab6d72","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":34,"context_line":"   standalone :program:`nova-api-metadata` service."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":37,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"},{"line_number":38,"context_line":"which uniquely identify the source of the request before forwarding it to the"},{"line_number":39,"context_line":"metadata API server. For the Open vSwitch and Linux Bridge backends provided"},{"line_number":40,"context_line":"with neutron, the flow looks something like so:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_f3c4cd42","line":37,"range":{"start_line":36,"start_character":53,"end_line":37,"end_character":8},"updated":"2019-03-06 17:44:54.000000000","message":"This worked (very) differently with n-net. I wonder if it\u0027s worth a warning at the top that this document pertains only to neutron-based deployments and is not accurate for n-net? Purely because someone running an older (but distro-supported) release on n-net looking for this (very good) information about the critical service will turn this up on google.","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":33,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":34,"context_line":"   standalone :program:`nova-api-metadata` service."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":37,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"},{"line_number":38,"context_line":"which uniquely identify the source of the request before forwarding it to the"},{"line_number":39,"context_line":"metadata API server. For the Open vSwitch and Linux Bridge backends provided"},{"line_number":40,"context_line":"with neutron, the flow looks something like so:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_f90d7590","line":37,"range":{"start_line":36,"start_character":53,"end_line":37,"end_character":8},"in_reply_to":"5fc1f717_f3c4cd42","updated":"2019-03-07 16:18:24.000000000","message":"Done","commit_id":"2b526fa43a67eab8a11ff4deb708b5a243d5ad28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The metadata service can be run globally, as part of the :program:`nova-api`"},{"line_number":28,"context_line":"service, or on a per-cell basis, as part of the standalone"},{"line_number":29,"context_line":":program:`nova-api-metadata` service. A detailed comparison is provided in the"},{"line_number":30,"context_line":":ref:`cells V2 guide \u003ccells-v2-layout-metadata-api\u003e`."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. versionchanged:: 19.0.0"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_dfe8e4b3","line":29,"updated":"2019-06-13 21:11:52.000000000","message":"I think the actual service name is \"nova-metadata\" if you were to look in the services table, but it\u0027s confusing because we have lots of docs that talk about the nova-api-metadata service:\n\nhttps://docs.openstack.org/nova/latest/cli/nova-api-metadata.html","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The metadata service can be run globally, as part of the :program:`nova-api`"},{"line_number":28,"context_line":"service, or on a per-cell basis, as part of the standalone"},{"line_number":29,"context_line":":program:`nova-api-metadata` service. A detailed comparison is provided in the"},{"line_number":30,"context_line":":ref:`cells V2 guide \u003ccells-v2-layout-metadata-api\u003e`."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. versionchanged:: 19.0.0"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_22f776d7","line":29,"in_reply_to":"9fb8cfa7_334daf3d","updated":"2019-06-17 20:57:17.000000000","message":"I don\u0027t think calling it an application really clarifies things, I\u0027d probably refer to it as the nova-metadata service (and that gets more confusing because technically the service binary name for nova-api in the db is nova-osapi_compute).\n\nhttps://developer.openstack.org/api-guide/compute/general_info.html#administrator-concepts seems to have it right.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The metadata service can be run globally, as part of the :program:`nova-api`"},{"line_number":28,"context_line":"service, or on a per-cell basis, as part of the standalone"},{"line_number":29,"context_line":":program:`nova-api-metadata` service. A detailed comparison is provided in the"},{"line_number":30,"context_line":":ref:`cells V2 guide \u003ccells-v2-layout-metadata-api\u003e`."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. versionchanged:: 19.0.0"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_334daf3d","line":29,"in_reply_to":"9fb8cfa7_dfe8e4b3","updated":"2019-06-14 14:14:19.000000000","message":"Yeah, the script is called `nova-api-metadata` but the service identifies as `nova-metadata`. I\u0027ve replaced service with application to clarify things.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":36,"context_line":"   standalone :program:`nova-api-metadata` service for multiple cells."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":39,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"},{"line_number":40,"context_line":"which uniquely identify the source of the request before forwarding it to the"},{"line_number":41,"context_line":"metadata API server. For the Open vSwitch and Linux Bridge backends provided"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5fd4f4e8","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":5},"updated":"2019-06-13 21:11:52.000000000","message":"Hosts or guests?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   added in Stein. For versions prior to this release, you should not use the"},{"line_number":36,"context_line":"   standalone :program:`nova-api-metadata` service for multiple cells."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Hosts access the service at ``169.254.169.254``. The networking service,"},{"line_number":39,"context_line":"neutron, is responsible for intercepting these requests and adding HTTP headers"},{"line_number":40,"context_line":"which uniquely identify the source of the request before forwarding it to the"},{"line_number":41,"context_line":"metadata API server. For the Open vSwitch and Linux Bridge backends provided"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_53714375","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":5},"in_reply_to":"9fb8cfa7_5fd4f4e8","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":82,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":83,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":84,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_3f47c0be","line":84,"range":{"start_line":84,"start_character":23,"end_line":84,"end_character":34},"updated":"2019-06-13 21:11:52.000000000","message":"This is busted - it\u0027s in the `api` group now:\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#api.dhcp_domain\n\nThe docs fail to build for me because of this.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eaa3898917086b94054e55d860caf49429dc4537","unresolved":false,"context_lines":[{"line_number":81,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":82,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":83,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":84,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_3bdfd369","line":84,"range":{"start_line":84,"start_character":23,"end_line":84,"end_character":34},"updated":"2019-06-13 21:10:34.000000000","message":"looks like this needs to be api.dhcp_domain\n\n...failing build now since [1] merged.\n\n[1] https://review.opendev.org/#/c/480616/","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":82,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":83,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":84,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_13674bb9","line":84,"range":{"start_line":84,"start_character":23,"end_line":84,"end_character":34},"in_reply_to":"9fb8cfa7_3f47c0be","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    This list excludes configuration option related to the vendordata feature."},{"line_number":89,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":90,"context_line":"    information on configuring this."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5f42b4ac","line":88,"range":{"start_line":88,"start_character":37,"end_line":88,"end_character":43},"updated":"2019-06-13 21:11:52.000000000","message":"options","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    metadata_listen \u003d 0.0.0.0"},{"line_number":102,"context_line":"    metadata_listen_port \u003d 0"},{"line_number":103,"context_line":"    metadata_workers \u003d 4"},{"line_number":104,"context_line":"    dhcp_domain \u003d"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron]"},{"line_number":107,"context_line":"    service_metadata_proxy \u003d True"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7f2a18db","line":104,"updated":"2019-06-13 21:11:52.000000000","message":"This goes in [api] now.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    metadata_listen \u003d 0.0.0.0"},{"line_number":102,"context_line":"    metadata_listen_port \u003d 0"},{"line_number":103,"context_line":"    metadata_workers \u003d 4"},{"line_number":104,"context_line":"    dhcp_domain \u003d"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron]"},{"line_number":107,"context_line":"    service_metadata_proxy \u003d True"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_53f623d9","line":104,"in_reply_to":"9fb8cfa7_7f2a18db","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Configuring the service to use the ``DynamicJSON`` vendordata provider is more"},{"line_number":123,"context_line":"involved and is not covered here."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The :program:`nova-metadata-api` service accepts almost the same options:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"- :oslo.config:option:`neutron.service_metadata_proxy`"},{"line_number":128,"context_line":"- :oslo.config:option:`neutron.metadata_proxy_shared_secret`"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_df8464d5","line":125,"range":{"start_line":125,"start_character":14,"end_line":125,"end_character":31},"updated":"2019-06-13 21:11:52.000000000","message":"It\u0027s nova-api-metadata above, and nova-metadata in code...","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Configuring the service to use the ``DynamicJSON`` vendordata provider is more"},{"line_number":123,"context_line":"involved and is not covered here."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The :program:`nova-metadata-api` service accepts almost the same options:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"- :oslo.config:option:`neutron.service_metadata_proxy`"},{"line_number":128,"context_line":"- :oslo.config:option:`neutron.metadata_proxy_shared_secret`"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7326c76a","line":125,"range":{"start_line":125,"start_character":14,"end_line":125,"end_character":31},"in_reply_to":"9fb8cfa7_df8464d5","updated":"2019-06-14 14:14:19.000000000","message":"I\u0027ve replaced service with application to clarify things (I\u0027m talking about the script)","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eaa3898917086b94054e55d860caf49429dc4537","unresolved":false,"context_lines":[{"line_number":129,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":130,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":131,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":132,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5bdac777","line":132,"range":{"start_line":132,"start_character":23,"end_line":132,"end_character":34},"updated":"2019-06-13 21:10:34.000000000","message":"ditto","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":129,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":130,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":131,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":132,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7f6f782a","line":132,"updated":"2019-06-13 21:11:52.000000000","message":"same issue, api.dhcp_domain","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"- :oslo.config:option:`api.metadata_cache_expiration`"},{"line_number":130,"context_line":"- :oslo.config:option:`api.use_forwarded_for`"},{"line_number":131,"context_line":"- :oslo.config:option:`api.local_metadata_per_cell`"},{"line_number":132,"context_line":"- :oslo.config:option:`dhcp_domain`"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_93dedb3b","line":132,"in_reply_to":"9fb8cfa7_7f6f782a","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    This list excludes configuration option related to the vendordata feature."},{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_9f6a6c17","line":136,"range":{"start_line":136,"start_character":37,"end_line":136,"end_character":43},"updated":"2019-06-13 21:11:52.000000000","message":"options","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    This list excludes configuration option related to the vendordata feature."},{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3ee37eb","line":136,"range":{"start_line":136,"start_character":37,"end_line":136,"end_character":43},"in_reply_to":"9fb8cfa7_9f6a6c17","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"For example, to configure the :program:`nova-metadata-api` service to serve the"},{"line_number":141,"context_line":"metadata API, without SSL, add the following to a :file:`nova-api.conf` file:"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_bf5ad07f","line":140,"range":{"start_line":140,"start_character":30,"end_line":140,"end_character":59},"updated":"2019-06-13 21:11:52.000000000","message":"ditto","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"For example, to configure the :program:`nova-metadata-api` service to serve the"},{"line_number":141,"context_line":"metadata API, without SSL, add the following to a :file:`nova-api.conf` file:"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_13eaebd6","line":140,"range":{"start_line":140,"start_character":30,"end_line":140,"end_character":59},"in_reply_to":"9fb8cfa7_bf5ad07f","updated":"2019-06-14 14:14:19.000000000","message":"As above, s/service/application/","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    metadata_listen \u003d 0.0.0.0"},{"line_number":147,"context_line":"    metadata_listen_port \u003d 0"},{"line_number":148,"context_line":"    metadata_workers \u003d 4"},{"line_number":149,"context_line":"    dhcp_domain \u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    [neutron]"},{"line_number":152,"context_line":"    service_metadata_proxy \u003d True"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_3f4ee0c0","line":149,"updated":"2019-06-13 21:11:52.000000000","message":"same","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    metadata_listen \u003d 0.0.0.0"},{"line_number":147,"context_line":"    metadata_listen_port \u003d 0"},{"line_number":148,"context_line":"    metadata_workers \u003d 4"},{"line_number":149,"context_line":"    dhcp_domain \u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    [neutron]"},{"line_number":152,"context_line":"    service_metadata_proxy \u003d True"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b3be7fd2","line":149,"in_reply_to":"9fb8cfa7_3f4ee0c0","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"Vendordata"},{"line_number":180,"context_line":"----------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7fdd38de","line":182,"range":{"start_line":182,"start_character":40,"end_line":182,"end_character":41},"updated":"2019-06-13 21:11:52.000000000","message":"I would nix this.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":179,"context_line":"Vendordata"},{"line_number":180,"context_line":"----------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d3c1b355","line":182,"range":{"start_line":182,"start_character":40,"end_line":182,"end_character":41},"in_reply_to":"9fb8cfa7_7fdd38de","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_9f010c3b","line":184,"range":{"start_line":184,"start_character":53,"end_line":184,"end_character":65},"updated":"2019-06-13 21:11:52.000000000","message":"Did you mean /admin/vendordata?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":180,"context_line":"----------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_bfe8907b","line":184,"range":{"start_line":183,"start_character":11,"end_line":184,"end_character":8},"updated":"2019-06-13 21:11:52.000000000","message":"Well, it also shows up in the config drive (it\u0027s confusing because it\u0027s going through the same metadata API code but not via the actual service REST API). Maybe that\u0027s implied here, but it could be confused.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d3a693c1","line":184,"range":{"start_line":184,"start_character":53,"end_line":184,"end_character":65},"in_reply_to":"9fb8cfa7_9f010c3b","updated":"2019-06-14 14:14:19.000000000","message":"I did. Corrected.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":180,"context_line":"----------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Vendordata provides a way to pass vendor- or deployment-specific information to"},{"line_number":183,"context_line":"instances. When configured, this information is exposed via the metadata"},{"line_number":184,"context_line":"service. For more information, refer to :doc:`/admin/config-drive` and the"},{"line_number":185,"context_line":":ref:`user guide \u003cmetadata-vendordata\u003e`."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3aab76e","line":184,"range":{"start_line":183,"start_character":11,"end_line":184,"end_character":8},"in_reply_to":"9fb8cfa7_bfe8907b","updated":"2019-06-14 14:14:19.000000000","message":"\u003e Well, it also shows up in the config drive (it\u0027s confusing because\n \u003e it\u0027s going through the same metadata API code but not via the\n \u003e actual service REST API). Maybe that\u0027s implied here, but it could\n \u003e be confused.\n\nI just removed the sentence as with below","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":189,"context_line":"---------"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"User data is a blob of data that the user can specify when they launch an"},{"line_number":192,"context_line":"instance. This information is exposed via the metadata API."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"For more information, refer to :ref:`the user guide \u003cmetadata-userdata\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_dfa0e444","line":192,"range":{"start_line":192,"start_character":46,"end_line":192,"end_character":58},"updated":"2019-06-13 21:11:52.000000000","message":"Again, this is slightly confusing because the user can get the user data into their instance via the metadata API service (REST API) or config drive. The user guide referenced below says that as well. Maybe it would be best to just remove this sentence?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":189,"context_line":"---------"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"User data is a blob of data that the user can specify when they launch an"},{"line_number":192,"context_line":"instance. This information is exposed via the metadata API."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"For more information, refer to :ref:`the user guide \u003cmetadata-userdata\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_939a5b5f","line":192,"range":{"start_line":192,"start_character":46,"end_line":192,"end_character":58},"in_reply_to":"9fb8cfa7_dfa0e444","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"For example, to configure the :program:`nova-metadata-api` application to serve"},{"line_number":141,"context_line":"the metadata API, without SSL, add the following to a :file:`nova-api.conf`"},{"line_number":142,"context_line":"file:"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_0217d2ef","line":140,"range":{"start_line":140,"start_character":40,"end_line":140,"end_character":57},"updated":"2019-06-17 20:57:17.000000000","message":"Still, we have now had 3 forms of this:\n\n* nova-metadata (the name of the service binary in the db)\n* nova-api-metadata (the script)\n* nova-metadata-api (I don\u0027t know what this is - a typo?)\n\nIf nova-metadata-api is a real thing we should refer to, then I think we probably need a short glossary somewhere to define nova-metadata, nova-api-metadata and nova-metadata-api because it\u0027s really confusing.","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e338e297d085b1379afe658dfb18c37a4223648a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    Refer to :doc:`vendordata feature documentation \u003c/admin/vendordata\u003e` for"},{"line_number":138,"context_line":"    information on configuring this."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"For example, to configure the :program:`nova-metadata-api` application to serve"},{"line_number":141,"context_line":"the metadata API, without SSL, add the following to a :file:`nova-api.conf`"},{"line_number":142,"context_line":"file:"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_0a67a953","line":140,"range":{"start_line":140,"start_character":40,"end_line":140,"end_character":57},"in_reply_to":"9fb8cfa7_0217d2ef","updated":"2019-06-20 17:27:43.000000000","message":"That\u0027s a typo, yeah. I\u0027ve gone and fixed these.","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"}],"doc/source/admin/support-compute.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":".. note::"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"   If you have not enabled the config drive and you want to make user-specified"},{"line_number":270,"context_line":"   files available from the metadata server for to improve performance and avoid"},{"line_number":271,"context_line":"   boot failure if injection fails, you must disable injection."},{"line_number":272,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5f8cf4d5","line":269,"updated":"2019-06-13 21:11:52.000000000","message":"nit: seems like unnecessary cleanup in this change, I would have just saved this for a separate patch that does that cleanup. Oh IDK, like the one you have on top of this change...\n\nhttps://review.opendev.org/#/c/641723/","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":".. note::"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"   If you have not enabled the config drive and you want to make user-specified"},{"line_number":270,"context_line":"   files available from the metadata server for to improve performance and avoid"},{"line_number":271,"context_line":"   boot failure if injection fails, you must disable injection."},{"line_number":272,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_6e07be19","line":269,"in_reply_to":"9fb8cfa7_5f8cf4d5","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eaa3898917086b94054e55d860caf49429dc4537","unresolved":false,"context_lines":[{"line_number":267,"context_line":".. note::"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"   If you have not enabled the config drive and you want to make user-specified"},{"line_number":270,"context_line":"   files available from the metadata server for to improve performance and avoid"},{"line_number":271,"context_line":"   boot failure if injection fails, you must disable injection."},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_13bbddc4","line":270,"range":{"start_line":270,"start_character":75,"end_line":270,"end_character":80},"updated":"2019-06-13 21:10:34.000000000","message":"wrap","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":267,"context_line":".. note::"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"   If you have not enabled the config drive and you want to make user-specified"},{"line_number":270,"context_line":"   files available from the metadata server for to improve performance and avoid"},{"line_number":271,"context_line":"   boot failure if injection fails, you must disable injection."},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_ce04aa17","line":270,"range":{"start_line":270,"start_character":75,"end_line":270,"end_character":80},"in_reply_to":"9fb8cfa7_13bbddc4","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":267,"context_line":".. note::"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"   If you have not enabled the configuration drive and you want to make"},{"line_number":270,"context_line":"   user-specified files available from the metadata server for to improve"},{"line_number":271,"context_line":"   performance and avoid boot failure if injection fails, you must disable"},{"line_number":272,"context_line":"   injection."},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_42e2aa03","line":270,"range":{"start_line":270,"start_character":59,"end_line":270,"end_character":62},"updated":"2019-06-17 20:57:17.000000000","message":"nix this","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"}],"doc/source/admin/vendordata.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":8,"context_line":"   For end-user information about the vendordata feature and instance metadata"},{"line_number":9,"context_line":"   in general, refer to the :doc:`user guide \u003c/user/metadata\u003e`."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The *vendordata* feature provides a way to pass vendor- or deployment-specific"},{"line_number":12,"context_line":"information to instances. This can be accessed by users using :doc:`the metadata"},{"line_number":13,"context_line":"service \u003c/admin/metadata-service\u003e` or with :doc:`config drives"},{"line_number":14,"context_line":"\u003c/admin/config-drive\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_1fc43cf4","line":11,"range":{"start_line":11,"start_character":54,"end_line":11,"end_character":55},"updated":"2019-06-13 21:11:52.000000000","message":"Again I\u0027d nix this.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":8,"context_line":"   For end-user information about the vendordata feature and instance metadata"},{"line_number":9,"context_line":"   in general, refer to the :doc:`user guide \u003c/user/metadata\u003e`."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The *vendordata* feature provides a way to pass vendor- or deployment-specific"},{"line_number":12,"context_line":"information to instances. This can be accessed by users using :doc:`the metadata"},{"line_number":13,"context_line":"service \u003c/admin/metadata-service\u003e` or with :doc:`config drives"},{"line_number":14,"context_line":"\u003c/admin/config-drive\u003e`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b3df5f0b","line":11,"range":{"start_line":11,"start_character":54,"end_line":11,"end_character":55},"in_reply_to":"9fb8cfa7_1fc43cf4","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":30,"context_line":"The service you must configure to enable the ``StaticJSON`` vendordata module"},{"line_number":31,"context_line":"depends on how guests are accessing vendordata. If using the metadata service,"},{"line_number":32,"context_line":"configuration applies to either :program:`nova-api` or"},{"line_number":33,"context_line":":program:`nova-metadata-api`, depending on the deployment, while if using config"},{"line_number":34,"context_line":"drives, configuration applies to :program:`nova-compute`. However, configuration"},{"line_number":35,"context_line":"is otherwise the same and the following options apply:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_bf6bb0ee","line":33,"range":{"start_line":33,"start_character":10,"end_line":33,"end_character":27},"updated":"2019-06-13 21:11:52.000000000","message":"Again we need to check the name of this.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"The service you must configure to enable the ``StaticJSON`` vendordata module"},{"line_number":31,"context_line":"depends on how guests are accessing vendordata. If using the metadata service,"},{"line_number":32,"context_line":"configuration applies to either :program:`nova-api` or"},{"line_number":33,"context_line":":program:`nova-metadata-api`, depending on the deployment, while if using config"},{"line_number":34,"context_line":"drives, configuration applies to :program:`nova-compute`. However, configuration"},{"line_number":35,"context_line":"is otherwise the same and the following options apply:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_a2ba86de","line":33,"range":{"start_line":33,"start_character":10,"end_line":33,"end_character":27},"in_reply_to":"9fb8cfa7_33d36f06","updated":"2019-06-17 20:57:17.000000000","message":"But it\u0027s nova-api-metadata elsewhere...","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"The service you must configure to enable the ``StaticJSON`` vendordata module"},{"line_number":31,"context_line":"depends on how guests are accessing vendordata. If using the metadata service,"},{"line_number":32,"context_line":"configuration applies to either :program:`nova-api` or"},{"line_number":33,"context_line":":program:`nova-metadata-api`, depending on the deployment, while if using config"},{"line_number":34,"context_line":"drives, configuration applies to :program:`nova-compute`. However, configuration"},{"line_number":35,"context_line":"is otherwise the same and the following options apply:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_33d36f06","line":33,"range":{"start_line":33,"start_character":10,"end_line":33,"end_character":27},"in_reply_to":"9fb8cfa7_bf6bb0ee","updated":"2019-06-14 14:14:19.000000000","message":"It\u0027s correct here since I\u0027m referring to the executable rather than the service identifier.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"As with ``StaticJSON``, the service you must configure to enable the"},{"line_number":116,"context_line":"``DynamicJSON`` vendordata module depends on how guests are accessing"},{"line_number":117,"context_line":"vendordata. If using the metadata service, configuration applies to either"},{"line_number":118,"context_line":":program:`nova-api` or :program:`nova-metadata-api`, depending on the"},{"line_number":119,"context_line":"deployment, while if using configuration drives, configuration applies to"},{"line_number":120,"context_line":":program:`nova-compute`. However, configuration is otherwise the same and the"},{"line_number":121,"context_line":"following options apply:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7f10d857","line":118,"range":{"start_line":118,"start_character":23,"end_line":118,"end_character":51},"updated":"2019-06-13 21:11:52.000000000","message":"same","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"},{"line_number":138,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.certfile`"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_db047717","line":135,"range":{"start_line":135,"start_character":40,"end_line":135,"end_character":78},"updated":"2019-06-13 21:11:52.000000000","message":"Ugh, why not just link to https://docs.openstack.org/nova/latest/configuration/config.html#vendordata-dynamic-auth ? Then we don\u0027t have to try and mirror that list if it changes for additions/removals/renames.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"},{"line_number":138,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.certfile`"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_d330d358","line":135,"range":{"start_line":135,"start_character":40,"end_line":135,"end_character":78},"in_reply_to":"9fb8cfa7_db047717","updated":"2019-06-14 14:14:19.000000000","message":"While this service happens to have most things nicely grouped, that\u0027s not always the case. I realize duplication isn\u0027t nice but there\u0027s value in having everything grouped in one place. I\u0027d like to keep this, if that\u0027s okay","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a3d320949e2bf1547c9ee6edd97a6685cf43a4f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"drive \u003c/admin/config-drive\u003e` documentation for more information on how to"},{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_e2c71e64","line":134,"updated":"2019-06-17 20:57:17.000000000","message":"I still don\u0027t like duplicating all of these here, and would rather just link to https://docs.openstack.org/nova/latest/configuration/config.html#vendordata-dynamic-auth. https://review.opendev.org/665751 is an example of where this goes sour.","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e338e297d085b1379afe658dfb18c37a4223648a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"drive \u003c/admin/config-drive\u003e` documentation for more information on how to"},{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_caa51149","line":134,"in_reply_to":"9fb8cfa7_e2c71e64","updated":"2019-06-20 17:27:43.000000000","message":"Still agree that it can go south, but this is a different issue to the one you\u0027ve linked. We should never document defaults anywhere other than in code as part of the config option because they do get out of date. However, if we rename or re-add any of these options, the build will break. The only issue we can run into is if a new configuration option is added and at that point we should probably be looking to add docs describing why it\u0027s necessary anyway.","commit_id":"7325d036159b45cd71f4120801947fb0cb188eea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c452d1b79302d95366c60cb81f57d4e872d907cd","unresolved":false,"context_lines":[{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"},{"line_number":138,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.certfile`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_f5d476bd","line":135,"updated":"2019-06-20 18:17:05.000000000","message":"I still really dislike listing all of the options here when you can just link to the group in the config docs and let the user go there if they want the information.\n\nPreviously you said, \"While this service happens to have most things nicely grouped, that\u0027s not always the case. I realize duplication isn\u0027t nice but there\u0027s value in having everything grouped in one place. I\u0027d like to keep this, if that\u0027s okay\" but what is the value add and does it outweigh the duplication?\n\nI\u0027d probably +2 this change if it weren\u0027t for this sticking point.","commit_id":"92a432fde7967f83e9c803c6a95b8f2893a6cc35"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dcfe3a95422f50f4fa1ce0bdca55960304b4cf74","unresolved":false,"context_lines":[{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"},{"line_number":138,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.certfile`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_cb50a961","line":135,"in_reply_to":"9fb8cfa7_2b62a53f","updated":"2019-06-21 09:59:30.000000000","message":"and if this does come back to bite us, please feel free to slap me on the wrist. I can clean up my own messes","commit_id":"92a432fde7967f83e9c803c6a95b8f2893a6cc35"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1bb932089238b5f65a99c392d97d4311999511f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"configure the required services."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"In addition, there are also many options related to authentication. These are"},{"line_number":135,"context_line":"provided by :keystone-doc:`keystone \u003c\u003e` but are listed below for completeness:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.cafile`"},{"line_number":138,"context_line":"- :oslo.config:option:`vendordata_dynamic_auth.certfile`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_2b62a53f","line":135,"in_reply_to":"9fb8cfa7_f5d476bd","updated":"2019-06-21 09:58:10.000000000","message":"The value is that a user can come to this doc and (hopefully, assuming I\u0027ve done a decent job) find everything they need to know about configuring the vendordata feature. I personally much rather this style of having a go to guide on feature than scattering things across multiple guides, since I find it\u0027s more discoverable (from Google and built-in navigation). \n\nIn addition, this document doesn\u0027t exist in isolation: I also have docs like [1] and [2]. The config options for those feature belong to multiple different groups so it\u0027s not possible to just link to a group there. It seems quite jarring to switch from a guide that lists all its config options like this to one that just links to a group for reasons. Maybe that\u0027s just me though?\n\nIf it would help, I could probably whip up a custom Sphinx directive that would automatically generate the below by inspecting the oslo.config group, but that seems like overkill for something that\u0027s very unlikely to change going forward (the vendordata plugins)\n\n[1] https://review.opendev.org/#/c/640730/9/doc/source/admin/config-drive.rst\n[2] https://review.opendev.org/#/c/640730/9/doc/source/admin/metadata-service.rst","commit_id":"92a432fde7967f83e9c803c6a95b8f2893a6cc35"}],"doc/source/user/cellsv2-layout.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eaa3898917086b94054e55d860caf49429dc4537","unresolved":false,"context_lines":[{"line_number":266,"context_line":"          counting of quota usage from the placement service and API database"},{"line_number":267,"context_line":"          to make quota usage calculations resilient to down or poor-performing"},{"line_number":268,"context_line":"          cells in a multi-cell environment. See the"},{"line_number":269,"context_line":"          :doc:`quotas documentation\u003cquotas\u003e` for more details."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Performance of listing instances"},{"line_number":272,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_9fc90c5a","line":269,"range":{"start_line":269,"start_character":35,"end_line":269,"end_character":37},"updated":"2019-06-13 21:10:34.000000000","message":"space needed here?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":266,"context_line":"          counting of quota usage from the placement service and API database"},{"line_number":267,"context_line":"          to make quota usage calculations resilient to down or poor-performing"},{"line_number":268,"context_line":"          cells in a multi-cell environment. See the"},{"line_number":269,"context_line":"          :doc:`quotas documentation\u003cquotas\u003e` for more details."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Performance of listing instances"},{"line_number":272,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_2e3ea6c0","line":269,"range":{"start_line":269,"start_character":35,"end_line":269,"end_character":37},"in_reply_to":"9fb8cfa7_7b0d4be6","updated":"2019-06-14 14:14:19.000000000","message":"Yeah, unrelated so I won\u0027t touch that here (it\u0027s already too big)","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"52861b6326f35e81c4d96ed0ae10aa16e6121590","unresolved":false,"context_lines":[{"line_number":266,"context_line":"          counting of quota usage from the placement service and API database"},{"line_number":267,"context_line":"          to make quota usage calculations resilient to down or poor-performing"},{"line_number":268,"context_line":"          cells in a multi-cell environment. See the"},{"line_number":269,"context_line":"          :doc:`quotas documentation\u003cquotas\u003e` for more details."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Performance of listing instances"},{"line_number":272,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7b0d4be6","line":269,"range":{"start_line":269,"start_character":35,"end_line":269,"end_character":37},"in_reply_to":"9fb8cfa7_9fc90c5a","updated":"2019-06-13 21:14:20.000000000","message":"[Later] Seems to render fine, shrug.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":314,"context_line":"choose to run it per cell, you should also configure each"},{"line_number":315,"context_line":":neutron-doc:`neutron-metadata-agent"},{"line_number":316,"context_line":"\u003cconfiguration/metadata-agent.html?#DEFAULT.nova_metadata_host\u003e` service to"},{"line_number":317,"context_line":"point to the corresponding :program:`nova-metadata-api`. The nova metadata API"},{"line_number":318,"context_line":"service **must** be run as a standalone service, using the"},{"line_number":319,"context_line":":program:`nova-api-metadata` service, in this case."},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_dba0f7f6","line":317,"range":{"start_line":317,"start_character":27,"end_line":317,"end_character":55},"updated":"2019-06-13 21:11:52.000000000","message":"Ugh again this is different from above, I wish we\u0027d sort this out, but it could be separate cleanup.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":314,"context_line":"choose to run it per cell, you should also configure each"},{"line_number":315,"context_line":":neutron-doc:`neutron-metadata-agent"},{"line_number":316,"context_line":"\u003cconfiguration/metadata-agent.html?#DEFAULT.nova_metadata_host\u003e` service to"},{"line_number":317,"context_line":"point to the corresponding :program:`nova-metadata-api`. The nova metadata API"},{"line_number":318,"context_line":"service **must** be run as a standalone service, using the"},{"line_number":319,"context_line":":program:`nova-api-metadata` service, in this case."},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7381e7c2","line":317,"range":{"start_line":317,"start_character":27,"end_line":317,"end_character":55},"in_reply_to":"9fb8cfa7_dba0f7f6","updated":"2019-06-14 14:14:19.000000000","message":"Whoops, fixed. As an aside, it\u0027s really annoying that Sphinx doesn\u0027t cross-reference the \u0027program\u0027 role even though it does cross-reference the \u0027option\u0027 role","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"}],"doc/source/user/config-drive.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9d84b26f109a40a49eb3125ab6371a2f1496cbd5","unresolved":false,"context_lines":[{"line_number":125,"context_line":"      # mkdir -p /mnt/config"},{"line_number":126,"context_line":"      # mount /dev/disk/by-label/config-2 /mnt/config"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. note::"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"   Ensure that you use at least version 0.3.1 of CirrOS for"},{"line_number":131,"context_line":"   configuration drive support."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"   If your guest operating system does not use ``udev``, the"},{"line_number":134,"context_line":"   ``/dev/disk/by-label`` directory is not present."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"   You can use the :command:`blkid` command to identify the block device that"},{"line_number":137,"context_line":"   corresponds to the configuration drive. For example, when you boot"},{"line_number":138,"context_line":"   the CirrOS image with the ``m1.tiny`` flavor, the device is ``/dev/vdb``:"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"   .. code-block:: console"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"      # blkid -t LABEL\u003d\"config-2\" -odevice"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"   .. code-block:: console"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"      /dev/vdb"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"   Once identified, you can mount the device:"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"   .. code-block:: console"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"      # mkdir -p /mnt/config"},{"line_number":153,"context_line":"      # mount /dev/vdb /mnt/config"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Configuration drive contents"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fdfeff1_2e1e6bbb","line":153,"range":{"start_line":128,"start_character":0,"end_line":153,"end_character":34},"updated":"2019-03-04 17:31:18.000000000","message":"This renders funny; I think it needs to be indented to align with what goes before it.","commit_id":"64e66f6c9518aa3ecbe02a32a38f7dac60d5b3ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"66d191828d5c91d11040d68b90a1ca6239d69ab6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Store metadata on a configuration drive"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"You can configure OpenStack to write metadata to a special configuration drive"},{"line_number":5,"context_line":"that attaches to the instance when it boots. The instance can mount this drive"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_33f9f57f","side":"PARENT","line":2,"range":{"start_line":2,"start_character":20,"end_line":2,"end_character":39},"updated":"2019-03-06 17:44:54.000000000","message":"Gah, well, I guess this shoots my argument.\n\nI will leave it there because I hate this phrasing but I guess you\u0027re off the hook for considering a change :)","commit_id":"9a8f5f8517486192f140cab09420390ca37c4856"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed4c6f755132e2d62169c71b1d9c00fe429fa142","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Store metadata on a configuration drive"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"You can configure OpenStack to write metadata to a special configuration drive"},{"line_number":5,"context_line":"that attaches to the instance when it boots. The instance can mount this drive"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_052258a5","side":"PARENT","line":2,"range":{"start_line":2,"start_character":20,"end_line":2,"end_character":39},"in_reply_to":"5fc1f717_33f9f57f","updated":"2019-03-07 16:18:24.000000000","message":"I ended up completely rewriting this (again) so it\u0027s been changed","commit_id":"9a8f5f8517486192f140cab09420390ca37c4856"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   action such as adding the public key to an account. You can read more"},{"line_number":63,"context_line":"   details about how data is organized on the configuration drive."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"-  If you use Xen with a configuration drive, use the"},{"line_number":66,"context_line":"   :oslo.config:option:`xenserver.disable_agent` configuration parameter to"},{"line_number":67,"context_line":"   disable the agent."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Guidelines**"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_5bac07ec","side":"PARENT","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":21},"updated":"2019-06-13 21:11:52.000000000","message":"Why did you remove this part when you moved the contents?","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   action such as adding the public key to an account. You can read more"},{"line_number":63,"context_line":"   details about how data is organized on the configuration drive."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"-  If you use Xen with a configuration drive, use the"},{"line_number":66,"context_line":"   :oslo.config:option:`xenserver.disable_agent` configuration parameter to"},{"line_number":67,"context_line":"   disable the agent."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Guidelines**"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_73448774","side":"PARENT","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":21},"in_reply_to":"9fb8cfa7_5bac07ec","updated":"2019-06-14 14:14:19.000000000","message":"Oh, weird. Done.","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   :oslo.config:option:`xenserver.disable_agent` configuration parameter to"},{"line_number":67,"context_line":"   disable the agent."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Guidelines**"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"-  Do not rely on the presence of the EC2 metadata in the configuration"},{"line_number":72,"context_line":"   drive, because this content might be removed in a future release. For"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_1bb20f4a","side":"PARENT","line":69,"updated":"2019-06-13 21:11:52.000000000","message":"Why were these not copied to the new location?\n\n(later)\n\nOK found this:\n\nhttps://review.opendev.org/#/c/640730/7/doc/source/user/metadata.rst@489","commit_id":"61558f274842b149044a14bbe7537b9f278035fd"}],"doc/source/user/launch-instance-from-image.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eaa3898917086b94054e55d860caf49429dc4537","unresolved":false,"context_lines":[{"line_number":18,"context_line":"   For example, you can add a description for your server by providing the"},{"line_number":19,"context_line":"   ``--property description\u003d\"My Server\"`` parameter."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   You can pass :ref:`user data \u003cmetadata-userdata\u003e` in a local file at instance"},{"line_number":22,"context_line":"   launch by using the ``--user-data USER-DATA-FILE`` parameter."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"   .. important::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b30bf127","line":21,"range":{"start_line":21,"start_character":78,"end_line":21,"end_character":80},"updated":"2019-06-13 21:10:34.000000000","message":"wrap","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"   For example, you can add a description for your server by providing the"},{"line_number":19,"context_line":"   ``--property description\u003d\"My Server\"`` parameter."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   You can pass :ref:`user data \u003cmetadata-userdata\u003e` in a local file at instance"},{"line_number":22,"context_line":"   launch by using the ``--user-data USER-DATA-FILE`` parameter."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"   .. important::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b3643f4b","line":21,"range":{"start_line":21,"start_character":78,"end_line":21,"end_character":80},"in_reply_to":"9fb8cfa7_b30bf127","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"}],"doc/source/user/metadata.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Nova presents configuration information to instances it starts via a mechanism"},{"line_number":6,"context_line":"called metadata. These mechanisms are widely used via helpers such as"},{"line_number":7,"context_line":"cloud-init to specify things like the root password the instance should use."},{"line_number":8,"context_line":"There are three separate groups of people who need to be able to specify"},{"line_number":9,"context_line":"metadata for an instance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This metadata is made available via either a *config drive* or the *metadata"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_7b7c6b71","line":8,"range":{"start_line":8,"start_character":35,"end_line":8,"end_character":41},"updated":"2019-06-13 21:11:52.000000000","message":"s/people/users/ ?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Nova presents configuration information to instances it starts via a mechanism"},{"line_number":6,"context_line":"called metadata. These mechanisms are widely used via helpers such as"},{"line_number":7,"context_line":"cloud-init to specify things like the root password the instance should use."},{"line_number":8,"context_line":"There are three separate groups of people who need to be able to specify"},{"line_number":9,"context_line":"metadata for an instance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This metadata is made available via either a *config drive* or the *metadata"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_935d7b7a","line":8,"range":{"start_line":8,"start_character":35,"end_line":8,"end_character":41},"in_reply_to":"9fb8cfa7_7b7c6b71","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Nova presents configuration information to instances it starts via a mechanism"},{"line_number":6,"context_line":"called metadata. These mechanisms are widely used via helpers such as"},{"line_number":7,"context_line":"cloud-init to specify things like the root password the instance should use."},{"line_number":8,"context_line":"There are three separate groups of people who need to be able to specify"},{"line_number":9,"context_line":"metadata for an instance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This metadata is made available via either a *config drive* or the *metadata"},{"line_number":12,"context_line":"service* and can be somewhat customised by the user using the *user data*"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_db89d774","line":9,"range":{"start_line":8,"start_character":0,"end_line":9,"end_character":25},"updated":"2019-06-13 21:11:52.000000000","message":"Move this within the \"Types of metadata\" section since you say it here but then don\u0027t immediately follow it with those 3 groups.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"~~~~~~~~~~~~~~~~~~"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The user who booted the instance can pass metadata to the instance in several"},{"line_number":24,"context_line":"ways. For authentication keypairs, the keypairs functionality of the Nova APIs"},{"line_number":25,"context_line":"can be used to upload a key and then specify that key during the Nova boot API"},{"line_number":26,"context_line":"request. For less structured data, a small opaque blob of data may be passed"},{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_9b7fdf64","line":24,"range":{"start_line":24,"start_character":74,"end_line":24,"end_character":78},"updated":"2019-06-13 21:11:52.000000000","message":"API?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"~~~~~~~~~~~~~~~~~~"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The user who booted the instance can pass metadata to the instance in several"},{"line_number":24,"context_line":"ways. For authentication keypairs, the keypairs functionality of the Nova APIs"},{"line_number":25,"context_line":"can be used to upload a key and then specify that key during the Nova boot API"},{"line_number":26,"context_line":"request. For less structured data, a small opaque blob of data may be passed"},{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_73cfa728","line":24,"range":{"start_line":24,"start_character":74,"end_line":24,"end_character":78},"in_reply_to":"9fb8cfa7_9b7fdf64","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"request. For less structured data, a small opaque blob of data may be passed"},{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"},{"line_number":28,"context_line":"of such unstructured data would be the puppet role that the instance should use,"},{"line_number":29,"context_line":"or the HTTP address of a server to fetch post-boot configuration information"},{"line_number":30,"context_line":"from."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Nova provided data"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_1b8bef67","line":29,"range":{"start_line":29,"start_character":32,"end_line":29,"end_character":40},"updated":"2019-06-13 21:11:52.000000000","message":"from which to fetch","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"request. For less structured data, a small opaque blob of data may be passed"},{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"},{"line_number":28,"context_line":"of such unstructured data would be the puppet role that the instance should use,"},{"line_number":29,"context_line":"or the HTTP address of a server to fetch post-boot configuration information"},{"line_number":30,"context_line":"from."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Nova provided data"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3e2b79f","line":29,"range":{"start_line":29,"start_character":32,"end_line":29,"end_character":40},"in_reply_to":"9fb8cfa7_1b8bef67","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"},{"line_number":28,"context_line":"of such unstructured data would be the puppet role that the instance should use,"},{"line_number":29,"context_line":"or the HTTP address of a server to fetch post-boot configuration information"},{"line_number":30,"context_line":"from."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Nova provided data"},{"line_number":33,"context_line":"~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_bbebc310","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":4},"updated":"2019-06-13 21:11:52.000000000","message":"nix","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":27,"context_line":"via the :ref:`user data \u003cmetadata-userdata\u003e` feature of the Nova API. Examples"},{"line_number":28,"context_line":"of such unstructured data would be the puppet role that the instance should use,"},{"line_number":29,"context_line":"or the HTTP address of a server to fetch post-boot configuration information"},{"line_number":30,"context_line":"from."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Nova provided data"},{"line_number":33,"context_line":"~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b3f2ff6e","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":4},"in_reply_to":"9fb8cfa7_bbebc310","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"To enable the config drive for an instance, pass the ``--config-drive true``"},{"line_number":145,"context_line":"parameter to the :command:`openstack server create` command."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The following example enables the config drive and passes user data, a user data"},{"line_number":148,"context_line":"file, and two key/value metadata pairs, all of which are accessible from the"},{"line_number":149,"context_line":"config drive:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_fbbdbb01","line":148,"range":{"start_line":147,"start_character":58,"end_line":148,"end_character":4},"updated":"2019-06-13 21:11:52.000000000","message":"I think we have a redundancy here because the example only passes a user_data file.","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":144,"context_line":"To enable the config drive for an instance, pass the ``--config-drive true``"},{"line_number":145,"context_line":"parameter to the :command:`openstack server create` command."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The following example enables the config drive and passes user data, a user data"},{"line_number":148,"context_line":"file, and two key/value metadata pairs, all of which are accessible from the"},{"line_number":149,"context_line":"config drive:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_53014337","line":148,"range":{"start_line":147,"start_character":58,"end_line":148,"end_character":4},"in_reply_to":"9fb8cfa7_fbbdbb01","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565bba664fe65c8351593f9055ff47d4120aff3c","unresolved":false,"context_lines":[{"line_number":452,"context_line":".. note::"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    This section provides end user information about the vendordata feature. For"},{"line_number":455,"context_line":"    deployment information about feature, refer to the :doc:`admin guide"},{"line_number":456,"context_line":"    \u003c/admin/vendordata\u003e`."},{"line_number":457,"context_line":""},{"line_number":458,"context_line":".. versionchanged:: 14.0.0"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_db6557b6","line":455,"range":{"start_line":455,"start_character":33,"end_line":455,"end_character":40},"updated":"2019-06-13 21:11:52.000000000","message":"this feature?","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"723382149183c0aad196db1e2fa09a5563ccacd5","unresolved":false,"context_lines":[{"line_number":452,"context_line":".. note::"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    This section provides end user information about the vendordata feature. For"},{"line_number":455,"context_line":"    deployment information about feature, refer to the :doc:`admin guide"},{"line_number":456,"context_line":"    \u003c/admin/vendordata\u003e`."},{"line_number":457,"context_line":""},{"line_number":458,"context_line":".. versionchanged:: 14.0.0"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_f3fb9743","line":455,"range":{"start_line":455,"start_character":33,"end_line":455,"end_character":40},"in_reply_to":"9fb8cfa7_db6557b6","updated":"2019-06-14 14:14:19.000000000","message":"Done","commit_id":"5515c0b544776c47e2e801ddabd4231e5589849e"}]}
