2025-04-24 09:20:59,521 - DEBUG - [10.0.0.50]: Running cmd : hostname 2025-04-24 09:20:59,769 - DEBUG - Output : cn-jenkins-deploy-platform-k8s-manifests-164-1 2025-04-24 09:20:59,769 - DEBUG - [10.0.0.50]: Running cmd : hostname -f 2025-04-24 09:20:59,880 - DEBUG - Output : cn-jenkins-deploy-platform-k8s-manifests-164-1.cluster.local 2025-04-24 09:20:59,880 - DEBUG - [10.0.0.50]: Running cmd : docker ps 2>/dev/null | grep -v "/pause\|/usr/bin/pod\|nova_api_\|contrail.*init\|init.*contrail\|provisioner\|placement" | awk '{print $NF}' 2025-04-24 09:21:00,020 - DEBUG - Output : NAMES contrail_test_Ll40dpRhN k8s_autoscaler_dns-autoscaler-595558c478-j68gw_kube-system_0a355260-dd38-4b47-a5e5-e29812a91c0e_0 k8s_coredns_coredns-77f7cc69db-hrkkl_kube-system_26fec38c-ed08-4657-a1b8-f7f99ce0125b_0 k8s_opensdn-controller-config-nodemgr_opensdn-controller-config-ggbpm_kube-system_8dcd56cc-732e-41b6-86c0-f6431af9ef1b_0 k8s_opensdn-controller-config-svcmonitor_opensdn-controller-config-ggbpm_kube-system_8dcd56cc-732e-41b6-86c0-f6431af9ef1b_0 k8s_opensdn-analytics-query-engine_opensdn-analyticsdb-q8xrl_kube-system_b9e986e3-8f23-4004-8351-b9561212ef6d_0 k8s_opensdn-controller-config-schema_opensdn-controller-config-ggbpm_kube-system_8dcd56cc-732e-41b6-86c0-f6431af9ef1b_0 k8s_opensdn-controller-nodemgr_opensdn-controller-control-5s6jk_kube-system_f58ce867-991f-4710-a325-0d1881bba89c_0 k8s_opensdn-analyticsdb_opensdn-analyticsdb-q8xrl_kube-system_b9e986e3-8f23-4004-8351-b9561212ef6d_0 k8s_opensdn-controller-control-named_opensdn-controller-control-5s6jk_kube-system_f58ce867-991f-4710-a325-0d1881bba89c_0 k8s_opensdn-controller-config-devicemgr_opensdn-controller-config-ggbpm_kube-system_8dcd56cc-732e-41b6-86c0-f6431af9ef1b_0 k8s_opensdn-controller-control-dns_opensdn-controller-control-5s6jk_kube-system_f58ce867-991f-4710-a325-0d1881bba89c_0 k8s_opensdn-controller-webui-web_opensdn-controller-webui-w85tl_kube-system_60b3954d-c370-4aaf-b2f4-0f6247dbc960_0 k8s_opensdn-analytics-alarm-nodemgr_opensdn-analytics-alarm-h8vdh_kube-system_dfbbd60a-1d41-40f9-ae71-72f5aa32d387_0 k8s_opensdn-analytics-alarm-gen_opensdn-analytics-alarm-h8vdh_kube-system_dfbbd60a-1d41-40f9-ae71-72f5aa32d387_0 k8s_opensdn-analytics-snmp-nodemgr_opensdn-analytics-snmp-fvhd6_kube-system_78f19509-0544-4fa3-b1d1-ccd61feb782a_0 k8s_opensdn-analytics-snmp-topology_opensdn-analytics-snmp-fvhd6_kube-system_78f19509-0544-4fa3-b1d1-ccd61feb782a_0 k8s_opensdn-analytics-nodemgr_opensdn-analytics-f4nsj_kube-system_fb5c3349-a8a4-4473-adec-3238ad5df9c1_0 k8s_opensdn-analytics-collector_opensdn-analytics-f4nsj_kube-system_fb5c3349-a8a4-4473-adec-3238ad5df9c1_0 k8s_opensdn-analyticsdb-nodemgr_opensdn-analyticsdb-q8xrl_kube-system_b9e986e3-8f23-4004-8351-b9561212ef6d_0 k8s_opensdn-controller-config-api_opensdn-controller-config-ggbpm_kube-system_8dcd56cc-732e-41b6-86c0-f6431af9ef1b_0 k8s_opensdn-controller-control_opensdn-controller-control-5s6jk_kube-system_f58ce867-991f-4710-a325-0d1881bba89c_0 k8s_opensdn-controller-webui-job_opensdn-controller-webui-w85tl_kube-system_60b3954d-c370-4aaf-b2f4-0f6247dbc960_0 k8s_kafka_opensdn-analytics-alarm-h8vdh_kube-system_dfbbd60a-1d41-40f9-ae71-72f5aa32d387_0 k8s_opensdn-analytics-snmp-collector_opensdn-analytics-snmp-fvhd6_kube-system_78f19509-0544-4fa3-b1d1-ccd61feb782a_0 k8s_opensdn-analytics-api_opensdn-analytics-f4nsj_kube-system_fb5c3349-a8a4-4473-adec-3238ad5df9c1_0 k8s_rabbitmq_rabbitmq-tvq2b_kube-system_29c61a06-c4ee-4e5e-9244-fdb824d7406f_0 k8s_config-zookeeper_config-zookeeper-z2wjc_kube-system_db5fe9cf-d714-40e0-b282-d65dd0063bfc_0 k8s_redis_redis-z76lm_kube-system_2f2799f8-c450-4bec-8b4f-6f5994dae88f_0 k8s_opensdn-config-database-nodemgr_opensdn-configdb-2knpw_kube-system_c57f41df-33f7-416b-89a5-f03d4d29271b_0 k8s_opensdn-configdb_opensdn-configdb-2knpw_kube-system_c57f41df-33f7-416b-89a5-f03d4d29271b_0 k8s_opensdn-agent-nodemgr_opensdn-agent-vxgnl_kube-system_001fc8b3-1100-475f-beb3-6ce20c0b6c5b_0 k8s_opensdn-vrouter-agent_opensdn-agent-vxgnl_kube-system_001fc8b3-1100-475f-beb3-6ce20c0b6c5b_0 k8s_opensdn-kube-manager_opensdn-kube-manager-5t82r_kube-system_3fbe149c-1997-49d8-ba4e-49c18f284898_0 k8s_kube-proxy_kube-proxy-cnwqh_kube-system_57eeea22-303e-46ef-b9bf-2ddb38733265_0 k8s_kube-controller-manager_kube-controller-manager-cn-jenkins-deploy-platform-k8s-manifests-164-1_kube-system_33922ca9da54e1df87749e6aaa11459f_1 k8s_kube-scheduler_kube-scheduler-cn-jenkins-deploy-platform-k8s-manifests-164-1_kube-system_c1a92d08b0c044416290b78b97dbd74a_1 k8s_kube-apiserver_kube-apiserver-cn-jenkins-deploy-platform-k8s-manifests-164-1_kube-system_4f375c3d7bd39ed82d8412e1278d880f_0 2025-04-24 09:21:00,021 - DEBUG - [10.0.0.50]: Running cmd : ip addr show | grep 'inet .*/.* brd ' | awk '{print $2}' 2025-04-24 09:21:00,133 - DEBUG - Output : 172.17.0.1/16 10.0.0.50/24 2025-04-24 09:21:00,134 - DEBUG - [10.0.0.50]: Running cmd : getent hosts 10.0.0.50 | head -n 1 | awk '{print $2}' 2025-04-24 09:21:00,256 - DEBUG - Output : cn-jenkins-deploy-platform-k8s-manifests-164-1.cluster.local 2025-04-24 09:21:00,257 - DEBUG - [10.0.0.50]: Running cmd : ip addr show dev vhost0 | grep 'inet .*/.* brd ' | awk '{print $2}' 2025-04-24 09:21:00,365 - DEBUG - Output : 10.0.0.50/24 2025-04-24 09:21:00,679 - INFO - Using existing project ['default-domain', 'k8s-default'](ca987a9d-3608-439b-b23e-50565dbc15bd) 2025-04-24 09:21:00,817 - INFO - Using existing project ['default-domain', 'k8s-default'](ca987a9d-3608-439b-b23e-50565dbc15bd) 2025-04-24 09:21:00,954 - INFO - ================================================================================ 2025-04-24 09:21:00,954 - INFO - STARTING TEST : test_ingress_ip_assignment 2025-04-24 09:21:00,955 - INFO - TEST DESCRIPTION : Verify that Ingress gets a CLuster IP which is reachable to Pods in same namespace. Also verify that a Floating IP is assigned to the Ingress from the Public FIP poo. Steps: 1. Create a service with 2 pods running nginx 2. Create an ingress out of this service 3. From another Pod do a wget on the ingress Cluster ip Validate that Ingress get a IP from Public FIP pool which might/might not be accessible. Validate that service and its loadbalancing work 2025-04-24 09:21:01,161 - DEBUG - Requesting: http://10.0.0.50:8085/Snh_AgentXmppConnectionStatusReq? 2025-04-24 09:21:01,167 - DEBUG - Nothing to compare xmpp stats {'10.0.0.50': {'10.0.0.50': '1'}} with 2025-04-24 09:21:01,167 - INFO - Initial checks done. Running the testcase now 2025-04-24 09:21:01,167 - INFO - 2025-04-24 09:21:01,170 - INFO - Namespace default already exists 2025-04-24 09:21:01,177 - WARNING - Nothing to delete parallely 2025-04-24 09:21:01,422 - ERROR - TypeError Python 3.6.8: /usr/bin/python3 Thu Apr 24 09:21:01 2025 A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred. /contrail-test/tcutils/wrappers.py in wrapper(self=, *args=(), **kwargs={}) 78 log.info('Initial checks done. Running the testcase now') 79 log.info('') 80 result = function(self, *args, **kwargs) 81 if self.inputs.upgrade: 82 pid = os.getpid() result = None function = self = args = () kwargs = {} /contrail-test/scripts/k8s_scripts/test_ingress.py in test_ingress_ip_assignment(self=) 39 labels = {'app':app} 40 namespace = self.setup_namespace(name='default') 41 assert namespace.verify_on_setup() 42 43 service = self.setup_http_service(namespace=namespace.name, namespace = namespace.verify_on_setup = > /contrail-test/fixtures/k8s/namespace.py in verify_on_setup(self=) 47 self.logger.info('Skipping Namespace API server validation in nested mode') 48 else: 49 if not self.verify_namespace_in_contrail_api(): 50 self.logger.error('Namespace %s not seen in Contrail API' % ( 51 self.name)) self = self.verify_namespace_in_contrail_api = .deco_retry..f_retry of > /contrail-test/tcutils/util.py in f_retry(*args=(,), **kwargs={}) 82 mtries, mdelay = tries, delay # make mutable 83 84 result = f(*args, **kwargs) # first attempt 85 rv = result 86 final = False result undefined f = args = (,) kwargs = {} /contrail-test/fixtures/k8s/namespace.py in verify_namespace_in_contrail_api(self=) 100 @retry(delay=2, tries=10) 101 def verify_namespace_in_contrail_api(self): 102 self.project_name = self.get_project_name_for_namespace() 103 self.project_fq_name = '%s:%s' %(self.connections.domain_name, 104 self.project_name) self = self.project_name = None self.get_project_name_for_namespace = > /contrail-test/fixtures/k8s/namespace.py in get_project_name_for_namespace(self=) 92 # Get lock in case some other api is setting the config 93 with get_lock('kube_manager_conf'): 94 project = self._read_cluster_project() 95 if project: 96 return project project undefined self = self._read_cluster_project = > /contrail-test/fixtures/k8s/namespace.py in _read_cluster_project(self=) 73 m = None 74 cmd = 'grep "^[ \t]*cluster_project" /etc/contrail/contrail-kubernetes.conf' 75 cp_line= self.inputs.container_tool.run_cmd_on_container(cmd, self.inputs.kube_manager_ips[0], container='contrail-kube-manager') 76 if 'cluster_project' in cp_line: 77 m = re.match('[ ]*cluster_project.*?=[ ]*(.*)?', cp_line) cp_line undefined self = self.inputs = self.inputs.container_tool = self.inputs.container_tool.run_cmd_on_container = > cmd = 'grep "^[ \t]*cluster_project" /etc/contrail/contrail-kubernetes.conf' self.inputs.kube_manager_ips = ['10.0.0.50'] container undefined /contrail-test/common/container_cli_wrapper.py in run_cmd_on_container(self=, cmd='grep "^[ \t]*cluster_project" /etc/contrail/contrail-kubernetes.conf', host='10.0.0.50', container='contrail-kube-manager', pty=True, detach=None, shell_prefix='/bin/bash -c ') 67 args += ' --privileged ' 68 args += ' -it ' if pty else '' 69 args += cntr 70 cntr_cmd = self.tool + ' exec ' + args 71 if shell_prefix: args = ' --privileged -it ' cntr = None TypeError: must be str, not NoneType __cause__ = None __class__ = __context__ = None __delattr__ = __dict__ = {} __dir__ = __doc__ = 'Inappropriate argument type.' __eq__ = __format__ = __ge__ = __getattribute__ = __gt__ = __hash__ = __init__ = __init_subclass__ = __le__ = __lt__ = __ne__ = __new__ = __reduce__ = __reduce_ex__ = __repr__ = __setattr__ = __setstate__ = __sizeof__ = __str__ = __subclasshook__ = __suppress_context__ = False __traceback__ = args = ('must be str, not NoneType',) with_traceback = The above is a description of an error in a Python program. Here is the original traceback: Traceback (most recent call last): File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper result = function(self, *args, **kwargs) File "/contrail-test/scripts/k8s_scripts/test_ingress.py", line 41, in test_ingress_ip_assignment assert namespace.verify_on_setup() File "/contrail-test/fixtures/k8s/namespace.py", line 49, in verify_on_setup if not self.verify_namespace_in_contrail_api(): File "/contrail-test/tcutils/util.py", line 84, in f_retry result = f(*args, **kwargs) # first attempt File "/contrail-test/fixtures/k8s/namespace.py", line 102, in verify_namespace_in_contrail_api self.project_name = self.get_project_name_for_namespace() File "/contrail-test/fixtures/k8s/namespace.py", line 94, in get_project_name_for_namespace project = self._read_cluster_project() File "/contrail-test/fixtures/k8s/namespace.py", line 75, in _read_cluster_project cp_line= self.inputs.container_tool.run_cmd_on_container(cmd, self.inputs.kube_manager_ips[0], container='contrail-kube-manager') File "/contrail-test/common/container_cli_wrapper.py", line 69, in run_cmd_on_container args += cntr TypeError: must be str, not NoneType 2025-04-24 09:21:01,422 - DEBUG - Requesting: http://10.0.0.50:8085/Snh_AgentXmppConnectionStatusReq? 2025-04-24 09:21:01,428 - DEBUG - No XMPP flaps were noticed during the test 2025-04-24 09:21:01,428 - INFO -
2025-04-24 09:21:01,428 - INFO - END TEST : test_ingress_ip_assignment : FAILED[0:00:01]
2025-04-24 09:21:01,428 - INFO - --------------------------------------------------------------------------------