From 163b81b0fcd298144f9680690cf2d3011f774a4d Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Mon, 10 Feb 2020 22:27:55 +1300 Subject: [PATCH] implement some make_autoinstall methods --- subiquity/controllers/filesystem.py | 10 ++++++++++ subiquity/controllers/identity.py | 7 +++++++ subiquity/controllers/keyboard.py | 5 +++++ subiquity/controllers/mirror.py | 5 +++++ subiquity/controllers/network.py | 3 +++ subiquity/controllers/proxy.py | 3 +++ subiquity/controllers/ssh.py | 7 +++++++ subiquity/controllers/welcome.py | 3 +++ 8 files changed, 43 insertions(+) diff --git a/subiquity/controllers/filesystem.py b/subiquity/controllers/filesystem.py index ec03274c..35fa5288 100644 --- a/subiquity/controllers/filesystem.py +++ b/subiquity/controllers/filesystem.py @@ -688,3 +688,13 @@ class FilesystemController(SubiquityController): fstype="ext4", mount="/", )) + + def make_autoinstall(self): + rendered = self.model.render() + r = { + 'config': rendered['storage']['config'] + } + for k in 'swap', 'grub': + if k in rendered: + r[k] = rendered[k] + return r diff --git a/subiquity/controllers/identity.py b/subiquity/controllers/identity.py index 106d9a77..463434bf 100644 --- a/subiquity/controllers/identity.py +++ b/subiquity/controllers/identity.py @@ -15,6 +15,8 @@ import logging +import attr + from subiquity.controller import SubiquityController from subiquity.ui.views import IdentityView @@ -57,3 +59,8 @@ class IdentityController(SubiquityController): self.model.add_user(user_spec) self.configured() self.app.next_screen() + + def make_autoinstall(self): + r = attr.asdict(self.model.user) + r['hostname'] = self.model.hostname + return r diff --git a/subiquity/controllers/keyboard.py b/subiquity/controllers/keyboard.py index dd7b7078..4eed7169 100644 --- a/subiquity/controllers/keyboard.py +++ b/subiquity/controllers/keyboard.py @@ -15,6 +15,8 @@ import logging +import attr + from subiquitycore.async_helpers import schedule_task from subiquity.controller import SubiquityController @@ -68,3 +70,6 @@ class KeyboardController(SubiquityController): def cancel(self): self.app.prev_screen() + + def make_autoinstall(self): + return attr.asdict(self.model.setting) diff --git a/subiquity/controllers/mirror.py b/subiquity/controllers/mirror.py index 0fe408c5..fed5bda8 100644 --- a/subiquity/controllers/mirror.py +++ b/subiquity/controllers/mirror.py @@ -133,3 +133,8 @@ class MirrorController(SubiquityController): self.model.set_mirror(mirror) self.configured() self.app.next_screen() + + def make_autoinstall(self): + r = self.model.render()['apt'] + r['geoip'] = self.geoip_enabled + return r diff --git a/subiquity/controllers/network.py b/subiquity/controllers/network.py index 5441c4bc..49ff04bb 100644 --- a/subiquity/controllers/network.py +++ b/subiquity/controllers/network.py @@ -25,3 +25,6 @@ class NetworkController(NetworkController, SubiquityController): def done(self): self.configured() super().done() + + def make_autoinstall(self): + return self.model.render()['network'] diff --git a/subiquity/controllers/proxy.py b/subiquity/controllers/proxy.py index d69d0163..d2387490 100644 --- a/subiquity/controllers/proxy.py +++ b/subiquity/controllers/proxy.py @@ -64,3 +64,6 @@ class ProxyController(SubiquityController): self.signal.emit_signal('network-proxy-set') self.configured() self.app.next_screen() + + def make_autoinstall(self): + return self.model.proxy diff --git a/subiquity/controllers/ssh.py b/subiquity/controllers/ssh.py index 40674a67..bdce5f79 100644 --- a/subiquity/controllers/ssh.py +++ b/subiquity/controllers/ssh.py @@ -126,3 +126,10 @@ class SSHController(SubiquityController): self.model.ssh_import_id = result.get('ssh_import_id', None) self.configured() self.app.next_screen() + + def make_autoinstall(self): + return { + 'install-server': self.model.install_server, + 'authorized-keys': self.model.authorized_keys, + 'allow-pw': self.model.pwauth, + } diff --git a/subiquity/controllers/welcome.py b/subiquity/controllers/welcome.py index cb250c58..7facfac9 100644 --- a/subiquity/controllers/welcome.py +++ b/subiquity/controllers/welcome.py @@ -64,3 +64,6 @@ class WelcomeController(SubiquityController): def deserialize(self, data): super().deserialize(data) self.model.switch_language(data) + + def make_autoinstall(self): + return self.model.selected_language