diff --git a/build-scripts/package-msi b/build-scripts/package-msi index f256cda0e..00ee8d885 100755 --- a/build-scripts/package-msi +++ b/build-scripts/package-msi @@ -117,6 +117,10 @@ pre() { ;; esac + # Copy default leech2 config (ENT-14100) + install -d "$P"/state/.leech2 + install -m 644 "$BASEDIR"/buildscripts/packaging/cfengine-nova/leech2/config.json "$P"/state/.leech2/ + # Copy WiX source file for MSI generation cp "$BASEDIR"/buildscripts/packaging/cfengine-nova/cfengine-nova.wxs "$P" diff --git a/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in b/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in index f60ce716a..a0badd342 100644 --- a/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in +++ b/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in @@ -96,6 +96,10 @@ rm -f $RPM_BUILD_ROOT%{prefix}/bin/cf-upgrade rm -f $RPM_BUILD_ROOT%{prefix}/lib/php/cfmod.la rm -f $RPM_BUILD_ROOT%{prefix}/lib/php/cfengine-enterprise-api.la +# Default leech2 config (ENT-14100); shared with the cfengine-nova package +mkdir -p $RPM_BUILD_ROOT%{prefix}/state/.leech2 +cp %{_basedir}/buildscripts/packaging/cfengine-nova/leech2/config.json $RPM_BUILD_ROOT%{prefix}/state/.leech2/ + # GUI, REST, KB cp -R %{_basedir}/mission-portal $RPM_BUILD_ROOT%prefix/share/GUI @@ -469,5 +473,10 @@ exit 0 %dir %prefix/outputs %dir %prefix/inputs %dir %prefix/state +%dir %prefix/state/.leech2 + +# Mode must match the cfengine-nova package, which also ships this file +%defattr(600,root,root,700) +%prefix/state/.leech2/config.json %changelog diff --git a/packaging/cfengine-nova-hub/debian/rules b/packaging/cfengine-nova-hub/debian/rules index c21541376..a3d7664a7 100755 --- a/packaging/cfengine-nova-hub/debian/rules +++ b/packaging/cfengine-nova-hub/debian/rules @@ -22,6 +22,10 @@ install: build cp -a $(PREFIX)/* $(CURDIR)/debian/tmp$(PREFIX) cp -a $(BASEDIR)/cfengine/dist/* $(CURDIR)/debian/tmp +# Default leech2 config (ENT-14100); shared with the cfengine-nova package + install -d -m 700 $(CURDIR)/debian/tmp$(PREFIX)/state/.leech2 + install -m 644 $(BASEDIR)/buildscripts/packaging/cfengine-nova/leech2/config.json $(CURDIR)/debian/tmp$(PREFIX)/state/.leech2/ + # Remove unnecessary files rm -f $(CURDIR)/debian/tmp$(PREFIX)/lib/libpromises.la diff --git a/packaging/cfengine-nova/cfengine-nova.spec.in b/packaging/cfengine-nova/cfengine-nova.spec.in index a82bdee03..92f143678 100644 --- a/packaging/cfengine-nova/cfengine-nova.spec.in +++ b/packaging/cfengine-nova/cfengine-nova.spec.in @@ -10,6 +10,7 @@ License: COSL Group: Applications/System Url: https://cfengine.com BuildRoot: %{_topdir}/%{name}-%{version}-%{release}-buildroot +Source0: leech2/config.json Obsoletes: cfengine3 < @@VERSION@@, cf-community < @@VERSION@@ Requires: coreutils # "Recommends" is only supported on RHEL 8+ @@ -73,6 +74,10 @@ rm -rf $RPM_BUILD_ROOT/usr/lib/systemd/system/cf-hub.service rm -rf $RPM_BUILD_ROOT/usr/lib/systemd/system/cf-reactor.service rm -rf $RPM_BUILD_ROOT/usr/lib/systemd/system/cf-postgres.service +# Default leech2 config (ENT-14100) +mkdir -p $RPM_BUILD_ROOT%{prefix}/state/.leech2 +cp %{SOURCE0} $RPM_BUILD_ROOT%{prefix}/state/.leech2/ + # Create symlinks to /usr/local/sbin and /usr/sbin mkdir -p $RPM_BUILD_ROOT/usr/local/sbin mkdir -p $RPM_BUILD_ROOT/usr/sbin @@ -216,6 +221,9 @@ exit 0 %dir %prefix/outputs %dir %prefix/inputs %dir %prefix/modules +%dir %prefix/state +%dir %prefix/state/.leech2 +%prefix/state/.leech2/config.json %changelog diff --git a/packaging/cfengine-nova/cfengine-nova.wxs b/packaging/cfengine-nova/cfengine-nova.wxs index e15a39fb6..9d7c32afc 100644 --- a/packaging/cfengine-nova/cfengine-nova.wxs +++ b/packaging/cfengine-nova/cfengine-nova.wxs @@ -177,6 +177,14 @@ + + + + + + + + @@ -222,6 +230,8 @@ + + diff --git a/packaging/cfengine-nova/debian/cfengine-nova.install b/packaging/cfengine-nova/debian/cfengine-nova.install index a3b437c75..e26afa9d2 100644 --- a/packaging/cfengine-nova/debian/cfengine-nova.install +++ b/packaging/cfengine-nova/debian/cfengine-nova.install @@ -23,6 +23,7 @@ /var/cfengine/lib/liblmdb.so /var/cfengine/lib/libleech2.so /var/cfengine/bin/lch +/var/cfengine/state/.leech2/config.json /var/cfengine/share/doc /var/cfengine/modules /var/cfengine/inputs diff --git a/packaging/cfengine-nova/debian/rules b/packaging/cfengine-nova/debian/rules index ff362457d..823db1961 100755 --- a/packaging/cfengine-nova/debian/rules +++ b/packaging/cfengine-nova/debian/rules @@ -28,6 +28,10 @@ install: build cp -a $(PREFIX)/* $(CURDIR)/debian/tmp$(PREFIX) cp -a $(BASEDIR)/cfengine/dist/* $(CURDIR)/debian/tmp +# Default leech2 config (ENT-14100) + install -d -m 700 $(CURDIR)/debian/tmp$(PREFIX)/state/.leech2 + install -m 644 $(CURDIR)/leech2/config.json $(CURDIR)/debian/tmp$(PREFIX)/state/.leech2/ + # Remove unnecessary files rm -f $(CURDIR)/debian/tmp$(PREFIX)/lib/libpromises.la diff --git a/packaging/cfengine-nova/leech2/config.json b/packaging/cfengine-nova/leech2/config.json new file mode 100644 index 000000000..716722616 --- /dev/null +++ b/packaging/cfengine-nova/leech2/config.json @@ -0,0 +1,43 @@ +{ + "truncate": { + "max-blocks": 100, + "truncate-reported": false, + "remove-orphans": true + }, + "tables": { + "__containers": { + "fields": [ + { "name": "owner", "type": "TEXT", "primary-key": true }, + { "name": "id", "type": "TEXT", "primary-key": true }, + { "name": "name", "type": "TEXT" }, + { "name": "image", "type": "TEXT" }, + { "name": "image_id", "type": "TEXT" }, + { "name": "command", "type": "TEXT" }, + { "name": "state", "type": "TEXT" }, + { "name": "ports", "type": "TEXT" }, + { "name": "engine", "type": "TEXT" }, + { "name": "started_at", "type": "TEXT" }, + { "name": "details", "type": "TEXT" } + ] + }, + "__container_images": { + "fields": [ + { "name": "owner", "type": "TEXT", "primary-key": true }, + { "name": "id", "type": "TEXT", "primary-key": true }, + { "name": "repository", "type": "TEXT" }, + { "name": "tag", "type": "TEXT" }, + { "name": "size_bytes", "type": "NUMBER" }, + { "name": "created_at", "type": "TEXT" } + ] + }, + "__container_volumes": { + "fields": [ + { "name": "owner", "type": "TEXT", "primary-key": true }, + { "name": "name", "type": "TEXT", "primary-key": true }, + { "name": "driver", "type": "TEXT" }, + { "name": "size_bytes", "type": "NUMBER" }, + { "name": "created_at", "type": "TEXT" } + ] + } + } +}