mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
test environment for ipmi
This commit is contained in:
parent
84b68bd0a8
commit
374ff9cf9e
91
Makefile
91
Makefile
@ -10,11 +10,13 @@ TESTENV_LOOP ?= /dev/loop7
|
|||||||
all:
|
all:
|
||||||
@ echo "Useful commands:"
|
@ echo "Useful commands:"
|
||||||
@ echo " make # Print this help"
|
@ echo " make # Print this help"
|
||||||
|
@ echo " make textenv # Build test environment"
|
||||||
@ echo " make tox # Run tests and linters"
|
@ echo " make tox # Run tests and linters"
|
||||||
@ echo " make tox E=pytest # Run selected test environment"
|
@ echo " make tox E=pytest # Run selected test environment"
|
||||||
@ echo " make shell # Run shell in the docker test environment"
|
|
||||||
@ echo " make run # Run kvmd"
|
@ echo " make run # Run kvmd"
|
||||||
@ echo " make run CMD=... # Run specified command in the docker test environment"
|
@ echo " make run CMD=... # Run specified command inside kvmd environment"
|
||||||
|
@ echo " make run-ipmi # Run kvmd-ipmi"
|
||||||
|
@ echo " make run-ipmi CMD=... # Run specified command inside kvmd-ipmi environment"
|
||||||
@ echo " make regen # Regen some sources like keymap"
|
@ echo " make regen # Regen some sources like keymap"
|
||||||
@ echo " make bump # Bump minor version"
|
@ echo " make bump # Bump minor version"
|
||||||
@ echo " make bump V=major # Bump major version"
|
@ echo " make bump V=major # Bump major version"
|
||||||
@ -25,8 +27,11 @@ all:
|
|||||||
@ echo "Also you can add option NC=1 to rebuild docker test environment"
|
@ echo "Also you can add option NC=1 to rebuild docker test environment"
|
||||||
|
|
||||||
|
|
||||||
|
testenv:
|
||||||
|
docker build $(if $(NC), --no-cache,) --rm --tag $(TESTENV_IMAGE) -f testenv/Dockerfile .
|
||||||
|
|
||||||
tox: _testenv
|
|
||||||
|
tox: testenv
|
||||||
time docker run --rm \
|
time docker run --rm \
|
||||||
--volume `pwd`:/src:ro \
|
--volume `pwd`:/src:ro \
|
||||||
--volume `pwd`/testenv:/src/testenv:rw \
|
--volume `pwd`/testenv:/src/testenv:rw \
|
||||||
@ -42,15 +47,49 @@ tox: _testenv
|
|||||||
"
|
"
|
||||||
|
|
||||||
|
|
||||||
run:
|
run: testenv
|
||||||
make _run_cmd CMD="$(if $(CMD), $(CMD), python -m kvmd.apps.kvmd)"
|
sudo modprobe loop
|
||||||
|
- docker run --rm --name kvmd \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/web:/usr/share/kvmd/web:ro \
|
||||||
|
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--device $(TESTENV_LOOP):/dev/kvmd-msd \
|
||||||
|
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
|
||||||
|
--publish 8080:80/tcp \
|
||||||
|
--publish 8081:8081/tcp \
|
||||||
|
--publish 8082:8082/tcp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
(socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \
|
||||||
|
&& cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /testenv/main.yaml /etc/kvmd \
|
||||||
|
&& nginx -c /etc/kvmd/nginx/nginx.conf \
|
||||||
|
&& ln -s $(TESTENV_VIDEO) /dev/kvmd-video \
|
||||||
|
&& (losetup -d /dev/kvmd-msd || true) \
|
||||||
|
&& losetup /dev/kvmd-msd /root/loop.img \
|
||||||
|
&& $(if $(CMD), $(CMD), python -m kvmd.apps.kvmd) \
|
||||||
|
"
|
||||||
|
- docker run --rm --device=$(TESTENV_LOOP):/dev/kvmd-msd -it $(TESTENV_IMAGE) losetup -d /dev/kvmd-msd
|
||||||
|
|
||||||
|
|
||||||
shell:
|
run-ipmi: testenv
|
||||||
make _run_cmd CMD=/bin/bash
|
- docker run --rm --name kvmd-ipmi --link kvmd:kvmd \
|
||||||
|
--volume `pwd`/testenv:/testenv:ro \
|
||||||
|
--volume `pwd`/kvmd:/kvmd:ro \
|
||||||
|
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
||||||
|
--publish 6230:623/udp \
|
||||||
|
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
||||||
|
cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
||||||
|
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
||||||
|
&& cp /testenv/main.yaml /etc/kvmd \
|
||||||
|
&& $(if $(CMD), $(CMD), python -m kvmd.apps.ipmi) \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
regen: _testenv
|
regen: testenv
|
||||||
for file in kvmd/data/keymap.yaml hid/src/keymap.h; do \
|
for file in kvmd/data/keymap.yaml hid/src/keymap.h; do \
|
||||||
docker run --user `id -u`:`id -g` --rm \
|
docker run --user `id -u`:`id -g` --rm \
|
||||||
--volume `pwd`:/src \
|
--volume `pwd`:/src \
|
||||||
@ -83,41 +122,7 @@ clean:
|
|||||||
make -C hid clean
|
make -C hid clean
|
||||||
|
|
||||||
|
|
||||||
clean-all: _testenv clean
|
clean-all: testenv clean
|
||||||
- docker run --rm \
|
- docker run --rm \
|
||||||
--volume `pwd`:/src \
|
--volume `pwd`:/src \
|
||||||
-it $(TESTENV_IMAGE) bash -c "cd src && rm -rf testenv/{.tox,.mypy_cache,.coverage}"
|
-it $(TESTENV_IMAGE) bash -c "cd src && rm -rf testenv/{.tox,.mypy_cache,.coverage}"
|
||||||
|
|
||||||
|
|
||||||
# =====
|
|
||||||
_testenv:
|
|
||||||
docker build $(if $(NC), --no-cache,) --rm --tag $(TESTENV_IMAGE) -f testenv/Dockerfile .
|
|
||||||
|
|
||||||
|
|
||||||
_run_cmd: _testenv
|
|
||||||
sudo modprobe loop
|
|
||||||
- docker run --rm \
|
|
||||||
--volume `pwd`/testenv:/testenv:ro \
|
|
||||||
--volume `pwd`/kvmd:/kvmd:ro \
|
|
||||||
--volume `pwd`/web:/usr/share/kvmd/web:ro \
|
|
||||||
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
|
|
||||||
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
|
|
||||||
--device $(TESTENV_LOOP):/dev/kvmd-msd \
|
|
||||||
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
|
|
||||||
--publish 8080:80/tcp \
|
|
||||||
--publish 8081:8081/tcp \
|
|
||||||
--publish 8082:8082/tcp \
|
|
||||||
--publish 6230:623/udp \
|
|
||||||
-it $(TESTENV_IMAGE) /bin/bash -c " \
|
|
||||||
(socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \
|
|
||||||
&& cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \
|
|
||||||
&& cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \
|
|
||||||
&& cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \
|
|
||||||
&& cp /testenv/main.yaml /etc/kvmd \
|
|
||||||
&& nginx -c /etc/kvmd/nginx/nginx.conf \
|
|
||||||
&& ln -s $(TESTENV_VIDEO) /dev/kvmd-video \
|
|
||||||
&& (losetup -d /dev/kvmd-msd || true) \
|
|
||||||
&& losetup /dev/kvmd-msd /root/loop.img \
|
|
||||||
&& $(if $(CMD), $(CMD), /bin/bash) \
|
|
||||||
"
|
|
||||||
- docker run --rm --device=$(TESTENV_LOOP):/dev/kvmd-msd -it $(TESTENV_IMAGE) losetup -d /dev/kvmd-msd
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ kvmd:
|
|||||||
|
|
||||||
ipmi:
|
ipmi:
|
||||||
kvmd:
|
kvmd:
|
||||||
host: 127.0.0.1
|
host: kvmd
|
||||||
port: 8081
|
port: 8081
|
||||||
|
|
||||||
logging: !include logging.yaml
|
logging: !include logging.yaml
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user