)]}'
{"metalsmith/instance_config.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ed9635c644953d79846362ef9b061f3510c47688","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            ssh_keys \u003d self.ssh_keys"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        meta_data \u003d self.meta_data or {}"},{"line_number":71,"context_line":"        meta_data.update({"},{"line_number":72,"context_line":"            \u0027public_keys\u0027: ssh_keys,"},{"line_number":73,"context_line":"            \u0027uuid\u0027: node.id,"},{"line_number":74,"context_line":"            \u0027name\u0027: node.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_0de4693b","line":71,"updated":"2020-11-10 10:46:56.000000000","message":"This modifies the provided dict, is it intended? Maybe use .copy() on self.meta_data?","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"fe4f1fb12850b5a6acdee316897a22e9eee907db","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            ssh_keys \u003d self.ssh_keys"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        meta_data \u003d self.meta_data or {}"},{"line_number":71,"context_line":"        meta_data.update({"},{"line_number":72,"context_line":"            \u0027public_keys\u0027: ssh_keys,"},{"line_number":73,"context_line":"            \u0027uuid\u0027: node.id,"},{"line_number":74,"context_line":"            \u0027name\u0027: node.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_29295089","line":71,"in_reply_to":"1f621f24_0de4693b","updated":"2020-11-10 20:20:26.000000000","message":"Done","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1bdfe4664063557f6a90aa16a0269cd35c41b64e","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        meta_data \u003d {}"},{"line_number":71,"context_line":"        if self.meta_data:"},{"line_number":72,"context_line":"            meta_data.update(self.meta_data)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        meta_data.update({"},{"line_number":75,"context_line":"            \u0027public_keys\u0027: ssh_keys,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e429d2dc_7dc5e679","line":72,"updated":"2020-12-02 17:22:46.000000000","message":"nit: meta_data \u003d self.meta_data.copy()","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"}],"metalsmith/test/test_instance_config.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ed9635c644953d79846362ef9b061f3510c47688","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_custom_metadata(self):"},{"line_number":82,"context_line":"        config \u003d self.CLASS(meta_data\u003d{\"foo\": \"bar\"})"},{"line_number":83,"context_line":"        self._check(config, {\"foo\": \"bar\"}, cloud_init\u003dFalse)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_custom_metadata_not_dict(self):"},{"line_number":86,"context_line":"        self.assertRaises(TypeError, self.CLASS, meta_data\u003d\"foobar\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_ede00d29","line":83,"updated":"2020-11-10 10:46:56.000000000","message":"Let\u0027s have a test with both provided and generated metadata?","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"fe4f1fb12850b5a6acdee316897a22e9eee907db","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_custom_metadata(self):"},{"line_number":82,"context_line":"        config \u003d self.CLASS(meta_data\u003d{\"foo\": \"bar\"})"},{"line_number":83,"context_line":"        self._check(config, {\"foo\": \"bar\"}, cloud_init\u003dFalse)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_custom_metadata_not_dict(self):"},{"line_number":86,"context_line":"        self.assertRaises(TypeError, self.CLASS, meta_data\u003d\"foobar\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_0953b418","line":83,"in_reply_to":"1f621f24_ede00d29","updated":"2020-11-10 20:20:26.000000000","message":"I may be misunderstanding you but I think this test already does that in lines 33-44","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"}],"metalsmith_ansible/ansible_plugins/modules/metalsmith_instances.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ed9635c644953d79846362ef9b061f3510c47688","unresolved":false,"context_lines":[{"line_number":156,"context_line":"          - Extra data to add to the boot config-drive cloud-init"},{"line_number":157,"context_line":"        type: dict"},{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"},{"line_number":160,"context_line":"            description:"},{"line_number":161,"context_line":"              - Dict of cloud-init cloud-config data for tasks to run on node"},{"line_number":162,"context_line":"                boot. The \u0027users\u0027 directive can be used to configure extra"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_4dd30161","line":159,"updated":"2020-11-10 10:46:56.000000000","message":"nit: could we also support non-cloud-init user data?","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"fe4f1fb12850b5a6acdee316897a22e9eee907db","unresolved":false,"context_lines":[{"line_number":156,"context_line":"          - Extra data to add to the boot config-drive cloud-init"},{"line_number":157,"context_line":"        type: dict"},{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"},{"line_number":160,"context_line":"            description:"},{"line_number":161,"context_line":"              - Dict of cloud-init cloud-config data for tasks to run on node"},{"line_number":162,"context_line":"                boot. The \u0027users\u0027 directive can be used to configure extra"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_06372301","line":159,"in_reply_to":"1f621f24_4dd30161","updated":"2020-11-10 20:20:26.000000000","message":"Right now the internal implementation is tied to cloud-init cloud-config to create the admin user, but we could change that so that if user_name is None and cloud_config is None then no cloud-config is built and the user-data can be consumed by whatever other tool.\n\nWe could in the future add a user_data suboption. There will sometimes need to be cloud-config under the hood, so if they specify user_data as well then we build a multi-part archive message which contains both, see https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive","commit_id":"2068b81b3651f49bc858d6c695c01b6ab5593b99"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1bdfe4664063557f6a90aa16a0269cd35c41b64e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        type: bool"},{"line_number":154,"context_line":"      config_drive:"},{"line_number":155,"context_line":"        description:"},{"line_number":156,"context_line":"          - Extra data to add to the boot config-drive cloud-init"},{"line_number":157,"context_line":"        type: dict"},{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"}],"source_content_type":"text/x-python","patch_set":4,"id":"73ccf029_e0eddb5f","line":156,"updated":"2020-12-02 17:22:46.000000000","message":"\"Extra data to add to the configdrive generated for this instance.\"","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"77f7f96fe30b91bf0d9ae720ad1688eca6b57fa5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        type: bool"},{"line_number":154,"context_line":"      config_drive:"},{"line_number":155,"context_line":"        description:"},{"line_number":156,"context_line":"          - Extra data to add to the boot config-drive cloud-init"},{"line_number":157,"context_line":"        type: dict"},{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"}],"source_content_type":"text/x-python","patch_set":4,"id":"f24e52c3_8d18e742","line":156,"in_reply_to":"73ccf029_e0eddb5f","updated":"2020-12-08 01:33:00.000000000","message":"Done","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1bdfe4664063557f6a90aa16a0269cd35c41b64e","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"},{"line_number":160,"context_line":"            description:"},{"line_number":161,"context_line":"              - Dict of cloud-init cloud-config data for tasks to run on node"},{"line_number":162,"context_line":"                boot. The \u0027users\u0027 directive can be used to configure extra"},{"line_number":163,"context_line":"                users other than the \u0027user_name\u0027 admin user."},{"line_number":164,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"112093a1_f1f02b09","line":161,"updated":"2020-12-02 17:22:46.000000000","message":"\"Cloud-Init script to be run on node first boot\"","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5d4806155177b42601034077bcdbea9303268b5c","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"},{"line_number":160,"context_line":"            description:"},{"line_number":161,"context_line":"              - Dict of cloud-init cloud-config data for tasks to run on node"},{"line_number":162,"context_line":"                boot. The \u0027users\u0027 directive can be used to configure extra"},{"line_number":163,"context_line":"                users other than the \u0027user_name\u0027 admin user."},{"line_number":164,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"8c63c33b_1d5b0858","line":161,"in_reply_to":"112093a1_f1f02b09","updated":"2020-12-07 14:45:01.000000000","message":"Agree this would be more clear.","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"77f7f96fe30b91bf0d9ae720ad1688eca6b57fa5","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        suboptions:"},{"line_number":159,"context_line":"          cloud_config:"},{"line_number":160,"context_line":"            description:"},{"line_number":161,"context_line":"              - Dict of cloud-init cloud-config data for tasks to run on node"},{"line_number":162,"context_line":"                boot. The \u0027users\u0027 directive can be used to configure extra"},{"line_number":163,"context_line":"                users other than the \u0027user_name\u0027 admin user."},{"line_number":164,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"c864591a_65a12d02","line":161,"in_reply_to":"8c63c33b_1d5b0858","updated":"2020-12-08 01:33:00.000000000","message":"The problem I have with calling cloud-config a script is that it implies imperative instructions called in order. Whereas cloud-config[1] is a declarative dict of tasks run in the order cloud-init determines (some of the tasks can be scripts though)\n\nI\u0027m open to improving this wording in a way which satisfies my own pedantry :) For now I\u0027ll change it to:\n\n  Dict of cloud-init cloud-config tasks to run on node boot.\n\n[1] https://cloudinit.readthedocs.io/en/latest/topics/examples.html","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1bdfe4664063557f6a90aa16a0269cd35c41b64e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            type: dict"},{"line_number":165,"context_line":"          meta_data:"},{"line_number":166,"context_line":"            description:"},{"line_number":167,"context_line":"              - Extra metadata to include with the config-drive cloud-init"},{"line_number":168,"context_line":"                metadata. This will be added to the generated metadata"},{"line_number":169,"context_line":"                \u0027public_keys\u0027, \u0027uuid\u0027, \u0027name\u0027, and \u0027hostname\u0027."},{"line_number":170,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"c9955b99_7a07c140","line":167,"updated":"2020-12-02 17:22:46.000000000","message":"It\u0027s not a cloud-init metadata, it\u0027s pretty standard.","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"77f7f96fe30b91bf0d9ae720ad1688eca6b57fa5","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            type: dict"},{"line_number":165,"context_line":"          meta_data:"},{"line_number":166,"context_line":"            description:"},{"line_number":167,"context_line":"              - Extra metadata to include with the config-drive cloud-init"},{"line_number":168,"context_line":"                metadata. This will be added to the generated metadata"},{"line_number":169,"context_line":"                \u0027public_keys\u0027, \u0027uuid\u0027, \u0027name\u0027, and \u0027hostname\u0027."},{"line_number":170,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"0d238f79_9addbb7e","line":167,"in_reply_to":"8332a456_59bbacb0","updated":"2020-12-08 01:33:00.000000000","message":"Done","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5d4806155177b42601034077bcdbea9303268b5c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            type: dict"},{"line_number":165,"context_line":"          meta_data:"},{"line_number":166,"context_line":"            description:"},{"line_number":167,"context_line":"              - Extra metadata to include with the config-drive cloud-init"},{"line_number":168,"context_line":"                metadata. This will be added to the generated metadata"},{"line_number":169,"context_line":"                \u0027public_keys\u0027, \u0027uuid\u0027, \u0027name\u0027, and \u0027hostname\u0027."},{"line_number":170,"context_line":"            type: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"8332a456_59bbacb0","line":167,"in_reply_to":"c9955b99_7a07c140","updated":"2020-12-07 14:45:01.000000000","message":"++","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"}],"metalsmith_ansible/roles/metalsmith_deployment/README.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1bdfe4664063557f6a90aa16a0269cd35c41b64e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        boot. The \u0027users\u0027 directive can be used to configure extra"},{"line_number":69,"context_line":"        users other than the \u0027user_name\u0027 admin user."},{"line_number":70,"context_line":"    ``meta_data``"},{"line_number":71,"context_line":"        Extra metadata to include with the config-drive cloud-init"},{"line_number":72,"context_line":"        metadata. This will be added to the generated metadata"},{"line_number":73,"context_line":"        ``public_keys``, ``uuid``, ``name``, and ``hostname``."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"537689f9_6d46f4bf","line":71,"updated":"2020-12-02 17:22:46.000000000","message":"Same comments as in another file","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"77f7f96fe30b91bf0d9ae720ad1688eca6b57fa5","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        boot. The \u0027users\u0027 directive can be used to configure extra"},{"line_number":69,"context_line":"        users other than the \u0027user_name\u0027 admin user."},{"line_number":70,"context_line":"    ``meta_data``"},{"line_number":71,"context_line":"        Extra metadata to include with the config-drive cloud-init"},{"line_number":72,"context_line":"        metadata. This will be added to the generated metadata"},{"line_number":73,"context_line":"        ``public_keys``, ``uuid``, ``name``, and ``hostname``."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"6a0a9aea_084650da","line":71,"in_reply_to":"537689f9_6d46f4bf","updated":"2020-12-08 01:33:00.000000000","message":"Done","commit_id":"22a4e4071c9d82bf8a3c63f13534968dd18d4fdf"}]}
