)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b905cbecc8be59d7424d6b48b52a4ff30d7a8e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Fix a description for \u0027config_drive\u0027 parameter"},{"line_number":10,"context_line":"in the \u0027create\u0027 method of the novaclient.v2.ServerManager class."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Make the \u0027nova boot\u0027 command raise a CommandError"},{"line_number":13,"context_line":"if a value specified by \u0027--config-drive\u0027 is not a boolean value."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic6e65139302fbb662fb6ba60e73633dad8ffb72e"},{"line_number":16,"context_line":"Closes-Bug: #1825061"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fce034c_837b3ebc","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":64},"updated":"2019-04-18 18:48:33.000000000","message":"This is a backward incompatible change so I\u0027d expect to see a release note for this and would also mean we need to do a major version release for this. I\u0027ve been trying to deal with the same and avoid a compat change in OSC:\n\nhttps://review.openstack.org/#/c/653176/","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc9cd6dec00db7870cdcd3f4274d92a111fc1b54","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Fix a description for \u0027config_drive\u0027 parameter"},{"line_number":10,"context_line":"in the \u0027create\u0027 method of the novaclient.v2.ServerManager class."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Make the \u0027nova boot\u0027 command raise a CommandError"},{"line_number":13,"context_line":"if a value specified by \u0027--config-drive\u0027 is not a boolean value."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic6e65139302fbb662fb6ba60e73633dad8ffb72e"},{"line_number":16,"context_line":"Closes-Bug: #1825061"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ffb9cba7_4c040f18","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":64},"in_reply_to":"3fce034c_837b3ebc","updated":"2019-04-23 01:04:10.000000000","message":"Done","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6027b286f1d7bc3b605c142bf982a89fefaec383","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            \u0027boot --flavor 1 --image %s --config-drive /dev/hda some-server\u0027 %"},{"line_number":280,"context_line":"            FAKE_UUID_1)"},{"line_number":281,"context_line":"        self.assertIn(\"The value specified by \u0027--config-drive\u0027 must be \""},{"line_number":282,"context_line":"                      \"a boolean value.\", six.text_type(ex))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test_boot_invalid_user_data(self):"},{"line_number":285,"context_line":"        invalid_file \u003d os.path.join(os.path.dirname(__file__),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_ae78a9c3","line":282,"updated":"2019-04-18 13:26:25.000000000","message":"I\u0027d like to see an added test to verify that config_drive gets set to the specified boolean value.","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b965b4c27e54ad86b965afb543301046bbd212d4","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            \u0027boot --flavor 1 --image %s --config-drive /dev/hda some-server\u0027 %"},{"line_number":280,"context_line":"            FAKE_UUID_1)"},{"line_number":281,"context_line":"        self.assertIn(\"The value specified by \u0027--config-drive\u0027 must be \""},{"line_number":282,"context_line":"                      \"a boolean value.\", six.text_type(ex))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test_boot_invalid_user_data(self):"},{"line_number":285,"context_line":"        invalid_file \u003d os.path.join(os.path.dirname(__file__),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_9bc2b058","line":282,"in_reply_to":"3fce034c_347ba6f5","updated":"2019-04-19 14:04:19.000000000","message":"I didn\u0027t see that; that\u0027s fine.","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"674f3b7c143512637f22461c19abe38c9af1ba53","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            \u0027boot --flavor 1 --image %s --config-drive /dev/hda some-server\u0027 %"},{"line_number":280,"context_line":"            FAKE_UUID_1)"},{"line_number":281,"context_line":"        self.assertIn(\"The value specified by \u0027--config-drive\u0027 must be \""},{"line_number":282,"context_line":"                      \"a boolean value.\", six.text_type(ex))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test_boot_invalid_user_data(self):"},{"line_number":285,"context_line":"        invalid_file \u003d os.path.join(os.path.dirname(__file__),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_347ba6f5","line":282,"in_reply_to":"3fce034c_ae78a9c3","updated":"2019-04-18 14:45:45.000000000","message":"There is a test in line 243.\nIsn\u0027t it enough?","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f367b5331a083fea17e61cbe9b58e15b2844bf38","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def test_boot_config_drive_with_no_value(self):"},{"line_number":260,"context_line":"        self.run_command("},{"line_number":261,"context_line":"            \u0027boot --flavor 1 --image %s some-server --config-drive\u0027 %"},{"line_number":262,"context_line":"            FAKE_UUID_1)"},{"line_number":263,"context_line":"        self.assert_called_anytime("},{"line_number":264,"context_line":"            \u0027POST\u0027, \u0027/servers\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_30a04090","line":261,"range":{"start_line":261,"start_character":52,"end_line":261,"end_character":69},"updated":"2019-06-14 16:35:19.000000000","message":"I imagine you\u0027re putting this here because if you switch it with \u0027some-server\u0027 then it falls over because of [1]. The fact that we\u0027ve to do this suggests maybe this should be another parameter, ugly as that may be. Stupid argparse :(\n\n[1] https://bugs.python.org/issue9338","commit_id":"170d5cc77d3623880291526f0b0d84c75e3756d1"}],"novaclient/v2/servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f367b5331a083fea17e61cbe9b58e15b2844bf38","unresolved":false,"context_lines":[{"line_number":1319,"context_line":"                      any networking for the server."},{"line_number":1320,"context_line":"        :param scheduler_hints: (optional extension) arbitrary key-value pairs"},{"line_number":1321,"context_line":"                            specified by the client to help boot an instance"},{"line_number":1322,"context_line":"        :param config_drive: (optional extension) a boolean value to enable"},{"line_number":1323,"context_line":"                             config drive"},{"line_number":1324,"context_line":"        :param disk_config: (optional extension) control how the disk is"},{"line_number":1325,"context_line":"                            partitioned when the server is created.  possible"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_30cda084","line":1322,"range":{"start_line":1322,"start_character":28,"end_line":1322,"end_character":49},"updated":"2019-06-14 16:35:19.000000000","message":"Unrelated, but should we remove these since we don\u0027t have extensions anymore?","commit_id":"170d5cc77d3623880291526f0b0d84c75e3756d1"}],"novaclient/v2/shell.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b905cbecc8be59d7424d6b48b52a4ff30d7a8e","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                hints[key] \u003d value"},{"line_number":487,"context_line":"    boot_args \u003d [args.name, image, flavor]"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    if str(args.config_drive).lower() in (\"true\", \"1\"):"},{"line_number":490,"context_line":"        config_drive \u003d True"},{"line_number":491,"context_line":"    elif str(args.config_drive).lower() in (\"false\", \"0\", \"\", \"none\"):"},{"line_number":492,"context_line":"        config_drive \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_43531640","line":489,"updated":"2019-04-18 18:48:33.000000000","message":"Now I see where OSC got their terrible code for this, but:\n\nhttps://review.openstack.org/#/c/653176/","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b905cbecc8be59d7424d6b48b52a4ff30d7a8e","unresolved":false,"context_lines":[{"line_number":491,"context_line":"    elif str(args.config_drive).lower() in (\"false\", \"0\", \"\", \"none\"):"},{"line_number":492,"context_line":"        config_drive \u003d None"},{"line_number":493,"context_line":"    else:"},{"line_number":494,"context_line":"        raise exceptions.CommandError("},{"line_number":495,"context_line":"            _(\"The value specified by \u0027--config-drive\u0027 \""},{"line_number":496,"context_line":"              \"must be a boolean value.\"))"},{"line_number":497,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_03498e89","line":494,"updated":"2019-04-18 18:48:33.000000000","message":"I\u0027m not sure we even need this check specifically, we can just change --config-drive to not take an argument, see below.","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc9cd6dec00db7870cdcd3f4274d92a111fc1b54","unresolved":false,"context_lines":[{"line_number":491,"context_line":"    elif str(args.config_drive).lower() in (\"false\", \"0\", \"\", \"none\"):"},{"line_number":492,"context_line":"        config_drive \u003d None"},{"line_number":493,"context_line":"    else:"},{"line_number":494,"context_line":"        raise exceptions.CommandError("},{"line_number":495,"context_line":"            _(\"The value specified by \u0027--config-drive\u0027 \""},{"line_number":496,"context_line":"              \"must be a boolean value.\"))"},{"line_number":497,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_effe1504","line":494,"in_reply_to":"3fce034c_03498e89","updated":"2019-04-23 01:04:10.000000000","message":"Done","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b905cbecc8be59d7424d6b48b52a4ff30d7a8e","unresolved":false,"context_lines":[{"line_number":886,"context_line":"    \u0027--config-drive\u0027,"},{"line_number":887,"context_line":"    metavar\u003d\"\u003cvalue\u003e\","},{"line_number":888,"context_line":"    dest\u003d\u0027config_drive\u0027,"},{"line_number":889,"context_line":"    default\u003dFalse,"},{"line_number":890,"context_line":"    help\u003d_(\"Enable config drive.\"))"},{"line_number":891,"context_line":"@utils.arg("},{"line_number":892,"context_line":"    \u0027--poll\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_63573228","line":889,"range":{"start_line":889,"start_character":4,"end_line":889,"end_character":18},"updated":"2019-04-18 18:48:33.000000000","message":"This could just be action\u003d\u0027store_true\u0027 and then we don\u0027t have to worry about it taking an argument.","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc9cd6dec00db7870cdcd3f4274d92a111fc1b54","unresolved":false,"context_lines":[{"line_number":886,"context_line":"    \u0027--config-drive\u0027,"},{"line_number":887,"context_line":"    metavar\u003d\"\u003cvalue\u003e\","},{"line_number":888,"context_line":"    dest\u003d\u0027config_drive\u0027,"},{"line_number":889,"context_line":"    default\u003dFalse,"},{"line_number":890,"context_line":"    help\u003d_(\"Enable config drive.\"))"},{"line_number":891,"context_line":"@utils.arg("},{"line_number":892,"context_line":"    \u0027--poll\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_0f04c914","line":889,"range":{"start_line":889,"start_character":4,"end_line":889,"end_character":18},"in_reply_to":"3fce034c_63573228","updated":"2019-04-23 01:04:10.000000000","message":"Done","commit_id":"cd30584dcac0b96a559c5b3500cd36dbf6d471ea"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f367b5331a083fea17e61cbe9b58e15b2844bf38","unresolved":false,"context_lines":[{"line_number":887,"context_line":"    \u0027--config-drive\u0027,"},{"line_number":888,"context_line":"    metavar\u003d\"\u003cvalue\u003e\","},{"line_number":889,"context_line":"    dest\u003d\u0027config_drive\u0027,"},{"line_number":890,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":891,"context_line":"    default\u003dFalse,"},{"line_number":892,"context_line":"    help\u003d_(\"Enable config drive.\"))"},{"line_number":893,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_307b6028","line":890,"updated":"2019-06-14 16:35:19.000000000","message":"I don\u0027t think we can do this due because we also have a positional argument here [1]. I ran into the same issue with openstackclient [2]. Have you tested this locally?\n\n[1] https://bugs.python.org/issue9338\n[2] https://review.opendev.org/#/c/626949/1","commit_id":"170d5cc77d3623880291526f0b0d84c75e3756d1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e96b749f03c92618f2b384aad1136c5fb5c185b9","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                hints[key] \u003d value"},{"line_number":502,"context_line":"    boot_args \u003d [args.name, image, flavor]"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    if str(args.config_drive).lower() in (\"true\", \"1\"):"},{"line_number":505,"context_line":"        config_drive \u003d True"},{"line_number":506,"context_line":"    elif str(args.config_drive).lower() in (\"false\", \"0\", \"\", \"none\"):"},{"line_number":507,"context_line":"        config_drive \u003d None"},{"line_number":508,"context_line":"    else:"},{"line_number":509,"context_line":"        raise exceptions.CommandError("},{"line_number":510,"context_line":"            _(\"The value of the \u0027--config-drive\u0027 option must be \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_a27d0bb3","line":507,"range":{"start_line":504,"start_character":4,"end_line":507,"end_character":27},"updated":"2019-09-25 15:05:47.000000000","message":"Why not use https://github.com/openstack/oslo.utils/blob/3.41.1/oslo_utils/strutils.py#L115 here?","commit_id":"d1c5dc61d60b29428484a38703a0064933cc7c0e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"58a370b19c4c9d3e5b56893c584c021cb9fc70ce","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                hints[key] \u003d value"},{"line_number":502,"context_line":"    boot_args \u003d [args.name, image, flavor]"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    if str(args.config_drive).lower() in (\"true\", \"1\"):"},{"line_number":505,"context_line":"        config_drive \u003d True"},{"line_number":506,"context_line":"    elif str(args.config_drive).lower() in (\"false\", \"0\", \"\", \"none\"):"},{"line_number":507,"context_line":"        config_drive \u003d None"},{"line_number":508,"context_line":"    else:"},{"line_number":509,"context_line":"        raise exceptions.CommandError("},{"line_number":510,"context_line":"            _(\"The value of the \u0027--config-drive\u0027 option must be \""}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_a74e3d94","line":507,"range":{"start_line":504,"start_character":4,"end_line":507,"end_character":27},"in_reply_to":"3fa7e38b_a27d0bb3","updated":"2019-09-30 00:08:20.000000000","message":"\"none\" and \"\" are not in FALSE_STRINGS.\n\nhttps://github.com/openstack/oslo.utils/blob/3.41.1/oslo_utils/strutils.py#L51","commit_id":"d1c5dc61d60b29428484a38703a0064933cc7c0e"}]}
