Use microstack-support interface, drop devmode

With https://github.com/snapcore/snapd/pull/8926 merged and snapd 2.53.2
released we can now test changes without devmode.

Change-Id: I9980b171e537530d67f0a7eed332147f06fe7c3c
This commit is contained in:
Dmitrii Shcherbakov 2021-09-06 14:54:46 +03:00
parent 648a45f3d9
commit 35ad8fbef0
7 changed files with 90 additions and 100 deletions

@ -1,12 +0,0 @@
#!/bin/bash
set -ex
# If we are not running in any type of a container, attempt to load the necessary kernel modules and
# expect them to be present based on external arrangements (e.g. they could be specified in a LXD profile).
# TODO: this file will go away when strict confinement gets implemented as snapd will load modules
# that are specified in the microstack-support interface.
if [[ `systemd-detect-virt --container` == 'none' ]]
then
modprobe -a vhost vhost-net vhost-scsi vhost-vsock vfio nbd dm-mod dm-thin-pool dm-snapshot iscsi-tcp target-core-mod
fi

@ -5,7 +5,7 @@ summary: OpenStack on your laptop.
description: | description: |
Microstack gives you an easy way to develop and test OpenStack Microstack gives you an easy way to develop and test OpenStack
workloads on your laptop. workloads on your laptop.
grade: devel grade: stable
confinement: strict confinement: strict
environment: environment:
LC_ALL: C LC_ALL: C
@ -77,7 +77,7 @@ apps:
command: bin/openstack-wrapper openstack command: bin/openstack-wrapper openstack
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
# A proxy command to avoid calling <namespace>.<command>. # A proxy command to avoid calling <namespace>.<command>.
# TODO: potentially remove the individual commands completely in favor of this. # TODO: potentially remove the individual commands completely in favor of this.
@ -92,7 +92,7 @@ apps:
- ssh-keys - ssh-keys
- system-observe - system-observe
- hardware-observe - hardware-observe
# TODO: - microstack-support - microstack-support
# OpenStack Service Configuration # OpenStack Service Configuration
init: init:
@ -106,7 +106,8 @@ apps:
- ssh-keys # write ssh key - ssh-keys # write ssh key
- system-observe # rabbitmq ? - system-observe # rabbitmq ?
- hardware-observe # rabbitmq ? - hardware-observe # rabbitmq ?
# TODO: - microstack-support - kvm # kvm presence checks need access to /dev/kvm
- microstack-support
add-compute: add-compute:
command: bin/microstack_add_compute command: bin/microstack_add_compute
@ -121,12 +122,12 @@ apps:
- network-bind - network-bind
- network - network
- network-control - network-control
# TODO: - microstack-support - microstack-support
keystone-manage: keystone-manage:
command: bin/snap-openstack launch keystone-manage command: bin/snap-openstack launch keystone-manage
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
nova-api: nova-api:
command: bin/snap-openstack launch nova-api-os-compute command: bin/snap-openstack launch nova-api-os-compute
@ -135,14 +136,14 @@ apps:
- network - network
- network-bind - network-bind
- network-control - network-control
# TODO: - microstack-support - microstack-support
nova-conductor: nova-conductor:
command: bin/snap-openstack launch nova-conductor command: bin/snap-openstack launch nova-conductor
daemon: simple daemon: simple
plugs: plugs:
- network - network
- network-control - network-control
# TODO: - microstack-support - microstack-support
nova-scheduler: nova-scheduler:
command: bin/snap-openstack launch nova-scheduler command: bin/snap-openstack launch nova-scheduler
daemon: simple daemon: simple
@ -150,7 +151,7 @@ apps:
- network - network
- network-bind - network-bind
- network-control - network-control
# TODO: - microstack-support - microstack-support
nova-compute: nova-compute:
command: bin/snap-openstack launch nova-compute command: bin/snap-openstack launch nova-compute
after: [libvirtd] after: [libvirtd]
@ -161,7 +162,8 @@ apps:
- network-control - network-control
- firewall-control - firewall-control
- hardware-observe - hardware-observe
# TODO: - microstack-support - kvm
- microstack-support
# Needs access to block devices so that blockdev --flushbufs works. # Needs access to block devices so that blockdev --flushbufs works.
- block-devices - block-devices
nova-api-metadata: nova-api-metadata:
@ -171,12 +173,12 @@ apps:
- network - network
- network-bind - network-bind
- firewall-control - firewall-control
# TODO: - microstack-support - microstack-support
nova-manage: nova-manage:
command: bin/snap-openstack launch nova-manage command: bin/snap-openstack launch nova-manage
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
nova-spicehtml5proxy: nova-spicehtml5proxy:
command: bin/snap-openstack launch nova-spicehtml5proxy command: bin/snap-openstack launch nova-spicehtml5proxy
daemon: simple daemon: simple
@ -184,7 +186,7 @@ apps:
- network - network
- network-bind - network-bind
- network-control - network-control
# TODO: - microstack-support - microstack-support
# Neutron # Neutron
neutron-api: neutron-api:
command: bin/snap-openstack launch neutron-server command: bin/snap-openstack launch neutron-server
@ -193,7 +195,7 @@ apps:
- network - network
- network-bind - network-bind
- network-control - network-control
# TODO: - microstack-support - microstack-support
neutron-ovn-metadata-agent: neutron-ovn-metadata-agent:
command: bin/snap-openstack launch neutron-ovn-metadata-agent command: bin/snap-openstack launch neutron-ovn-metadata-agent
daemon: simple daemon: simple
@ -202,13 +204,13 @@ apps:
- network-bind - network-bind
- network-control - network-control
- network-observe - network-observe
# TODO: - microstack-support - microstack-support
neutron-ovs-cleanup: neutron-ovs-cleanup:
command: bin/snap-openstack launch neutron-ovs-cleanup command: bin/snap-openstack launch neutron-ovs-cleanup
plugs: plugs:
- network - network
- network-control - network-control
# TODO: - microstack-support - microstack-support
# NOTE(dmitriis): Upstream Neutron does not support cleaning up ovnmeta-<uuid> namespaces # NOTE(dmitriis): Upstream Neutron does not support cleaning up ovnmeta-<uuid> namespaces
# as of Ussuri which is a bug. # as of Ussuri which is a bug.
neutron-netns-cleanup: neutron-netns-cleanup:
@ -216,12 +218,12 @@ apps:
plugs: plugs:
- network - network
- network-control - network-control
# TODO: - microstack-support - microstack-support
neutron-db-manage: neutron-db-manage:
command: bin/snap-openstack launch neutron-db-manage command: bin/snap-openstack launch neutron-db-manage
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
# Glance # Glance
glance-api: glance-api:
@ -232,12 +234,12 @@ apps:
- network-bind - network-bind
- mount-observe - mount-observe
- network-control - network-control
# TODO: - microstack-support - microstack-support
glance-manage: glance-manage:
command: bin/snap-openstack launch glance-manage command: bin/snap-openstack launch glance-manage
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
# Placement # Placement
placement-uwsgi: placement-uwsgi:
@ -248,13 +250,13 @@ apps:
- network-bind - network-bind
- mount-observe - mount-observe
- network-control - network-control
# TODO: - microstack-support - microstack-support
placement-manage: placement-manage:
command: bin/snap-openstack launch placement-manage command: bin/snap-openstack launch placement-manage
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
# Openstack Shared Services # Openstack Shared Services
nginx: nginx:
@ -263,7 +265,7 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
# Openvswitch # Openvswitch
ovs-vswitchd: ovs-vswitchd:
@ -282,7 +284,7 @@ apps:
- system-trace - system-trace
- hardware-observe - hardware-observe
- hugepages-control - hugepages-control
# TODO: - microstack-support - microstack-support
ovsdb-server: ovsdb-server:
command: bin/ovs-wrapper $SNAP/usr/local/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd --no-monitor start command: bin/ovs-wrapper $SNAP/usr/local/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd --no-monitor start
stop-command: bin/ovs-wrapper $SNAP/usr/local/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd stop stop-command: bin/ovs-wrapper $SNAP/usr/local/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd stop
@ -294,7 +296,7 @@ apps:
- openvswitch-support - openvswitch-support
- process-control - process-control
- system-trace - system-trace
# TODO: - microstack-support - microstack-support
ovn-ovsdb-server-nb: ovn-ovsdb-server-nb:
command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_nb_ovsdb command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_nb_ovsdb
stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_nb_ovsdb stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_nb_ovsdb
@ -306,7 +308,7 @@ apps:
- openvswitch-support - openvswitch-support
- process-control - process-control
- system-trace - system-trace
# TODO: - microstack-support - microstack-support
ovn-ovsdb-server-sb: ovn-ovsdb-server-sb:
command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_sb_ovsdb command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_sb_ovsdb
stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_sb_ovsdb stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_sb_ovsdb
@ -318,7 +320,7 @@ apps:
- openvswitch-support - openvswitch-support
- process-control - process-control
- system-trace - system-trace
# TODO: - microstack-support - microstack-support
ovn-northd: ovn-northd:
command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_northd command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl start_northd
stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_northd stop-command: bin/ovn-wrapper $SNAP/usr/local/share/ovn/scripts/ovn-ctl stop_northd
@ -330,7 +332,7 @@ apps:
- openvswitch-support - openvswitch-support
- process-control - process-control
- system-trace - system-trace
# TODO: - microstack-support - microstack-support
after: after:
- ovn-ovsdb-server-nb - ovn-ovsdb-server-nb
- ovn-ovsdb-server-sb - ovn-ovsdb-server-sb
@ -345,7 +347,7 @@ apps:
- openvswitch-support - openvswitch-support
- process-control - process-control
- system-trace - system-trace
# TODO: - microstack-support - microstack-support
after: after:
- ovsdb-server - ovsdb-server
- ovs-vswitchd - ovs-vswitchd
@ -355,57 +357,57 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
ovn-trace: ovn-trace:
command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-trace command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-trace
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
ovn-detrace: ovn-detrace:
command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-detrace command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-detrace
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
ovn-nbctl: ovn-nbctl:
command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-nbctl command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-nbctl
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
ovn-sbctl: ovn-sbctl:
command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-sbctl command: bin/ovn-wrapper $SNAP/usr/local/bin/ovn-sbctl
plugs: plugs:
- network - network
- network-bind - network-bind
- process-control - process-control
# TODO: - microstack-support - microstack-support
ovs-vsctl: ovs-vsctl:
command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-vsctl command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-vsctl
plugs: plugs:
- network - network
- process-control - process-control
# TODO: - microstack-support - microstack-support
ovs-appctl: ovs-appctl:
command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-appctl command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-appctl
plugs: plugs:
- network - network
- process-control - process-control
# TODO: - microstack-support - microstack-support
ovs-ofctl: ovs-ofctl:
command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-ofctl command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-ofctl
plugs: plugs:
- network - network
- process-control - process-control
# TODO: - microstack-support - microstack-support
ovs-dpctl: ovs-dpctl:
command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-dpctl command: bin/ovs-wrapper $SNAP/usr/local/bin/ovs-dpctl
plugs: plugs:
- network - network
- process-control - process-control
# TODO: - microstack-support - microstack-support
external-bridge: external-bridge:
command: bin/wait-on-init setup-br-ex command: bin/wait-on-init setup-br-ex
@ -415,7 +417,7 @@ apps:
- network - network
- network-control - network-control
- process-control - process-control
# TODO: - microstack-support - microstack-support
# Libvirt/Qemu # Libvirt/Qemu
libvirtd: libvirtd:
@ -437,7 +439,7 @@ apps:
- process-control - process-control
- mount-observe - mount-observe
- block-devices - block-devices
# TODO: - microstack-support - microstack-support
# Make sure KillMode=process is set in the resulting systemd unit instead of # Make sure KillMode=process is set in the resulting systemd unit instead of
# the default KillMode=control-group to avoid the situation where stopping # the default KillMode=control-group to avoid the situation where stopping
# libvirtd causes the forced power off scenario for all VMs; it also affects # libvirtd causes the forced power off scenario for all VMs; it also affects
@ -453,12 +455,12 @@ apps:
- network - network
- network-bind - network-bind
- network-control - network-control
# TODO: - microstack-support - microstack-support
virsh: virsh:
command: usr/bin/virsh command: usr/bin/virsh
plugs: plugs:
- network - network
# TODO: - microstack-support - microstack-support
# MySQL # MySQL
mysqld: mysqld:
@ -468,13 +470,13 @@ apps:
- process-control - process-control
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
mysql: mysql:
command: bin/mysql-start-client command: bin/mysql-start-client
plugs: plugs:
- process-control - process-control
- network - network
# TODO: - microstack-support - microstack-support
# RabbitMQ # RabbitMQ
rabbitmq-server: rabbitmq-server:
@ -485,7 +487,7 @@ apps:
- network - network
- mount-observe - mount-observe
- log-observe - log-observe
# TODO: - microstack-support - microstack-support
environment: environment:
HOME: $SNAP_COMMON/lib/rabbitmq HOME: $SNAP_COMMON/lib/rabbitmq
rabbitmqctl: rabbitmqctl:
@ -493,14 +495,15 @@ apps:
plugs: plugs:
- network - network
- mount-observe - mount-observe
# TODO: - microstack-support - microstack-support
environment: environment:
HOME: $SNAP_COMMON/lib/rabbitmq HOME: $SNAP_COMMON/lib/rabbitmq
rabbitmq-plugins: rabbitmq-plugins:
command: usr/sbin/rabbitmq-plugins command: usr/sbin/rabbitmq-plugins
environment: environment:
HOME: $SNAP_COMMON/lib/rabbitmq HOME: $SNAP_COMMON/lib/rabbitmq
# TODO: - microstack-support plugs:
- microstack-support
# Memcached # Memcached
memcached: memcached:
@ -509,7 +512,7 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
# Cinder # Cinder
cinder-uwsgi: cinder-uwsgi:
@ -518,27 +521,27 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
cinder-backup: cinder-backup:
command: bin/snap-openstack launch cinder-backup command: bin/snap-openstack launch cinder-backup
daemon: simple daemon: simple
plugs: plugs:
- network - network
- mount-observe - mount-observe
# TODO: - microstack-support - microstack-support
cinder-manage: cinder-manage:
command: bin/snap-openstack launch cinder-manage command: bin/snap-openstack launch cinder-manage
plugs: plugs:
- network - network
- mount-observe - mount-observe
# TODO: - microstack-support - microstack-support
cinder-scheduler: cinder-scheduler:
command: bin/snap-openstack launch cinder-scheduler command: bin/snap-openstack launch cinder-scheduler
daemon: simple daemon: simple
plugs: plugs:
- network - network
- mount-observe - mount-observe
# TODO: - microstack-support - microstack-support
cinder-volume: cinder-volume:
command: bin/snap-openstack launch cinder-volume command: bin/snap-openstack launch cinder-volume
daemon: simple daemon: simple
@ -549,7 +552,7 @@ apps:
- block-devices - block-devices
# setpriority by LVM tools. # setpriority by LVM tools.
- process-control - process-control
# TODO: - microstack-support - microstack-support
after: after:
- setup-lvm-loopdev - setup-lvm-loopdev
@ -563,7 +566,7 @@ apps:
- network-bind - network-bind
- mount-observe - mount-observe
- block-devices - block-devices
# TODO: - microstack-support - microstack-support
after: after:
- setup-lvm-loopdev - setup-lvm-loopdev
environment: environment:
@ -577,20 +580,13 @@ apps:
- network-bind - network-bind
# NETLINK_ISCSI protocol sockets # NETLINK_ISCSI protocol sockets
- network-control - network-control
# TODO: - microstack-support - microstack-support
- block-devices - block-devices
- process-control - process-control
after: after:
# Make sure iscsid is stopped before target configuration is cleaned up. # Make sure iscsid is stopped before target configuration is cleaned up.
- target - target
# TODO: this is a --devmode workaround since the microstack-support interface is not merged yet.
load-modules:
command: bin/load-modules
daemon: oneshot
plugs:
- kernel-module-control
setup-lvm-loopdev: setup-lvm-loopdev:
command: bin/setup-lvm-loopdev command: bin/setup-lvm-loopdev
daemon: oneshot daemon: oneshot
@ -601,9 +597,7 @@ apps:
# loop device control etc. # loop device control etc.
# LVM tools use setpriority to set it to -18 which is prohibited in the default snapd templates. # LVM tools use setpriority to set it to -18 which is prohibited in the default snapd templates.
- process-control - process-control
# TODO: - microstack-support - microstack-support
after:
- load-modules
# Horizon # Horizon
horizon-uwsgi: horizon-uwsgi:
@ -612,7 +606,7 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
# Utility to launch a vm. Creates security groups, floating ips, # Utility to launch a vm. Creates security groups, floating ips,
# and other necessities as well. # and other necessities as well.
@ -621,7 +615,7 @@ apps:
plugs: plugs:
- network - network
- network-control # could also be mount-observe - network-control # could also be mount-observe
# TODO: - microstack-support - microstack-support
# Cluster # Cluster
cluster-uwsgi: cluster-uwsgi:
@ -630,7 +624,7 @@ apps:
plugs: plugs:
- network - network
- network-bind - network-bind
# TODO: - microstack-support - microstack-support
telegraf: telegraf:
command: bin/telegraf command: bin/telegraf
@ -1587,11 +1581,11 @@ parts:
hooks: hooks:
install: install:
plugs: [ network ] # TODO: , microstack-support] plugs: [ network, microstack-support]
configure: configure:
plugs: [ network ] # TODO:, microstack-support] plugs: [ network, microstack-support]
post-refresh: post-refresh:
plugs: [ network ] #, microstack-support] plugs: [ network, microstack-support]
remove: remove:
# NOTE: network-bind is here due to LP: #1644573. # NOTE: network-bind is here due to LP: #1644573.
plugs: plugs:
@ -1600,5 +1594,5 @@ hooks:
- network-control - network-control
- firewall-control - firewall-control
- hardware-observe - hardware-observe
# TODO: - microstack-support - microstack-support
- block-devices - block-devices

@ -62,14 +62,16 @@ class TestHost:
def install_snap(self, name, options): def install_snap(self, name, options):
self.check_output(['sudo', 'snap', 'install', name, *options]) self.check_output(['sudo', 'snap', 'install', name, *options])
def refresh_snap(self, name, options):
self.check_output(['sudo', 'snap', 'refresh', name, *options])
def try_snap(self, name): def try_snap(self, name):
try: try:
self.check_output(['unsquashfs', name]) self.check_output(['unsquashfs', name])
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
logger.warning("Re-using existing squashfs-root directory with " logger.warning("Re-using existing squashfs-root directory with "
"'snap try squashfs-root'") "'snap try squashfs-root'")
self.check_output(['sudo', 'snap', 'try', 'squashfs-root', self.check_output(['sudo', 'snap', 'try', 'squashfs-root'])
'--devmode'])
def remove_snap(self, name, options): def remove_snap(self, name, options):
self.check_output(['sudo', 'snap', 'remove', name, *options]) self.check_output(['sudo', 'snap', 'remove', name, *options])
@ -78,6 +80,12 @@ class TestHost:
self.check_output(['sudo', 'snap', 'connect', self.check_output(['sudo', 'snap', 'connect',
f'{snap_name}:{plug_name}']) f'{snap_name}:{plug_name}'])
def install_snapd(self, *, channel='stable'):
self.install_snap('snapd', [f'--{channel}'])
# In case snapd is already installed but with a different channel,
# refresh it to the right channel.
self.refresh_snap('snapd', [f'--{channel}'])
def install_microstack(self, *, channel='edge', path=None, snap_try=False): def install_microstack(self, *, channel='edge', path=None, snap_try=False):
"""Install MicroStack at this host and connect relevant plugs. """Install MicroStack at this host and connect relevant plugs.
""" """
@ -85,11 +93,10 @@ class TestHost:
self.try_snap(path) self.try_snap(path)
else: else:
if path is not None: if path is not None:
self.install_snap(path, ['--devmode']) self.install_snap(path, ['--dangerous'])
else: else:
self.install_snap('microstack', [f'--{channel}', '--devmode']) self.install_snap('microstack', [f'--{channel}'])
# TODO: add microstack-support once it is merged into snapd.
plugs = [ plugs = [
'libvirt', 'netlink-audit', 'libvirt', 'netlink-audit',
'firewall-control', 'hardware-observe', 'firewall-control', 'hardware-observe',
@ -99,7 +106,8 @@ class TestHost:
'openvswitch-support', 'process-control', 'openvswitch-support', 'process-control',
'system-observe', 'network-control', 'system-observe', 'network-control',
'system-trace', 'block-devices', 'system-trace', 'block-devices',
'raw-usb' 'raw-usb', 'microstack-support',
'hugepages-control',
] ]
for plug in plugs: for plug in plugs:
self.snap_connect('microstack', plug) self.snap_connect('microstack', plug)

@ -36,6 +36,7 @@ class TestBasics(Framework):
open the Horizon GUI. open the Horizon GUI.
""" """
self._localhost.install_snapd(channel='stable')
self._localhost.install_microstack(path='microstack_ussuri_amd64.snap', self._localhost.install_microstack(path='microstack_ussuri_amd64.snap',
snap_try=self.snap_try) snap_try=self.snap_try)
init_args = ['--auto', '--control'] init_args = ['--auto', '--control']

@ -38,6 +38,7 @@ class TestCluster(Framework):
def test_cluster(self): def test_cluster(self):
openstack_cmd = '/snap/bin/microstack.openstack' openstack_cmd = '/snap/bin/microstack.openstack'
control_host = self._localhost control_host = self._localhost
control_host.install_snapd(channel='stable')
control_host.install_microstack(path='microstack_ussuri_amd64.snap', control_host.install_microstack(path='microstack_ussuri_amd64.snap',
snap_try=self.snap_try) snap_try=self.snap_try)
@ -77,11 +78,12 @@ class TestCluster(Framework):
wait_addr() wait_addr()
if self.snap_try: @tenacity.retry(wait=tenacity.wait_fixed(5),
# Note(coreycb): Work-around for https://pad.lv/1908424 stop=tenacity.stop_after_attempt(10))
compute_host.check_call([ def install_snapd_on_compute():
'sudo', 'apt', 'install', '--yes', '--allow-downgrades', compute_host.install_snapd(channel='stable')
'snapd=2.44.3+20.04'])
install_snapd_on_compute()
compute_host.install_microstack(path='microstack_ussuri_amd64.snap', compute_host.install_microstack(path='microstack_ussuri_amd64.snap',
snap_try=self.snap_try) snap_try=self.snap_try)

@ -13,8 +13,6 @@ sudo apt install -y firefox-geckodriver python3-petname python3-selenium
# Install snapd if it isn't installed yet (needed to install the snapd snap itself). # Install snapd if it isn't installed yet (needed to install the snapd snap itself).
sudo apt install -y snapd sudo apt install -y snapd
sudo snap install snapd
sudo snap install --classic snapcraft sudo snap install --classic snapcraft
# Purge the LXD apt package in case it is still there. # Purge the LXD apt package in case it is still there.
sudo apt purge -y lxd lxd-client sudo apt purge -y lxd lxd-client

@ -60,9 +60,8 @@ multipass exec $MACHINE -- \
sudo snap connect microstack:raw-usb sudo snap connect microstack:raw-usb
multipass exec $MACHINE -- \ multipass exec $MACHINE -- \
sudo snap connect microstack:hugepages-control sudo snap connect microstack:hugepages-control
# TODO: add the below once the interface is merge into snapd. multipass exec $MACHINE -- \
# multipass exec $MACHINE -- \ sudo snap connect microstack:microstack-support
# sudo snap connect microstack:microstack-support
# Drop the user into a snap shell, as root. # Drop the user into a snap shell, as root.
multipass exec $MACHINE -- \ multipass exec $MACHINE -- \