Skip to content
Snippets Groups Projects
Commit 3f600a21 authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

Resolve "Investigate GitLab-CI services don't reach each other"

See merge request !773
parent fb1c4e7a
Branches
Tags
1 merge request!773Resolve "Investigate GitLab-CI services don't reach each other"
Pipeline #186193 failed
......@@ -7,6 +7,7 @@ variables:
GOLANG_VERSION: "1.22"
GNMI_TARGET_IMAGE: registry.code.fbi.h-da.de/danet/gnmi-target/debian:master
GNMI_TARGET_INTEGRATION_IMAGE: "$CI_REGISTRY_IMAGE/gnmi-target-integration-test:${CI_COMMIT_SHA}"
DOCKER_TLS_CERTDIR: "/certs"
workflow:
rules:
......
......@@ -11,7 +11,8 @@ integration-test-gosdn:
MONGO_INITDB_ROOT_PASSWORD: example
INTEGRATION_TEST_TARGET_A: gnmi-target_A:7030
INTEGRATION_TEST_TARGET_B: gnmi-target_B:7030
RABBITMQ_HOSTNAME: rabbitmq
INTEGRATION_TEST_RABBITMQ_HOSTNAME: rabbitmq
INTEGRATION_TEST_CONTROLLER_URL: gosdn:55055
services:
- name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/mongo:7
alias: mongo
......@@ -28,20 +29,13 @@ integration-test-gosdn:
alias: gnmi-target_B
command: ["start", "--cert", "/etc/gnmi-target/ssl/certs/gnmi-target-selfsigned.crt", "--key", "/etc/gnmi-target/ssl/private/gnmi-target-selfsigned.key", "--ca_file", "/etc/gnmi-target/ssl/ca.crt"]
# Use gosdn docker image from this branch
# Uncomment later when fixed. See: https://code.fbi.h-da.de/danet/gosdn/-/issues/335
#- name: "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}_integration-test"
# alias: gosdn
# variables:
# GOSDN_ADMIN_PASSWORD: TestPassword
# command: ["--config", "/app/configs/integration-test-gosdn.toml", "--security", "secure"]
- name: "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}_integration-test"
alias: gosdn
variables:
GOSDN_ADMIN_PASSWORD: TestPassword
command: ["--config", "/app/configs/integration-test-gosdn.toml", "--security", "secure"]
before_script:
- bash -c "$(curl -sL https://get-gnmic.openconfig.net)"
script:
# Remove start of goSDN later when fixed. See: https://code.fbi.h-da.de/danet/gosdn/-/issues/335
- cp -r artifacts/ssl/gosdn/certs artifacts/ssl/
- cp -r artifacts/ssl/gosdn/private artifacts/ssl/
- mkdir artifacts/configs && cp controller/configs/gNMISubscriptions.txt.example artifacts/configs/gNMISubscriptions.txt
- make build-gosdn
- cd artifacts && GOSDN_ADMIN_PASSWORD=TestPassword ./gosdn --config ../controller/configs/integration-test-gosdn.toml --security secure &
- INTEGRATION_TEST_CONTROLLER_URL="localhost:55055" go test -p 1 ./integration-tests/*
- go test -p 1 ./integration-tests/*
<<: *test
......@@ -4,7 +4,3 @@ FROM ${GOSDN_IMAGE}
RUN mkdir /app/ssl
COPY ./artifacts/ssl/gosdn /app/ssl
#COPY .gitlab/ci/test-start.sh test-start.sh
#RUN chmod +x test-start.sh
#ENTRYPOINT ["./test-start.sh"]
......@@ -13,6 +13,7 @@ import (
amqp "github.com/rabbitmq/amqp091-go"
"github.com/sethvargo/go-retry"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
)
......@@ -80,12 +81,23 @@ func NewEventService() (interfaces.Service, error) {
}
func connect(addr string) (*amqp.Connection, error) {
conn, err := amqp.Dial(addr)
if err != nil {
return nil, &customerrs.AMQPInitFailError{Action: "failed to connect to RabbitMQ", Err: err}
var err error
// Will equal two Minuten of retries
retries := 60
logrus.Infof("will try to connect to rabbitmq: %s", addr)
for i := 0; i < retries; i++ {
conn, err := amqp.Dial(addr)
if err == nil {
logrus.Info("Connected to RabbitMQ")
return conn, nil
}
logrus.Errorf("could not connect to RabbitMQ with error: %s. Retrying in 2 seconds.", err.Error())
time.Sleep(2 * time.Second)
}
return conn, nil
return nil, &customerrs.AMQPInitFailError{Action: "finally failed to connect to RabbitMQ", Err: err}
}
// Reconnect attempts to setup a new connection to the RabbitMQ server after an disconnect.
......
......@@ -61,12 +61,18 @@ func TestMain(m *testing.M) {
topics := []event.Topic{event.ManagedNetworkElement, event.User, event.Role}
rabbitMQAddress := ""
envVarRabbitmq := os.Getenv("RABBITMQ_HOSTNAME")
envVarRabbitmq := os.Getenv("INTEGRATION_TEST_RABBITMQ_HOSTNAME")
if envVarRabbitmq != "" {
rabbitMQAddress = envVarRabbitmq
}
application = NewApplication(ctx, conn, ":55055", topics, rabbitMQAddress)
controllerUrl := "localhost:55055"
controllerEnv := os.Getenv("INTEGRATION_TEST_CONTROLLER_URL")
if controllerEnv != "" {
controllerUrl = controllerEnv
}
application = NewApplication(ctx, conn, controllerUrl, topics, rabbitMQAddress)
eventTypeCallbackTuples := []event.TypeToCallbackTuple{
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment