diff --git a/actionsmap/yunohost.yml b/actionsmap/yunohost.yml index f9d9e346d..1967a74e9 100644 --- a/actionsmap/yunohost.yml +++ b/actionsmap/yunohost.yml @@ -861,10 +861,11 @@ firewall: api: GET /firewall/upnp arguments: action: - help: enable/disable + help: enable/disable/check choices: - enable - disable + - check - [] nargs: "*" diff --git a/firewall.py b/firewall.py index a944836eb..e4b155cad 100644 --- a/firewall.py +++ b/firewall.py @@ -207,7 +207,7 @@ def firewall_upnp(action=None): Add uPnP cron and enable uPnP in firewall.yml, or the opposite. Keyword argument: - action -- enable/disable + action -- enable/disable/check """ firewall = firewall_list(raw=True) @@ -244,12 +244,18 @@ def firewall_upnp(action=None): msignals.display(m18n.n('upnp_disabled'), 'success') + if action == 'check': + if firewall['uPnP']['enabled'] == True: + msignals.display(m18n.n('upnp_active'), 'success') + else: + raise MoulinetteError(errno.EADV, + m18n.n('upnp_inactive')) + if action: os.system("cp /etc/yunohost/firewall.yml /etc/yunohost/firewall.yml.old") with open('/etc/yunohost/firewall.yml', 'w') as f: yaml.safe_dump(firewall, f, default_flow_style=False) - return { "enabled": firewall['uPnP']['enabled'] } def firewall_stop(): diff --git a/locales/en.json b/locales/en.json index 96796b616..616f552f2 100644 --- a/locales/en.json +++ b/locales/en.json @@ -68,6 +68,8 @@ "upnp_port_open_failed" : "Unable to open uPnP ports", "upnp_enabled" : "uPnP successfully enabled", "upnp_disabled" : "uPnP successfully disabled", + "upnp_active" : "uPnP is activate", + "upnp_inactive" : "uPnP is not activate", "firewall_reloaded" : "Firewall successfully reloaded", "hook_choice_invalid" : "Invalid choice '%s'",