)]}'
{"tempest/auth.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"67567f298a76547b61e1276f1706dea98deb66fe","unresolved":false,"context_lines":[{"line_number":449,"context_line":"           specified, credentials are not validated. Validation can be invoked"},{"line_number":450,"context_line":"           by invoking ``is_valid()``"},{"line_number":451,"context_line":"    :param kwargs (dict): take into account only if credential_type is"},{"line_number":452,"context_line":"           not specified or None. Dict of credential key/value pairs"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    Examples:"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_f6a8098f","line":452,"updated":"2015-02-04 06:23:46.000000000","message":"this needs to be updated","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e5b1fad806d9289a7e2339626a5591d5915e6ee3","unresolved":false,"context_lines":[{"line_number":449,"context_line":"           specified, credentials are not validated. Validation can be invoked"},{"line_number":450,"context_line":"           by invoking ``is_valid()``"},{"line_number":451,"context_line":"    :param kwargs (dict): take into account only if credential_type is"},{"line_number":452,"context_line":"           not specified or None. Dict of credential key/value pairs"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    Examples:"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_0e5bc7f6","line":452,"in_reply_to":"da86d52c_f6a8098f","updated":"2015-02-10 23:21:06.000000000","message":"Done","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"51aac3be4ee3fa365129b85b124007ca2da30c5f","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        Returns credentials including IDs:"},{"line_number":460,"context_line":"        \u003e\u003e\u003e get_credentials(username\u003d\u0027foo\u0027, password\u003d\u0027bar\u0027, fill_in\u003dTrue)"},{"line_number":461,"context_line":"    \"\"\""},{"line_number":462,"context_line":"    if CONF.identity.auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":463,"context_line":"        credential_class \u003d KeystoneV2Credentials"},{"line_number":464,"context_line":"        auth_provider_class \u003d KeystoneV2AuthProvider"},{"line_number":465,"context_line":"    elif CONF.identity.auth_version \u003d\u003d \u0027v3\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_82b6073c","line":462,"updated":"2015-02-02 11:54:41.000000000","message":"Currently, this function still uses CONF. Are you planning to remove CONF in future patches?","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e5b1fad806d9289a7e2339626a5591d5915e6ee3","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        Returns credentials including IDs:"},{"line_number":460,"context_line":"        \u003e\u003e\u003e get_credentials(username\u003d\u0027foo\u0027, password\u003d\u0027bar\u0027, fill_in\u003dTrue)"},{"line_number":461,"context_line":"    \"\"\""},{"line_number":462,"context_line":"    if CONF.identity.auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":463,"context_line":"        credential_class \u003d KeystoneV2Credentials"},{"line_number":464,"context_line":"        auth_provider_class \u003d KeystoneV2AuthProvider"},{"line_number":465,"context_line":"    elif CONF.identity.auth_version \u003d\u003d \u0027v3\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_ce0b6fd4","line":462,"in_reply_to":"da86d52c_82b6073c","updated":"2015-02-10 23:21:06.000000000","message":"Done in next patch","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81f48fe7db0d63f5c5e315cee8a17e4ad55a9baf","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    TYPES: types of credentials available in the configuration file."},{"line_number":485,"context_line":"           For each key there\u0027s a tuple (section, prefix) to match the"},{"line_number":486,"context_line":"           configuration options."},{"line_number":487,"context_line":"    \"\"\""},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    ATTRIBUTES \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_b90eb930","line":486,"updated":"2015-02-03 04:37:44.000000000","message":"We need to remove the above TYPES description because we don\u0027t use it after this patch.","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e5b1fad806d9289a7e2339626a5591d5915e6ee3","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    TYPES: types of credentials available in the configuration file."},{"line_number":485,"context_line":"           For each key there\u0027s a tuple (section, prefix) to match the"},{"line_number":486,"context_line":"           configuration options."},{"line_number":487,"context_line":"    \"\"\""},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    ATTRIBUTES \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_2efa4bbd","line":486,"in_reply_to":"da86d52c_b90eb930","updated":"2015-02-10 23:21:06.000000000","message":"Done","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81f48fe7db0d63f5c5e315cee8a17e4ad55a9baf","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        return None not in (self.username, self.password)"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"class KeystoneV3Credentials(KeystoneV2Credentials):"},{"line_number":571,"context_line":"    \"\"\""},{"line_number":572,"context_line":"    Credentials suitable for the Keystone Identity V3 API"},{"line_number":573,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_792441af","line":570,"updated":"2015-02-03 04:37:44.000000000","message":"Can we remove inheritance of KeystoneV2Credentials because this patch makes KeystoneV3Credentials independent.\n\n class KeystoneV3Credentials(Credentials):\n\nI just prefer simple class :)","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"81f701042ed172ab359f29f95a3f7cdfe3d5336f","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        return None not in (self.username, self.password)"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"class KeystoneV3Credentials(KeystoneV2Credentials):"},{"line_number":571,"context_line":"    \"\"\""},{"line_number":572,"context_line":"    Credentials suitable for the Keystone Identity V3 API"},{"line_number":573,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_88296f9d","line":570,"in_reply_to":"da86d52c_792441af","updated":"2015-02-10 22:47:59.000000000","message":"Yeah, I agree I think simplifying the inheritance here is a good thing. Some of the inheritance structure is very convoluted in tempest and as part of the lib migration we should fix that.","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e5b1fad806d9289a7e2339626a5591d5915e6ee3","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        return None not in (self.username, self.password)"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"class KeystoneV3Credentials(KeystoneV2Credentials):"},{"line_number":571,"context_line":"    \"\"\""},{"line_number":572,"context_line":"    Credentials suitable for the Keystone Identity V3 API"},{"line_number":573,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_4ef77fd3","line":570,"in_reply_to":"da86d52c_88296f9d","updated":"2015-02-10 23:21:06.000000000","message":"Done","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"}],"tempest/common/cred_provider.py":[{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"51aac3be4ee3fa365129b85b124007ca2da30c5f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            params[attr] \u003d getattr(_section, prefix + \"_\" + attr)"},{"line_number":57,"context_line":"    # Build and validate credentials. We are reading configured credentials,"},{"line_number":58,"context_line":"    # so validate them even if fill_in is False"},{"line_number":59,"context_line":"    credentials \u003d auth.get_credentials(fill_in\u003dfill_in, **params)"},{"line_number":60,"context_line":"    if not fill_in:"},{"line_number":61,"context_line":"        if not credentials.is_valid():"},{"line_number":62,"context_line":"            msg \u003d (\"The %s credentials are incorrectly set in the config file.\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_62be7301","line":59,"updated":"2015-02-02 11:54:41.000000000","message":"You can pass identity_version value to get_credentials here. Why don\u0027t you do that?","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e5b1fad806d9289a7e2339626a5591d5915e6ee3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            params[attr] \u003d getattr(_section, prefix + \"_\" + attr)"},{"line_number":57,"context_line":"    # Build and validate credentials. We are reading configured credentials,"},{"line_number":58,"context_line":"    # so validate them even if fill_in is False"},{"line_number":59,"context_line":"    credentials \u003d auth.get_credentials(fill_in\u003dfill_in, **params)"},{"line_number":60,"context_line":"    if not fill_in:"},{"line_number":61,"context_line":"        if not credentials.is_valid():"},{"line_number":62,"context_line":"            msg \u003d (\"The %s credentials are incorrectly set in the config file.\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_8e8a5762","line":59,"in_reply_to":"da86d52c_62be7301","updated":"2015-02-10 23:21:06.000000000","message":"There\u0027s no identity_version parameter in this patch yet.","commit_id":"f7715c885052d7b717efdd23cf39e6d324a8ef0a"}],"tempest/tests/common/test_cred_provider.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"945434c32919f8e4e51ef67e216893c12a176093","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import auth"},{"line_number":18,"context_line":"from tempest.common import cred_provider"},{"line_number":19,"context_line":"from tempest.common import tempest_fixtures as fixtures"},{"line_number":20,"context_line":"from tempest.services.identity.json import identity_client as v2_client"},{"line_number":21,"context_line":"from tempest.services.identity.v3.json import identity_client as v3_client"},{"line_number":22,"context_line":"from tempest.tests import fake_identity"},{"line_number":23,"context_line":"# Note: eventually the auth module will move to tempest-lib, and so wil its"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_63235558","line":20,"updated":"2015-02-11 18:18:55.000000000","message":"This import path needs to be updated, because of the tokenclient split","commit_id":"be08cec13d52b8b6e18affd58e377c31b4bbb337"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ab02570f9023d2dd67b274043026524bd3cd05e0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.services.identity.json import token_client as v2_client"},{"line_number":21,"context_line":"from tempest.services.identity.v3.json import token_client as v3_client"},{"line_number":22,"context_line":"from tempest.tests import fake_identity"},{"line_number":23,"context_line":"# Note: eventually the auth module will move to tempest-lib, and so wil its"},{"line_number":24,"context_line":"# unit tests. *CredentialsTests will be imported from tempest-lib then."},{"line_number":25,"context_line":"from tempest.tests import test_credentials as test_creds"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_aad98b23","line":23,"updated":"2015-02-12 15:24:32.000000000","message":"I missed this the first time around. I\u0027m not sure how I feel about importing unit tests. I don\u0027t think tempest-lib\u0027s unit tests should be treated as a stable api like the rest of the lib and as such importing unit test code really isn\u0027t fair game. But, we can come up with another solution to resolve this issue after the migration. I don\u0027t think this note is a deal breaker for this patch.\n\nOh, and the other thing is the note formatting here is wrong. :)","commit_id":"9efbe9557114820a60e9f456afd221f735971bec"}]}
