Ewen Cheslack-Postava created KAFKA-2828:
--------------------------------------------
Summary: Circular import in system tests
Key: KAFKA-2828
URL: https://issues.apache.org/jira/browse/KAFKA-2828
Project: Kafka
Issue Type: Bug
Components: system tests
Affects Versions: 0.9.0.0
Reporter: Ewen Cheslack-Postava
There is a circular import issue with the kafka and security_config modules:
{quote}
File "muckrake/services/performance/camus.py", line 15, in <module>
from kafkatest.services.performance import PerformanceService
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/performance/__init__.py",
line 17, in <module>
from end_to_end_latency import EndToEndLatencyService
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/performance/end_to_end_latency.py",
line 17, in <module>
from kafkatest.services.security.security_config import SecurityConfig
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/security/security_config.py",
line 19, in <module>
from kafkatest.services.security.minikdc import MiniKdc
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/security/minikdc.py",
line 17, in <module>
from kafkatest.services.kafka.directory import kafka_dir
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/kafka/__init__.py",
line 16, in <module>
from kafka import KafkaService
File
"/home/ubuntu/muckrake/venv/local/lib/python2.7/site-packages/kafkatest/services/kafka/kafka.py",
line 25, in <module>
from kafkatest.services.security.security_config import SecurityConfig
{quote}
You'll only encounter this if you don't manage to import things in the right
order. The crux of the issue seems to be the interdependence of the
security_config stuff (which is *not* under the kafka module) on kafka_dir, and
the dependence of the kafka module on the security_config stuff (which
obviously makes sense. Ultimately, the thing that causes the problem is the
fact that kafkatest/services/kafka/__init__.py imports KafkaService, when the
security_config files are only trying to get at
kafkatest/services/kafka/directory.py.
Not sure what the right solution is here, but the layering/layout of modules
seems wrong in its current state.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)