[libvirt] [jenkins-ci PATCH v2] guests: add more detailed docs on deploying FreeBSD
by Daniel P. Berrangé
Provide instructions on how to download & deploy a working FreeBSD
install that's suitable for CI, as there are several gotchas not
mentioned in the current docs.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
guests/README.markdown | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/guests/README.markdown b/guests/README.markdown
index 7e63540..d450b4a 100644
--- a/guests/README.markdown
+++ b/guests/README.markdown
@@ -137,6 +137,37 @@ FreeBSD
Installation of FreeBSD guests must be performed manually; alternatively,
the official qcow2 images can be used to quickly bring up such guests.
+ $ MAJOR=12
+ $ MINOR=1
+ $ VER=$MAJOR.$MINOR-RELEASE
+ $ sudo wget -O /var/lib/libvirt/images/libvirt-freebsd-$MAJOR.qcow2.xz \
+ https://download.freebsd.org/ftp/releases/VM-IMAGES/$VER/amd64/Latest/Fre...
+ $ sudo unxz /var/lib/libvirt/images/libvirt-freebsd-$MAJOR.qcow2.xz
+ $ sudo virt-install \
+ --import \
+ --name libvirt-freebsd-$MAJOR \
+ --vcpus 2 \
+ --graphics vnc \
+ --noautoconsole \
+ --console pty \
+ --sound none \
+ --rng device=/dev/urandom,model=virtio \
+ --memory 2048 \
+ --os-variant freebsd$MAJOR.0 \
+ --disk /var/lib/libvirt/images/libvirt-freebsd-$MAJOR.qcow2
+
+The default qcow2 images are sized too small to be usable. To enlarge
+them do
+
+ $ sudo virsh blockresize libvirt-freebsd-$MAJOR \
+ /var/lib/libvirt/images/libvirt-freebsd-$MAJOR.qcow2 20G
+
+Then inside the guest, as root, enlarge the 3rd partition & filesystem
+to consume all new space:
+
+ # gpart resize -i 3 vtbd0
+ # service growfs onestart
+
Some manual tweaking will be needed, in particular:
* `/etc/ssh/sshd_config` must contain the `PermitRootLogin yes` directive;
--
2.23.0
5 years, 2 months
[libvirt] [PATCH] jenkins: skip gtk-vnc RPM build on centos 8
by Daniel P. Berrangé
We don't have a centos 8 host deployed in CI at this time
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
jenkins/projects/gtk-vnc.yaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/jenkins/projects/gtk-vnc.yaml b/jenkins/projects/gtk-vnc.yaml
index 95ff14b..4887000 100644
--- a/jenkins/projects/gtk-vnc.yaml
+++ b/jenkins/projects/gtk-vnc.yaml
@@ -15,7 +15,6 @@
# RPM build is still not possible on CentOS7 as it does not
# have the needed RPM macros for meson.
machines:
- - libvirt-centos-8
- libvirt-fedora-30
- libvirt-fedora-31
- libvirt-fedora-rawhide
--
2.24.1
5 years, 2 months
[libvirt] [jenkins-ci PATCH] jenkins: recursively update submodules on checkout
by Daniel P. Berrangé
The ansible playback runs 'git submodule update --init', so we
should have jenkins do the equivalent to ensure consistent
build environment setup.
In particular this works arounda bug with Meson when using
GIT on CentOS 7, causing it to fail to automatically update
the submodules.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
jenkins/jobs/autotools.yaml | 2 ++
jenkins/jobs/generic.yaml | 2 ++
jenkins/jobs/go.yaml | 2 ++
jenkins/jobs/meson.yaml | 2 ++
jenkins/jobs/perl-modulebuild.yaml | 2 ++
jenkins/jobs/python-distutils.yaml | 2 ++
6 files changed, 12 insertions(+)
diff --git a/jenkins/jobs/autotools.yaml b/jenkins/jobs/autotools.yaml
index 413af73..6b4d3f8 100644
--- a/jenkins/jobs/autotools.yaml
+++ b/jenkins/jobs/autotools.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
diff --git a/jenkins/jobs/generic.yaml b/jenkins/jobs/generic.yaml
index ca69513..46425ec 100644
--- a/jenkins/jobs/generic.yaml
+++ b/jenkins/jobs/generic.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
diff --git a/jenkins/jobs/go.yaml b/jenkins/jobs/go.yaml
index 1bdcb5f..3d25493 100644
--- a/jenkins/jobs/go.yaml
+++ b/jenkins/jobs/go.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
diff --git a/jenkins/jobs/meson.yaml b/jenkins/jobs/meson.yaml
index 4d84978..bf7e8ef 100644
--- a/jenkins/jobs/meson.yaml
+++ b/jenkins/jobs/meson.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
diff --git a/jenkins/jobs/perl-modulebuild.yaml b/jenkins/jobs/perl-modulebuild.yaml
index 7173493..cea0597 100644
--- a/jenkins/jobs/perl-modulebuild.yaml
+++ b/jenkins/jobs/perl-modulebuild.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
diff --git a/jenkins/jobs/python-distutils.yaml b/jenkins/jobs/python-distutils.yaml
index f56794c..4921aa7 100644
--- a/jenkins/jobs/python-distutils.yaml
+++ b/jenkins/jobs/python-distutils.yaml
@@ -27,6 +27,8 @@
after: true
skip-tag: true
wipe-workspace: false
+ submodule:
+ recursive: true
triggers:
- reverse:
jobs: '{obj:parent_jobs}'
--
2.23.0
5 years, 2 months
[libvirt] [perl PATCH] make Time::HiRes optional in test suite
by Daniel P. Berrangé
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
t/800-events.t | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/t/800-events.t b/t/800-events.t
index dfbba8f..b7e767f 100644
--- a/t/800-events.t
+++ b/t/800-events.t
@@ -3,20 +3,24 @@
use strict;
use warnings;
-use Test::More tests => 23;
+use Test::More;
my $URI = "test:///default";
my $DOM = "test";
BEGIN {
- use_ok('Sys::Virt');
+ eval 'use Time::HiRes qw(gettimeofday)';
+ if ($@) {
+ plan skip_all => "Time::HiRes is not available";
+ return;
+ }
+ plan tests => 23;
+ use_ok('Sys::Virt');
}
package Sys::Virt::Event::Simple;
-use Time::HiRes qw(gettimeofday);
-
use base qw(Sys::Virt::Event);
sub new {
@@ -38,7 +42,7 @@ sub new {
sub _now {
my $self;
- my @now = gettimeofday;
+ my @now = &Time::HiRes::gettimeofday();
return $now[0] * 1000 + (($now[1] - ($now[1] % 1000)) / 1000);
}
--
2.23.0
5 years, 2 months
[libvirt] [jenkins-ci PATCH] jobs: Fix autotools-check-job
by Andrea Bolognani
find expects {} to be used as placeholder for filenames, but that
confuses Jenkins Job Builder which uses {foo} for variables. Use
xargs in a pipe instead.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Pushed under the build breaker rule.
guests/playbooks/build/jobs/autotools-check-job.yml | 2 +-
jenkins/jobs/autotools.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/guests/playbooks/build/jobs/autotools-check-job.yml b/guests/playbooks/build/jobs/autotools-check-job.yml
index a306902..7aa2a04 100644
--- a/guests/playbooks/build/jobs/autotools-check-job.yml
+++ b/guests/playbooks/build/jobs/autotools-check-job.yml
@@ -9,7 +9,7 @@
cd build
if ! $MAKE check
then
- find -name test-suite.log -exec cat {} \;
+ find -name test-suite.log | xargs cat
exit 1
fi
when:
diff --git a/jenkins/jobs/autotools.yaml b/jenkins/jobs/autotools.yaml
index 72dd72e..413af73 100644
--- a/jenkins/jobs/autotools.yaml
+++ b/jenkins/jobs/autotools.yaml
@@ -126,7 +126,7 @@
cd build
if ! $MAKE check
then
- find -name test-suite.log -exec cat {} \;
+ find -name test-suite.log | xargs cat
exit 1
fi
publishers:
--
2.24.1
5 years, 2 months
[libvirt] [jenkins-ci PATCH] guests: optionally wait for installation completion
by Daniel P. Berrangé
The install command is hardcoded to put the virt-install command into
the background. It is useful to be able to wait for completion, so you
know when you can go onto the package update step of setup, without
having to check back to see if the guest has finished installing.
Using --noautoconsole is preferred syntax for virt-install, avoiding
a warning about use of "--wait 0".
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
guests/lcitool | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/guests/lcitool b/guests/lcitool
index d24ac0d..8a681e4 100755
--- a/guests/lcitool
+++ b/guests/lcitool
@@ -394,11 +394,20 @@ class Application:
help="target architecture for cross compiler",
)
+ def add_wait_arg(parser):
+ parser.add_argument(
+ "-w", "--wait",
+ help="wait for installation to complete",
+ default=False,
+ action="store_true",
+ )
+
installparser = subparsers.add_parser(
"install", help="perform unattended host installation")
installparser.set_defaults(func=self._action_install)
add_hosts_arg(installparser)
+ add_wait_arg(installparser)
updateparser = subparsers.add_parser(
"update", help="prepare hosts and keep them updated")
@@ -597,9 +606,11 @@ class Application:
"--rng", "device=/dev/urandom,model=virtio",
"--initrd-inject", initrd_inject,
"--extra-args", extra_arg,
- "--wait", "0",
]
+ if not args.wait:
+ cmd.append("--noautoconsole")
+
# Only configure autostart for the guest for the jenkins flavor
if flavor == "jenkins":
cmd += ["--autostart"]
--
2.23.0
5 years, 2 months
[libvirt] [jenkins-ci PATCH v4 0/7] Add support for gtk-vnc builds
by Daniel P. Berrangé
Support gtk-vnc and make virt-viewer depend on it
v3: https://www.redhat.com/archives/libvir-list/2019-December/msg00957.html
Daniel P. Berrangé (7):
mappings: add libgcrypt
mappings: add PulseAudio
mappings: add gdk-pixbuf
guests: pull in deps for gtk-vnc project
projects: add gtk-vnc project
projects: make virt-viewer depend on gtk-vnc jobs
mappings: remove gtk-vnc2
guests/host_vars/libvirt-centos-7/main.yml | 1 +
guests/host_vars/libvirt-centos-8/main.yml | 1 +
guests/host_vars/libvirt-debian-10/main.yml | 1 +
guests/host_vars/libvirt-debian-9/main.yml | 1 +
guests/host_vars/libvirt-debian-sid/main.yml | 1 +
guests/host_vars/libvirt-fedora-30/main.yml | 3 ++
guests/host_vars/libvirt-fedora-31/main.yml | 1 +
.../host_vars/libvirt-fedora-rawhide/main.yml | 1 +
guests/host_vars/libvirt-freebsd-11/main.yml | 1 +
guests/host_vars/libvirt-freebsd-12/main.yml | 1 +
.../libvirt-freebsd-current/main.yml | 1 +
guests/host_vars/libvirt-ubuntu-1604/main.yml | 1 +
guests/host_vars/libvirt-ubuntu-1804/main.yml | 1 +
guests/playbooks/build/jobs/defaults.yml | 3 ++
.../build/projects/gtk-vnc+mingw32.yml | 12 ++++++
.../build/projects/gtk-vnc+mingw64.yml | 12 ++++++
guests/playbooks/build/projects/gtk-vnc.yml | 19 +++++++++
guests/vars/mappings.yml | 42 +++++++++++++------
guests/vars/projects/gtk-vnc+mingw32.yml | 7 ++++
guests/vars/projects/gtk-vnc+mingw64.yml | 7 ++++
guests/vars/projects/gtk-vnc.yml | 12 ++++++
guests/vars/projects/virt-viewer+mingw32.yml | 1 -
guests/vars/projects/virt-viewer+mingw64.yml | 1 -
guests/vars/projects/virt-viewer.yml | 1 -
jenkins/jobs/defaults.yaml | 3 ++
jenkins/projects/gtk-vnc+mingw32.yaml | 12 ++++++
jenkins/projects/gtk-vnc+mingw64.yaml | 12 ++++++
jenkins/projects/gtk-vnc.yaml | 22 ++++++++++
jenkins/projects/virt-viewer+mingw32.yaml | 4 +-
jenkins/projects/virt-viewer+mingw64.yaml | 4 +-
jenkins/projects/virt-viewer.yaml | 4 +-
31 files changed, 174 insertions(+), 19 deletions(-)
create mode 100644 guests/playbooks/build/projects/gtk-vnc+mingw32.yml
create mode 100644 guests/playbooks/build/projects/gtk-vnc+mingw64.yml
create mode 100644 guests/playbooks/build/projects/gtk-vnc.yml
create mode 100644 guests/vars/projects/gtk-vnc+mingw32.yml
create mode 100644 guests/vars/projects/gtk-vnc+mingw64.yml
create mode 100644 guests/vars/projects/gtk-vnc.yml
create mode 100644 jenkins/projects/gtk-vnc+mingw32.yaml
create mode 100644 jenkins/projects/gtk-vnc+mingw64.yaml
create mode 100644 jenkins/projects/gtk-vnc.yaml
--
2.23.0
5 years, 2 months
[libvirt] [PATCH v3 00/11] esx: various improvements
by Pino Toscano
- fix a bug in the esx VI generator
- implement connectListAllStoragePools, so
virConnectListAllStoragePools() works
- implement connectListAllNetworks, so virConnectListAllNetworks()
works
- implement storagePoolListAllVolumes, so virStoragePoolListAllVolumes()
works
- implement domainGetHostname, so virDomainGetHostname() works
- implement domainInterfaceAddresses only for
VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT, so
virDomainInterfaceAddresses() partially works
- improve virErrorNumber for some virReportError() calls
TODO:
- handle the comments in v2 about esxStoragePoolListAllVolumes()
Changes from v2:
- pushed patches reviewed with no changes required
- integrated the Reviewed-By in patches that required very minor
changes, will push them on request
- fixed bool/size_t error/count handling
- bumped API version numbers to 6.0.0
- fixed a bug in the esx VI generator
- implemented domainGetHostname
- implemented domainInterfaceAddresses
Pino Toscano (11):
esx: implement connectListAllStoragePools
esx: implement connectListAllNetworks
esx: split datastorePathToStorageVol helper
esx: split scsilunToStorageVol helper
esx: implement storagePoolListAllVolumes
esx: improve some of the virErrorNumber used
esx: implement domainGetHostname
esx: generator: fix free of elements in lists
esx: generator: add GuestNicInfo object
esx: implement domainInterfaceAddresses
docs: document implemented APIs in esx
docs/drvesx.html.in | 7 +
docs/news.xml | 14 ++
scripts/esx_vi_generator.py | 27 +++-
src/esx/esx_driver.c | 220 ++++++++++++++++++++++++++++
src/esx/esx_network_driver.c | 68 ++++++++-
src/esx/esx_storage_backend_iscsi.c | 202 +++++++++++++++++++++----
src/esx/esx_storage_backend_vmfs.c | 220 ++++++++++++++++++++++++++--
src/esx/esx_storage_driver.c | 84 +++++++++++
src/esx/esx_util.c | 4 +-
src/esx/esx_vi.c | 36 ++---
src/esx/esx_vi_generator.input | 54 +++++++
11 files changed, 862 insertions(+), 74 deletions(-)
--
2.24.1
5 years, 2 months
[libvirt] [PATCH 0/2] Fix freebsd build
by Michal Privoznik
Pushed under trivial and build breaker rules.
Michal Prívozník (2):
bhyve_parse_command.c: Don't jump onto non-existent label in
CONSUME_ARG()
bhyve_parse_command: Undefine CONSUME_ARG macro when no longer needed
src/bhyve/bhyve_parse_command.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--
2.24.1
5 years, 2 months