Re: [openstack-dev] A question about strange behavior of oslo.config in eclipse
On Mon, Feb 23, 2015, at 01:29 AM, Joshua Zhang wrote: Hi Doug, I can't find above error when using the latest codes (2015-02-22), but new error occur ( see [1] ). I feel it has no concern with the code(ConfigOpts.import_opt), the same code can be run in both bash and pycharm, it just didn't work in eclipse+pydev. It looks like there are some conflicts between oslo/monkey patch and pydev. You are python expert, could you give me some input by the following traceback ? Unfortunately, I don't know much about eclipse or pydev, so I'm not sure how much help I can be. The traceback is saying that the MultiString class is missing from oslo_config.types. Is that true? Do you somehow have a version of the file without that class? Is there another version of oslo.config installed elsewhere that could be interfering with the imports? Another question, 'Gevent compatible debugging' feature both in eclipse and pycharm doesn't work, changing 'thread=False' for monkey patch may cause the error [2], so now I have to get back to use pdb to debug openstack. Could you have some idea to make oslo/monkey patch is more friendly for IDE ? many thanks. This is outside of my area of expertise. Maybe another pydev user can share information about how they have configured it? *[1]*, traceback when running 'neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini' in eclipse+pydev env. while we can run this command well in bash and pycharm. Traceback (most recent call last): File /usr/local/bin/neutron-server, line 9, in module load_entry_point('neutron==2015.1.dev202', 'console_scripts', 'neutron-server')() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 521, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2632, in load_entry_point return ep.load() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2312, in load return self.resolve() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2318, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File /bak/openstack/neutron/neutron/cmd/eventlet/server/__init__.py, line 13, in module from neutron import server File /bak/openstack/neutron/neutron/server/__init__.py, line 26, in module from neutron.common import config File /bak/openstack/neutron/neutron/common/config.py, line 25, in module import oslo_messaging File /usr/local/lib/python2.7/dist-packages/oslo_messaging/__init__.py, line 18, in module from .notify import * File /usr/local/lib/python2.7/dist-packages/oslo_messaging/notify/__init__.py, line 23, in module from .notifier import * File /usr/local/lib/python2.7/dist-packages/oslo_messaging/notify/notifier.py, line 32, in module help='Driver or drivers to handle sending notifications.'), File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1108, in __init__ item_type=types.MultiString(), AttributeError: 'module' object has no attribute 'MultiString' *[2] * 2015-02-22 14:56:24.117 ERROR oslo_messaging.rpc.dispatcher [req-65501748-3db5-43b6-b00e-732565d2192a TestNetworkVPNaaS-1393357785 TestNetworkVPNaaS-1147259963] Exception during message handling: _oslo_messaging_localcontext_9bb7d928d1a042e085f354eb118e98a0 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last): 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py, line 142, in _dispatch_and_reply 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher executor_callback)) 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py, line 188, in _dispatch 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher localcontext.clear_local_context() 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/localcontext.py, line 55, in clear_local_context 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher delattr(_STORE, _KEY) 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher AttributeError: _oslo_messaging_localcontext_9bb7d928d1a042e085f354eb118e98a0 On Sat, Feb 14, 2015 at 7:05 AM, Doug Hellmann d...@doughellmann.com wrote: On Thu, Feb 12, 2015, at 07:19 AM, Joshua Zhang wrote: Hi Doug, Thank you very much for your reply. I don't have any codes, so no any special codes as well. Only thing I did is that: 1, use devstack to install a fresh openstack env, all are ok. 2,
Re: [openstack-dev] A question about strange behavior of oslo.config in eclipse
Hi Doug, I can't find above error when using the latest codes (2015-02-22), but new error occur ( see [1] ). I feel it has no concern with the code(ConfigOpts.import_opt), the same code can be run in both bash and pycharm, it just didn't work in eclipse+pydev. It looks like there are some conflicts between oslo/monkey patch and pydev. You are python expert, could you give me some input by the following traceback ? Another question, 'Gevent compatible debugging' feature both in eclipse and pycharm doesn't work, changing 'thread=False' for monkey patch may cause the error [2], so now I have to get back to use pdb to debug openstack. Could you have some idea to make oslo/monkey patch is more friendly for IDE ? many thanks. *[1]*, traceback when running 'neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini' in eclipse+pydev env. while we can run this command well in bash and pycharm. Traceback (most recent call last): File /usr/local/bin/neutron-server, line 9, in module load_entry_point('neutron==2015.1.dev202', 'console_scripts', 'neutron-server')() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 521, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2632, in load_entry_point return ep.load() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2312, in load return self.resolve() File /usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py, line 2318, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File /bak/openstack/neutron/neutron/cmd/eventlet/server/__init__.py, line 13, in module from neutron import server File /bak/openstack/neutron/neutron/server/__init__.py, line 26, in module from neutron.common import config File /bak/openstack/neutron/neutron/common/config.py, line 25, in module import oslo_messaging File /usr/local/lib/python2.7/dist-packages/oslo_messaging/__init__.py, line 18, in module from .notify import * File /usr/local/lib/python2.7/dist-packages/oslo_messaging/notify/__init__.py, line 23, in module from .notifier import * File /usr/local/lib/python2.7/dist-packages/oslo_messaging/notify/notifier.py, line 32, in module help='Driver or drivers to handle sending notifications.'), File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1108, in __init__ item_type=types.MultiString(), AttributeError: 'module' object has no attribute 'MultiString' *[2] * 2015-02-22 14:56:24.117 ERROR oslo_messaging.rpc.dispatcher [req-65501748-3db5-43b6-b00e-732565d2192a TestNetworkVPNaaS-1393357785 TestNetworkVPNaaS-1147259963] Exception during message handling: _oslo_messaging_localcontext_9bb7d928d1a042e085f354eb118e98a0 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last): 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py, line 142, in _dispatch_and_reply 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher executor_callback)) 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py, line 188, in _dispatch 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher localcontext.clear_local_context() 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher File /usr/local/lib/python2.7/dist-packages/oslo_messaging/localcontext.py, line 55, in clear_local_context 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher delattr(_STORE, _KEY) 2015-02-22 14:56:24.117 28042 TRACE oslo_messaging.rpc.dispatcher AttributeError: _oslo_messaging_localcontext_9bb7d928d1a042e085f354eb118e98a0 On Sat, Feb 14, 2015 at 7:05 AM, Doug Hellmann d...@doughellmann.com wrote: On Thu, Feb 12, 2015, at 07:19 AM, Joshua Zhang wrote: Hi Doug, Thank you very much for your reply. I don't have any codes, so no any special codes as well. Only thing I did is that: 1, use devstack to install a fresh openstack env, all are ok. 2, import neutron-vpnaas directory (no any my own codes) into eclipse as pydev project, for example, run unit test (neutron_vpnaas.tests.unit.services.vpn.test_vpn_service ) in eclipse, it throws the following exception. 3, but this unit test can be run well in bash, see http://paste.openstack.org/show/172016/ 4, this unit test can also be run well in eclipse as long as I edit neutron/openstack/common/policy.py file to change oslo.config into oslo_config. == ERROR: test_add_nat_rule
Re: [openstack-dev] A question about strange behavior of oslo.config in eclipse
On Thu, Feb 12, 2015, at 07:19 AM, Joshua Zhang wrote: Hi Doug, Thank you very much for your reply. I don't have any codes, so no any special codes as well. Only thing I did is that: 1, use devstack to install a fresh openstack env, all are ok. 2, import neutron-vpnaas directory (no any my own codes) into eclipse as pydev project, for example, run unit test (neutron_vpnaas.tests.unit.services.vpn.test_vpn_service ) in eclipse, it throws the following exception. 3, but this unit test can be run well in bash, see http://paste.openstack.org/show/172016/ 4, this unit test can also be run well in eclipse as long as I edit neutron/openstack/common/policy.py file to change oslo.config into oslo_config. == ERROR: test_add_nat_rule (neutron_vpnaas.tests.unit.services.vpn.test_vpn_service.TestVPNDeviceDriverCallsToService) neutron_vpnaas.tests.unit.services.vpn.test_vpn_service.TestVPNDeviceDriverCallsToService.test_add_nat_rule -- _StringException: Traceback (most recent call last): File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/services/vpn/test_vpn_service.py, line 98, in setUp super(TestVPNDeviceDriverCallsToService, self).setUp() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/services/vpn/test_vpn_service.py, line 53, in setUp super(VPNBaseTestCase, self).setUp() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/base.py, line 36, in setUp override_nvalues() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/base.py, line 30, in override_nvalues cfg.CONF.set_override('policy_file', neutron_policy) Yes, this line is trying to force the value of a policy module configuration value but the test file does not previously import the module where that option is defined. For now, you should investigate the fixture class in oslo.config [1], and update the test class to use ConfigOpts.import_opt() to ensure the policy option is defined. After the oslo.policy library is released (and neutron is updated to use it instead of the incubated version of that code), the tests will need to be changed again to use an API to update the setting because configuration options are not part of the public API for Oslo libraries. I filed a bug against oslo.policy to track the need for that change [2]. Doug [1] http://docs.openstack.org/developer/oslo.config/fixture.html [2] https://bugs.launchpad.net/oslo.policy/+bug/1421869 File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1679, in __inner result = f(self, *args, **kwargs) File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1949, in set_override opt_info = self._get_opt_info(name, group) File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 2262, in _get_opt_info raise NoSuchOptError(opt_name, group) NoSuchOptError: no such option: policy_file On Tue, Feb 10, 2015 at 10:38 PM, Doug Hellmann d...@doughellmann.com wrote: On Tue, Feb 10, 2015, at 04:29 AM, Joshua Zhang wrote: Hi Stacker, A question about oslo.config, maybe a very silly question. but pls tell me if you know, thanks in advance. I know oslo has removed 'olso' namespace, oslo.config has been changed to oslo_config, it also retains backwards compat. I found I can run openstack successfully, but as long as I run something in eclipse/pydev it always said like 'NoSuchOptError: no such option: policy_file'. I can change 'oslo.config' to 'oslo_config' in neutron/openstack/common/policy.py temporarily to bypass this problem when I want to debug something in eclipse. But I want to know why? who can help me to explain ? thanks. It sounds like you have code in one module using an option defined somewhere else and relying on import ordering to cause that option to be defined. The import_opt() method of the ConfigOpts class is meant to help make these cross-module option dependencies explicit [1]. If you provide a more detailed traceback I may be able to give more specific advice about where changes are needed. Doug [1] http://docs.openstack.org/developer/oslo.config/configopts.html?highlight=import_opt#oslo_config.cfg.ConfigOpts.import_opt -- Best Regards Zhang Hua(张华) Software Engineer | Canonical IRC: zhhuabj __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev __ OpenStack Development Mailing List (not for usage questions) Unsubscribe:
Re: [openstack-dev] A question about strange behavior of oslo.config in eclipse
Hi Doug, Thank you very much for your reply. I don't have any codes, so no any special codes as well. Only thing I did is that: 1, use devstack to install a fresh openstack env, all are ok. 2, import neutron-vpnaas directory (no any my own codes) into eclipse as pydev project, for example, run unit test (neutron_vpnaas.tests.unit.services.vpn.test_vpn_service ) in eclipse, it throws the following exception. 3, but this unit test can be run well in bash, see http://paste.openstack.org/show/172016/ 4, this unit test can also be run well in eclipse as long as I edit neutron/openstack/common/policy.py file to change oslo.config into oslo_config. == ERROR: test_add_nat_rule (neutron_vpnaas.tests.unit.services.vpn.test_vpn_service.TestVPNDeviceDriverCallsToService) neutron_vpnaas.tests.unit.services.vpn.test_vpn_service.TestVPNDeviceDriverCallsToService.test_add_nat_rule -- _StringException: Traceback (most recent call last): File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/services/vpn/test_vpn_service.py, line 98, in setUp super(TestVPNDeviceDriverCallsToService, self).setUp() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/services/vpn/test_vpn_service.py, line 53, in setUp super(VPNBaseTestCase, self).setUp() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/base.py, line 36, in setUp override_nvalues() File /bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/base.py, line 30, in override_nvalues cfg.CONF.set_override('policy_file', neutron_policy) File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1679, in __inner result = f(self, *args, **kwargs) File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 1949, in set_override opt_info = self._get_opt_info(name, group) File /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py, line 2262, in _get_opt_info raise NoSuchOptError(opt_name, group) NoSuchOptError: no such option: policy_file On Tue, Feb 10, 2015 at 10:38 PM, Doug Hellmann d...@doughellmann.com wrote: On Tue, Feb 10, 2015, at 04:29 AM, Joshua Zhang wrote: Hi Stacker, A question about oslo.config, maybe a very silly question. but pls tell me if you know, thanks in advance. I know oslo has removed 'olso' namespace, oslo.config has been changed to oslo_config, it also retains backwards compat. I found I can run openstack successfully, but as long as I run something in eclipse/pydev it always said like 'NoSuchOptError: no such option: policy_file'. I can change 'oslo.config' to 'oslo_config' in neutron/openstack/common/policy.py temporarily to bypass this problem when I want to debug something in eclipse. But I want to know why? who can help me to explain ? thanks. It sounds like you have code in one module using an option defined somewhere else and relying on import ordering to cause that option to be defined. The import_opt() method of the ConfigOpts class is meant to help make these cross-module option dependencies explicit [1]. If you provide a more detailed traceback I may be able to give more specific advice about where changes are needed. Doug [1] http://docs.openstack.org/developer/oslo.config/configopts.html?highlight=import_opt#oslo_config.cfg.ConfigOpts.import_opt -- Best Regards Zhang Hua(张华) Software Engineer | Canonical IRC: zhhuabj __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev -- Best Regards Zhang Hua(张华) Software Engineer | Canonical IRC: zhhuabj __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] A question about strange behavior of oslo.config in eclipse
On Tue, Feb 10, 2015, at 04:29 AM, Joshua Zhang wrote: Hi Stacker, A question about oslo.config, maybe a very silly question. but pls tell me if you know, thanks in advance. I know oslo has removed 'olso' namespace, oslo.config has been changed to oslo_config, it also retains backwards compat. I found I can run openstack successfully, but as long as I run something in eclipse/pydev it always said like 'NoSuchOptError: no such option: policy_file'. I can change 'oslo.config' to 'oslo_config' in neutron/openstack/common/policy.py temporarily to bypass this problem when I want to debug something in eclipse. But I want to know why? who can help me to explain ? thanks. It sounds like you have code in one module using an option defined somewhere else and relying on import ordering to cause that option to be defined. The import_opt() method of the ConfigOpts class is meant to help make these cross-module option dependencies explicit [1]. If you provide a more detailed traceback I may be able to give more specific advice about where changes are needed. Doug [1] http://docs.openstack.org/developer/oslo.config/configopts.html?highlight=import_opt#oslo_config.cfg.ConfigOpts.import_opt -- Best Regards Zhang Hua(张华) Software Engineer | Canonical IRC: zhhuabj __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev