)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c0edfe7b2debde215045c3bd23a089a29483aed2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"changes baremetal, identity and orchestration tests to"},{"line_number":19,"context_line":"honour the tenant isolation settings."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Partially-implements: bp/resource-cleanup"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Id36a6ebddb618a78cee7025c9537cd1e2746190e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"7aaa499b_82065a84","line":21,"updated":"2015-04-15 13:54:32.000000000","message":"Please use a white space or \u0027:\u0027 instead of \u0027/\u0027 for a bp link.\nVery nit, so we can ignore this.","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"}],"tempest/api/compute/base.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8b13f62691ad143f224a119bf9d68c63114054e0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    _api_version \u003d 2"},{"line_number":37,"context_line":"    force_tenant_isolation \u003d False"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    # TODO(andreaf) WE should care also for the alt_manager here"},{"line_number":40,"context_line":"    # but only once client lazy load in the manager is done"},{"line_number":41,"context_line":"    credentials \u003d [\u0027primary\u0027]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"3ab451fb_43033510","line":39,"updated":"2015-04-17 01:56:08.000000000","message":"nit: s/WE/We/","commit_id":"3c0daa6dda7f44762e1711ddc1946eb7525b3352"}],"tempest/api/identity/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseIdentityTest(tempest.test.BaseTestCase):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    credentials \u003d [\u0027primary\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def disable_user(cls, user_name):"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_bbc4f55e","line":31,"updated":"2015-04-06 07:16:17.000000000","message":"I think we should not need to define credential here. let concrete class define as per their need.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseIdentityTest(tempest.test.BaseTestCase):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    credentials \u003d [\u0027primary\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def disable_user(cls, user_name):"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_e77471d0","line":31,"in_reply_to":"baa041b7_bbc4f55e","updated":"2015-04-07 13:07:11.000000000","message":"Good catch, thanks. Admin tests inherit from this one, and to not need primary creds.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @classmethod"},{"line_number":71,"context_line":"    def setup_credentials(cls):"},{"line_number":72,"context_line":"        super(BaseIdentityV2Test, cls).setup_credentials()"},{"line_number":73,"context_line":"        cls.os \u003d cls.get_client_manager(identity_version\u003d\u0027v2\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_5bacc99f","line":72,"updated":"2015-04-06 07:16:17.000000000","message":"So comment in https://review.openstack.org/#/c/153681/31/tempest/test.py , will  allow here to define identity_version and let base class create credential for this too.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"940391831593eb704a7b5e442410b0d4ad9317f2","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @classmethod"},{"line_number":71,"context_line":"    def setup_credentials(cls):"},{"line_number":72,"context_line":"        super(BaseIdentityV2Test, cls).setup_credentials()"},{"line_number":73,"context_line":"        cls.os \u003d cls.get_client_manager(identity_version\u003d\u0027v2\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_2a42fa10","line":72,"in_reply_to":"9aa53dc9_c72f2da0","updated":"2015-04-07 23:58:33.000000000","message":"Agree. Thanks :)","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @classmethod"},{"line_number":71,"context_line":"    def setup_credentials(cls):"},{"line_number":72,"context_line":"        super(BaseIdentityV2Test, cls).setup_credentials()"},{"line_number":73,"context_line":"        cls.os \u003d cls.get_client_manager(identity_version\u003d\u0027v2\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_c72f2da0","line":72,"in_reply_to":"baa041b7_5bacc99f","updated":"2015-04-07 13:07:11.000000000","message":"Absolutely. I implemented that here https://review.openstack.org/#/c/168367, as this patched seemed to be large enough already :)","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @classmethod"},{"line_number":128,"context_line":"    def setup_credentials(cls):"},{"line_number":129,"context_line":"        super(BaseIdentityV3Test, cls).setup_credentials()"},{"line_number":130,"context_line":"        cls.os \u003d cls.get_client_manager(identity_version\u003d\u0027v3\u0027)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_1b976149","line":129,"updated":"2015-04-06 07:16:17.000000000","message":"ditto","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d192c324bd2f225b6365b2b38af2ed8b44f1e4aa","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    @classmethod"},{"line_number":155,"context_line":"    def skip_checks(cls):"},{"line_number":156,"context_line":"        if not credentials.is_admin_available():"},{"line_number":157,"context_line":"            raise cls.skipException(\u0027v3 Admin auth disabled\u0027)"},{"line_number":158,"context_line":"        super(BaseIdentityV3AdminTest, cls).skip_checks()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":36,"id":"9aa53dc9_43b70d3a","line":157,"updated":"2015-04-10 00:43:32.000000000","message":"This also can be removed.","commit_id":"89be79af2ebd210aa479a0797dc14259c01124d1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3b4d45352f73110bc18d36a7cb83508e921b2b18","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    @classmethod"},{"line_number":155,"context_line":"    def skip_checks(cls):"},{"line_number":156,"context_line":"        if not credentials.is_admin_available():"},{"line_number":157,"context_line":"            raise cls.skipException(\u0027v3 Admin auth disabled\u0027)"},{"line_number":158,"context_line":"        super(BaseIdentityV3AdminTest, cls).skip_checks()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":36,"id":"9aa53dc9_9c2446c5","line":157,"in_reply_to":"9aa53dc9_43b70d3a","updated":"2015-04-10 10:50:19.000000000","message":"Good catch, thanks","commit_id":"89be79af2ebd210aa479a0797dc14259c01124d1"}],"tempest/api/image/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @classmethod"},{"line_number":49,"context_line":"    def resource_setup(cls):"},{"line_number":50,"context_line":"        cls.set_network_resources()"},{"line_number":51,"context_line":"        super(BaseImageTest, cls).resource_setup()"},{"line_number":52,"context_line":"        cls.created_images \u003d []"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_3bb465cf","side":"PARENT","line":50,"updated":"2015-04-06 07:16:17.000000000","message":"I think it was missed here. So with this we need setup_credentials() in this class and move set_network_resources in that.","commit_id":"c105dbd19aa27e5e751c989b2f739be27b8d5e56"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @classmethod"},{"line_number":49,"context_line":"    def resource_setup(cls):"},{"line_number":50,"context_line":"        cls.set_network_resources()"},{"line_number":51,"context_line":"        super(BaseImageTest, cls).resource_setup()"},{"line_number":52,"context_line":"        cls.created_images \u003d []"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_fa264415","side":"PARENT","line":50,"in_reply_to":"baa041b7_3bb465cf","updated":"2015-04-07 13:07:11.000000000","message":"Indeed. I fill fix this.","commit_id":"c105dbd19aa27e5e751c989b2f739be27b8d5e56"}],"tempest/api/network/admin/test_floating_ips_admin_actions.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):"},{"line_number":26,"context_line":"    force_tenant_isolation \u003d True"},{"line_number":27,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_5be849b4","line":27,"updated":"2015-04-06 07:16:17.000000000","message":"Need \u0027admin\u0027 cred also","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"143fb178cddd9ebfd3ed4b7b9309afbd18d7c027","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):"},{"line_number":26,"context_line":"    force_tenant_isolation \u003d True"},{"line_number":27,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_7cb587cb","line":27,"in_reply_to":"9aa53dc9_cd874760","updated":"2015-04-07 14:37:31.000000000","message":"It works because setup_credentials is overwritten in base.py - which I will fix.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):"},{"line_number":26,"context_line":"    force_tenant_isolation \u003d True"},{"line_number":27,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_cd874760","line":27,"in_reply_to":"baa041b7_5be849b4","updated":"2015-04-07 13:07:11.000000000","message":"Indeed - I wonder how this works now...","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"}],"tempest/api/network/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            raise cls.skipException(msg)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    @classmethod"},{"line_number":439,"context_line":"    def setup_credentials(cls):"},{"line_number":440,"context_line":"        super(BaseAdminNetworkTest, cls).setup_credentials()"},{"line_number":441,"context_line":"        creds \u003d cls.isolated_creds.get_admin_creds()"},{"line_number":442,"context_line":"        cls.os_adm \u003d clients.Manager(credentials\u003dcreds)"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_bbd755ec","line":439,"updated":"2015-04-06 07:16:17.000000000","message":"we can remove this overriden method now","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            raise cls.skipException(msg)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    @classmethod"},{"line_number":439,"context_line":"    def setup_credentials(cls):"},{"line_number":440,"context_line":"        super(BaseAdminNetworkTest, cls).setup_credentials()"},{"line_number":441,"context_line":"        creds \u003d cls.isolated_creds.get_admin_creds()"},{"line_number":442,"context_line":"        cls.os_adm \u003d clients.Manager(credentials\u003dcreds)"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_8dcfffaf","line":439,"in_reply_to":"baa041b7_bbd755ec","updated":"2015-04-07 13:07:11.000000000","message":"yes, good catch","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"}],"tempest/api/object_storage/base.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b340defd2a97aa51e91458d64da5cdbb422c6bc1","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class BaseObjectTest(tempest.test.BaseTestCase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027, \u0027admin\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @classmethod"},{"line_number":31,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":28,"id":"da9b358b_437d3b1b","line":28,"updated":"2015-03-30 22:30:33.000000000","message":"I guess this are not needed anymore.","commit_id":"008a9a0577f027e3844113b23659edb703d287ea"}],"tempest/common/credentials.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f2e4b377791bdefcff32689432f2376b4a018114","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            is_alt \u003d False"},{"line_number":88,"context_line":"    else:"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            cred_provider.get_configured_credentials(\u0027alt_user\u0027,"},{"line_number":91,"context_line":"                                                     fill_in\u003dFalse)"},{"line_number":92,"context_line":"        except exceptions.InvalidConfiguration:"},{"line_number":93,"context_line":"            is_alt \u003d False"}],"source_content_type":"text/x-python","patch_set":38,"id":"5aa745d1_b0eea289","line":90,"updated":"2015-04-16 15:24:11.000000000","message":"So I\u0027m fine with doing this, but looking at the accounts code. \n\nBut, the is_multi_user() method for NotLockingAccounts does a bit more thorough check. Not sure if you\u0027d want to use that here instead.","commit_id":"d9018b2edcecbeddad816ca55607473ef2272b44"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"97cc9b8ead6a9130c659191a1fe1b24fc19f4f81","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            is_alt \u003d False"},{"line_number":88,"context_line":"    else:"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            cred_provider.get_configured_credentials(\u0027alt_user\u0027,"},{"line_number":91,"context_line":"                                                     fill_in\u003dFalse)"},{"line_number":92,"context_line":"        except exceptions.InvalidConfiguration:"},{"line_number":93,"context_line":"            is_alt \u003d False"}],"source_content_type":"text/x-python","patch_set":38,"id":"5aa745d1_1978dac3","line":90,"in_reply_to":"5aa745d1_b0eea289","updated":"2015-04-16 18:13:33.000000000","message":"ok I can do that","commit_id":"d9018b2edcecbeddad816ca55607473ef2272b44"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8b13f62691ad143f224a119bf9d68c63114054e0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                is_alt \u003d False"},{"line_number":93,"context_line":"        except exceptions.InvalidConfiguration:"},{"line_number":94,"context_line":"            is_alt \u003d False"},{"line_number":95,"context_line":"    return is_alt"}],"source_content_type":"text/x-python","patch_set":39,"id":"3ab451fb_66f19fcd","line":95,"updated":"2015-04-17 01:56:08.000000000","message":"this method seems a little difficult to read due to multiple conditions and nested lines.\n\nHow about\n\ndef is_alt_available():\n    if CONF.auth.allow_tenant_isolation:\n        return True\n\n    if (CONF.auth.test_accounts_file and\n        os.path.isfile(CONF.auth.test_accounts_file)):\n        check_accounts \u003d accounts.Accounts(name\u003d\u0027check_alt\u0027)\n    else:\n        check_accounts \u003d accounts.NotLockingAccounts(name\u003d\u0027check_alt\u0027)\n\n    try:\n        if not check_accounts.is_multi_user():\n            return False\n    except exceptions.InvalidConfiguration:\n            return False\n    return True\n\n?","commit_id":"3c0daa6dda7f44762e1711ddc1946eb7525b3352"}],"tempest/common/isolated_creds.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b340defd2a97aa51e91458d64da5cdbb422c6bc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"da9b358b_43f9bb7f","updated":"2015-03-30 22:30:33.000000000","message":"Changes to this file can probably be split into a different patch","commit_id":"008a9a0577f027e3844113b23659edb703d287ea"}],"tempest/scenario/manager.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":1131,"context_line":"            raise cls.skipException(msg)"},{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"    @classmethod"},{"line_number":1134,"context_line":"    def setup_credentials(cls):"},{"line_number":1135,"context_line":"        super(BaremetalScenarioTest, cls).setup_credentials()"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        cls.baremetal_client \u003d cls.admin_manager.baremetal_client"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_5b0de98e","line":1134,"updated":"2015-04-06 07:16:17.000000000","message":"setup_credentials -\u003e setup_client","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":1131,"context_line":"            raise cls.skipException(msg)"},{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"    @classmethod"},{"line_number":1134,"context_line":"    def setup_credentials(cls):"},{"line_number":1135,"context_line":"        super(BaremetalScenarioTest, cls).setup_credentials()"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        cls.baremetal_client \u003d cls.admin_manager.baremetal_client"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_2de8f30f","line":1134,"in_reply_to":"baa041b7_5b0de98e","updated":"2015-04-07 13:07:11.000000000","message":"upz, right","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"29775392c77c4efff1e90e1357ab74da875eeace","unresolved":false,"context_lines":[{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"    @classmethod"},{"line_number":1134,"context_line":"    def setup_clients(cls):"},{"line_number":1135,"context_line":"        super(BaremetalScenarioTest, cls).setup_credentials()"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        cls.baremetal_client \u003d cls.admin_manager.baremetal_client"},{"line_number":1138,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9aa53dc9_6ad12257","line":1135,"updated":"2015-04-07 23:59:15.000000000","message":"ah, super call missed the changes.","commit_id":"b00235313cfdf703006347d39d1c464a0140b543"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"fe9a0602d7df7029b94228f41c46ab0f319557dd","unresolved":false,"context_lines":[{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"    @classmethod"},{"line_number":1134,"context_line":"    def setup_clients(cls):"},{"line_number":1135,"context_line":"        super(BaremetalScenarioTest, cls).setup_credentials()"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        cls.baremetal_client \u003d cls.admin_manager.baremetal_client"},{"line_number":1138,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9aa53dc9_68e80011","line":1135,"in_reply_to":"9aa53dc9_6ad12257","updated":"2015-04-08 09:14:42.000000000","message":"Done","commit_id":"b00235313cfdf703006347d39d1c464a0140b543"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d192c324bd2f225b6365b2b38af2ed8b44f1e4aa","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"    def skip_checks(cls):"},{"line_number":1264,"context_line":"        super(EncryptionScenarioTest, cls).skip_checks()"},{"line_number":1265,"context_line":"        if not credentials.is_admin_available():"},{"line_number":1266,"context_line":"            msg \u003d (\"Missing Identity Admin API credentials in configuration.\")"},{"line_number":1267,"context_line":"            raise cls.skipException(msg)"},{"line_number":1268,"context_line":""},{"line_number":1269,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":36,"id":"9aa53dc9_a37019a5","line":1266,"updated":"2015-04-10 00:43:32.000000000","message":"This also can be removed.","commit_id":"89be79af2ebd210aa479a0797dc14259c01124d1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3b4d45352f73110bc18d36a7cb83508e921b2b18","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"    def skip_checks(cls):"},{"line_number":1264,"context_line":"        super(EncryptionScenarioTest, cls).skip_checks()"},{"line_number":1265,"context_line":"        if not credentials.is_admin_available():"},{"line_number":1266,"context_line":"            msg \u003d (\"Missing Identity Admin API credentials in configuration.\")"},{"line_number":1267,"context_line":"            raise cls.skipException(msg)"},{"line_number":1268,"context_line":""},{"line_number":1269,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":36,"id":"9aa53dc9_7c2d02a7","line":1266,"in_reply_to":"9aa53dc9_a37019a5","updated":"2015-04-10 10:50:19.000000000","message":"Good catch, thanks","commit_id":"89be79af2ebd210aa479a0797dc14259c01124d1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f2e4b377791bdefcff32689432f2376b4a018114","unresolved":false,"context_lines":[{"line_number":38,"context_line":"class ScenarioTest(tempest.test.BaseTestCase):"},{"line_number":39,"context_line":"    \"\"\"Base class for scenario tests. Uses tempest own clients. \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":38,"id":"5aa745d1_3b42733f","line":41,"updated":"2015-04-16 15:24:11.000000000","message":"So don\u0027t hate me, but do we really need admin here for all the scenarios? I thought it was just a limited set that actually required them. I\u0027d rather not assign admin everywhere if it\u0027s not needed.","commit_id":"d9018b2edcecbeddad816ca55607473ef2272b44"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"97cc9b8ead6a9130c659191a1fe1b24fc19f4f81","unresolved":false,"context_lines":[{"line_number":38,"context_line":"class ScenarioTest(tempest.test.BaseTestCase):"},{"line_number":39,"context_line":"    \"\"\"Base class for scenario tests. Uses tempest own clients. \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":38,"id":"5aa745d1_d99392f9","line":41,"in_reply_to":"5aa745d1_3b42733f","updated":"2015-04-16 18:13:33.000000000","message":"You are right, this doe not look ok - I can\u0027t remember why I did it this why.\nI\u0027ll try to set admin only on the tests that need it (which is all the Base classes below).","commit_id":"d9018b2edcecbeddad816ca55607473ef2272b44"}],"tempest/test.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        for credentials_type in cls.credentials:"},{"line_number":333,"context_line":"            try:"},{"line_number":334,"context_line":"                manager \u003d cls.get_client_manager("},{"line_number":335,"context_line":"                    credential_type\u003dcredentials_type)"},{"line_number":336,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":337,"context_line":"                # Setup some common aliases"},{"line_number":338,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_5b83a904","line":335,"updated":"2015-04-06 07:16:17.000000000","message":"how about letting test class specify identity_version too. So that we can have consistency to setup credential.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        for credentials_type in cls.credentials:"},{"line_number":333,"context_line":"            try:"},{"line_number":334,"context_line":"                manager \u003d cls.get_client_manager("},{"line_number":335,"context_line":"                    credential_type\u003dcredentials_type)"},{"line_number":336,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":337,"context_line":"                # Setup some common aliases"},{"line_number":338,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_da3ca031","line":335,"in_reply_to":"baa041b7_5b83a904","updated":"2015-04-07 13:07:11.000000000","message":"yes - implemented in https://review.openstack.org/#/c/168367","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                manager \u003d cls.get_client_manager("},{"line_number":335,"context_line":"                    credential_type\u003dcredentials_type)"},{"line_number":336,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":337,"context_line":"                # Setup some common aliases"},{"line_number":338,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"},{"line_number":339,"context_line":"                    cls.os \u003d cls.manager \u003d cls.os_primary"},{"line_number":340,"context_line":"                if credentials_type \u003d\u003d \u0027admin\u0027:"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_7bd78d23","line":337,"updated":"2015-04-06 07:16:17.000000000","message":"1 suggestion - we should make these variable name consistent instead of allowing many aliases. something\n - \u0027os_%s_manager\u0027 % credentials_type\n\nI know it will lead to change many test files\u0027s setup_client so m ok to do it in separate patch or in this.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"940391831593eb704a7b5e442410b0d4ad9317f2","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                manager \u003d cls.get_client_manager("},{"line_number":335,"context_line":"                    credential_type\u003dcredentials_type)"},{"line_number":336,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":337,"context_line":"                # Setup some common aliases"},{"line_number":338,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"},{"line_number":339,"context_line":"                    cls.os \u003d cls.manager \u003d cls.os_primary"},{"line_number":340,"context_line":"                if credentials_type \u003d\u003d \u0027admin\u0027:"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_0a13b60e","line":337,"in_reply_to":"9aa53dc9_5a09b094","updated":"2015-04-07 23:58:33.000000000","message":"Sounds good.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                manager \u003d cls.get_client_manager("},{"line_number":335,"context_line":"                    credential_type\u003dcredentials_type)"},{"line_number":336,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":337,"context_line":"                # Setup some common aliases"},{"line_number":338,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"},{"line_number":339,"context_line":"                    cls.os \u003d cls.manager \u003d cls.os_primary"},{"line_number":340,"context_line":"                if credentials_type \u003d\u003d \u0027admin\u0027:"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_5a09b094","line":337,"in_reply_to":"baa041b7_7bd78d23","updated":"2015-04-07 13:07:11.000000000","message":"Yes I agree, I didn\u0027t do it here because it would require too many changes. We can align naming in a follow-up patch.\nIt might make sense to add some properties, so that it\u0027s more clear for people implementing tests which name they should use.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"95ee7e8eb480a45e73612cc773684005482b00fb","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    _service \u003d None"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    credentials \u003d []"},{"line_number":236,"context_line":"    # NOTE(andreaf) credentials holds a list of the credentials to be allocated"},{"line_number":237,"context_line":"    # at class setup time. Credential types can be \u0027primary\u0027, \u0027alt\u0027 or \u0027admin\u0027"},{"line_number":238,"context_line":"    network_resources \u003d {}"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"7aaa499b_02292ae6","line":236,"updated":"2015-04-15 14:15:05.000000000","message":"The NOTE should be above the definition","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"95ee7e8eb480a45e73612cc773684005482b00fb","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                setattr(cls, \u0027os_%s\u0027 % credentials_type, manager)"},{"line_number":339,"context_line":"                # Setup some common aliases"},{"line_number":340,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"},{"line_number":341,"context_line":"                    cls.os \u003d cls.manager \u003d cls.os_primary"},{"line_number":342,"context_line":"                if credentials_type \u003d\u003d \u0027admin\u0027:"},{"line_number":343,"context_line":"                    cls.os_adm \u003d cls.admin_manager \u003d cls.os_admin"},{"line_number":344,"context_line":"                if credentials_type \u003d\u003d \u0027alt\u0027:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7aaa499b_22eb067a","line":341,"updated":"2015-04-15 14:15:05.000000000","message":"I think we should have a TODO to clean this up to be just one. It\u0027ll make things a bit better to have a common alias. (personally I like cls.os)","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"95ee7e8eb480a45e73612cc773684005482b00fb","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                if credentials_type \u003d\u003d \u0027primary\u0027:"},{"line_number":341,"context_line":"                    cls.os \u003d cls.manager \u003d cls.os_primary"},{"line_number":342,"context_line":"                if credentials_type \u003d\u003d \u0027admin\u0027:"},{"line_number":343,"context_line":"                    cls.os_adm \u003d cls.admin_manager \u003d cls.os_admin"},{"line_number":344,"context_line":"                if credentials_type \u003d\u003d \u0027alt\u0027:"},{"line_number":345,"context_line":"                    cls.alt_manager \u003d cls.os_alt"},{"line_number":346,"context_line":"            except NotImplementedError:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7aaa499b_c2fa2243","line":343,"updated":"2015-04-15 14:15:05.000000000","message":"ditto","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"95ee7e8eb480a45e73612cc773684005482b00fb","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                    cls.os_adm \u003d cls.admin_manager \u003d cls.os_admin"},{"line_number":344,"context_line":"                if credentials_type \u003d\u003d \u0027alt\u0027:"},{"line_number":345,"context_line":"                    cls.alt_manager \u003d cls.os_alt"},{"line_number":346,"context_line":"            except NotImplementedError:"},{"line_number":347,"context_line":"                # In case of admin or alt credentials missing, we skip the"},{"line_number":348,"context_line":"                # test class. Otherwise we raise an InvalidConfiguration"},{"line_number":349,"context_line":"                msg \u003d \"Missing valid %s credentials in configuration.\" % \\"}],"source_content_type":"text/x-python","patch_set":37,"id":"7aaa499b_8233fa13","line":346,"updated":"2015-04-15 14:15:05.000000000","message":"Is this the right exception? If it\u0027s the locking accounts provider won\u0027t it raise an invalid configuration exception if the creds are missing?","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"95ee7e8eb480a45e73612cc773684005482b00fb","unresolved":false,"context_lines":[{"line_number":348,"context_line":"                # test class. Otherwise we raise an InvalidConfiguration"},{"line_number":349,"context_line":"                msg \u003d \"Missing valid %s credentials in configuration.\" % \\"},{"line_number":350,"context_line":"                      credentials_type"},{"line_number":351,"context_line":"                if credentials_type in [\u0027admin\u0027, \u0027alt\u0027]:"},{"line_number":352,"context_line":"                    raise cls.skipException(msg)"},{"line_number":353,"context_line":"                else:"},{"line_number":354,"context_line":"                    raise exceptions.InvalidConfiguration(msg)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7aaa499b_fdfb83bf","line":351,"updated":"2015-04-15 14:15:05.000000000","message":"Something seems weird to me with this except and if logic here.\nDo you have an example of this in the previous flow. I know we preempt this in the admin case with is_admin_available() (that\u0027s why that helper exists)\n\nI\u0027m thinking it would be better and less error prone to check up front for multiple users in skip_checks too and just drop the try block here completely. That way by the time we are allocated the required cred types we would expect that everything is present, and any exception is fatal. I feel this will be better than playing whac-a-mole with the right exception type, etc.","commit_id":"3508aca6db12d61fe238bc83fecb56fee55e6008"}],"tempest/thirdparty/boto/test.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42fbf516129369050d68db0accbd04efea807d9","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                not CONF.identity.auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":209,"context_line":"            raise cls.skipException(\"Identity v2 is not available\")"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setup_credentials(cls):"},{"line_number":213,"context_line":"        super(BotoTestCase, cls).setup_credentials()"},{"line_number":214,"context_line":"        cls.os \u003d cls.get_client_manager()"}],"source_content_type":"text/x-python","patch_set":31,"id":"baa041b7_9b61313c","line":211,"updated":"2015-04-06 07:16:17.000000000","message":"we can remove this method now.","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1c9b7138495bb2528cb679a64526bc75b0d6e68a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                not CONF.identity.auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":209,"context_line":"            raise cls.skipException(\"Identity v2 is not available\")"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setup_credentials(cls):"},{"line_number":213,"context_line":"        super(BotoTestCase, cls).setup_credentials()"},{"line_number":214,"context_line":"        cls.os \u003d cls.get_client_manager()"}],"source_content_type":"text/x-python","patch_set":31,"id":"9aa53dc9_49120c64","line":211,"in_reply_to":"baa041b7_9b61313c","updated":"2015-04-07 13:07:11.000000000","message":"good catch, thanks","commit_id":"39c8da3a2073cac91ccfdc7c1d43e9666446ca4f"}]}
