Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • danet/gosdn
1 result
Show changes
Commits on Source (23)
......@@ -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:
......
......@@ -29,19 +29,19 @@ integration-test-gosdn:
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/*
#- 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="gosdn:55055" go test -p 1 ./integration-tests/*
<<: *test
......@@ -5,6 +5,21 @@ 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"]
COPY .gitlab/ci/start_controller.sh ./start_controller.sh
RUN chmod +x start_controller.sh
RUN apt-get update && apt-get install -y curl bash wget nmap dnsutils iputils-ping
ENTRYPOINT [ "./start_controller.sh" ]
#FROM debian:bookworm-slim
#
#RUN apt-get update && apt-get install -y curl bash wget nmap dnsutils iputils-ping
#
#WORKDIR /app
#
#COPY .gitlab/ci/run.sh ./run.sh
#RUN chmod +x run.sh
#
#EXPOSE 1337
#ENTRYPOINT [ "/app/run.sh" ]
#!/bin/sh
sleep 20
echo ------------------------------------
nmap -p 5672 rabbitmq
ping -c 5 rabbitmq
echo ------------------------------------
nslookup rabbitmq
echo ------------------------------------
#!/bin/sh
#echo "Starting controller later"
#sleep 20
#echo "Starting controller now"
sleep 10
echo ------------------------------------
nmap -p 5672 rabbitmq
ping -c 5 rabbitmq
echo ------------------------------------
nslookup rabbitmq
echo ------------------------------------
./gosdn
......@@ -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: %s", addr)
for i := 0; i < retries; i++ {
conn, err := amqp.Dial(addr)
if err == nil {
logrus.Debug("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.
......