File: run_migration_integration_tests-18-04

package info (click to toggle)
python-pylxd 2.2.10-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 820 kB
  • sloc: python: 7,258; sh: 104; makefile: 21
file content (86 lines) | stat: -rwxr-xr-x 4,394 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh

#NOTE: gabrik (24 Aug 2018) - this test create two containers for testing the migration

NETWORK_NAME=pylxd0
CONTAINER_IMAGE=ubuntu:18.04
CONTAINERONE_NAME=pylxd-`uuidgen | cut -d"-" -f1`
CONTAINERTWO_NAME=pylxd-`uuidgen | cut -d"-" -f1`
PROFILE_NAME=pylxd


#This create a network for testing the migration
lxc network create $NETWORK_NAME ipv6.address=none ipv4.address=10.0.3.1/24 ipv4.nat=true

#This create the profile used by the containers to be attached in the same network
lxc profile copy default $PROFILE_NAME
lxc profile device remove $PROFILE_NAME eth0
lxc network attach-profile $NETWORK_NAME $PROFILE_NAME eth0

# This creates a privileged container, because I was bumping into situations where it
# seemed that we had maxed out user namespaces (I haven't checked it out, but it's likely
# a bug in LXD).

#First container
lxc init $CONTAINER_IMAGE $CONTAINERONE_NAME -p $PROFILE_NAME -c security.nesting=true -c security.privileged=true
lxc config set $CONTAINERONE_NAME raw.lxc "lxc.mount.auto = proc:rw sys:rw"
lxc start $CONTAINERONE_NAME
sleep 5  # Wait for the network to come up
lxc exec $CONTAINERONE_NAME -- apt-get update
lxc exec $CONTAINERONE_NAME -- apt-get install -y tox python3-dev libssl-dev libffi-dev build-essential criu
lxc exec $CONTAINERONE_NAME -- lxc config set core.trust_password password
lxc exec $CONTAINERONE_NAME -- lxc config set core.https_address [::]
lxc exec $CONTAINERONE_NAME -- mkdir -p /root/.config/lxc
openssl genrsa 1024 > ./$CONTAINERONE_NAME.key
lxc file push ./$CONTAINERONE_NAME.key $CONTAINERONE_NAME/root/.config/lxc/client.key
rm ./$CONTAINERONE_NAME.key
lxc exec $CONTAINERONE_NAME -- chmod 400 /root/.config/lxc/client.key
lxc exec $CONTAINERONE_NAME -- openssl req -new -x509 -nodes -sha1 -days 365 \
	-key /root/.config/lxc/client.key -out /root/.config/lxc/client.crt \
	-subj="/C=UK/ST=London/L=London/O=OrgName/OU=Test/CN=example.com"

# create a default dir storage pool for bionic
lxc exec $CONTAINERONE_NAME -- lxc storage create default dir
lxc exec $CONTAINERONE_NAME -- lxc profile device add default root disk path=/ pool=default

lxc exec $CONTAINERONE_NAME -- sudo shutdown -r now
sleep 5  # Wait for the network to come up
lxc exec $CONTAINERONE_NAME -- sudo ifconfig eth0 10.0.3.111 netmask 255.255.255.0
lxc exec $CONTAINERONE_NAME -- route add default gw 10.0.3.1 eth0

#Second container
lxc init $CONTAINER_IMAGE $CONTAINERTWO_NAME -p $PROFILE_NAME -c security.nesting=true -c security.privileged=true
lxc config set $CONTAINERTWO_NAME raw.lxc "lxc.mount.auto = proc:rw sys:rw"
lxc start $CONTAINERTWO_NAME
sleep 5  # Wait for the network to come up
lxc exec $CONTAINERTWO_NAME -- apt-get update
lxc exec $CONTAINERTWO_NAME -- apt-get install -y tox python3-dev libssl-dev libffi-dev build-essential criu
lxc exec $CONTAINERTWO_NAME -- lxc config set core.trust_password password
lxc exec $CONTAINERTWO_NAME -- lxc config set core.https_address [::]:8443
lxc exec $CONTAINERONE_NAME -- mkdir -p /root/.config/lxc
openssl genrsa 1024 > ./$CONTAINERTWO_NAME.key
lxc file push ./$CONTAINERTWO_NAME.key $CONTAINERTWO_NAME/root/.config/lxc/client.key
rm ./$CONTAINERTWO_NAME.key
lxc exec $CONTAINERTWO_NAME -- chmod 400 /root/.config/lxc/client.key
lxc exec $CONTAINERTWO_NAME -- openssl req -new -x509 -nodes -sha1 -days 365 \
	-key /root/.config/lxc/client.key -out /root/.config/lxc/client.crt \
	-subj="/C=UK/ST=London/L=London/O=OrgName/OU=Test/CN=example.com"

# create a default dir storage pool for bionic
lxc exec $CONTAINERTWO_NAME -- lxc storage create default dir
lxc exec $CONTAINERTWO_NAME -- lxc profile device add default root disk path=/ pool=default
lxc exec $CONTAINERTWO_NAME -- sudo shutdown -r now
sleep 5  # Wait for the network to come up
lxc exec $CONTAINERTWO_NAME -- sudo ifconfig eth0 10.0.3.222 netmask 255.255.255.0
lxc exec $CONTAINERTWO_NAME -- route add default gw 10.0.3.1 eth0

lxc exec $CONTAINERONE_NAME -- mkdir -p /opt/pylxd
# NOTE: rockstar (13 Sep 2016) - --recursive is not supported in lxd <2.1, so
# until we have pervasive support for that, we'll do this tar hack.
tar cf - * .git | lxc exec $CONTAINERONE_NAME -- tar xf - -C /opt/pylxd
lxc exec $CONTAINERONE_NAME -- /bin/sh -c "cd /opt/pylxd && tox -emigration"

lxc delete --force $CONTAINERONE_NAME
lxc delete --force $CONTAINERTWO_NAME
lxc profile delete $PROFILE_NAME
lxc network delete $NETWORK_NAME