❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H X-Very-Secret-Token: 42 http://<IP_ADDRESS>:8080/private" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-4-public: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-4-public (<IP_ADDRESS>:8080)]
  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-4-private: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-4-private (<IP_ADDRESS>:8080)]
  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-4-privatewith-header: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-4-privatewith-header (<IP_ADDRESS>:8080)]
  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-5-public: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-5-public (<IP_ADDRESS>:8080)]
  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-5-private: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-5-private (<IP_ADDRESS>:8080)]
  [.] Action [echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-5-privatewith-header: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-5-privatewith-header (<IP_ADDRESS>:8080)]
  ℹ  📜 Deleting CiliumNetworkPolicy 'echo-ingress-l7-http-named-port' from namespace 'cilium-test'..
[=] Test [client-egress-l7-method] [52/75]
....
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-l7-http-method' to namespace 'cilium-test'..
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-only-dns' to namespace 'cilium-test'..
  [-] Scenario [client-egress-l7-method/pod-to-pod-with-endpoints]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-public: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-public (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-private: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-private (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-privatewith-header: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-privatewith-header (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-public (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -X POST http://<IP_ADDRESS>:8080/public" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-private (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -X POST http://<IP_ADDRESS>:8080/private" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-privatewith-header (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -X POST -H X-Very-Secret-Token: 42 http://<IP_ADDRESS>:8080/private" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-public: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-public (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-private: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-private (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-privatewith-header: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-privatewith-header (<IP_ADDRESS>:8080)]
  [-] Scenario [client-egress-l7-method/pod-to-pod-with-endpoints]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-public: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-public (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-private: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-private (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-0-privatewith-header: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> curl-ipv4-0-privatewith-header (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-public (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080/public" failed with unexpected exit code: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28 (expected 22, found 28)
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-private (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080/private" failed with unexpected exit code: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28 (expected 22, found 28)
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-privatewith-header (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H X-Very-Secret-Token: 42 http://<IP_ADDRESS>:8080/private" failed with unexpected exit code: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28 (expected 22, found 28)
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-public: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-public (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-private: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-private (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-2-privatewith-header: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> curl-ipv4-2-privatewith-header (<IP_ADDRESS>:8080)]
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-only-dns' from namespace 'cilium-test'..
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-l7-http-method' from namespace 'cilium-test'..
[=] Test [client-egress-l7] [53/75]
...
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-only-dns' to namespace 'cilium-test'..
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-l7-http' to namespace 'cilium-test'..
  [-] Scenario [client-egress-l7/pod-to-pod]
  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-1: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-3: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-4: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7/pod-to-pod/curl-ipv4-5: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  [-] Scenario [client-egress-l7/pod-to-world]
  [.] Action [client-egress-l7/pod-to-world/http-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-index-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [client-egress-l7/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H Host: one.one.one.one --retry 3 --retry-all-errors --retry-delay 3 http://one.one.one.one.:80" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-index-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [client-egress-l7/pod-to-world/http-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7/pod-to-world/https-to-one.one.one.one.-index-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-only-dns' from namespace 'cilium-test'..
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-l7-http' from namespace 'cilium-test'..
[=] Test [client-egress-l7-named-port] [54/75]
...
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-only-dns' to namespace 'cilium-test'..
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-l7-http-named-port' to namespace 'cilium-test'..
  [-] Scenario [client-egress-l7-named-port/pod-to-pod]
  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-1: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-3: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://<IP_ADDRESS>:8080" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-4: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)]
  [.] Action [client-egress-l7-named-port/pod-to-pod/curl-ipv4-5: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)]
  [-] Scenario [client-egress-l7-named-port/pod-to-world]
  [.] Action [client-egress-l7-named-port/pod-to-world/http-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-index-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [client-egress-l7-named-port/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H Host: one.one.one.one --retry 3 --retry-all-errors --retry-delay 3 http://one.one.one.one.:80" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-index-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [client-egress-l7-named-port/pod-to-world/http-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [client-egress-l7-named-port/pod-to-world/https-to-one.one.one.one.-index-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-l7-http-named-port' from namespace 'cilium-test'..
  ℹ  📜 Deleting CiliumNetworkPolicy 'client-egress-only-dns' from namespace 'cilium-test'..
[=] Skipping Test [client-egress-l7-tls-deny-without-headers] [55/75] (Feature secret-backend-k8s is disabled)
[=] Skipping Test [client-egress-l7-tls-headers] [56/75] (Feature secret-backend-k8s is disabled)
[=] Skipping Test [client-egress-l7-set-header] [57/75] (Feature secret-backend-k8s is disabled)
[=] Skipping Test [echo-ingress-auth-always-fail] [58/75] (Feature mutual-auth-spiffe is disabled)
[=] Skipping Test [echo-ingress-mutual-auth-spiffe] [59/75] (Feature mutual-auth-spiffe is disabled)
[=] Test [pod-to-ingress-service] [60/75]
.
  [-] Scenario [pod-to-ingress-service/pod-to-ingress-service]
  [.] Action [pod-to-ingress-service/pod-to-ingress-service/curl-0: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client3-7557dd665c-rjtnh, container=client3): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [pod-to-ingress-service/pod-to-ingress-service/curl-1: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client-56f8968958-zk4l9, container=client): command terminated with exit code 7
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [pod-to-ingress-service/pod-to-ingress-service/curl-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 7
  ℹ  curl output:
  :0 -> :0 = 000

[=] Test [pod-to-ingress-service-deny-all] [61/75]
...
[=] Test [pod-to-ingress-service-deny-ingress-identity] [62/75]
...
[=] Test [pod-to-ingress-service-deny-backend-service] [63/75]
...
[=] Test [pod-to-ingress-service-allow-ingress-identity] [64/75]
.
  ℹ  📜 Applying CiliumNetworkPolicy 'all-ingress-deny' to namespace 'cilium-test'..
  ℹ  📜 Applying CiliumNetworkPolicy 'allow-from-cilium-ingress' to namespace 'cilium-test'..
  [-] Scenario [pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service]
  [.] Action [pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-0: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 7
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-1: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client3-7557dd665c-rjtnh, container=client3): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-2: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 http://cilium-ingress-ingress-service.cilium-test:80" failed: error with exec request (pod=cilium-test/client-56f8968958-zk4l9, container=client): command terminated with exit code 7
  ℹ  curl output:
  :0 -> :0 = 000

  ℹ  📜 Deleting CiliumNetworkPolicy 'all-ingress-deny' from namespace 'cilium-test'..
  ℹ  📜 Deleting CiliumNetworkPolicy 'allow-from-cilium-ingress' from namespace 'cilium-test'..
[=] Skipping Test [outside-to-ingress-service] [65/75] (Feature node-without-cilium is disabled)
[=] Skipping Test [outside-to-ingress-service-deny-world-identity] [66/75] (Feature node-without-cilium is disabled)
[=] Skipping Test [outside-to-ingress-service-deny-cidr] [67/75] (Feature node-without-cilium is disabled)
[=] Skipping Test [outside-to-ingress-service-deny-all-ingress] [68/75] (Feature node-without-cilium is disabled)
[=] Test [dns-only] [69/75]
...............
[=] Test [to-fqdns] [70/75]
....
  ℹ  📜 Applying CiliumNetworkPolicy 'client-egress-to-fqdns-one.one.one.one' to namespace 'cilium-test'..
  [-] Scenario [to-fqdns/pod-to-world-2]
  [.] Action [to-fqdns/pod-to-world-2/https-cilium-io-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-io-https (cilium.io.:443)]
  [.] Action [to-fqdns/pod-to-world-2/https-cilium-io-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-io-https (cilium.io.:443)]
  [.] Action [to-fqdns/pod-to-world-2/https-cilium-io-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-io-https (cilium.io.:443)]
  [-] Scenario [to-fqdns/pod-to-world]
  [.] Action [to-fqdns/pod-to-world/http-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H Host: one.one.one.one --retry 3 --retry-all-errors --retry-delay 3 http://one.one.one.one.:80" failed: error with exec request (pod=cilium-test/client-56f8968958-zk4l9, container=client): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-index-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [to-fqdns/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H Host: one.one.one.one --retry 3 --retry-all-errors --retry-delay 3 http://one.one.one.one.:80" failed: error with exec request (pod=cilium-test/client2-5668f9f59b-dsv2c, container=client2): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-index-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  [.] Action [to-fqdns/pod-to-world/http-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --output /dev/null --connect-timeout 2 --max-time 10 -H Host: one.one.one.one --retry 3 --retry-all-errors --retry-delay 3 http://one.one.one.one.:80" failed: error with exec request (pod=cilium-test/client3-7557dd665c-rjtnh, container=client3): command terminated with exit code 28
  ℹ  curl output:
  :0 -> :0 = 000

  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)]
  [.] Action [to-fqdns/pod-to-world/https-to-one.one.one.one.-index-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)]
  🟥 Error reading Cilium logs: error reading cilium-agent logs for kube-system/cilium-nn6vr: bufio.Scanner: token too long
[=] Skipping Test [pod-to-controlplane-host] [71/75] (skipped by condition)
[=] Skipping Test [pod-to-k8s-on-controlplane] [72/75] (skipped by condition)
[=] Skipping Test [pod-to-controlplane-host-cidr] [73/75] (skipped by condition)
[=] Skipping Test [pod-to-k8s-on-controlplane-cidr] [74/75] (skipped by condition)
[=] Test [check-log-errors] [75/75]
................
  [-] Scenario [check-log-errors/no-errors-in-logs]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-envoy-w9947 (cilium-envoy)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (cilium-agent)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (config)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (mount-cgroup)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (apply-sysctl-overwrites)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (mount-bpf-fs)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (clean-cilium-state)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-gmxzw (install-cni-binaries)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (cilium-agent)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (config)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (mount-cgroup)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (apply-sysctl-overwrites)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (mount-bpf-fs)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (clean-cilium-state)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-zbzbh (install-cni-binaries)]
  [.] Action [check-log-errors/no-errors-in-logs/local/kube-system/cilium-hmfbl (cilium-agent)]
  🟥 Error reading Cilium logs: pods "cilium-hmfbl" not found

📋 Test Report
❌ 14/52 tests failed (53/777 actions), 23 tests skipped, 0 scenarios skipped:
Test [no-unexpected-packet-drops]:
  ❌ no-unexpected-packet-drops/no-unexpected-packet-drops/local/<IP_ADDRESS>
  ❌ no-unexpected-packet-drops/no-unexpected-packet-drops/local/<IP_ADDRESS>
  ❌ no-unexpected-packet-drops/no-unexpected-packet-drops/local/<IP_ADDRESS>
Test [no-policies]:
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-index-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)
  ❌ no-policies/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-index-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https (one.one.one.one.:443)
  ❌ no-policies/pod-to-world/https-to-one.one.one.one.-index-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-https-index (one.one.one.one.:443)
  ❌ no-policies/pod-to-cidr/external-1111-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> external-1111 (<IP_ADDRESS>:443)
  ❌ no-policies/pod-to-cidr/external-1111-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> external-1111 (<IP_ADDRESS>:443)
  ❌ no-policies/pod-to-cidr/external-1111-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> external-1111 (<IP_ADDRESS>:443)
  ❌ no-policies/pod-to-cidr/external-1001-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> external-1001 (<IP_ADDRESS>:443)
  ❌ no-policies/pod-to-cidr/external-1001-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> external-1001 (<IP_ADDRESS>:443)
  ❌ no-policies/pod-to-cidr/external-1001-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> external-1001 (<IP_ADDRESS>:443)
Test [to-entities-world]:
  ❌ to-entities-world/pod-to-world/http-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
Test [pod-to-pod-encryption]:
  ❌ pod-to-pod-encryption/pod-to-pod-encryption/curl-ipv4: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)
Test [node-to-node-encryption]:
  ❌ node-to-node-encryption/node-to-node-encryption/ping-ipv4: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/host-netns-qksw8 (<IP_ADDRESS>:0)
Test [echo-ingress-l7]:
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-2-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-public (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-2-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-private (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-2-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-privatewith-header (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-3-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-public (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-3-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-private (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7/pod-to-pod-with-endpoints/curl-ipv4-3-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-privatewith-header (<IP_ADDRESS>:8080)
Test [echo-ingress-l7-named-port]:
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-2-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-public (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-2-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-private (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-2-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-2-privatewith-header (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-3-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-public (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-3-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-private (<IP_ADDRESS>:8080)
  ❌ echo-ingress-l7-named-port/pod-to-pod-with-endpoints/curl-ipv4-3-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-3-privatewith-header (<IP_ADDRESS>:8080)
Test [client-egress-l7-method]:
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-public (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-private (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-privatewith-header (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-public: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-public (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-private: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-private (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-method/pod-to-pod-with-endpoints/curl-ipv4-1-privatewith-header: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> curl-ipv4-1-privatewith-header (<IP_ADDRESS>:8080)
Test [client-egress-l7]:
  ❌ client-egress-l7/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
  ❌ client-egress-l7/pod-to-pod/curl-ipv4-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)
  ❌ client-egress-l7/pod-to-pod/curl-ipv4-3: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)
Test [client-egress-l7-named-port]:
  ❌ client-egress-l7-named-port/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
  ❌ client-egress-l7-named-port/pod-to-pod/curl-ipv4-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-other-node-bd6cd689f-4snll (<IP_ADDRESS>:8080)
  ❌ client-egress-l7-named-port/pod-to-pod/curl-ipv4-3: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/echo-same-node-57bb597f97-z5ggv (<IP_ADDRESS>:8080)
Test [pod-to-ingress-service]:
  ❌ pod-to-ingress-service/pod-to-ingress-service/curl-0: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
  ❌ pod-to-ingress-service/pod-to-ingress-service/curl-1: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
  ❌ pod-to-ingress-service/pod-to-ingress-service/curl-2: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
Test [pod-to-ingress-service-allow-ingress-identity]:
  ❌ pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-0: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
  ❌ pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-1: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
  ❌ pod-to-ingress-service-allow-ingress-identity/pod-to-ingress-service/curl-2: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> cilium-test/cilium-ingress-ingress-service (cilium-ingress-ingress-service.cilium-test:80)
Test [to-fqdns]:
  ❌ to-fqdns/pod-to-world/http-to-one.one.one.one.-0: cilium-test/client-56f8968958-zk4l9 (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
  ❌ to-fqdns/pod-to-world/http-to-one.one.one.one.-1: cilium-test/client2-5668f9f59b-dsv2c (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
  ❌ to-fqdns/pod-to-world/http-to-one.one.one.one.-2: cilium-test/client3-7557dd665c-rjtnh (<IP_ADDRESS>) -> one.one.one.one.-http (one.one.one.one.:80)
Test [check-log-errors]:
  ❌ check-log-errors/no-errors-in-logs/local/kube-system/cilium-hmfbl (cilium-agent)
connectivity test failed: 14 tests failed

this issue is similiar with #25021 , while the final conclusion of the discussion is about load kernel modules iptable_raw and xt_socket, both are loaded in my cluster node
(base) » ansible dev_k8s -m shell -a "lsmod | grep iptable_raw"                                                                                [17:11:52]
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  23 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  27 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,ip6table_nat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               45056  24 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               40960  22 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark

(base) qiangqi•~» ansible dev_k8s -m shell -a "lsmod | grep iptable_raw"                                                                                [17:11:52]
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  23 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  27 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,ip6table_nat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               45056  24 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
iptable_raw            16384  1
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               40960  22 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
(base) ~» ansible dev_k8s -m shell -a "lsmod | grep xt_socket"                                                                                [17:15:34]
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  3 nf_conntrack,xt_socket,xt_TPROXY
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  23 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  3 nf_conntrack,xt_socket,xt_TPROXY
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  4 nf_conntrack,xt_socket,xt_TPROXY,ip_vs
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  4 nf_conntrack,xt_socket,xt_TPROXY,ip_vs
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  3 nf_conntrack,xt_socket,xt_TPROXY
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  4 nf_conntrack,xt_socket,xt_TPROXY,ip_vs
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  27 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,ip6table_nat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  3 nf_conntrack,xt_socket,xt_TPROXY
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               53248  26 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,nft_compat,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,iptable_nat,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  3 nf_conntrack,xt_socket,xt_TPROXY
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               40960  22 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_socket,xt_tcpudp,xt_addrtype,xt_CHECKSUM,xt_recent,xt_nat,xt_comment,ip6_tables,xt_TPROXY,ipt_REJECT,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark
<IP_ADDRESS> | CHANGED | rc=0 >>
xt_socket              16384  1
nf_socket_ipv4         16384  1 xt_socket
nf_socket_ipv6         20480  1 xt_socket
nf_defrag_ipv6         24576  4 nf_conntrack,xt_socket,xt_TPROXY,ip_vs
nf_defrag_ipv4         16384  3 nf_conntrack,xt_socket,xt_TPROXY
x_tables               45056  24 ip6table_filter,xt_conntrack,xt_statistic,ip6table_raw,iptable_filter,xt_multiport,xt_socket,xt_tcpudp,xt_addrtype,xt_recent,xt_nat,xt_comment,xt_set,ip6_tables,xt_TPROXY,ipt_REJECT,ipt_rpfilter,xt_CT,iptable_raw,ip_tables,ip6table_mangle,xt_MASQUERADE,iptable_mangle,xt_mark

fix ipv4 cidr issue, but still no work
sysdump: https://gofile.io/d/8KfM6W

a new strange found, I have a metallb iptool which contains 10 ip, I create mutiple gateway and httproute reference the same service backend, some cannot be connected with curl, but some work!
Firstly I guess maybe some node has issue, so I use arping find the LB ip's MAC address, then find it's announced by which node, but I found even announced by same node's interface, some work which some not!
I use kubectl -n kube-system exec ds/cilium -- cilium monitor command, find some clue:

curl lb ip <IP_ADDRESS> from outside node(<IP_ADDRESS>), which work, identity 23697 is the backend service

curl lb ip <IP_ADDRESS> from outside node(<IP_ADDRESS>), which not work
nothing output, in cilium monitor and cilium-envoy pod log and hubble observe pod

a new strange found, I have a metallb iptool which contains 10 ip, I create mutiple gateway and httproute reference the same service backend, some cannot be connected with curl, but some work!
Firstly I guess maybe some node has issue, so I use arping find the LB ip's MAC address, then find it's announced by which node, but I found even announced by same node's interface, some work which some not!
I use kubectl -n kube-system exec ds/cilium -- cilium monitor command, find some clue:

curl lb ip <IP_ADDRESS> from outside node(<IP_ADDRESS>), which work, identity 23697 is the backend service

2. curl lb ip <IP_ADDRESS> from outside node(<IP_ADDRESS>), which not work
nothing output, in cilium monitor and cilium-envoy pod log and hubble observe pod

Appreciate for any suggestion for other debug method!


Tests: Use separate schemas for sharded and unsharded

Using the same schema for sharded and unsharded databases risks us having falsely positive tests.

Migrations are still failing. Someone please have a look.

joins between sharded/unsharded should blow up ?
On Fri, Sep 22, 2017 at 9:51 AM, Benjamin Quorning<EMAIL_ADDRESS>
wrote:

@bquorning commented on this pull request.
In test/connection_switching_test.rb
https://github.com/zendesk/active_record_shards/pull/127#discussion_r140543516
:

@@ -616,17 +616,6 @@ class ShardedModel < ActiveRecord::Base
assert_equal ["slave_name", "slave_name2"], Account.pluck(:name)
end

   it "supports implicit joins" do

     accounts = Account.includes(:tickets)

     accounts = accounts.references(:tickets) if ActiveRecord::VERSION::MAJOR >= 4

     assert_equal ["slave_name", "slave_name2"], accounts.order('tickets.id').map(&:name).sort

   end

   it "supports joins" do

     accounts = Account.joins('LEFT OUTER JOIN tickets ON tickets.account_id = accounts.id').map(&:name).sort

     assert_equal ["slave_name", "slave_name2"], accounts

   end

Done. We should probably test joins between sharded tables as well as
between unsharded tables?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/zendesk/active_record_shards/pull/127#discussion_r140543516,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAsZ5ml92nYPhvTkQAOj9u8-RXkQ-Npks5sk-WjgaJpZM4Pgnuu
.

joins between sharded/unsharded should blow up ?

Yes. Do you mean that we should explicitly test for it?

I'd prefer to test edge-case behavior just so we know it's not some weird
MethodMissing error ...
On Mon, Sep 25, 2017 at 4:04 AM, Benjamin Quorning<EMAIL_ADDRESS>
wrote:

joins between sharded/unsharded should blow up ?
Yes. Do you mean that we should explicitly test for it?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/zendesk/active_record_shards/pull/127#issuecomment-331848400,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAsZ_d1eqKb0UUsA-NlH8V2JvlMzln9ks5sl4jagaJpZM4Pgnuu
.

was only missing a connect at the start :D

Green build! All good?


[WIP] Feature/add file/folder manipulation commands to explorer

Following discussion in #1737 this PR adds the ability to yank and paste files and folders using y and p as defaults (a user can remap this) these are also gated by checking that the explorer split is active.

Todo

[x] Add epic to clear yank register after timeout if user never pastes
[ ] Stretch goal try and get animation working for moving nodes in explorer
[x] Very nice to have... Multi-select aka make yank register an array and move multiple items.
[x] Add h/l movements to expand and collapse a dir
[x] Localise bindings to explorer pane
[x] Add undo functionality
~- [ ] Add Sidebar to Oni.Plugin.Api to correctly type isExplorerActive~

EDIT: Added multi-select 😆

Added functionality to toggle the currently yanked item if y is pressed on it again so a user can deselect if they selected the item by accident.

Interesting follow up here would be adding a an undo register with a u command so that if the user executes a move/or future rename etc. we store these in redux e.g the type of action aka move and the subjects and undo the action i.e. carry it out in reverse

Woah, this is so cool @Akin909 ! 💯 Can't wait to try it out!

Added undo functionality currently only for the implemented paste actions bound to the key u so a user can yank some files move them to a directory and then, change their mind and hit u to undo the last move and all files will be returned to their original directories. 😄
Lack of transitions is an ongoing pain as though initially seeming to work if the refreshDirectory action is triggered a whole new set of react nodes are created which means these are created at the same time as the transition component so no transitioning happens 😞

Blocked atm by #1857, as since a recent commit now unable to actually move through the explorer menu at all

Could use some input here @bryphe @CrossR.
We currently dont have an easy api for taking input from a user at will other than the notifications I'm wondering if for the rename functionality we would want to reuse the notifications but add in an input, or maybe use the rename symbol ui.
Although I think I either way my preference would be to leave those changes out of this PR.
Also I was going to add a notification to the delete functionality here, so if a user hits explorer.delete a notification pops up to confirm that that's what the user intended.
Lastly I was toying with what I thought would be a cool idea which is to hang on to the file details and contents post deletion and allow a user to use the undo functionality I currently have for yank and paste and use that to undo the deletion i.e. we create a file with the same name and populate it with the file contents we held onto.

Thought it through and decided to leave the rename out, to make this PR simpler, what I have added though is undo functionality for the delete command.
@bryphe, @CrossR the way that this works is that I move the deleted folder to the tempdir and if they undo I move it back, and if not accessed for the duration of the tempdir pre clean things then actually get deleted.

Thought it through and decided to leave the rename out, to make this PR simpler, what I have added though is undo functionality for the delete command.

Makes sense, rename is a lot more awkward on the UI side!

@bryphe, @CrossR the way that this works is that I move the deleted folder to the tempdir and if they undo I move it back, and if not accessed for the duration of the tempdir pre clean things then actually get deleted.

Sounds good, and I've seen there is a config option for it too which is one thing I did wonder about.
How does the undo-ing actually work? Does it follow on undo tree?
I.e. I delete 1 then 2, then 3. So undo brings back 3, then 2 then 1?
Only thing I am wondering is perhaps we could have a filesize limit/force delete version too? I often delete big CSVs so moving them around probably wouldn't be the easiest. Probably something for a further refinement of the feature though and not here!

Re. rename I'm a bit unclear on whether to reuse the notifications or if that would be pushing them beyond their primary function and if not the rename ui as it is I think could use some polish 🤷♂

Sounds good, and I've seen there is a config option for it too which is one thing I did wonder about.
How does the undo-ing actually work? Does it follow on undo tree?

I.e.

I delete 1 then 2, then 3. So undo brings back 3, then 2 then 1?

Re. the undoing yep just like that essentially a stack/list:
[{ pastedThings, type: "PASTE" }, { deletedThing, type: "DELETE"}]

So its entirely linear if I paste then undo the paste is undone and the paste action is removed from the list the next thing that would then get undone is the delete.
if I do something undoable inbetween that will become the next thing to undo so its last in first out.
Good idea re file size tbh I was thinking there are bound to be cases where we should handle things differently but couldn't come up with any examples based on how I work, ill add in a clause to say if a file is over..(not sure how big would be problematic here?) then we just delete it, and maybe an extra command thats just an un-undoable delete.

Really cool stuff @Akin909 ! I like all the thinking around undo for the delete scenario - really helps to build confidence in working with the explorer. I'm excited for all these changes - the current explorer is very limited, but this steps it up greatly in terms of usefulness 💯

Re. rename I'm a bit unclear on whether to reuse the notifications or if that would be pushing them beyond their primary function and if not the rename ui as it is I think could use some polish 🤷♂

IMO, I don't think Notifications are the right 'UX' here - because it kind of forces you to switch context. If you start an 'add file' action, and it takes you over to the other side of the screen, that's a bit jarring.
Also, there's a lot of value in having the add be inline - because you have some visual assurance of where your addition is going in the tree (like, is it going in the right directory?)
What I'd recommend using for this is our TextInputView: https://github.com/onivim/oni/blob/bd8188f6750f79f028b55291525c42280dd730c5/browser/src/UI/components/LightweightText.tsx#L20
This is a common textbox that powers the rename experience, the menu, and the browser address bar. It also automatically grabs focus when it is visible, and retracts it when it's unmounted. So we could use this for both the 'rename' and 'add' experience - for rename, if a node is in 'rename' mode, we could render this <TextInputView /> instead of the div/span. Likewise, for the add experience, we could create a wrapper component that hosts the <TextInputView />
The other good thing about this vs the rename is that the <TextInputView /> is agnostic about styling, so we can configure whatever style we want that fits in well by tweaking the container.
Hope that helps with some ideas! It seems like this is pretty close to being ready, so it might be worth implementing the add / rename functionality in a separate PR, just so this one isn't blocked 😄 Excited to start using it!

Good idea re file size tbh I was thinking there are bound to be cases where we should handle things differently but couldn't come up with any examples based on how I work, ill add in a clause to say if a file is over..(not sure how big would be problematic here?)

Yes, great point about the file size @CrossR ! Might be worth making this configurable? Like explorer.maxUndoFileSizeInBytes or something.

@bryphe apologies for the sudden rename which has increased the surface area of this PR, I renamed the ui-tests to jest-tests as part of a migration strategy I thought that at least for unit tests contributors could try adding new tests as jest tests, which down the line will reduce the amount of tests that will need to be converted.

@bryphe @CrossR think I'm done with this PR (if you want to try it out locally), if I work on it any longer im sure I'll keep finding more and more things to tweak/add although it will probably conflict with master once #2077 is merged in.

Just tried it out, I like it a lot @Akin909 ! Great to see the animations working 👍

@bryphe apologies for the sudden rename which has increased the surface area of this PR, I renamed the ui-tests to jest-tests as part of a migration strategy I thought that at least for unit tests contributors could try adding new tests as jest tests, which down the line will reduce the amount of tests that will need to be converted.

Sounds reasonable to add new tests in the jest strategy. Would prefer a separate PR though for it just to keep the size down - this PR is already big! 😄
Overall things look good to me though. Appreciate you adding test coverage for some of the new scenarios. A few things I wanted to check on:

Was commenting out the evt.stopPropagation intentional? It's not clear to me if that would be a complete fix for #2070, and if not, it'd be better to move it to a separate PR
The text for the delete notification looked a bit out-of-place to me compared to the other notifications we had - I left a suggestion in the PR comments.
A few other random questions too (around typescript/jest).

Really great to see the progress here! Big step into making our explorer a usable replacement for NERDTree. Thanks for all your work here @Akin909 ! 💯
Now we just need search (#1652) and the ability to add files/folders to the explorer, and it'll have everything I need 😎

Sorry to butt in, but if you are adding yank and paste, maybe dd to delete a file would also be appropriate? This looks awesome BTW.

@parkerault this pr includes delete functionality sorry the name doesn't indicate that its currently bound to d but can be rebound however users would like, there been some discussion in the original issue re the bindings as oni currently doesnt take chorded input like dd which would have been my first choice.

@bryphe I've made the requested changes, and did a bit of a refactor after changes to the explorer file system caused some unexpected observable issues.

I've moved the fs methods into the ExplorerFileSystem and out of the ExplorerSplit that component now just dispatches actions which are co-ordinated by epics (added epics for most of the register (yank, paste etc) functionality).

I've left the jest changes in as I think I ought to have included them in the original PR and while I ideally like to keep all unrelated changes out if I can, I've found that I often intend to make a small pr for something like that for example but inevitably forget (hence my sneaking it in here)
Similar as above with the TS version, but also I added it to use the new conditional types as I wanted to make the use of multiple action types in the ExplorerStore simpler but I dont think I understand them well enough to apply it yet. On the other hand a small but (for me) very welcome change it brings is the addition of numeric separators aka 60_000 vs 60000 I've found them soooo beneficial to readablility and used them in a few places here.

Update need to change some error handling in the epics due to a quirk with the way the are currently handled (almost there but not quite)

Started to use this branch as my daily version to give it a look over and its worked well so far!

Excellent! Changes look great to me 👍
This is awesome stuff... feels like our explorer is really growing up thanks to all your work, @Akin909 ! 💯


Not able to scan "EAN 13", "CODE 93" and "CODABAR" format correctly

Description of the problem:
As per the document provided it should support the "EAN 13", "CODE 93" and "CODABAR" format, but from my app I am not able to scan it properly. Attaching Image for reference.
EAN 13:

CODE 93

CODABAR

Which library version are you using? E.g. 3.2.0.
3.2.0
Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5,
Android 5.0)
All Phones
Does the same happen on other devices or an emulator?
Can you reproduce the issue in the sample project included with the library? If not, can you
provide your own sample project or sample code that produces this error?
Yes this issue also exist in sample project.
In the case of an error do you have a stack trace or adb logs?
No

The EAN 13 sample works for me.
I'm also not able to scan the CODE 93 and CODABAR barcodes. Also tested with the Barcode Scanner app, and getting the same results. You can report the issue on https://github.com/zxing/zxing/issues (the decoder library we're using).

@rkistner Why was this issue closed? did you get any fix for this issue?

@khanshahil See my last comment on the issue.


Fixup link clicking

The main motivation behind all of this is that clicking links without moving the mouse wouldn't actually open the link. This is because link clicking was implemented in a position change event, so pressing and releasing the LMB without moving the cursor wouldn't trigger it
This was fixed by moving the link clicking logic into the LMB press event. Most of the work here was refactoring to decouple the hover element checking from link clicking to avoid duplicating a bunch of logic
The scrollbar could use similar changes since it suffers from the same problem of clicks not registering unless the cursor is moved while clicking, but this is all I have time for tonight

Thanks for this and your time taken. I've taken a quick look this morning and everything looks pretty good to me! I'll do a proper review tonight.
There are a few small changes I have about redundant redraws and when the selection is set but if you're happy I can push these to the PR to save you time.

but if you're happy I can push these to the PR to save you time

That's fine by me!


Refactor our TagHelperDescriptor tests to test diagnostics separately

From https://github.com/aspnet/Razor/pull/1100#discussion_r107298336
Since we validate as part of Build(), the diagnostics are same for both the expected and actual descriptors which makes the tests pass even when we introduce new diagnostics errors. This make our tests less effective.
We could have a switch in our builders to turn off validation as part of build.

We could have a switch in our builders to turn off validation as part of build.

This is absolutely crazy idea.
Please someone explain to me what's going on here.

The problem we are trying to solve here is if we Validate() method in our descriptor builder apis introduces new errors, no tests would fail. This is because when we build our expected descriptors, we call Build() which calls Validate() and updates Diagnostics to include the new error as part of expected diagnostics. This makes our tests pass without ever knowing about the new error that got added.
Having an internal method to disable auto-validation when building expected descriptors is one of the ways we can solve this problem. There might be other ways to do this but I haven't looked in to them.

So we should just validate the errors in a sane way. We're not servants of the approach that we use to test these things, our approaches need to work for us.
The tests that test the validation errors should just be written in a simple way.
Assert.Collection(
    tagHelper.Diagnostics,
    (d0 => { ... },
   ...);


Dark Mode Toggle not working for Contact Section

Bug Report
Issue Summary
Dark Mode Toggle Button not working if we go to Contact Section (On clicking 'Contact' Navbar). You may go through the ss attached

Expected Behaviour
Page should remain in Mode(dark/light) even after clicking Contact Navbar Link
Screenshots (if any)

I want to fix this Bug

Can I work on this?

@kumarmanish03 You have been assigned one of the issues :)


VMware name change and static IP

MTV 2.7.0
Resolves https://issues.redhat.com/browse/MTV-1317 (in light of https://issues.redhat.com/browse/MTV-1463) by adding a note about an issue with CentOS 7.9 and VMware migrations.
The PR also adds a label that was previously missing from the procedure to migrate VMware VMs from the CLI.
Previews:
UI procedures:

https://file.corp.redhat.com/rhoch/vm_name_change/html-single/#creating-migration-plan-2-6-3_provider [Admonition at end]
https://file.corp.redhat.com/rhoch/vm_name_change/html-single/#creating-migration-plan-2-6-3_vms [Admonition at end]

CLI procedure:

https://file.corp.redhat.com/rhoch/vm_name_change/html-single/#new-migrating-virtual-machines-cli_vmware [Step 7, callout 8 and Admonition at end of Plan manifest]

@yaacov I made the changes you suggested. Please review the PR again. Thanks.

lgtm


Publication details: neither mail nor phone number can be copied/clicked

Describe the bug
Under "app information" - "publication details", the app shows contact information, i.e. mail and phone number.

Expected behaviour
It should be possible to actually use the displayed information. Normal behavior for email addresses and phone numbers is to be interactable: I can click them and the appropriate action (start email client, start phone app) happens. This is not possible.

Steps to reproduce the issue

Go to "app information" - "publication details"

Tap the mail address. Tap the phone number.

Nothing happens.

Go to "app information" - "publication details"

Long tap mail address. Long tap phone number.

Nothing happens. Normally, text would get selected.

Possible Fix
This issue is closely related to #616 and #633 .
The root cause for these issues is the same: things that usually are clickable have been designed in a way that prevents these actions.

Additional context

I am not interested in working on this issue. I am not sure if #564 already fixes this problem.

@eliaszemanek I did not review your PR - could you take a quick look at this issue and tell me if the problem is already fixed by your PR #564? If it is solved, I'll close the issue again.

@ironjan Yes it will fix the issue. With autoLink enabled on the layouts you can click on links, addresses, telephone numbers and they will open in the right app. But you can't copy them within the app.
Duplicate of #633


Use full date for schedules.

On days that have oncall rollover in there, the script was just getting the first person on call that day, probably just using 00:00:00 as the time.
This change passes the full time of day to the API.  It's still working as it was, but I our schedules rollover on Mondays.  I'll let you know if it works.

Ok! Please let me know what happens then. I will merge it as soon as I know.

This actually worked fine for us Monday.  Reported the correct people after our rotation switched over.

Thanks!


Update electrum-ltc to <IP_ADDRESS>

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Thank you for the contribution. It was merged directly as c0e6c8397c5927a9466d7f7b97e4608fc59d5e83. Your contribution is still credited to you.


Fixed Trigger not removing correct entity index

If you put a prop in the trigger, add another prop, then remove the first, the lookup table won't have the correct index anymore because table.remove shifts all values. This fixes the issue by not using a lookup table to check for the index.

EndTouch is not called when a prop is removed?

You could loop though the lookup table aswell, I just saw this as a better fix. As for getting rid of the lookup table idk, I just had it in their because the person who made it first had a check for it, no idea why.

Alright I'm fine with this. Any objections? @TomyLobo @AbigailBuccaneer @Nebual

wat is trigger

It's an entity that detects entities


fix: kic correctly configure webhook for KIC servicemonitor

What this PR does / why we need it:
Correctly adds in ports to the KIC webhook service so that the servicemonitor can correctly match
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] PR is based off the current tip of the main branch.
[x] Changes are documented under the "Unreleased" header in CHANGELOG.md
[ ] New or modified sections of values.yaml are documented in the README.md
[x] Commits follow the Kong commit message guidelines

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.be has degraded performance

In c6d5585, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1063 ms

Resolved: Bofrost.be performance has improved in 45f6673 after 305 days, 21 hours, 55 minutes.


mksi - no-obs case seems suspicious

In the default case of 20211212 00z the satellite database says that MHS on N19 and yet, the SWELL machinery to process the sat-database and define the ultimate yaml ends up w/ MHS-N19 in it.
It seems to me that something is not working as expected. Can you check, please?

Okay I partly remember this now. I had put in a check to remove the observations (check_obs in run_jedi_executables) if it didn't have active channels, but then Dan had recommended to remove that check. To be honest I don't remember why.
Sorry to bother you @danholdaway, but do you remember why we didn't end up flagging observations with no active channels as missing?

We probably thought that you may still want to monitor that instrument even if the channels aren't being actively assimilated. There is machinery in the available channels that allows an instrument to be completely turned off so perhaps we assumed there would be reliance on that mechanism if the instrument was to be turned off.


Incorrect copying of MPI_Comm/MPI_info in dparallel.c

Parallel builds of master now fail:
../../../libsrc4/nc4file.c: In function ‘nc4_create_file’:
../../../libsrc4/nc4file.c:944:2: error: ‘mpinfo’ undeclared (first use in this function); did you mean ‘mpiinfo’?
  mpinfo = (NC_MPI_INFO *)parameters;
  ^~~~~~
  mpiinfo
../../../libsrc4/nc4file.c:944:2: note: each undeclared identifier is reported only once for each function it appears in
../../../libsrc4/nc4file.c:945:9: error: ‘comm’ undeclared (first use in this function)
         comm = mpiinfo->comm;
         ^~~~
../../../libsrc4/nc4file.c:946:2: error: ‘info’ undeclared (first use in this function); did you mean ‘mpinfo’?
  info = mpiinfo->info;
  ^~~~
  mpinfo

I have a quick fix that works with MPICH, but will probably fail with some other MPI implementations.
comm and info objects are just ints in MPICH, so they can be copied easily. But not so in all MPI implementations. In the code we have:
#ifdef USE_PARALLEL4
   else if (parameters)
   {
	mpiinfo = (NC_MPI_INFO *)parameters;
        comm = mpiinfo->comm;
	info = mpiinfo->info;
   }
#endif

So if we want to actually duplicate an info or comm we must use special MPI functions for that purpose (MPI_Comm_dup/MPI_Info_dup), and we must also free the duplicates later. Better to avoid taking duplicates, and I believe the code can be changed to accommodate that. I will put up my intermediate fix first.

@WardF this may be the parallel build issue you are seeing, if I understand your comment correctly...

I have taken a look and it seems that in dparallel.c we are taking copies of the comm and info in an incorrect way:
int nc_create_par(const char *path, int cmode, MPI_Comm comm,
	      MPI_Info info, int *ncidp)
{
#ifndef USE_PARALLEL
   return NC_ENOPAR;
#else
   NC_MPI_INFO data;

   /* One of these two parallel IO modes must be chosen by the user,
    * or else pnetcdf must be in use. */
   if (!(cmode & NC_MPIIO || cmode & NC_MPIPOSIX) &&
       !(cmode & NC_PNETCDF))
      return NC_EINVAL;

   data.comm = comm;
   data.info = info;
   return NC_create(path, cmode, 0, 0, NULL, 1, &data, ncidp);
#endif /* USE_PARALLEL */
}

Instead we must use MPI_Comm_dup/MPI_Info_dup, and then free them as well.
I will wait until the current batch of PRs gets merged before tackling this.

In both opens and creates, we now correctly make copies of the comm and info using the MPI functions MPI_Comm_dup/MPI_Info_dup.
So I will close this issue.


An posssible security issue in RakNet connect()

Raknet uses Diffie-Hellman key agreement protocol to do key exchange with a precondition that the long-term server public key is given to clients in some secured way(possibly hard-coded in executive).
PS. the public key i refer to has nothing to do with RSA. Some possible bugs in connect() function makes it very vulnerable to the MITM attacks, the explanations are shown below:

Client keeps secret of its private key c but send its public key C to server in challenge
Server answers the challenge
the client side public key and private key is generated based on the server side public key

in function  KeyAgreementInitiator::GenerateChallenge()
// A = client public key,a = client private key
GenerateKey(math, csprng, a);
However math is initialised based on server side public key in function KeyAgreementInitiator::Initialize()
// Unpack the responder's public key
if (!math->LoadVerifyAffineXY(responder_public_key, responder_public_key + KeyBytes, B))
return false;
So, as we see,  in the whole sage, the most important variable is  server side public key that is pre-given to client. However, Raknet send it to client in the id_connection_request_replay_1 message in clear text !
Someone has done research on this part and we can talk about it. This problem really has been bothering me a long time.

Hey Kiddinglife,
This is some interesting analysis..
Do you have any ideas on how to address this? I haven't yet absorbed the issue properly so I don't have anything of value to add. I'd like to find some time to remedy this, so ideas would be great.


How do health checks work for Blazor ServerSide?

I've set up HealthCheck endpoints for many ASP.NET Core applications. When I try to do this for Blazor, it does not seem to work. This page doesn't address anything about using Health Checks with Blazor - is it even supported? If not, then it should be documented here, because I can't seem to find information about this anywhere.
Thanks for the help!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c0cbb094-29e9-740a-9fd6-db372641d753
Version Independent ID: 52d8efc9-a336-71d9-6d90-98173cbf6bf4
Content: Health checks in ASP.NET Core
Content Source: aspnetcore/host-and-deploy/health-checks.md
Product: aspnet-core
Technology: aspnetcore-hostdeploy
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@guardrex

@chrisbuttacavoliadec ...

When I try to do this for Blazor, it does not seem to work.

As an ASP.NET Core app, a Blazor Server app should (in theory 🤞) be able to use the Health Checks API as the topic describes. I haven't heard anything from the PU otherwise; however, there might be some 😈. Explain further 'does not seem to work.' What happens when you make a request to a health check endpoint for a Basic Health Probe after following the guidance in the topic?
https://docs.microsoft.com/aspnet/core/host-and-deploy/health-checks#basic-health-probe

I must apologize my friends, I tried the basic probe again and it is now working. I have done this with many other ASP.NET Core apps, so I'm not exactly sure what went wrong! I'll close this issue!


Add low CPU camera mode

Your mileage may vary with this one, but I thought I'd offer it up anyway.
I found on my devices, no matter what I set the camera FPS to, the camera detector ran at full CPU and caused the device to eventually crash. They will also burn through a lot more power.
This is a simple change to use a timer to feed individually captured frames into the detector if the FPS is set very low (<5). I find if I specify 0.5 FPS CPU usage is down below 5% for face detection, and the responsiveness is still fairly reasonable.
If this does interest you, I think it needs some work to correctly handle rotation. The face detector appears to be orientation-sensitive

Since the camera streaming runs from generated frames as part of the ML library, I don't see another way to "slow" down that unless we slow the rate at which we generate bitmap images from the camera.  I like what you did, would be nice if we had a dedicated setting to allow users to reduce the "FPS" of the capture to whatever they want.


API: replace the RCM API with two new APIs

The current intention was for the RCM API to serve all non-weldr use-cases, and to be implemented as just another socket unit. With this I propose that we instead split it into two new binaries, that will be separate from the weldr implementation (though compiled from the same code).
The reason for this is that the three use-cases we have (weldr, installer and koji) are all different in their integration into the system (in particular, they all use different methods of authentication), and they are unlikely to be used on the same machine (weldr would be used on the local machine, and the others would be in different kinds of cloud infrastructure).
osbuild-composer API
This will be used by osbuild-installer. Authentication must be done via SSL Client Certificates and only upload to cloud will be supported as upload targets. For the time being only subscription manager customization will be supported, but more can be added as osbuild-installer needs it.
Proposed API: https://app.swaggerhub.com/apis-docs/tomegun/osbuild-composer/1
cc @Gundersanne
osbuild-composer-koji API
This will be used by RCM and OSCI internally at Red Hat. Only Kerberos authentication is supported, and only Koji is supported as an upload target. For the time being, no customizations are supported, but for instance package selection could be added in the future, if and when the use-cases become clear.
Proposed API: https://app.swaggerhub.com/apis-docs/tomegun/osbuild-composer-koji/1
cc @msehnout @ondrejbudai

I was actually thinking something very similar, so I could not agree more. As an addition to your proposal I suggest we drop the rcm subpackage as I don't expect anyone to deploy osbuild-composer from RPM.
I expect us to deploy both APIs into openshift, so I think we should just implement both of them for deployment in containers without systemd (so we can drop the rcm socket unit as well).
Finally, if the OpenShift cluster supports it, we don't need to implement the client certificate validation ourselves, because the router in OS cluster can do it for us.

[...] I don't expect anyone to deploy osbuild-composer from RPM.

Hm. I really like that we're shipping everything in the same way. I'm happy to have this discussion, but I think it's independent of splitting the APIs as described in this issue.

I like the proposals. As mentioned before, I would make UploadTarget an explicit type, rather than hiding the union deep down in the /compose parameter type.

Oh, and can you provide the source files for these? I don't see where I can download them from the links you posted, but I might be missing something.

[...] I don't expect anyone to deploy osbuild-composer from RPM.

Hm. I really like that we're shipping everything in the same way. I'm happy to have this discussion, but I think it's independent of splitting the APIs as described in this issue.

We can ship it, but I don't think we will use it for deployment anyway.

I would make UploadTarget an explicit type, rather than hiding the union deep down in the /compose parameter type.

Done. Thanks!

Oh, and can you provide the source files for these?

As we seem to be in general agreement, I'll make a PR (I thought there would have been a link to the source, but it doesn't seem that way).

As an addition to your proposal I suggest we drop the rcm subpackage

As a general principle, I agree with @larskarlitski that just uniformly providing our stuff as RPMs with all that that gives us (dependencies, build and install instructions, consistency, etc) makes the most sense to me. If nothing else, as a way to document how our software can be deployed. That said, let's evaluate the alternatives, and see if we can find a way to get the best of all worlds. I think we should discuss that separately though, so I'd make a PR out of this where things are sub-packages as before.

Done!


bug: There is format issue which is failing the format check at the PR

Describe the bug
The file src\actions\payoutMethods\schema.ts has format issue , even we format it neatly still at the time of commiting changes it is returning to orignal format and due to it format check is failing at PR
Screenshots or GIFs

@devsargam


operator project-quay (3.12.0-nightly.20240609)

Add 3.12.0-nightly.20240609 to community operators

/merge possible

/merge possible


Feature enhancement - convert file format on resize

I need the ability to specify output file format, primarily so that when resizing pngs or bmps, I can output as jpg (for compact thumbnail generation.) I have this implemented - it is pretty straightforward, and also easy to convert between all formats. I have added an optional 'out' property to opts, which can be set to 'jpg', 'png', or 'bmp'. It works pretty well - it just selects any of the three output encoder possibilities. I have also added basic tests for this.
This is in the convertFormat branch on my fork.
Options for deployment:

I can submit a pull request so it will be integrated into this package.
I can publish as a separate package: resize-convert-img.

What is your preference?

Let me think about it. What's the downside of publishing it as a separate module that only does converting between formats? I guess you'd have to parse the image an extra time but does that affect performance that much?

I would say that the thumbnail generation use case is a very compelling one, and the way that resize-img is written, it is just very straightforward to select the output format for the re-encode which is necessary anyway. Certainly in the project I am doing now I don't want to do it in two steps because it is unnecessary complexity, and sometimes I have a lot of thumbnails to generate. If the only publicly available modules did it separately, I would use my own private version.
Now, I can also see that there is a good argument for having a separate module that does only conversion, because some use cases might not need the resize operation. I thought about making the resize optional, but that just seemed to be getting too complex and off-track.
So I certainly see your point - that's why I was asking. I tend to lean to publishing as a separate module for those reasons, but I really wanted to get your thoughts because I was having trouble deciding as well.


Remove additional_files dir & get ROMS Makefiles from $ROMS_ROOT/ci/ci_makefiles

currently we are overcoming the issue of ROMS not supporting gfortran by bundling custom makefiles with C-Star.
As of 8ebcb0ddd4eb5d71e7944b961c8259f064237109 the ROMS repository now contains Makefiles in $ROMS_ROOT/ci/ci_makefiles that are gfortran compatible, so we should pivot to using these instead, removing the additional_files directory and associated code from C-Star.

Addressed in #154


[DPE-5339][UNITTESTS] Unittests for "Implement ca replacement routine unittests" task

This PR is an extension to https://github.com/canonical/opensearch-operator/pull/353 adding Unit Tests.
Sadly the tests provide hardly more than "happy path" :-( (Given the volume I may still just stop here for now.)
Value delivered:

test for all deployments
detailed documentation of the workflow
clear demonstration of each step by

unit role (leader/non-leader)
action taken together with involved data flow

The proposed change adds +7% test coverage to the original PR (that has 55%)

Additional changes:
A bug was found along the way:
A field such as ca will never exist in a secret as it is invlaid to define 2-character long fields. Thus the corresponding function should have always returned False.

Tests added to target PR https://github.com/canonical/opensearch-operator/pull/353


[Addition]:

Hotspot b58 Addresses
112DSbe9bweUNdLghrh9Q5EXXDb9dEcQ6DY49UhH4gan9DsKoRVg
11scBqXwnfm8FYBUN2LzHeCf7JzRYfkMD1vHbtZbAoDjXY7RbZw
112DKP3MTUL5A5YPqrDLczgB5fCp9irpnntuVRbj2Xi1uNkY783f
11GeYMwwiNQWX1p4YfxY6ToRHd4C1ABgLTpNPDuX3aeb3Jyr6NH
116VuLzfzgMBQmxFYkDSANaA68vkYJxEZ8ATqV6f5sVM7BxnVM8
112pqEMYK8YQbfWGrr6Dj92H9cMaEWEFoq6a82m4xxv5HZDhdTZM
112sw2BWaizH4Vjpqgwra4ma3qPGdDgmzU5uzX1v7qXZGkS1sfhf
112dEidDai5pDAswaY3WiJGbNUuPVhk5RCuSs4oVD7RosHpn8k6S
112dj9zXj8inxnh8HZMw2oxxizh7uxKE9Km3vziqy7mJH7sX45Pz
Discord Handle
malder
Reason(s)
This group of hotspots only witness each other, despite there being 210 other online hotspots within 25 KM.

We have taken into account this addition request in the next iteration of the denylist. Some or all of the Hotspots listed may be added to the denylist. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Documentation Improvement: Explaining Embedded Data in Jakarta Data [clarification]

Specification
https://github.com/jakartaee/data/pull/461
I need clarification on ...
We are currently working on improving the documentation for Jakarta Data. One area that needs attention is embedded data, specifically in the context of NoSQL and relational databases. Managing embedded data is an important aspect of data modeling and manipulation, and providing more precise explanations and examples will be beneficial for developers working with Jakarta Data.
Additional information
Areas for Improvement:

NoSQL Embedded Data:

Provide detailed explanations of embedding data within NoSQL databases.
Clarify the concept of embedding data and its significance in NoSQL database design.
Include examples illustrating both grouping and flat types of embedded data.

Relational Database Embedded ID:

Explain the concept of an embedded ID in relational databases.
Provide examples demonstrating the use of composite primary keys composed of multiple attributes.

ID and Sort in Jakarta Data:

Clarify the role of the ID attribute in Jakarta Data entities.
Explain how sorting works in Jakarta Data and its importance in query results.

@otaviojava what is the status of this? It looks to me like most of these things are done.
The one thing here we don't talk about, if I recall correctly is:

Relational Database Embedded ID:

Explain the concept of an embedded ID in relational databases.
Provide examples demonstrating the use of composite primary keys composed of multiple attributes.

But I'm not sure how much we really need to say about this. I feel like the JPA spec says it, and that's more where it belongs.
But perhaps you're thinking of something more specific that I'm missing.

It is done; I will close this one.


Is it possible to work with multiple models?

Hello,
I want use with taggable for Model Interests and Skills.
Is this possible to use for one autocomplete url for results of two models?
Thank you

You can just create a custom get_autocomplete_items method and then concatenate multiple results.
def get_autocomplete_items(parameters)
  result_set_1 = Interests.search do
    fulltext parameters[:term] do
      fields (:first_name)
      fields (:middle_name)
      fields (:last_name)
      fields (:interest)
    end
    order_by (:last_name)
    paginate page: 1, per_page: parameters[:options][:limit]+1
  end.results

  result_set_2 = Skills.search do
    fulltext parameters[:term] do
      fields (:first_name)
      fields (:middle_name)
      fields (:last_name)
      fields (:skill)
    end
    order_by (:last_name)
    paginate page: 1, per_page: parameters[:options][:limit]+1
  end.results

  result_set_count = result_set_1.count + result_set_2.count
  result_set = result_set_1 + result_set_2
end

Where is this custom method suppose to go, in the controller?


Guess

import random
def display_menu():
print("Welcome to Guessing Game Puzzle")
print("1. Select Level")
print("2. Exit")
def game_level():
print("Choose your game level")
print("3. Easy")
print("4. Hard")
def play_game(chances):
number = random.randint(1, 100)
print("Guess the number: ")
while chances > 0:
guess_number = int(input())
if guess_number < number:
print("Number too low")
elif guess_number > number:
print("Number too high")
elif guess_number == number:
print("You win!")
break
print("Number of chances left: ", chances)
chances -= 1
if chances == 0:
print("You lose!")
def main():
display_menu()
choice = int(input("Enter your preference: "))
if choice == 1:
game_level()
level = int(input("Enter your preferred level: "))
if level == 3:
play_game(10)
elif level == 4:
play_game(5)
else:
print("Wrong input")
elif choice == 2:
print('Exiting game')
else:
print("Try again")
if name == "main":
main()

Nice


GG20 version

Which branch support gg20 version of the tss?

for tss-lib & gg 20, they have a branch https://github.com/bnb-chain/tss-lib/tree/gg20


⚠ Bofrost.lu has degraded performance

In 19501b8, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2937 ms

Resolved: Bofrost.lu performance has improved in b73baf6 after 20 minutes.


CHANGELOG page is outdated

https://pybamm.org/changelog/ does not show the notes for the 24.5 and the 24.9 releases, and it hasn't been updated in a while. I am yet to explore why.

For me it is up to date

It was out of date, actually – because we were using a deprecated method to fetch remote content. #201 should fix it.


Landing page

Description
This is the landing page component, with a Registration and Login component added to the project.
I also deleted an unnecessary folder level, and added an index.js in the components folder to standardize component export.
I incorporated a basic Switch and Route for the landing page from react-router-dom
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

yarn install in frontend
yarn start in frontend
The dev server should load the landing page

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Nice pull request.  comprehensive code.  I really like the error checking for the email.  You can also accomplish this in a few lines with regex, but looks good!