diff --git a/build/ci/.golangci-config/.golangci.yml b/build/ci/.golangci-config/.golangci.yml index 8238d14308d4abdb0cb5770fbf1c614c242d8c03..3492086f612c3f9ff49695cd0164f995a3051062 100644 --- a/build/ci/.golangci-config/.golangci.yml +++ b/build/ci/.golangci-config/.golangci.yml @@ -33,4 +33,4 @@ linters: issues: exclude-use-default: false max-issues-per-linter: 0 - max-same-issues: 0 \ No newline at end of file + max-same-issues: 0 diff --git a/build/ci/.terraform-ci.yml b/build/ci/.terraform-ci.yml index 6049f9d3f0f9dd456c7b54cd224f87f2eb23edb4..e8377f940bb7d782340f9b7125ebfd25c842f370 100644 --- a/build/ci/.terraform-ci.yml +++ b/build/ci/.terraform-ci.yml @@ -4,7 +4,7 @@ variables: TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/integration cache: - key: integration + key: ${CI_PIPELINE_ID} paths: - ${TF_ROOT}/.terraform @@ -13,6 +13,7 @@ cache: variables: CI_DEBUG_TRACE: "false" before_script: + - ./build/ci/generate_port2.sh $CI_PIPELINE_ID >> ${TF_ROOT}/port - cd ${TF_ROOT} - export TF_VAR_integration_username=terraform - export TF_VAR_integration_access_token=${TERRAFORM_API_TOKEN} @@ -20,6 +21,7 @@ cache: - export TF_VAR_tls_key=${DOCKER_TLS_KEY} - export TF_VAR_tls_cert=${DOCKER_TLS_CERT} - export TF_VAR_tls_ca_cert=${DOCKER_TLS_CA} + rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop') variables: diff --git a/build/ci/.test.yml b/build/ci/.test.yml index e4209b3bb7773f44ee961cfd6379ad9554645963..461480c311a45cb4a8721f501cd37c7910078dfc 100644 --- a/build/ci/.test.yml +++ b/build/ci/.test.yml @@ -7,6 +7,8 @@ integration-test: variables: GOSDN_LOG: "nolog" GOSDN_TEST_API_ENDPOINT: http://gosdn-$CI_COMMIT_SHA.apps.ocp.fbi.h-da.de/api + GOSDN_TEST_ENDPOINT_IP: 141.100.70.171 + GOSDN_CHANGE_TIMEOUT: "100ms" rules: - if: $CI_NIGHTLY when: delayed @@ -19,6 +21,8 @@ integration-test: when: delayed start_in: 2 minutes script: + - ./build/ci/generate_port.sh $CI_PIPELINE_ID >> port + - export GOSDN_TEST_ENDPOINT_PORT=$(cat port) - go test -race ./test/integration -v -coverprofile=coverage.out .test: &test diff --git a/build/ci/generate_port.sh b/build/ci/generate_port.sh new file mode 100755 index 0000000000000000000000000000000000000000..941a1284318ff5ca55314acdac89c13f7e6b4691 --- /dev/null +++ b/build/ci/generate_port.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +input=$1 +#trailing_backspace=$2 + +hashed_value=$(echo $input | sha256sum | awk '{print $1}' ) + +decimal_value=$((16#$hashed_value)) +decimal_value=${decimal_value/-/} + +port=$(((decimal_value % 10000)+50000)) + +#echo -n $(($port*1)) +echo -n $port \ No newline at end of file diff --git a/build/ci/generate_port2.sh b/build/ci/generate_port2.sh new file mode 100755 index 0000000000000000000000000000000000000000..f8e1ca3040defde9dfeb0a45663a8318db1e60e0 --- /dev/null +++ b/build/ci/generate_port2.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +input=$1 +#trailing_backspace=$2 + +hashed_value=$(echo $input | sha256sum | awk '{print $1}' ) + +decimal_value=$((16#$hashed_value)) +decimal_value=${decimal_value/-/} + +port=$(((decimal_value % 10000)+50000)) + +#echo -n $(($port*1)) +echo -n $port \ No newline at end of file diff --git a/test/integration/cmdIntegration_test.go b/test/integration/cmdIntegration_test.go index ae3d20904a6d3dba424e4c5a4d47b24ba3c92243..59a30290197c80bd4054918a64be145dfa25efef 100644 --- a/test/integration/cmdIntegration_test.go +++ b/test/integration/cmdIntegration_test.go @@ -1,24 +1,25 @@ package integration import ( - "os" - "testing" - tpb "code.fbi.h-da.de/cocsn/api/go/gosdn/transport" - "code.fbi.h-da.de/cocsn/gosdn/api" "code.fbi.h-da.de/cocsn/gosdn/nucleus/util/proto" + "fmt" guuid "github.com/google/uuid" gpb "github.com/openconfig/gnmi/proto/gnmi" log "github.com/sirupsen/logrus" "github.com/spf13/viper" pb "google.golang.org/protobuf/proto" + "os" + "testing" ) const unreachable = "203.0.113.10:6030" const testPath = "/system/config/hostname" -var testAddress = "141.100.70.171:6030" +var testIP = "141.100.70.171" +var testPort = "6030" +var testAddress = testIP + ":" + testPort var testAPIEndpoint = "http://gosdn-latest.apps.ocp.fbi.h-da.de/api" var testUsername = "admin" var testPassword = "arista" @@ -34,11 +35,19 @@ func testSetupIntegration() { log.SetLevel(log.PanicLevel) } - a := os.Getenv("GOSDN_TEST_ENDPOINT") + a := os.Getenv("GOSDN_TEST_ENDPOINT_IP") if a != "" { - testAddress = a - log.Infof("GOSDN_TEST_ENDPOINT set to %v", testAddress) + testIP = a + log.Infof("GOSDN_TEST_ENDPOINT_IP set to %v", testIP) } + port := os.Getenv("GOSDN_TEST_ENDPOINT_PORT") + if port != "" { + testPort = port + log.Infof("GOSDN_TEST_ENDPOINT_PORT set to %v", testPort) + } + testAddress = testIP + ":" + testPort + fmt.Printf("Testadress: %s, Testport: %s, Port: %s", testAddress, testPort, port) + api := os.Getenv("GOSDN_TEST_API_ENDPOINT") if api != "" { testAPIEndpoint = api diff --git a/test/terraform/containers.tf b/test/terraform/containers.tf index 4149322318193d0644f0e8f3eefafff44681a2ec..8f26aab32c76e9252e8d4143eb3b0ff3203b9018 100644 --- a/test/terraform/containers.tf +++ b/test/terraform/containers.tf @@ -15,6 +15,10 @@ resource "docker_container" "gosdn" { } } +data "local_file" "port" { + filename = "port" +} + # create arista container # namespace is french cheeses resource "docker_container" "ceos" { @@ -24,7 +28,7 @@ resource "docker_container" "ceos" { ports { internal = 6030 - external = 6030 + external = data.local_file.port.content } networks_advanced { diff --git a/test/terraform/main.tf b/test/terraform/main.tf index 1f228766349903fbad196dbd3b1df05324f8c70b..a08c19bb698658ed2430433851e02cbca39a8782 100644 --- a/test/terraform/main.tf +++ b/test/terraform/main.tf @@ -1,6 +1,7 @@ terraform { backend "http" { } + required_providers { docker = { source = "kreuzwerker/docker" diff --git a/test/terraform/networks.tf b/test/terraform/networks.tf deleted file mode 100644 index 2372a310a9d9c239419a706a22ffc809fb05a64a..0000000000000000000000000000000000000000 --- a/test/terraform/networks.tf +++ /dev/null @@ -1,15 +0,0 @@ -resource "docker_network" "danet_legacy" { - name = "legacy-${random_id.server.hex}" - - ipam_config { - subnet = "172.100.100.0/24" - } -} - -resource "docker_network" "danet" { - name = "danet-${random_id.server.hex}" - ipv6 = true - ipam_config { - subnet = "fdfe::/64" - } -} \ No newline at end of file diff --git a/test/terraform/resources.tf b/test/terraform/resources.tf index 9659f2d949aaa978b04167a7a62d1a0dcc6752eb..d5f2938f3e0d7e215d339c21dd486d36de57a3bc 100644 --- a/test/terraform/resources.tf +++ b/test/terraform/resources.tf @@ -1,3 +1,3 @@ resource "random_id" "server" { byte_length = 8 -} +} \ No newline at end of file