From: subhash kumar singh Date: Wed, 27 Oct 2021 11:58:34 +0000 (+0000) Subject: Docker build file for a1 mediator X-Git-Tag: 2.5.1~2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=6bc8f8ef64a7e90f550dea4af6a10d785d8aeca6;p=ric-plt%2Fa1.git Docker build file for a1 mediator Provide docker build file for a1 mediator. Also fixes the test cases. Issue-ID: RIC-831 Signed-off-by: subhash kumar singh Change-Id: I60aed9a85ea3bb9b9085bdc3016fc9f277cec139 --- diff --git a/a1-go/Dockerfile b/a1-go/Dockerfile new file mode 100644 index 0000000..be0eafb --- /dev/null +++ b/a1-go/Dockerfile @@ -0,0 +1,74 @@ +# Copyright (c) 2021 Samsung. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#----------------------------------------------------------- + +FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 AS a1-build + +RUN apt-get update -y && apt-get install -y jq + +# Update CA certificates +RUN apt update && apt install --reinstall -y \ + ca-certificates \ + && \ + update-ca-certificates + +ENV PATH="/usr/local/go/bin:${PATH}" + +ENV GOPATH="/go" + +RUN mkdir -p /go/bin +RUN mkdir -p /go/src/ws +WORKDIR "/go/src/ws" + +# Module prepare (if go.mod/go.sum updated) +COPY go.mod /go/src/ws +COPY go.sum /go/src/ws +RUN GO111MODULE=on go mod download + +# build and test +COPY . /go/src/ws + +# Build the code +RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/src/ws/cache/go/cmd/a1 cmd/a1.go + +# Run unit tests +RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/resthooks/ +RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/a1/ + +RUN gofmt -l $(find cmd/ pkg/ -name '*.go' -not -name '*_test.go') + +CMD ["/bin/bash"] + + +#---------------------------------------------------------- +FROM ubuntu:18.04 as a1-mediator + +RUN apt-get update -y \ + && apt-get install --reinstall -y sudo openssl ca-certificates ca-cacert \ + && apt-get clean && update-ca-certificates + +# +# a1-mediator +# +RUN mkdir -p /opt/a1-mediator \ + && chmod -R 755 /opt/a1-mediator + +COPY --from=a1-build /go/src/ws/cache/go/cmd/a1 /opt/a1-mediator/a1 + +WORKDIR /opt/a1-mediator + +COPY a1-entrypoint.sh /opt/a1-mediator/ +ENTRYPOINT ["/opt/a1-mediator/a1-entrypoint.sh"] + diff --git a/a1-go/a1-entrypoint.sh b/a1-go/a1-entrypoint.sh new file mode 100755 index 0000000..b0d5eae --- /dev/null +++ b/a1-go/a1-entrypoint.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Samsung +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Start services, etc. +/opt/a1-mediator/a1 -f /opt/ric/config/config.yaml + diff --git a/a1-go/cmd/a1.go b/a1-go/cmd/a1.go index 2ec0d7b..cdb44cb 100644 --- a/a1-go/cmd/a1.go +++ b/a1-go/cmd/a1.go @@ -32,6 +32,9 @@ func main() { // os.Setenv("DBAAS_SERVICE_HOST", "xxxxx") // os.Setenv("DBAAS_SERVICE_PORT", "xxxxx") + // initialize logger + a1.Init() + // start restful service to handle a1 api's restful := restful.NewRestful() diff --git a/a1-go/pkg/resthooks/resthooks_test.go b/a1-go/pkg/resthooks/resthooks_test.go index cfad270..6b7d2ce 100644 --- a/a1-go/pkg/resthooks/resthooks_test.go +++ b/a1-go/pkg/resthooks/resthooks_test.go @@ -24,6 +24,7 @@ import ( "os" "testing" + "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/a1" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -40,6 +41,7 @@ func TestMain(m *testing.M) { "a1.policy_inst_metadata.1006001.qos", }, nil) + a1.Init() rh = createResthook(sdlInst) code := m.Run() os.Exit(code)