Commit c6ce5a47 authored by Mark Beierl's avatar Mark Beierl
Browse files

Update frequency less often

parent 49344e5a
Loading
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ from apt.progress.base import InstallProgress
import logging
import os
import shutil
import time

from jinja2 import Template
from ops.charm import CharmBase
@@ -65,6 +66,7 @@ class VirtualPCCharm(CharmBase, InstallProgress):
        InstallProgress.__init__(self)

        self._stored.set_default()
        self.last_status_update = time.time()

        # Basic hooks
        self.framework.observe(self.on.install, self._on_install)
@@ -86,6 +88,9 @@ class VirtualPCCharm(CharmBase, InstallProgress):

    # Override InstallProgress to update our status
    def status_change(self, pkg, percent, status):
        if (time.time() - self.last_status_update) < 2:
            return
        self.last_status_update = time.time()
        message = str(int(percent)) + "% " + status
        self.unit.status = MaintenanceStatus(message)

+11 −4
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ from apt.progress.base import InstallProgress
import logging
import os
import shutil
import time

from jinja2 import Template
from ops.charm import CharmBase
@@ -38,6 +39,7 @@ APT_REQUIREMENTS = [
    "mate-desktop",
    "mate-applets",
    "mate-applet-brisk-menu",
    "mate-control-center",
    "mate-indicator-applet",
    "mate-notification-daemon",
    "mate-session-manager",
@@ -64,6 +66,7 @@ class VirtualPCCharm(CharmBase, InstallProgress):
        InstallProgress.__init__(self)

        self._stored.set_default()
        self.last_status_update = time.time()

        # Basic hooks
        self.framework.observe(self.on.install, self._on_install)
@@ -85,6 +88,9 @@ class VirtualPCCharm(CharmBase, InstallProgress):

    # Override InstallProgress to update our status
    def status_change(self, pkg, percent, status):
        if (time.time() - self.last_status_update) < 2:
            return
        self.last_status_update = time.time()
        message = str(int(percent)) + "% " + status
        self.unit.status = MaintenanceStatus(message)

@@ -103,13 +109,13 @@ class VirtualPCCharm(CharmBase, InstallProgress):

        self.unit.status = MaintenanceStatus("Installing snaps")
        for snap in SNAP_INSTALLS:
            shell("sudo snap install " + snap)
            shell("snap install " + snap)

        self.unit.status = MaintenanceStatus("Setting default display manager")
        shell("echo /usr/sbin/lightdm | sudo tee /etc/X11/default-display-manager")

        self.unit.status = MaintenanceStatus("Adding XRDP to ssl-cert group")
        shell("sudo adduser xrdp ssl-cert")
        shell("adduser xrdp ssl-cert")

        self.unit.status = MaintenanceStatus("Generating Window Manager startup script")
        with open(STARTWM_TEMPLATE, "r") as template:
@@ -153,11 +159,12 @@ class VirtualPCCharm(CharmBase, InstallProgress):
    def _add_snap(self, event):
        self.unit.status = MaintenanceStatus("Installing snaps")
        for snap in event.params["package"].split(','):
            shell("sudo snap install " + snap)
            shell("snap install " + snap)
        self.unit.status = self._get_current_status()

    def _announce(self, event):
        self.unit.status = MaintenanceStatus("Announce")
        message = event.params["message"]
        shell("su - ubuntu -c 'XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send \"" + message + "\"'")
        self.unit.status = self._get_current_status()

@@ -176,7 +183,7 @@ class VirtualPCCharm(CharmBase, InstallProgress):
    def _remove_snap(self, event):
        self.unit.status = MaintenanceStatus("Removing snaps")
        for snap in event.params["package"].split(','):
            shell("sudo snap remove" + snap)
            shell("snap remove " + snap)
        self.unit.status = self._get_current_status()

    def _update_system(self, _):