Skip to content
Snippets Groups Projects
Commit 8fa5bb12 authored by Manuel Kieweg's avatar Manuel Kieweg
Browse files

merge develop into branch

parents e9d21e9b d567237b
No related branches found
No related tags found
1 merge request!184Change go module paths
...@@ -40,4 +40,4 @@ build-docker: ...@@ -40,4 +40,4 @@ build-docker:
- docker tag $DOCKER_IMAGE_SHA $TAG - docker tag $DOCKER_IMAGE_SHA $TAG
- docker push $TAG - docker push $TAG
- docker build --target installer --build-arg GITLAB_USER=$GO_MODULES_USER --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN --build-arg BUILDARGS=$BUILDARGS -t ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID} . - docker build --target installer --build-arg GITLAB_USER=$GO_MODULES_USER --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN --build-arg BUILDARGS=$BUILDARGS -t ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID} .
- docker push ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID} - docker push ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID}
\ No newline at end of file
...@@ -12,4 +12,4 @@ code-quality: ...@@ -12,4 +12,4 @@ code-quality:
reports: reports:
codequality: gl-code-quality-report.json codequality: gl-code-quality-report.json
paths: paths:
- gl-code-quality-report.json - gl-code-quality-report.json
\ No newline at end of file
variables: variables:
CEOS_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/ceos:latest" CEOS_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/ceos:latest"
CLAB_INT1_TEMPLATE: "${CI_PROJECT_DIR}/test/containerlab/int01.clab.yml" CLAB_INT1_TEMPLATE: "${CI_PROJECT_DIR}/test/containerlab/int01.clab.yml"
...@@ -13,17 +12,6 @@ variables: ...@@ -13,17 +12,6 @@ variables:
- if: $CI_NIGHTLY - if: $CI_NIGHTLY
.containerlab_template: &containerlab_template
tags:
- shell
before_script:
- cd ${CLAB_DIR}
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- echo $DOCKER_IMAGE_SHA
- docker pull $DOCKER_IMAGE_SHA
- docker pull ${CEOS_CONTAINER_IMAGE}
containerlab:template: containerlab:template:
extends: .containerlab_rules extends: .containerlab_rules
image: alpine:latest image: alpine:latest
...@@ -50,10 +38,17 @@ containerlab:template: ...@@ -50,10 +38,17 @@ containerlab:template:
containerlab:deploy: containerlab:deploy:
extends: extends:
- .containerlab_template
- .containerlab_rules - .containerlab_rules
stage: apply stage: apply
needs: ["containerlab:template", "build-docker"] needs: ["containerlab:template", "build-docker"]
tags:
- shell
before_script:
- cd ${CLAB_DIR}
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- echo $DOCKER_IMAGE_SHA
- docker pull $DOCKER_IMAGE_SHA
- docker pull ${CEOS_CONTAINER_IMAGE}
script: script:
- sudo containerlab deploy --topo ${CI_PROJECT_DIR}/${CLAB_NAME}.clab.yml --reconfigure - sudo containerlab deploy --topo ${CI_PROJECT_DIR}/${CLAB_NAME}.clab.yml --reconfigure
- echo "GOSDN_HTTP_PORT=$(docker inspect -f '{{ (index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort }}' clab-${CLAB_NAME}-gosdn)" >> ${CI_PROJECT_DIR}/build.env - echo "GOSDN_HTTP_PORT=$(docker inspect -f '{{ (index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort }}' clab-${CLAB_NAME}-gosdn)" >> ${CI_PROJECT_DIR}/build.env
...@@ -66,6 +61,13 @@ containerlab:deploy: ...@@ -66,6 +61,13 @@ containerlab:deploy:
dotenv: ${CI_PROJECT_DIR}/build.env dotenv: ${CI_PROJECT_DIR}/build.env
containerlab:destroy: containerlab:destroy:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop')
when: always
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: $CI_NIGHTLY
when: always
stage: .post stage: .post
tags: tags:
- shell - shell
...@@ -78,4 +80,3 @@ containerlab:destroy: ...@@ -78,4 +80,3 @@ containerlab:destroy:
allow_failure: true allow_failure: true
dependencies: dependencies:
- containerlab:template - containerlab:template
when: always
...@@ -8,8 +8,6 @@ import ( ...@@ -8,8 +8,6 @@ import (
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/device"
ppb "code.fbi.h-da.de/cocsn/api/go/gosdn/pnd" ppb "code.fbi.h-da.de/cocsn/api/go/gosdn/pnd"
spb "code.fbi.h-da.de/cocsn/api/go/gosdn/southbound" spb "code.fbi.h-da.de/cocsn/api/go/gosdn/southbound"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/networkdomain" "code.fbi.h-da.de/cocsn/gosdn/interfaces/networkdomain"
...@@ -211,44 +209,46 @@ func fillSbis(pnd networkdomain.NetworkDomain, all bool, sid ...string) ([]*spb. ...@@ -211,44 +209,46 @@ func fillSbis(pnd networkdomain.NetworkDomain, all bool, sid ...string) ([]*spb.
func fillOnds(pnd networkdomain.NetworkDomain, all bool, did ...string) ([]*ppb.OrchestratedNetworkingDevice, error) { func fillOnds(pnd networkdomain.NetworkDomain, all bool, did ...string) ([]*ppb.OrchestratedNetworkingDevice, error) {
var ondList []uuid.UUID var ondList []uuid.UUID
var onds []*ppb.OrchestratedNetworkingDevice
// all decides if a client wants all devices or only a single one
switch all { switch all {
case true: case true:
ondList = pnd.Devices() ondList = pnd.Devices()
onds = make([]*ppb.OrchestratedNetworkingDevice, len(ondList))
default: default:
var err error
if len(did) == 0 { if len(did) == 0 {
return nil, &errors.ErrInvalidParameters{ err := &errors.ErrInvalidParameters{
Func: fillOnds, Func: fillOnds,
Param: "length of 'did' cannot be '0' when 'all' is set to 'false'", Param: "length of 'did' cannot be '0' when 'all' is set to 'false'",
} }
}
ondList, err = stringToUUID(did)
if err != nil {
log.Error(err) log.Error(err)
return nil, status.Errorf(codes.Aborted, "%v", err)
return nil, err
} }
onds = make([]*ppb.OrchestratedNetworkingDevice, 1)
} }
onds := make([]*ppb.OrchestratedNetworkingDevice, len(ondList)) for i, id := range did {
for i, id := range ondList { d, err := pnd.GetDevice(id)
d, err := pnd.GetDevice(id.String())
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return nil, status.Errorf(codes.Aborted, "%v", err) return nil, status.Errorf(codes.Aborted, "%v", err)
} }
cfg := ygot.GNMINotificationsConfig{} cfg := ygot.GNMINotificationsConfig{}
dev, err := ygot.TogNMINotifications(d.(device.Device).Model(), time.Now().UnixNano(), cfg) dev, err := ygot.TogNMINotifications(d.Model(), time.Now().UnixNano(), cfg)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return nil, status.Errorf(codes.Aborted, "%v", err) return nil, status.Errorf(codes.Aborted, "%v", err)
} }
onds[i] = &ppb.OrchestratedNetworkingDevice{ onds[i] = &ppb.OrchestratedNetworkingDevice{
Id: id.String(), Id: id,
Name: "", Name: d.Name(),
Device: dev, Device: dev,
} }
} }
return onds, nil return onds, nil
} }
......
...@@ -224,7 +224,7 @@ func (s DeviceStore) GetDevice(id uuid.UUID, parseErrors ...error) (device.Devic ...@@ -224,7 +224,7 @@ func (s DeviceStore) GetDevice(id uuid.UUID, parseErrors ...error) (device.Devic
} }
} }
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"uuid": id, "uuid": foundID,
"name": d.Name(), "name": d.Name(),
}).Debug("device was accessed") }).Debug("device was accessed")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment