)]}'
{"tempest/clients.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1f7a4bcc107acf447b66428cec243e464f611620","unresolved":false,"context_lines":[{"line_number":452,"context_line":"    SAHARACLIENT_VERSION \u003d \u00271.1\u0027"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    def __init__(self, username, password, tenant_name,"},{"line_number":455,"context_line":"                 novaclient_version\u003d\u00272\u0027):"},{"line_number":456,"context_line":"        # FIXME(andreaf) Auth provider for client_type \u0027official\u0027 is"},{"line_number":457,"context_line":"        # not implemented yet, setting to \u0027tempest\u0027 for now."},{"line_number":458,"context_line":"        self.client_type \u003d \u0027tempest\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_0d697d8b","line":455,"updated":"2014-05-07 16:04:31.000000000","message":"On the long term I would like to see managers behave like a client factory (it\u0027s part of the multi-auth bp for now, I may created a dedicated bp though):\n- clients are only instantiated on demand (lazy load)\n- the manager would internally cache instances of clients and serve them from cache where applicable\n- test base classes would use get_x_client instead of the attribute, and pass client specific parameters (i.e. version) into that call\n\nGiven the current state of the managers code I think this implementation is fine.","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"7ec090e850033899fb384593acd410304b3aa988","unresolved":false,"context_lines":[{"line_number":452,"context_line":"    SAHARACLIENT_VERSION \u003d \u00271.1\u0027"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    def __init__(self, username, password, tenant_name,"},{"line_number":455,"context_line":"                 novaclient_version\u003d\u00272\u0027):"},{"line_number":456,"context_line":"        # FIXME(andreaf) Auth provider for client_type \u0027official\u0027 is"},{"line_number":457,"context_line":"        # not implemented yet, setting to \u0027tempest\u0027 for now."},{"line_number":458,"context_line":"        self.client_type \u003d \u0027tempest\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_3b55851d","line":455,"in_reply_to":"7adec928_0d697d8b","updated":"2014-05-08 07:30:54.000000000","message":"Thanks for the clarification, it\u0027s a good idea.","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"}],"tempest/scenario/manager.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6547bed38e2c8da51b45d5e51bfac90b00b3651a","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, username, password, tenant_name, **kwargs):"},{"line_number":66,"context_line":"        super(OfficialClientManager, self).__init__()"},{"line_number":67,"context_line":"        novaclient_version \u003d kwargs.get(\u0027novaclient_version\u0027, None)"},{"line_number":68,"context_line":"        nova_service_type \u003d kwargs.get(\u0027nova_service_type\u0027, None)"},{"line_number":69,"context_line":"        if novaclient_version is None:"},{"line_number":70,"context_line":"            novaclient_version \u003d \u00272\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FDWI%3D","line":67,"updated":"2014-02-17 12:55:50.000000000","message":"Don\u0027t need the None as default here","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6547bed38e2c8da51b45d5e51bfac90b00b3651a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def __init__(self, username, password, tenant_name, **kwargs):"},{"line_number":66,"context_line":"        super(OfficialClientManager, self).__init__()"},{"line_number":67,"context_line":"        novaclient_version \u003d kwargs.get(\u0027novaclient_version\u0027, None)"},{"line_number":68,"context_line":"        nova_service_type \u003d kwargs.get(\u0027nova_service_type\u0027, None)"},{"line_number":69,"context_line":"        if novaclient_version is None:"},{"line_number":70,"context_line":"            novaclient_version \u003d \u00272\u0027"},{"line_number":71,"context_line":"        if nova_service_type is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FDWE%3D","line":68,"updated":"2014-02-17 12:55:50.000000000","message":"Don\u0027t need the None as default here","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6547bed38e2c8da51b45d5e51bfac90b00b3651a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        novaclient_version \u003d kwargs.get(\u0027novaclient_version\u0027, None)"},{"line_number":68,"context_line":"        nova_service_type \u003d kwargs.get(\u0027nova_service_type\u0027, None)"},{"line_number":69,"context_line":"        if novaclient_version is None:"},{"line_number":70,"context_line":"            novaclient_version \u003d \u00272\u0027"},{"line_number":71,"context_line":"        if nova_service_type is None:"},{"line_number":72,"context_line":"            nova_service_type \u003d CONF.compute.catalog_type"},{"line_number":73,"context_line":"        self.compute_client \u003d self._get_compute_client(username,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FDU0%3D","line":70,"updated":"2014-02-17 12:55:50.000000000","message":"Why not have the default in the kwargs.get instead? Same for nova_service_type","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"19934c83f9c4cbb80861a8b72a766901740ecb9e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        if novaclient_version is None:"},{"line_number":70,"context_line":"            novaclient_version \u003d \u00272\u0027"},{"line_number":71,"context_line":"        if nova_service_type is None:"},{"line_number":72,"context_line":"            nova_service_type \u003d CONF.compute.catalog_type"},{"line_number":73,"context_line":"        self.compute_client \u003d self._get_compute_client(username,"},{"line_number":74,"context_line":"                                                       password,"},{"line_number":75,"context_line":"                                                       tenant_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAU3%2F%2F6FM%3D","line":72,"updated":"2014-02-24 06:06:26.000000000","message":"I agree with Christopher. same here as he said.","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6547bed38e2c8da51b45d5e51bfac90b00b3651a","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _get_compute_client(self, username, password, tenant_name,"},{"line_number":97,"context_line":"                            novaclient_version\u003d\u00272\u0027,"},{"line_number":98,"context_line":"                            nova_service_type\u003dCONF.compute.catalog_type):"},{"line_number":99,"context_line":"        # Novaclient will not execute operations for anyone but the"},{"line_number":100,"context_line":"        # identified user, so a new client needs to be created for"},{"line_number":101,"context_line":"        # each user that operations need to be performed for."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FDUM%3D","line":98,"updated":"2014-02-17 12:55:50.000000000","message":"are the defaults really necessary here? The only use of _get_compute_client seems to be above","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"80bcc5522e51dc80caa1c7ed5f276e56c97746a9","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            network_resources\u003dcls.network_resources)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        username, password, tenant_name \u003d cls.credentials()"},{"line_number":69,"context_line":"        if getattr(cls, \u0027novaclient_version\u0027, \u00272\u0027) \u003d\u003d \u00273\u0027 and \\"},{"line_number":70,"context_line":"            not CONF.compute_feature_enabled.api_v3:"},{"line_number":71,"context_line":"                cls.tearDownClass()"},{"line_number":72,"context_line":"                skip_msg \u003d (\"%s skipped as nova v3 api is not available\" %"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F9VEY%3D","line":69,"updated":"2014-04-07 00:14:37.000000000","message":"why not define novaclient_version \u003d 2 in the class and then just reference self.novaclient_version\n\nCan just do the override as you have in the subclasses","commit_id":"8642448c0b85b10befa0ff7a98c3cd8e2489d010"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1f7a4bcc107acf447b66428cec243e464f611620","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                else:"},{"line_number":320,"context_line":"                    msg \u003d (\"The network on which the NIC of the server must \""},{"line_number":321,"context_line":"                           \"be connected can not be found : \""},{"line_number":322,"context_line":"                           \"fixed_network_name\u003d%s. Starting instance without\""},{"line_number":323,"context_line":"                           \"specifying a network.\") % fixed_network_name"},{"line_number":324,"context_line":"                    LOG.info(msg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_0d009da9","line":322,"updated":"2014-05-07 16:04:31.000000000","message":"Space was removed accidentally?","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"7ec090e850033899fb384593acd410304b3aa988","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                else:"},{"line_number":320,"context_line":"                    msg \u003d (\"The network on which the NIC of the server must \""},{"line_number":321,"context_line":"                           \"be connected can not be found : \""},{"line_number":322,"context_line":"                           \"fixed_network_name\u003d%s. Starting instance without\""},{"line_number":323,"context_line":"                           \"specifying a network.\") % fixed_network_name"},{"line_number":324,"context_line":"                    LOG.info(msg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_5b31710a","line":322,"in_reply_to":"7adec928_0d009da9","updated":"2014-05-08 07:30:54.000000000","message":"yes","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5e3eb9151874d6d1df959d9fd19da83ecbb3cf07","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            cls.__name__, tempest_client\u003dFalse,"},{"line_number":68,"context_line":"            network_resources\u003dcls.network_resources)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        if (cls.novaclient_version \u003d\u003d \u00273\u0027 and"},{"line_number":71,"context_line":"                not CONF.compute_feature_enabled.api_v3):"},{"line_number":72,"context_line":"            cls.tearDownClass()"},{"line_number":73,"context_line":"            skip_msg \u003d (\"%s skipped as nova v3 api is not available\" %"}],"source_content_type":"text/x-python","patch_set":16,"id":"7adec928_cd537c37","line":70,"updated":"2014-05-16 18:00:34.000000000","message":"I think this block should be moved before the call to IsolatedCred() (2 lines above). This way, the call to cls.tearDownClass could be avoided because no ressource would be created.","commit_id":"fea19032e6e7eb8fb07b875e84d85804ee463d8e"}],"tempest/scenario/test_large_ops.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6547bed38e2c8da51b45d5e51bfac90b00b3651a","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class TestLargeOpsScenarioV3(TestLargeOpsScenario):"},{"line_number":117,"context_line":"    novaclient_version \u003d \u00273\u0027"},{"line_number":118,"context_line":"    nova_service_type \u003d CONF.compute.catalog_v3_type"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FDMk%3D","line":118,"updated":"2014-02-17 12:55:50.000000000","message":"So this seems to always be the setting for catalog_v3_type and I think it always will be. Why not just have it implied in OfficialClientTest if novaclient_version \u003d 3?","commit_id":"da0ad03fcacb8182b4a6998413c522168b61ad76"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"80bcc5522e51dc80caa1c7ed5f276e56c97746a9","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def test_large_ops_scenario(self):"},{"line_number":71,"context_line":"        if CONF.scenario.large_ops_number \u003c 1:"},{"line_number":72,"context_line":"            return"},{"line_number":73,"context_line":"        if getattr(self, \u0027novaclient_version\u0027, \u00272\u0027) \u003d\u003d \u00273\u0027:"},{"line_number":74,"context_line":"            self.check_preconditions()"},{"line_number":75,"context_line":"        self.glance_image_create()"},{"line_number":76,"context_line":"        self.nova_boot()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F9VFE%3D","line":73,"updated":"2014-04-07 00:14:37.000000000","message":"Maybe just put the self.check_preconditions in setupClass for TestLargeOpsScenarioV3","commit_id":"8642448c0b85b10befa0ff7a98c3cd8e2489d010"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1f7a4bcc107acf447b66428cec243e464f611620","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class TestLargeOpsScenarioV3(TestLargeOpsScenario):"},{"line_number":78,"context_line":"    novaclient_version \u003d \u00273\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @test.services(\u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":81,"context_line":"    def test_large_ops_scenario(self):"},{"line_number":82,"context_line":"        if CONF.scenario.large_ops_number \u003c 1:"},{"line_number":83,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_b853696b","line":80,"updated":"2014-05-07 16:04:31.000000000","message":"Is it the case that this test can only be executed if neutron is available with nova v3 api?\nNova networking is not available with nova v3 api?","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"7ec090e850033899fb384593acd410304b3aa988","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class TestLargeOpsScenarioV3(TestLargeOpsScenario):"},{"line_number":78,"context_line":"    novaclient_version \u003d \u00273\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @test.services(\u0027compute\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":81,"context_line":"    def test_large_ops_scenario(self):"},{"line_number":82,"context_line":"        if CONF.scenario.large_ops_number \u003c 1:"},{"line_number":83,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_9b3bf9ea","line":80,"in_reply_to":"7adec928_b853696b","updated":"2014-05-08 07:30:54.000000000","message":"yes, Nova networking is not available with nova v3 api.","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"}],"tempest/scenario/test_security_groups_basic_ops.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1f7a4bcc107acf447b66428cec243e464f611620","unresolved":false,"context_lines":[{"line_number":472,"context_line":"class TestSecurityGroupsBasicOpsV3(TestSecurityGroupsBasicOps):"},{"line_number":473,"context_line":"    novaclient_version \u003d \u00273\u0027"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    class TenantProperties(TestSecurityGroupsBasicOps.TenantProperties):"},{"line_number":476,"context_line":"        \u0027\u0027\u0027"},{"line_number":477,"context_line":"        helper class to save tenant details"},{"line_number":478,"context_line":"            id"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_b825290c","line":475,"updated":"2014-05-07 16:04:31.000000000","message":"Do we need to redefine this class only to change one version flag? What about changing the original TenantProperties and make it aware of novaclient version?","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"7ec090e850033899fb384593acd410304b3aa988","unresolved":false,"context_lines":[{"line_number":472,"context_line":"class TestSecurityGroupsBasicOpsV3(TestSecurityGroupsBasicOps):"},{"line_number":473,"context_line":"    novaclient_version \u003d \u00273\u0027"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    class TenantProperties(TestSecurityGroupsBasicOps.TenantProperties):"},{"line_number":476,"context_line":"        \u0027\u0027\u0027"},{"line_number":477,"context_line":"        helper class to save tenant details"},{"line_number":478,"context_line":"            id"}],"source_content_type":"text/x-python","patch_set":11,"id":"7adec928_89dd6c17","line":475,"in_reply_to":"7adec928_b825290c","updated":"2014-05-08 07:30:54.000000000","message":"ok, done.","commit_id":"ff146d816ed395b2a6d117b40c86854bea8489a1"}]}
