Skip to content
Merged
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
43 changes: 34 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
CWD=$(shell pwd)
VARIANT ?= ubuntu

YAML_FILES=$(shell find cloudinit tests tools -name "*.yaml" -type f )
YAML_FILES+=$(shell find doc/examples -name "cloud-config*.txt" -type f )

PYTHON = python3
PIP_INSTALL := pip3 install

NUM_ITER ?= 100

ifeq ($(distro),)
distro = redhat
endif

READ_VERSION=$(shell $(PYTHON) $(CWD)/tools/read-version || echo read-version-failed)
CODE_VERSION=$(shell $(PYTHON) -c "from cloudinit import version; print(version.version_string())")
GENERATOR_F=./systemd/cloud-init-generator
DS_IDENTIFY=./tools/ds-identify
BENCHMARK=./tools/benchmark.sh


all: check
Expand All @@ -26,6 +32,24 @@ flake8:
unittest: clean_pyc
python3 -m pytest -v tests/unittests cloudinit

render-template:
$(PYTHON) ./tools/render-cloudcfg --variant=$(VARIANT) $(FILE) $(subst .tmpl,,$(FILE))

# from systemd-generator(7) regarding generators:
# "We do recommend C code however, since generators are executed
# synchronously and hence delay the entire boot if they are slow."
#
# Our generator is a shell script. Make it easy to measure the
# generator. This should be monitored for performance regressions
benchmark-generator: FILE=$(GENERATOR_F).tmpl
benchmark-generator: export ITER=$(NUM_ITER)
benchmark-generator: render-template
$(BENCHMARK) $(GENERATOR_F)

benchmark-ds-identify: export ITER=$(NUM_ITER)
benchmark-ds-identify:
$(BENCHMARK) $(DS_IDENTIFY)

ci-deps-ubuntu:
@$(PYTHON) $(CWD)/tools/read-dependencies --distro ubuntu --test-distro

Expand All @@ -44,9 +68,10 @@ test: unittest

check_version:
@if [ "$(READ_VERSION)" != "$(CODE_VERSION)" ]; then \
echo "Error: read-version version '$(READ_VERSION)'" \
"not equal to code version '$(CODE_VERSION)'"; exit 2; \
else true; fi
echo "Error: read-version version '$(READ_VERSION)'" \
"not equal to code version '$(CODE_VERSION)'"; \
exit 2; \
else true; fi

config/cloud.cfg:
$(PYTHON) ./tools/render-cloudcfg config/cloud.cfg.tmpl config/cloud.cfg
Expand Down Expand Up @@ -76,7 +101,7 @@ clean_release:
rm -rf new-upstream-changes.txt commit.msg

clean: clean_pyc clean_pytest clean_packaging clean_release
rm -rf doc/rtd_html .tox .coverage tags
rm -rf doc/rtd_html .tox .coverage tags $(GENERATOR_F)

yaml:
@$(PYTHON) $(CWD)/tools/validate-yaml.py $(YAML_FILES)
Expand All @@ -90,14 +115,14 @@ srpm:
deb:
@which debuild || \
{ echo "Missing devscripts dependency. Install with:"; \
echo sudo apt-get install devscripts; exit 1; }
echo sudo apt-get install devscripts; exit 1; }

$(PYTHON) ./packages/bddeb

deb-src:
@which debuild || \
{ echo "Missing devscripts dependency. Install with:"; \
echo sudo apt-get install devscripts; exit 1; }
echo sudo apt-get install devscripts; exit 1; }
$(PYTHON) ./packages/bddeb -S -d

doc:
Expand Down Expand Up @@ -140,7 +165,7 @@ fix_spelling:
awk -F ': | -> ' '{printf "sed -i \047s/%s/%s/g\047 %s\n", $$2, $$3, $$1}' | \
sh

.PHONY: test flake8 clean rpm srpm deb deb-src yaml
.PHONY: all check test flake8 clean rpm srpm deb deb-src yaml
.PHONY: check_version pip-test-requirements pip-requirements clean_pyc
.PHONY: unittest style-check doc fix_spelling
.PHONY: clean_pytest clean_packaging check_spelling clean_release
.PHONY: unittest style-check fix_spelling render-template benchmark-generator
.PHONY: clean_pytest clean_packaging check_spelling clean_release doc
6 changes: 3 additions & 3 deletions systemd/cloud-init-generator.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ kernel_cmdline() {
# use KERNEL_CMDLINE if present in environment even if empty
cmdline=${KERNEL_CMDLINE}
debug 1 "kernel command line from env KERNEL_CMDLINE: $cmdline"
elif read_proc_cmdline; then
read_proc_cmdline && cmdline="$_RET"
debug 1 "kernel command line ($_RET_MSG): $cmdline"
else
read_proc_cmdline && cmdline="$_RET" &&
debug 1 "kernel command line ($_RET_MSG): $cmdline"
fi
_RET="unset"
cmdline=" $cmdline "
Expand Down
8 changes: 8 additions & 0 deletions tools/benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/bash

BIN="$@"
chmod +x "$BIN"

time for _ in $(seq 1 $ITER); do
"$BIN";
done