Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions dockers/docker-sonic-restapi-test/CreateMockPort.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

/sbin/brctl addbr Ethernet12
/sbin/ifconfig Ethernet12 up
/sbin/brctl addbr Ethernet16
/sbin/ifconfig Ethernet16 up
/sbin/brctl addbr Ethernet34
/sbin/ifconfig Ethernet34 up
41 changes: 41 additions & 0 deletions dockers/docker-sonic-restapi-test/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
FROM docker-config-engine-stretch

ARG docker_container_name
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf

## Make apt-get non-interactive
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN pwd

{% if docker_sonic_restapi_test_debs.strip() -%}
# Copy locally-built Debian package dependencies
{{ copy_files("debs/", docker_sonic_restapi_test_debs.split(' '), "/debs/") }}

# Install locally-built Debian packages and implicitly install their dependencies
{{ install_debian_packages( docker_sonic_restapi_test_debs.split(' ')) }}
{%- endif %}

# Adjust redis configurations
RUN sed -ri 's/^(save .*$)/# \1/g; \
s/^daemonize yes$/daemonize no/; \
s/^logfile .*$/logfile ""/; \
s/^# syslog-enabled no$/syslog-enabled no/; \
s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/; \
s/^bind 127.0.0.1/bind 0.0.0.0/ \
' /etc/redis/redis.conf

COPY ["supervisor/redis.conf", "/etc/supervisor/conf.d/"]
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
COPY ["start.sh", "/usr/bin"]

COPY ["CreateMockPort.sh", "/usr/bin"]

COPY ["debug/*", "/usr/bin/"]

## Clean up
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y

ENTRYPOINT ["/usr/bin/supervisord"]
2 changes: 2 additions & 0 deletions dockers/docker-sonic-restapi-test/debug/show_encap_tunnels
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
curl -X GET http://localhost:8080/v1/config/tunnel/encap/vxlan
2 changes: 2 additions & 0 deletions dockers/docker-sonic-restapi-test/debug/show_interface
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
curl -X GET http://localhost:8080/v1/config/interface/$1/$2
2 changes: 2 additions & 0 deletions dockers/docker-sonic-restapi-test/debug/show_routes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
curl -X GET http://localhost:8080/v1/config/vrouter/$1/routes
2 changes: 2 additions & 0 deletions dockers/docker-sonic-restapi-test/debug/show_vrouters
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
curl -X GET http://localhost:8080/v1/config/vrouter
11 changes: 11 additions & 0 deletions dockers/docker-sonic-restapi-test/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

mkdir -p /var/sonic
echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status

rm -f /var/run/rsyslogd.pid

supervisorctl start rsyslogd

supervisorctl start redis-server
supervisorctl start restapi
7 changes: 7 additions & 0 deletions dockers/docker-sonic-restapi-test/supervisor/redis.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[program:redis-server]
command=/usr/bin/redis-server /etc/redis/redis.conf
priority=1
autostart=true
autorestart=false
stdout_logfile=/tmp/redis-out.log
stderr_logfile=/tmp/redis-err.log
28 changes: 28 additions & 0 deletions dockers/docker-sonic-restapi-test/supervisord.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[supervisord]
logfile_maxbytes=1MB
logfile_backups=2
nodaemon=true

[program:restapi]
command=/usr/sbin/go-server-server -enablehttps=false -localapitestdocker=true -loglevel trace
priority=1
autostart=false
autorestart=false
stdout_logfile=/tmp/rest-api.out.log
stderr_logfile=/tmp/rest-api.err.log

[program:start.sh]
command=/usr/bin/start.sh
priority=1
autostart=true
autorestart=false
stdout_logfile=/tmp/start.out.log
stderr_logfile=/tmp/start.err.log

[program:CreateMockPort.sh]
command=/usr/bin/CreateMockPort.sh
priority=1
autostart=true
autorestart=false
stdout_logfile=/tmp/CreateMockPort.out.log
stderr_logfile=/tmp/CreateMockPort.err.log
23 changes: 23 additions & 0 deletions rules/docker-restapi.mk
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,26 @@ $(DOCKER_RESTAPI)_CONTAINER_NAME = rest-api
$(DOCKER_RESTAPI)_RUN_OPT += --cap-add NET_ADMIN --privileged -t
$(DOCKER_RESTAPI)_RUN_OPT += -v /var/run/redis/redis.sock:/var/run/redis/redis.sock
$(DOCKER_RESTAPI)_RUN_OPT += -p=8090:8090/tcp

# docker image for rest-api-test
DOCKER_RESTAPI_TEST_STEM = docker-sonic-restapi-test
DOCKER_RESTAPI_TEST = $(DOCKER_RESTAPI_TEST_STEM).gz

$(DOCKER_RESTAPI_TEST)_DEPENDS += $(LIBHIREDIS) $(LIBNL3) $(LIBNL_GENL3) \
$(REDIS_TOOLS) $(REDIS_SERVER) \
$(LIBNL_ROUTE3) $(LIBSWSSCOMMON) $(RESTAPI)

$(DOCKER_RESTAPI_TEST)_PATH = $(DOCKERS_PATH)/$(DOCKER_RESTAPI_TEST_STEM)

$(DOCKER_RESTAPI_TEST)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)

ifeq ($(ENABLE_RESTAPI), y)
SONIC_DOCKER_IMAGES += $(DOCKER_RESTAPI_TEST)
SONIC_STRETCH_DOCKERS += $(DOCKER_RESTAPI_TEST)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_RESTAPI_TEST)
endif

$(DOCKER_RESTAPI_TEST)_CONTAINER_NAME = rest-api-test
$(DOCKER_RESTAPI_TEST)_RUN_OPT += --cap-add NET_ADMIN --privileged -t
$(DOCKER_RESTAPI_TEST)_RUN_OPT += -v /var/run/redis/redis.sock:/var/run/redis/redis.sock
$(DOCKER_RESTAPI_TEST)_RUN_OPT += -p=8090:8090/tcp