diff options
| -rw-r--r-- | recipes-test/demo-network-config/files/25-dhcp-server.network | 12 | ||||
| -rw-r--r-- | recipes-test/demo-network-config/files/26-dhcp-client.network | 6 | ||||
| -rw-r--r-- | recipes-test/demo-network-config/primary-network-config.bb | 16 | ||||
| -rw-r--r-- | recipes-test/demo-network-config/secondary-network-config.bb | 16 | ||||
| -rw-r--r-- | recipes-test/images/primary-image.bb | 12 | ||||
| -rw-r--r-- | recipes-test/images/secondary-image.bb | 5 | ||||
| -rw-r--r-- | scripts/qemucommand.py | 6 | ||||
| -rwxr-xr-x | scripts/run-qemu-ota | 3 |
8 files changed, 75 insertions, 1 deletions
diff --git a/recipes-test/demo-network-config/files/25-dhcp-server.network b/recipes-test/demo-network-config/files/25-dhcp-server.network new file mode 100644 index 0000000..4766f9a --- /dev/null +++ b/recipes-test/demo-network-config/files/25-dhcp-server.network | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | [Match] | ||
| 2 | Name=enp0s4 | ||
| 3 | |||
| 4 | [Network] | ||
| 5 | Description=Private internal network between aktualizr Primary and Secondary nodes | ||
| 6 | DHCPServer=yes | ||
| 7 | Address=10.0.3.1/24 | ||
| 8 | IPForward=yes | ||
| 9 | IPMasquerade=yes | ||
| 10 | |||
| 11 | [DHCPServer] | ||
| 12 | PoolOffset=10 \ No newline at end of file | ||
diff --git a/recipes-test/demo-network-config/files/26-dhcp-client.network b/recipes-test/demo-network-config/files/26-dhcp-client.network new file mode 100644 index 0000000..319664f --- /dev/null +++ b/recipes-test/demo-network-config/files/26-dhcp-client.network | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | [Match] | ||
| 2 | Name=enp0s4 | ||
| 3 | |||
| 4 | [Network] | ||
| 5 | Description=Private internal network between aktualizr Primary and Secondary nodes | ||
| 6 | DHCP=yes | ||
diff --git a/recipes-test/demo-network-config/primary-network-config.bb b/recipes-test/demo-network-config/primary-network-config.bb new file mode 100644 index 0000000..78678a2 --- /dev/null +++ b/recipes-test/demo-network-config/primary-network-config.bb | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | DESCRIPTION = "Sample network configuration for an Uptane Primary" | ||
| 2 | LICENSE = "CLOSED" | ||
| 3 | |||
| 4 | inherit allarch | ||
| 5 | |||
| 6 | SRC_URI = "file://25-dhcp-server.network" | ||
| 7 | |||
| 8 | |||
| 9 | FILES_${PN} = "/usr/lib/systemd/network" | ||
| 10 | |||
| 11 | PR = "1" | ||
| 12 | |||
| 13 | do_install() { | ||
| 14 | install -d ${D}/usr/lib/systemd/network | ||
| 15 | install -m 0644 ${WORKDIR}/25-dhcp-server.network ${D}/usr/lib/systemd/network/ | ||
| 16 | } | ||
diff --git a/recipes-test/demo-network-config/secondary-network-config.bb b/recipes-test/demo-network-config/secondary-network-config.bb new file mode 100644 index 0000000..492d3ca --- /dev/null +++ b/recipes-test/demo-network-config/secondary-network-config.bb | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | DESCRIPTION = "Sample network configuration for an Uptane Secondary" | ||
| 2 | LICENSE = "CLOSED" | ||
| 3 | |||
| 4 | inherit allarch | ||
| 5 | |||
| 6 | SRC_URI = "file://26-dhcp-client.network" | ||
| 7 | |||
| 8 | |||
| 9 | FILES_${PN} = "/usr/lib/systemd/network" | ||
| 10 | |||
| 11 | PR = "1" | ||
| 12 | |||
| 13 | do_install() { | ||
| 14 | install -d ${D}/usr/lib/systemd/network | ||
| 15 | install -m 0644 ${WORKDIR}/26-dhcp-client.network ${D}/usr/lib/systemd/network/ | ||
| 16 | } | ||
diff --git a/recipes-test/images/primary-image.bb b/recipes-test/images/primary-image.bb new file mode 100644 index 0000000..6c06527 --- /dev/null +++ b/recipes-test/images/primary-image.bb | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | include recipes-core/images/core-image-minimal.bb | ||
| 2 | |||
| 3 | SUMMARY = "A minimal Uptane Primary image running aktualizr, for testing with a Linux secondary" | ||
| 4 | |||
| 5 | LICENSE = "MIT" | ||
| 6 | |||
| 7 | IMAGE_INSTALL_remove = " \ | ||
| 8 | " | ||
| 9 | |||
| 10 | IMAGE_INSTALL_append = " \ | ||
| 11 | primary-network-config \ | ||
| 12 | " | ||
diff --git a/recipes-test/images/secondary-image.bb b/recipes-test/images/secondary-image.bb index c7a91db..c1ce57a 100644 --- a/recipes-test/images/secondary-image.bb +++ b/recipes-test/images/secondary-image.bb | |||
| @@ -15,4 +15,7 @@ IMAGE_INSTALL_remove = " \ | |||
| 15 | aktualizr-implicit-prov \ | 15 | aktualizr-implicit-prov \ |
| 16 | " | 16 | " |
| 17 | 17 | ||
| 18 | IMAGE_INSTALL_append = " aktualizr-secondary " \ No newline at end of file | 18 | IMAGE_INSTALL_append = " \ |
| 19 | aktualizr-secondary \ | ||
| 20 | secondary-network-config \ | ||
| 21 | " | ||
diff --git a/scripts/qemucommand.py b/scripts/qemucommand.py index 6b1106d..e209a07 100644 --- a/scripts/qemucommand.py +++ b/scripts/qemucommand.py | |||
| @@ -81,6 +81,7 @@ class QemuCommand(object): | |||
| 81 | self.gdb = args.gdb | 81 | self.gdb = args.gdb |
| 82 | self.pcap = args.pcap | 82 | self.pcap = args.pcap |
| 83 | self.overlay = args.overlay | 83 | self.overlay = args.overlay |
| 84 | self.secondary_network = args.secondary_network | ||
| 84 | 85 | ||
| 85 | def command_line(self): | 86 | def command_line(self): |
| 86 | netuser = 'user,hostfwd=tcp:0.0.0.0:%d-:22,restrict=off' % self.ssh_port | 87 | netuser = 'user,hostfwd=tcp:0.0.0.0:%d-:22,restrict=off' % self.ssh_port |
| @@ -104,6 +105,11 @@ class QemuCommand(object): | |||
| 104 | ] | 105 | ] |
| 105 | if self.pcap: | 106 | if self.pcap: |
| 106 | cmdline += ['-net', 'dump,file=' + self.pcap] | 107 | cmdline += ['-net', 'dump,file=' + self.pcap] |
| 108 | if self.secondary_network: | ||
| 109 | cmdline += [ | ||
| 110 | '-net', 'nic,vlan=1,macaddr='+random_mac(), | ||
| 111 | '-net', 'socket,vlan=1,mcast=230.0.0.1:1234', | ||
| 112 | ] | ||
| 107 | if self.gui: | 113 | if self.gui: |
| 108 | cmdline += ["-serial", "stdio"] | 114 | cmdline += ["-serial", "stdio"] |
| 109 | else: | 115 | else: |
diff --git a/scripts/run-qemu-ota b/scripts/run-qemu-ota index 56e4fbc..b2f55e9 100755 --- a/scripts/run-qemu-ota +++ b/scripts/run-qemu-ota | |||
| @@ -33,6 +33,9 @@ def main(): | |||
| 33 | help='Use an overlay storage image file. Will be created if it does not exist. ' + | 33 | help='Use an overlay storage image file. Will be created if it does not exist. ' + |
| 34 | 'This option lets you have a persistent image without modifying the underlying image ' + | 34 | 'This option lets you have a persistent image without modifying the underlying image ' + |
| 35 | 'file, permitting multiple different persistent machines.') | 35 | 'file, permitting multiple different persistent machines.') |
| 36 | parser.add_argument('--secondary-network', action='store_true', dest='secondary_network', | ||
| 37 | help='Give the image a second network card connected to a virtual network. ' + | ||
| 38 | 'This can be used to test Uptane Primary/Secondary communication.') | ||
| 36 | parser.add_argument('-n', '--dry-run', help='Print qemu command line rather then run it', action='store_true') | 39 | parser.add_argument('-n', '--dry-run', help='Print qemu command line rather then run it', action='store_true') |
| 37 | args = parser.parse_args() | 40 | args = parser.parse_args() |
| 38 | try: | 41 | try: |
