)]}'
{"specs/tempest-conf-autogen.rst":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"aa12f20b35e497eb5ae903800c403f94f67d438a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"So let\u0027s do it!"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Table with all config options:"},{"line_number":29,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7adec928_d640cc37","line":29,"updated":"2014-05-22 12:24:45.000000000","message":"This does not have the right permissions. I can\u0027t open it.","commit_id":"525a523e4beeb84cad369abee8c5057fb44ecf01"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a960939dbcebf6c60660f24a5cdf4ab32507774d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"So let\u0027s do it!"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Table with all config options:"},{"line_number":29,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7adec928_8a661328","line":29,"in_reply_to":"7adec928_d640cc37","updated":"2014-05-22 14:13:49.000000000","message":"Sorry for that, now it should work","commit_id":"525a523e4beeb84cad369abee8c5057fb44ecf01"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"95537dc4f86128c7881df03dff2947d8a07dccc5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    * Should be specified (e.g. administrators credentials)"},{"line_number":81,"context_line":"    * Should be specified or created (e.g. flavors/images_id/...)"},{"line_number":82,"context_line":"    * Discoverable from current API"},{"line_number":83,"context_line":"    * Discoverable, but requires change in current API"},{"line_number":84,"context_line":"3. Make a first version of generator that will has input arguments with default"},{"line_number":85,"context_line":"   value for everything that should be specified \u0026 non discoverable by current"},{"line_number":86,"context_line":"   API"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_f3c5b95c","line":83,"updated":"2014-06-25 07:58:09.000000000","message":"Could you please give an example for such argument?","commit_id":"e86e24e357e7a1e7ddbae0bbdd376d1228feba72"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"d8a3e8a26c49b3c72ffcd68ecf5198572e8ab1f7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_1ee71713","line":30,"updated":"2014-06-27 20:59:36.000000000","message":"At present, this document is basically another presentation of tempest.conf.sample. Is filling in the strategies supposed to happen before this spec is approved? Is any one supposed to edit that document? Who did you expect was going to fill it in and when?","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"20b16f37d9550f7e186a616690b962dad1df32d8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_92404c58","line":30,"in_reply_to":"1ae5cdf2_1e7717d5","updated":"2014-06-30 17:04:10.000000000","message":"There needs to be another category \"set-default-in-script\". There are some options in tempest that require something different than the default, but cannot be discovered. For example, lock_path and log_file. I think these are defaulting to None because they actually come from oslo. But users should not have to specify them. The script should default them to reasonable values like \"/tmp\" and \"tempest.log\" unless the user specifies a value.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"e4b6ef98ded7e6d81b1574d3042cd5129d9d8c42","unresolved":false,"context_lines":[{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_be92a348","line":30,"in_reply_to":"1ae5cdf2_1ee71713","updated":"2014-06-27 21:01:38.000000000","message":"It should be done before approve of this doc. \n\nAndrey and I am going to fill it. But if you would like you can join us.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"b96e4f0c2490f67311eafdde442582f22ed2a153","unresolved":false,"context_lines":[{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_1e7717d5","line":30,"in_reply_to":"1ae5cdf2_be92a348","updated":"2014-06-27 21:15:56.000000000","message":"I added a column for comments on the strategy. But the meaning of the drop-down options need to be clearly defined in the spec, right here.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Desired change should be developed as separate module in Tempest and consists"},{"line_number":36,"context_line":"of simple entry point that accept as few as possible arguments(which will be"},{"line_number":37,"context_line":"processed and transmitted into generator) and configuration generator."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_6552b169","line":35,"updated":"2014-06-25 15:32:31.000000000","message":"What do you mean by seperate module? I think you should just be clear here and \nsay it will live in tempest.cmd and an entry-point will be added to setup.cfg to\nallow calling it as a binary separately from running tempest.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":54,"context_line":" 3. Saving results into specified file."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"As addition to generating configuration files, this module should provide"},{"line_number":57,"context_line":"verification existing configuration files(compare specified configuration file"},{"line_number":58,"context_line":"with newly created)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_6524710e","line":57,"updated":"2014-06-25 15:32:31.000000000","message":"No I disagree, we already have a tool for doing this. See:\n\nhttp://git.openstack.org/cgit/openstack/tempest/tree/tempest/cmd/verify_tempest_config.py\n\nhttps://github.com/openstack/qa-specs/blob/master/specs/config-verification.rst","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":56,"context_line":"As addition to generating configuration files, this module should provide"},{"line_number":57,"context_line":"verification existing configuration files(compare specified configuration file"},{"line_number":58,"context_line":"with newly created)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_8918b71f","line":59,"updated":"2014-06-25 15:32:31.000000000","message":"So a concern I have with this (and any tool like this) is that the config file is still in a state of flux, we still have some option deduplication to work through, and\nthe grouping will probably be reworked a bit. (I\u0027m specifically thinking of auth\nsettings)\n\nI\u0027m bringing this up because you need to mention the sync story. Since this is a\nseparate module how do you plan to enforce that the script is always writing a \nvalid config file. This is an important part of this BP, if we just have an out of \nband tool to write config files it will bit rot quickly. The answer is probably having \nunit tests to ensure that if a config option is changed or added that the script is \nalso updated at the same time. (it will fail the unit tests if it doesn\u0027t)","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"5033907f52c90a663434d8b0e043c7cdacdcd2c6","unresolved":false,"context_lines":[{"line_number":56,"context_line":"As addition to generating configuration files, this module should provide"},{"line_number":57,"context_line":"verification existing configuration files(compare specified configuration file"},{"line_number":58,"context_line":"with newly created)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_387a8725","line":59,"in_reply_to":"1ae5cdf2_8918b71f","updated":"2014-06-25 17:37:08.000000000","message":"+1 This is useless without a unit test.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The alternative way to solve this would be to: sadness, grief, pain"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Implementation"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_a57599fb","line":63,"updated":"2014-06-25 15:32:31.000000000","message":"Really, I can actually see several viable alternatives to the script as you proposed. The purpose of this section is to see that alternatives were \nconsidered and why your proposed approach is the best choice. This also allows\nreviewers to weigh in on whether the proposed approach is the correct one.\n\nThe simplest alternative being provide better documentation and guides for how\nto config things and not worrying about tooling. Which isn\u0027t necessarily the right\napproach, especially given the rate of change in the config file.\n\nAnother approach I could see is that we just shim a small script on top of the \nconfig verifier. It would reads the sample add required auth settings (and any \nother fields) and then just runs the config verification with update and outputs a \nworking config file. Honestly I think this approach might be the best, just from a \ncode reuse standpoint. (the config verification tool will probably need some \ninternal improvements, but that\u0027s fine) We don\u0027t want to end up duplicating the \ndiscovery part of the config generation.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"31001cffa3b396c24f57d04338bb40e2c13d8dd9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The alternative way to solve this would be to: sadness, grief, pain"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Implementation"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_ccd1ed30","line":63,"in_reply_to":"1ae5cdf2_a57599fb","updated":"2014-06-25 15:35:15.000000000","message":"Sorry, actually it doesn\u0027t have to read the sample config at all, because those are the defaults, so doing that would probably be redundant. But the basic approach of building on top of what we already have is really the take away.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"5033907f52c90a663434d8b0e043c7cdacdcd2c6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The alternative way to solve this would be to: sadness, grief, pain"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Implementation"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_83e5f039","line":63,"in_reply_to":"1ae5cdf2_a57599fb","updated":"2014-06-25 17:37:08.000000000","message":"The config verification tool definitely needs to be refactored but that code should definitely be shared. I had done a potential refactor but did not submit it after we decided in Atlanta to move forward with the basic idea in this spec. I wanted to see the \"requirements\" from this use case and the verify use case before finalizing that.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":92,"context_line":"3. Make a first version of generator that will has input arguments with default"},{"line_number":93,"context_line":"   value for everything that should be specified \u0026 non discoverable by current"},{"line_number":94,"context_line":"   API"},{"line_number":95,"context_line":"4. Start working on other projects API to add everything that we need"},{"line_number":96,"context_line":"5. Reduce amount of arguments in generator (and go back to previous point)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_69f28be4","line":95,"updated":"2014-06-25 15:32:31.000000000","message":"You honestly think this something you\u0027ll be able to finish by J-3? If you\u0027re planning \nto add apis to the projects for feature discovery where there isn\u0027t any now you\u0027ll \nneed to open BPs/specs for each of those projects and then get the code \nlanded. This seems like a daunting task to put as work item here.\n\nI\u0027m fine with keeping it as part of the BP, but I really  think we should probably\nsplit this  effort off into a dependent BP or track it somewhere else\nindependently. There is enough work on just finishing the tool that making\ndiscovery more complete feels like a follow on task.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"5033907f52c90a663434d8b0e043c7cdacdcd2c6","unresolved":false,"context_lines":[{"line_number":92,"context_line":"3. Make a first version of generator that will has input arguments with default"},{"line_number":93,"context_line":"   value for everything that should be specified \u0026 non discoverable by current"},{"line_number":94,"context_line":"   API"},{"line_number":95,"context_line":"4. Start working on other projects API to add everything that we need"},{"line_number":96,"context_line":"5. Reduce amount of arguments in generator (and go back to previous point)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_a34e6c36","line":95,"in_reply_to":"1ae5cdf2_69f28be4","updated":"2014-06-25 17:37:08.000000000","message":"I agree. If something should be discoverable, but is not, and is needed for the tool to function, then for the first version it is just part of what needs to be supplied. Later versions can relax it to discoverable.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"08254ffff32e260a10ee7dc669e7c5b1335d2b72","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    * https://github.com/redhat-openstack/tempest/blob/master/tools/config_tempest.py"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Bash-script for Tempest installation and configuration in DevStack:"},{"line_number":113,"context_line":" * https://github.com/openstack-dev/devstack/blob/master/lib/tempest"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_c94b9f5d","line":113,"updated":"2014-06-25 15:32:31.000000000","message":"I honestly think the devstack example is how tempest config should be\ndone. Instead of trying to play catch up you have your configuration system\n(whatever it may be) write a tempest conf file. The configuration system should\nhave all the answers to the config questions that we\u0027re attempting to answer\nand generating the config should be no problem.\n\nThis is Just a side comment, I realize the importance of having a tool like this. But, I\u0027m\nwondering if we maybe we should mention this somewhere in the spec.","commit_id":"3b579e1b61e6f54e576bc031dd105f59da42abec"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4844ade021c7909628872c1b10bb53e52555aae2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"options. Manual setup of all options is complicated and unnecessary. This hard"},{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_7adce773","line":29,"updated":"2014-07-03 16:07:53.000000000","message":"There should be a description of the options and there meaning. Please correct if any of this is wrong.\n\n * discover -- the value is obtained by calling OpenStack APIs\n * required-new-api -- should be \u0027discover\u0027 but there is no API to get the value\n * specify -- must be specified on command line or in input config file\n * create-or-specify -- resource will be created if not specified\n * default-is-ok -- the default will be used unless specified\n * set-default-in-script -- The default in tempest.conf.sample is not useful but there is a reasonable default. The tempest default should be changed or the script should provide a default unless specified by the user","commit_id":"8dbb0ca9b1fc6f6bfec5668d5cd9a25e15c8aa26"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2be3d1a0cec9cb6d898e701a6016e26b7ccf47fa","unresolved":false,"context_lines":[{"line_number":26,"context_line":"options. Manual setup of all options is complicated and unnecessary. This hard"},{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_5adb864e","line":29,"in_reply_to":"baada198_7adce773","updated":"2014-07-04 09:51:36.000000000","message":"Done","commit_id":"8dbb0ca9b1fc6f6bfec5668d5cd9a25e15c8aa26"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4844ade021c7909628872c1b10bb53e52555aae2","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"An entry point should accept as few as possible arguments which can be"},{"line_number":40,"context_line":"obtained by two ways: from command line and from specified configuration file."},{"line_number":41,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Configuration generator takes care about:"},{"line_number":44,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_9a6a9b7f","line":41,"updated":"2014-07-03 16:07:53.000000000","message":"This spec should specify what the command line arguments are, both --flags and how non-default values will be specified.","commit_id":"8dbb0ca9b1fc6f6bfec5668d5cd9a25e15c8aa26"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2be3d1a0cec9cb6d898e701a6016e26b7ccf47fa","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"An entry point should accept as few as possible arguments which can be"},{"line_number":40,"context_line":"obtained by two ways: from command line and from specified configuration file."},{"line_number":41,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Configuration generator takes care about:"},{"line_number":44,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_7ae04afa","line":41,"in_reply_to":"baada198_9a6a9b7f","updated":"2014-07-04 09:51:36.000000000","message":"Done","commit_id":"8dbb0ca9b1fc6f6bfec5668d5cd9a25e15c8aa26"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9ad94542c9e00b68feb03290ae3660889e505158","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Groups of options:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* discover -- the value is obtained by calling OpenStack APIs"},{"line_number":35,"context_line":"* required-new-api -- should be \u0027discover\u0027 but there is no API to get the value"},{"line_number":36,"context_line":"  (e.g. ipv6 availability)"},{"line_number":37,"context_line":"* specify -- must be specified on command line or in input config file"},{"line_number":38,"context_line":"  (e.g. administrators credentials)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_76c02950","line":35,"updated":"2014-07-07 18:58:37.000000000","message":"I feel this is a subcategory on specify, and should be shown as such, because in\nthe short to medium term we\u0027ll be treating it as a specify.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9f509d8df9b8cf57790a33db4b9ed9a78c94db40","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Groups of options:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* discover -- the value is obtained by calling OpenStack APIs"},{"line_number":35,"context_line":"* required-new-api -- should be \u0027discover\u0027 but there is no API to get the value"},{"line_number":36,"context_line":"  (e.g. ipv6 availability)"},{"line_number":37,"context_line":"* specify -- must be specified on command line or in input config file"},{"line_number":38,"context_line":"  (e.g. administrators credentials)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_1e78cdf7","line":35,"in_reply_to":"baada198_76c02950","updated":"2014-10-14 12:52:39.000000000","message":"You are right. Fixed","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9ad94542c9e00b68feb03290ae3660889e505158","unresolved":false,"context_lines":[{"line_number":55,"context_line":"An entry point should accept as few as possible arguments which can be"},{"line_number":56,"context_line":"obtained by two ways: from command line (as cli arguments, i.e.,"},{"line_number":57,"context_line":"--some-option \u003cvalue-1\u003e --other-option \u003cvalue-2\u003e), from specified"},{"line_number":58,"context_line":"configuration file."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_16b8cd28","line":58,"updated":"2014-07-07 18:58:37.000000000","message":"So I feel this has to be more explicit regarding what the configuration file is, and around the grammar for adding options. (see my more detailed views below) If we\u0027re just loading it from an existing tempest config file then this is no \ndifferent from what you can do with verify_tempest_config today.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9f509d8df9b8cf57790a33db4b9ed9a78c94db40","unresolved":false,"context_lines":[{"line_number":55,"context_line":"An entry point should accept as few as possible arguments which can be"},{"line_number":56,"context_line":"obtained by two ways: from command line (as cli arguments, i.e.,"},{"line_number":57,"context_line":"--some-option \u003cvalue-1\u003e --other-option \u003cvalue-2\u003e), from specified"},{"line_number":58,"context_line":"configuration file."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_56d656c4","line":58,"in_reply_to":"baada198_16b8cd28","updated":"2014-10-14 12:52:39.000000000","message":"fixed","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e45994fa5ab39bba626910a7bdb00804905d9da2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_5128bd85","line":63,"updated":"2014-07-04 22:58:44.000000000","message":"How do you plan to mark which option can be discovered, which must be manually be specified etc?","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9ad94542c9e00b68feb03290ae3660889e505158","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_41760407","line":63,"in_reply_to":"baada198_26704671","updated":"2014-07-07 18:58:37.000000000","message":"@Andrea I think you\u0027re asking about the bitrot question. IMO The answer to that is to unit test it to make sure if we move something the test fails. That was one of my comments on an earlier rev.\n\nIf you\u0027re talking about the general API discoverability part to realize how close we\nare to figuring out we are to finishing the discovery part, I\u0027m not sure that\u0027s\nsomething we should care about. (similar to coverage) Instead treating it as a best effort thing is the way to do it.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"28be8c20b1de8fe9873ecf6bbf8db24dff307abf","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_d4824651","line":63,"in_reply_to":"baada198_41760407","updated":"2014-07-10 21:43:54.000000000","message":"Yes things like \"Default is ok\" changes if default changes. So this can be covered via unit test.\nCreate or specify, can be requested only if we are able to create a resource, which is also something that will evolve in time.\nSo if I\u0027m an user and I want to use the tool, I\u0027ll need some online and up to date help telling me which option I can use \"create\" on for instance.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bbad6c947e05bd043de8ae09c29adb644c9028b6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_ee11ce5d","line":63,"in_reply_to":"baada198_5128bd85","updated":"2014-07-07 15:26:37.000000000","message":"I\u0027m not sure what you mean. The linked spreadsheet is supposed to categorize each option with one of the members of the \"groups of options\" described above.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"02fdb0fd9fdddadaba35b6cfb805435a0f3513cf","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_26704671","line":63,"in_reply_to":"baada198_5bdfd3d5","updated":"2014-07-07 17:35:49.000000000","message":"Seems to me this is an implementation detail, though I would not want to see this added to config.py. The vast majority (I hope) of the options will be \u0027defaulf-is-ok\u0027.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"88461675d82cc0a2dc7f7ca56a87db677e548c74","unresolved":false,"context_lines":[{"line_number":60,"context_line":"All received arguments will be processed and transmitted into config generator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Configuration generator takes care about:"},{"line_number":63,"context_line":" * discovery of all available options for OpenStack projects(using their APIs);"},{"line_number":64,"context_line":" * creation missing resources(using projects APIs);"},{"line_number":65,"context_line":" * processing and saving all known options(given by user, discovered, created)."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_5bdfd3d5","line":63,"in_reply_to":"baada198_ee11ce5d","updated":"2014-07-07 17:23:05.000000000","message":"The spreadsheet is good for the spec.\nI meant how do we track which option belongs to which group in the code. Additional field / structured comment in config.py? Separate YAML/json file part of the config/verify tools?","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9ad94542c9e00b68feb03290ae3660889e505158","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   tools/config/generate_sample.sh do it)"},{"line_number":83,"context_line":" * generate new configuration file"},{"line_number":84,"context_line":" * check that all properties from new config matches with discovered properties"},{"line_number":85,"context_line":" * verify generated configuration file using tempest.cmd.verify_tempest_config"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_7632e9a7","line":85,"updated":"2014-07-07 18:58:37.000000000","message":"So how is this a unit test? verify_tempest_config requires a running openstack, so does the generator. You need to be able to handle this solely in the python api.\n\nIt\u0027s really not that hard if you just run the code that has a group or option name assumption (even with the actual rest API calls mocked out) if the group or option name is changed without updating the script then things will fail. (you\nprobably should flesh this idea out a bit more though for the spec) This is a\ncritical part of having this tool be sucessful.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9f509d8df9b8cf57790a33db4b9ed9a78c94db40","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   tools/config/generate_sample.sh do it)"},{"line_number":83,"context_line":" * generate new configuration file"},{"line_number":84,"context_line":" * check that all properties from new config matches with discovered properties"},{"line_number":85,"context_line":" * verify generated configuration file using tempest.cmd.verify_tempest_config"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_7c625bd9","line":85,"in_reply_to":"baada198_7632e9a7","updated":"2014-10-14 12:52:39.000000000","message":"please, look at updated version","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e45994fa5ab39bba626910a7bdb00804905d9da2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"},{"line_number":89,"context_line":"by both tools(verify_tempest_config and autogenerator)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_d13bedce","line":90,"updated":"2014-07-04 22:58:44.000000000","message":"Can you specify also the input required to run the config generation (apart from tempest config options)? \nWill it be compatible with OS_* env variables?\nWill it support the case of non admin account available, which shall limit the number of things you can do, but not all of them. It would be nice for non-admin to be able to fallback to manually specified options.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9ad94542c9e00b68feb03290ae3660889e505158","unresolved":false,"context_lines":[{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"},{"line_number":89,"context_line":"by both tools(verify_tempest_config and autogenerator)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_f351ab62","line":90,"in_reply_to":"baada198_1b00fb32","updated":"2014-07-07 18:58:37.000000000","message":"So I think instead of trying to support the kitchen sync of input options, it\u0027s\nbetter to keep it simple and select one way to do. Personally I don\u0027t think we\nshould support env options, or multiple files. It involves having to figure out\nrules for handling conflicting options being specified and prioritization which\nI think are things we don\u0027t want to worry about here. This should just be a\nsimple tool for end users and I think worry about more complex usage scenarios\nis something for down the road if there is a really reason to add them. So just\ndoing things as a bunch of args is the best way to do it.\n\nThat being said, if the number of questions we end up having to ask is too\nlarge to handle with just args, probably on the order of \u003e\u003d7,(which is probably\ninevitable) then I can understand having a separate input file for the answer to those questions. But, I think we should have a distinct format for doing\nthat. Otherwise it\u0027s basically the same solution to what verify_tempest_config\nalready does with loading in a partial config file and figuring out everything\nelse. (which people don\u0027t seem to be the biggest fans of) For something like\nthis I\u0027m also partial to yaml over ini, but I don\u0027t really care one way or the\nother. My concern is that I don\u0027t want this tool to just be an arbitrary ini\ngenerator. We should have a targeted format just for the information that\nneeds to be user provided where anything extra is rejected. If no answer is\nsupplied the default value is used (unless it\u0027s a required thing)\n\nAs for the non-admin case I think that should be easy to handle we just tag\nthings that require admin and don\u0027t run them if admin isn\u0027t set. Although I\nwonder how much of the discovery layer works without admin. Honestly, I\u0027m\nconflicted on the value of doing that though. From the end user perspective I\ncan see the value in not requiring admin, but at the same time how many end\nusers are going to need to run tempest against a deployment? So I think handling this as a separate thing after the fact is better. I\u0027d rather see the\ntool exist and be admin only then wait on non-admin support. We can always\nadd it after the fact if the user demand is there.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"88461675d82cc0a2dc7f7ca56a87db677e548c74","unresolved":false,"context_lines":[{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"},{"line_number":89,"context_line":"by both tools(verify_tempest_config and autogenerator)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_1b00fb32","line":90,"in_reply_to":"baada198_4cb3a34c","updated":"2014-07-07 17:23:05.000000000","message":"Yes, this should be part of the spec.\nAnd I think support for OS_* variables should be there as well.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bbad6c947e05bd043de8ae09c29adb644c9028b6","unresolved":false,"context_lines":[{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"},{"line_number":89,"context_line":"by both tools(verify_tempest_config and autogenerator)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_4cb3a34c","line":90,"in_reply_to":"baada198_d13bedce","updated":"2014-07-07 15:26:37.000000000","message":"As you commented, and I had previously, one of the input options for the config generation should be another file in tempest.conf format that will be applied before the command line arguments. You should be able to supply multiple such files like:\n\nconfig_tempest -c file1 -c file 2 ...","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"28be8c20b1de8fe9873ecf6bbf8db24dff307abf","unresolved":false,"context_lines":[{"line_number":87,"context_line":"In tempest.cmd.verify_tempest_config already designed a lot of stuff for"},{"line_number":88,"context_line":"discovery, so this code should be moved to separate module which would be used"},{"line_number":89,"context_line":"by both tools(verify_tempest_config and autogenerator)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_51f8087c","line":90,"in_reply_to":"baada198_f351ab62","updated":"2014-07-10 21:43:54.000000000","message":"For credential specifically all python bindings accept both OS_* env variable as well as command line parameters, so people will just expect this to be consistent.\n\nI\u0027m +1 on using a YAML format with only the things we need.\n\nRe non-admin, refstack is an example of running tempest against a deployment. In fact one may want to go around and discover OpenStack based public clouds on a regular basis.\n\nI agree it could be something for a second step.\nBut I though it would be good to capture in the spec interesting / already knonw use cases. Which doesn\u0027t mean they have to be implemented all right-away.","commit_id":"554b9b407bd1d7fdc5e9a9ea707782573b42f268"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"c9675ce967037abb35a46d03aead110e13a0a072","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Tempest\u0027s configuration file contains options from most OpenStack projects."},{"line_number":25,"context_line":"Nowadays, its size exceeds 200 options. In future there will be more \u0026 more"},{"line_number":26,"context_line":"options. Manual setup of all options is complicated and unnecessary. This hard"},{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options marked by one of 6 groups:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a890539_90dae449","line":27,"updated":"2014-12-05 16:04:11.000000000","message":"An OpenStack deployment system could automatically configure tempest (the same way it configures OpenStack services) as it has all the relevant information (e.g. devstack, tripleo, etc).\n\nConfiguring tempest against a pre-deployed cloud having access to the API only requires manual intervention, but a good part of the configuration can be automated.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"8519d91fc29be2358b54d9e0d959ed4aabe05ed7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Tempest\u0027s configuration file contains options from most OpenStack projects."},{"line_number":25,"context_line":"Nowadays, its size exceeds 200 options. In future there will be more \u0026 more"},{"line_number":26,"context_line":"options. Manual setup of all options is complicated and unnecessary. This hard"},{"line_number":27,"context_line":"task should be and can be fully automated."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Table with all config options marked by one of 6 groups:"},{"line_number":30,"context_line":"https://docs.google.com/a/mirantis.com/spreadsheets/d/1FBlJeWNWchyq7nz0ypBh6VxSO65l-lheS1ZdBCevIck/edit?usp\u003dsharing"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a890539_1a8fee2f","line":27,"in_reply_to":"5a890539_90dae449","updated":"2014-12-05 16:59:41.000000000","message":"I think this is really the crux of some of the disagreements around this spec. I don\u0027t agree that a deployment system has all the information but it does have a lot, and for some of the needed information it is the only source. The problem is that every deployment system is different, and they will all break when changes are made in tempest, like moving allow_tenant_isolation to a different section. The presence of code as envisioned by this spec in tempest does not mean that a deployment system cannot go write its own tempest.conf anyway.\n\nI see the point of having something like this as three-fold:\n\n1. Try to extract common functions that will be used by any deployment process and share it.\n2. Put that common function in the face of tempest developers/reviewers so breaking changes can be found and fixed in the common code or documented.\n3. Make the common functions available to non-deployment-systems that wish to run tempest such as refstack and rally.\n\nI am not pretending that this is easy.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"72a3bec21bb0d5db91259a7032d7461dd4a7cfc0","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Groups of options:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* discover -- the value is obtained by calling OpenStack APIs"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  - required-new-api -- should be \u0027discover\u0027 but there is no API to get the"},{"line_number":37,"context_line":"    value (e.g. ipv6 availability)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7a8c0949_d5831902","line":34,"updated":"2014-11-07 09:53:06.000000000","message":"We should use API extensions method to discover features.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"8519d91fc29be2358b54d9e0d959ed4aabe05ed7","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Groups of options:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* discover -- the value is obtained by calling OpenStack APIs"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  - required-new-api -- should be \u0027discover\u0027 but there is no API to get the"},{"line_number":37,"context_line":"    value (e.g. ipv6 availability)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a890539_5a709640","line":34,"in_reply_to":"5a890539_30521036","updated":"2014-12-05 16:59:41.000000000","message":"Yes, if the script is passed information about running services and extensions it should verify that they are accessible.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"c9675ce967037abb35a46d03aead110e13a0a072","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Groups of options:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* discover -- the value is obtained by calling OpenStack APIs"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  - required-new-api -- should be \u0027discover\u0027 but there is no API to get the"},{"line_number":37,"context_line":"    value (e.g. ipv6 availability)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a890539_30521036","line":34,"in_reply_to":"7a8c0949_d5831902","updated":"2014-12-05 16:04:11.000000000","message":"Discovery is a way of testing what is declared via API as available. It does not help with testing that what we expect to be available is actually there, and that the discovery feature itself is functioning properly.\n\nNonetheless I can imagine a scenario where the result of discovery can be matched against expectations, so this may be useful in some cases.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"c9675ce967037abb35a46d03aead110e13a0a072","unresolved":false,"context_lines":[{"line_number":85,"context_line":"modifying old ones), we should takes care that configuration generator matches"},{"line_number":86,"context_line":"real state of Tempest properties."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Solution for this problem is providing unit test which will check that all"},{"line_number":89,"context_line":"available properties in Tempest are covered by functions for discovering."},{"line_number":90,"context_line":"Also additional job(deploy OpenStack cloud and check generated Tempest config"},{"line_number":91,"context_line":"for it) in gates are useful."}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a890539_842385a9","line":88,"updated":"2014-12-05 16:04:11.000000000","message":"Unit tests would be useful, but they may be not enough.\nThe config options have been grouped in classes, and one of the criteria is whether the default value is useful or not. \nHow do we control changes to default values?\nAs long as the metadata about config-type is outside of tempest we cannot reliably control it.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"f7091ddf72c889537fcfb0be48288a256325feb1","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  Boris Pavlovic \u003cboris@pavlovic.me\u003e"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  Andrey Kurilin \u003cakurilin@mirantis.com\u003e"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Milestones"},{"line_number":118,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9aa7fdbe_a81a58c3","line":115,"updated":"2014-10-27 20:57:40.000000000","message":"Could you please add me to this list, I want to participate.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"72a3bec21bb0d5db91259a7032d7461dd4a7cfc0","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"1. Make a table with all existing arguments"},{"line_number":127,"context_line":"2. Split arguments to groups (discover, required-new-api, specify,"},{"line_number":128,"context_line":"   create-or-specify, default-is-ok, set-default-in-script)"},{"line_number":129,"context_line":"3. Refactor tempest.cmd.verify_tempest_config to be able to re-use options"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7a8c0949_b5676d24","line":126,"updated":"2014-11-07 09:53:06.000000000","message":"Need to create initial prototype and send commit to tempest.","commit_id":"442da23d423bfd71f951e4537f5712226c56272d"}]}
