Add package (pkg) resource

This is based on PackageKit, which means events, *and* we automatically
get support for any of the backends that PackageKit supports. This means
dpkg, and rpm are both first class citizens! Many other backends will
surely work, although thorough testing is left as an exercise to the
reader, or to someone who would like to write more test cases!

Unfortunately at the moment, there are a few upstream PackageKit bugs
which cause us issues, but those have been apparently resolved upstream.
If you experience issues with an old version of PackageKit, test if it
is working correctly before blaming mgmt :)

In parallel, mgmt might increase the testing surface for PackageKit, so
hopefully this makes it more robust for everyone involved!

Lastly, I'd like to point out that many great things that are typically
used for servers do start in the GNOME desktop world. Help support your
GNOME GNU/Linux desktop today!
This commit is contained in:
James Shubin
2016-02-21 14:52:41 -05:00
parent 82ff34234d
commit 3b5678dd91
9 changed files with 937 additions and 1 deletions

52
test/omv/pkg1a.yaml Normal file
View File

@@ -0,0 +1,52 @@
---
:domain: example.com
:network: 192.168.123.0/24
:image: centos-7.1
:cpus: ''
:memory: ''
:disks: 0
:disksize: 40G
:boxurlprefix: ''
:sync: rsync
:syncdir: ''
:syncsrc: ''
:folder: ".omv"
:extern:
- type: git
repository: https://github.com/purpleidea/mgmt
directory: mgmt
:cd: ''
:puppet: false
:classes: []
:shell:
- mkdir /tmp/mgmt/
:docker: false
:kubernetes: false
:ansible: []
:playbook: []
:ansible_extras: {}
:cachier: false
:vms:
- :name: mgmt1
:shell:
- iptables -F
- cd /vagrant/mgmt/ && make path
- cd /vagrant/mgmt/ && make deps && make build && cp mgmt ~/bin/
- etcd -bind-addr "`hostname --ip-address`:2379" &
- cd && mgmt run --file /vagrant/mgmt/examples/pkg1.yaml --converged-timeout=5
:namespace: omv
:count: 0
:username: ''
:password: ''
:poolid: true
:repos: []
:update: false
:reboot: false
:unsafe: false
:nested: false
:tests:
- omv up
- vssh root@mgmt1 -c which powertop
- omv destroy
:comment: simple package install test case
:reallyrm: false

52
test/omv/pkg1b.yaml Normal file
View File

@@ -0,0 +1,52 @@
---
:domain: example.com
:network: 192.168.123.0/24
:image: debian-8
:cpus: ''
:memory: ''
:disks: 0
:disksize: 40G
:boxurlprefix: ''
:sync: rsync
:syncdir: ''
:syncsrc: ''
:folder: ".omv"
:extern:
- type: git
repository: https://github.com/purpleidea/mgmt
directory: mgmt
:cd: ''
:puppet: false
:classes: []
:shell:
- mkdir /tmp/mgmt/
:docker: false
:kubernetes: false
:ansible: []
:playbook: []
:ansible_extras: {}
:cachier: false
:vms:
- :name: mgmt1
:shell:
- iptables -F
- cd /vagrant/mgmt/ && make path
- cd /vagrant/mgmt/ && make deps && make build && cp mgmt ~/bin/
- etcd -bind-addr "`hostname --ip-address`:2379" &
- cd && mgmt run --file /vagrant/mgmt/examples/pkg1.yaml --converged-timeout=5
:namespace: omv
:count: 0
:username: ''
:password: ''
:poolid: true
:repos: []
:update: false
:reboot: false
:unsafe: false
:nested: false
:tests:
- omv up
- vssh root@mgmt1 -c which powertop
- omv destroy
:comment: simple package install test case
:reallyrm: false

View File

@@ -6,7 +6,10 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # dir!
cd "$DIR" >/dev/null # work from test directory
# vtest+ tests
vtest+ omv/helloworld.yaml
for i in omv/*.yaml; do
echo "running: vtest+ $i"
vtest+ "$i"
done
# return to original dir
cd "$CWD" >/dev/null