)]}'
{"tempest/cmd/account_generator.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a585af3b0257e216defce6bd4adaa1d45f66889e","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"def get_credential_provider(opts):"},{"line_number":125,"context_line":"    identity_version \u003d \"\".join([\u0027v\u0027, str(opts.version)])"},{"line_number":126,"context_line":"    network_resources \u003d {\u0027router\u0027: True,"},{"line_number":127,"context_line":"                         \u0027network\u0027: True,"},{"line_number":128,"context_line":"                         \u0027subnet\u0027: True,"},{"line_number":129,"context_line":"                         \u0027dhcp\u0027: True}"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_eaed3db8","line":126,"updated":"2016-05-25 16:13:37.000000000","message":"Should we actually be defaulting these to true? I feel like there should be options for these, granted that would be a follow-on patch","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"256b36940ed9e891a0070759d84c35faee75d8e4","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"def get_credential_provider(opts):"},{"line_number":125,"context_line":"    identity_version \u003d \"\".join([\u0027v\u0027, str(opts.version)])"},{"line_number":126,"context_line":"    network_resources \u003d {\u0027router\u0027: True,"},{"line_number":127,"context_line":"                         \u0027network\u0027: True,"},{"line_number":128,"context_line":"                         \u0027subnet\u0027: True,"},{"line_number":129,"context_line":"                         \u0027dhcp\u0027: True}"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_23d3c705","line":126,"in_reply_to":"bab6814e_eaed3db8","updated":"2016-05-26 10:57:00.000000000","message":"Some tests require network resources, some others don\u0027t, so I thought defaulting to true would be the only option.\nit\u0027s true however that in some deployments (e.g. n-net) there\u0027s no need for network resource creation at all, so in that sense it makes sense to have options. This is handled at the moment by tempest config. If neutron is not enabled resources won\u0027t be created anyways. \nSo when we get all configs out of the credential providers, we can then control this via CLI options.","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a585af3b0257e216defce6bd4adaa1d45f66889e","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        else:"},{"line_number":181,"context_line":"            account[\u0027project_name\u0027] \u003d test_resource.tenant_name"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if roles \u003d\u003d \u0027admin\u0027:"},{"line_number":184,"context_line":"            account[\u0027type\u0027] \u003d roles"},{"line_number":185,"context_line":"        else:"},{"line_number":186,"context_line":"            account[\u0027roles\u0027] \u003d roles"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_2b29078a","line":183,"updated":"2016-05-25 16:13:37.000000000","message":"Are we passing in an account type on the roles field? I\u0027m a little confused by this.","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"256b36940ed9e891a0070759d84c35faee75d8e4","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        else:"},{"line_number":181,"context_line":"            account[\u0027project_name\u0027] \u003d test_resource.tenant_name"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if roles \u003d\u003d \u0027admin\u0027:"},{"line_number":184,"context_line":"            account[\u0027type\u0027] \u003d roles"},{"line_number":185,"context_line":"        else:"},{"line_number":186,"context_line":"            account[\u0027roles\u0027] \u003d roles"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_be0b4c23","line":183,"in_reply_to":"bab6814e_2b29078a","updated":"2016-05-26 10:57:00.000000000","message":"Yes sorry the code and variable names could be better.\n\nThe get_credentials method accepts a role list or a cred type as input (see L164) so in the spec I\u0027m storing either the list of role or the account type (which can only be \u0027admin\u0027).\n\nSo if the spec contains \u0027admin\u0027, it\u0027s a creds type, and we set account[\u0027type\u0027] else we set account[\u0027roles\u0027]. \n\nNote that I need to use the account type (and not just the role \u0027admin\u0027) because the credential provider will do extra things for it, such as assigning the user a role on the domain and on the project.","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c6325d955812af8e30906dcb3d5f628fc4919b3d","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                        action\u003d\u0027store_true\u0027,"},{"line_number":241,"context_line":"                        dest\u003d\u0027admin\u0027,"},{"line_number":242,"context_line":"                        help\u003d\u0027Creates admin for each concurrent group\u0027)"},{"line_number":243,"context_line":"    parser.add_argument(\u0027-v\u0027, \u0027--version\u0027,"},{"line_number":244,"context_line":"                        default\u003d3,"},{"line_number":245,"context_line":"                        type\u003dint,"},{"line_number":246,"context_line":"                        required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_f894d78b","line":243,"range":{"start_line":243,"start_character":30,"end_line":243,"end_character":41},"updated":"2016-05-26 06:32:01.000000000","message":"This conflicts with \u0027tempest\u0027 command itself.\n\n % tempest account-generator --version 3\n tempest 12.0.1","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"256b36940ed9e891a0070759d84c35faee75d8e4","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                        action\u003d\u0027store_true\u0027,"},{"line_number":241,"context_line":"                        dest\u003d\u0027admin\u0027,"},{"line_number":242,"context_line":"                        help\u003d\u0027Creates admin for each concurrent group\u0027)"},{"line_number":243,"context_line":"    parser.add_argument(\u0027-v\u0027, \u0027--version\u0027,"},{"line_number":244,"context_line":"                        default\u003d3,"},{"line_number":245,"context_line":"                        type\u003dint,"},{"line_number":246,"context_line":"                        required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"bab6814e_7e2c4499","line":243,"range":{"start_line":243,"start_character":30,"end_line":243,"end_character":41},"in_reply_to":"bab6814e_f894d78b","updated":"2016-05-26 10:57:00.000000000","message":"Good catch, thanks. I\u0027ll use --identity-version","commit_id":"8e8c5e7774a1badfd37c81a600e100a20891dcfd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1be62c907e1e7566715426adba61a3d421aa45ae","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    if os.path.exists(account_file):"},{"line_number":197,"context_line":"        os.rename(account_file, \u0027.\u0027.join((account_file, \u0027bak\u0027)))"},{"line_number":198,"context_line":"    with open(account_file, \u0027w\u0027) as f:"},{"line_number":199,"context_line":"        yaml.dump(accounts, f, default_flow_style\u003dFalse)"},{"line_number":200,"context_line":"    LOG.info(\u0027%s generated successfully!\u0027 % account_file)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"7aa08908_3e5eaae9","line":199,"range":{"start_line":199,"start_character":8,"end_line":199,"end_character":17},"updated":"2016-06-06 12:30:37.000000000","message":"i think we should use the safe_dump here because yaml.dump dumping python unicode tag also, like below-\n\n  project_name: !!python/unicode \u0027tempest-test_creds-658870024\u0027\n  resources:\n    network: !!python/unicode \u0027tempest-test_creds-1288269302-network\u0027\n  username: !!python/unicode \u0027tempest-test_creds-1192483238\u0027","commit_id":"21ddd9d1326f96f9be208720713b225d21fbd169"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"558b76e70b554b50f81664c62054fd23274ef939","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    identity_version \u003d \"\".join([\u0027v\u0027, str(opts.identity_version)])"},{"line_number":126,"context_line":"    # NOTE(andreaf) For now tempest.conf controls whether resources will"},{"line_number":127,"context_line":"    # actually be created. Once we remove the dependency from tempest.conf"},{"line_number":128,"context_line":"    # we will need extra CLI option(s) to control this."},{"line_number":129,"context_line":"    network_resources \u003d {\u0027router\u0027: True,"},{"line_number":130,"context_line":"                         \u0027network\u0027: True,"},{"line_number":131,"context_line":"                         \u0027subnet\u0027: True,"}],"source_content_type":"text/x-python","patch_set":30,"id":"7aa08908_864017a7","line":128,"updated":"2016-06-06 19:59:57.000000000","message":"I\u0027m still not a fan of this weird hybrid conf file args thing. The network resource creation is a perfect example of this. Like, I\u0027m thinking there might be configs where we want a network but no subnet or router, or one without dhcp. But this is equiv to what was there before, so any other cleanup/configurability is fine as a followup.","commit_id":"63ad3bec717a717c59fe323468c56fda633bcf27"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"558b76e70b554b50f81664c62054fd23274ef939","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                        help\u003d\u0027Creates admin for each concurrent group\u0027)"},{"line_number":244,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--identity-version\u0027,"},{"line_number":245,"context_line":"                        default\u003d3,"},{"line_number":246,"context_line":"                        type\u003dint,"},{"line_number":247,"context_line":"                        required\u003dFalse,"},{"line_number":248,"context_line":"                        dest\u003d\u0027identity_version\u0027,"},{"line_number":249,"context_line":"                        help\u003d\u0027Version of the Identity API to use\u0027)"}],"source_content_type":"text/x-python","patch_set":30,"id":"7aa08908_663b6b39","line":246,"updated":"2016-06-06 19:59:57.000000000","message":"We should also probably add a choices param here: https://docs.python.org/2/library/argparse.html#choices","commit_id":"63ad3bec717a717c59fe323468c56fda633bcf27"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"4ee372863b319a6e976a219bf292e6cc8e4eb361","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                        help\u003d\u0027Creates admin for each concurrent group\u0027)"},{"line_number":244,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--identity-version\u0027,"},{"line_number":245,"context_line":"                        default\u003d3,"},{"line_number":246,"context_line":"                        type\u003dint,"},{"line_number":247,"context_line":"                        required\u003dFalse,"},{"line_number":248,"context_line":"                        dest\u003d\u0027identity_version\u0027,"},{"line_number":249,"context_line":"                        help\u003d\u0027Version of the Identity API to use\u0027)"}],"source_content_type":"text/x-python","patch_set":30,"id":"7aa08908_5de1d999","line":246,"in_reply_to":"7aa08908_663b6b39","updated":"2016-06-06 23:18:16.000000000","message":"The \"choices\" seems good for avoiding redundant code.","commit_id":"63ad3bec717a717c59fe323468c56fda633bcf27"}]}
