console_conf/controllers/identity: use app level snapd connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
This commit is contained in:
parent
8cfb2406b0
commit
7144a65d22
|
@ -24,7 +24,7 @@ from subiquitycore import snap
|
||||||
from subiquitycore.snapd import SnapdConnection
|
from subiquitycore.snapd import SnapdConnection
|
||||||
from subiquitycore.ssh import get_ips_standalone, host_key_info
|
from subiquitycore.ssh import get_ips_standalone, host_key_info
|
||||||
from subiquitycore.tuicontroller import TuiController
|
from subiquitycore.tuicontroller import TuiController
|
||||||
from subiquitycore.utils import disable_console_conf, run_command
|
from subiquitycore.utils import disable_console_conf
|
||||||
|
|
||||||
log = logging.getLogger("console_conf.controllers.identity")
|
log = logging.getLogger("console_conf.controllers.identity")
|
||||||
|
|
||||||
|
@ -51,9 +51,8 @@ def get_core_version():
|
||||||
return version
|
return version
|
||||||
|
|
||||||
|
|
||||||
def get_managed():
|
def get_managed(con):
|
||||||
"""Check if device is managed"""
|
"""Check if device is managed"""
|
||||||
con = SnapdConnection("", "/run/snapd.socket")
|
|
||||||
return con.get("v2/system-info").json()["result"]["managed"]
|
return con.get("v2/system-info").json()["result"]["managed"]
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,9 +64,8 @@ def get_realname(username):
|
||||||
return info.pw_gecos.split(",", 1)[0]
|
return info.pw_gecos.split(",", 1)[0]
|
||||||
|
|
||||||
|
|
||||||
def get_device_owner():
|
def get_device_owner(con):
|
||||||
"""Get device owner, if any"""
|
"""Get device owner, if any"""
|
||||||
con = SnapdConnection("", "/run/snapd.socket")
|
|
||||||
for user in con.get("v2/users").json()["result"]:
|
for user in con.get("v2/users").json()["result"]:
|
||||||
if "username" not in user:
|
if "username" not in user:
|
||||||
continue
|
continue
|
||||||
|
@ -129,7 +127,9 @@ def write_login_details(fp, username, ips, state_dir=None):
|
||||||
|
|
||||||
|
|
||||||
def write_login_details_standalone():
|
def write_login_details_standalone():
|
||||||
owner = get_device_owner()
|
# running in standalone mode
|
||||||
|
con = SnapdConnection("/", "/run/snapd.socket")
|
||||||
|
owner = get_device_owner(con)
|
||||||
ips = get_ips_standalone()
|
ips = get_ips_standalone()
|
||||||
if len(ips) == 0:
|
if len(ips) == 0:
|
||||||
if owner is None:
|
if owner is None:
|
||||||
|
@ -159,8 +159,8 @@ class IdentityController(TuiController):
|
||||||
self.model = app.base_model.identity
|
self.model = app.base_model.identity
|
||||||
|
|
||||||
def make_ui(self):
|
def make_ui(self):
|
||||||
if get_managed():
|
if get_managed(self.app.snapdcon):
|
||||||
device_owner = get_device_owner()
|
device_owner = get_device_owner(self.app.snapdcon)
|
||||||
if device_owner:
|
if device_owner:
|
||||||
self.model.add_user(device_owner)
|
self.model.add_user(device_owner)
|
||||||
return self.make_login_view()
|
return self.make_login_view()
|
||||||
|
@ -177,9 +177,8 @@ class IdentityController(TuiController):
|
||||||
login_details_path = self.opts.output_base + "/login-details.txt"
|
login_details_path = self.opts.output_base + "/login-details.txt"
|
||||||
else:
|
else:
|
||||||
self.app.urwid_loop.draw_screen()
|
self.app.urwid_loop.draw_screen()
|
||||||
con = SnapdConnection("", "/run/snapd.socket")
|
|
||||||
user_action = {"action": "create", "email": email, "sudoer": True}
|
user_action = {"action": "create", "email": email, "sudoer": True}
|
||||||
res = con.post("v2/users", body=user_action)
|
res = self.app.snapdcon.post("v2/users", body=user_action)
|
||||||
if res.json()["status"] != "OK":
|
if res.json()["status"] != "OK":
|
||||||
if isinstance(self.ui.body, IdentityView):
|
if isinstance(self.ui.body, IdentityView):
|
||||||
self.ui.body.snap_create_user_failed(
|
self.ui.body.snap_create_user_failed(
|
||||||
|
|
Loading…
Reference in New Issue