diff options
Diffstat (limited to 'src')
| -rwxr-xr-x[-rw-r--r--] | src/op_mode/route.py | 0 | ||||
| -rwxr-xr-x | src/op_mode/storage.py | 60 | ||||
| -rwxr-xr-x | src/op_mode/uptime.py (renamed from src/op_mode/show_uptime.py) | 36 | ||||
| -rwxr-xr-x | src/services/api/graphql/session/composite/system_status.py | 4 | 
4 files changed, 88 insertions, 12 deletions
| diff --git a/src/op_mode/route.py b/src/op_mode/route.py index e1eee5bbf..e1eee5bbf 100644..100755 --- a/src/op_mode/route.py +++ b/src/op_mode/route.py diff --git a/src/op_mode/storage.py b/src/op_mode/storage.py new file mode 100755 index 000000000..75964c493 --- /dev/null +++ b/src/op_mode/storage.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2022 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. +# + +import sys + +import vyos.opmode +from vyos.util import cmd + + +def _get_system_storage(only_persistent=False): +    if not only_persistent: +        cmd_str = 'df -h -x squashf' +    else: +        cmd_str = 'df -h -t ext4 --output=source,size,used,avail,pcent' + +    res = cmd(cmd_str) + +    return res + +def _get_raw_data(): +    out =  _get_system_storage(only_persistent=True) +    lines = out.splitlines() +    lists = [l.split() for l in lines] +    res = {lists[0][i]: lists[1][i] for i in range(len(lists[0]))} + +    return res + +def _get_formatted_output(): +    return _get_system_storage() + +def show(raw: bool): +    if raw: +        return _get_raw_data() + +    return _get_formatted_output() + + +if __name__ == '__main__': +    try: +        res = vyos.opmode.run(sys.modules[__name__]) +        if res: +            print(res) +    except (ValueError, vyos.opmode.Error) as e: +        print(e) +        sys.exit(1) + diff --git a/src/op_mode/show_uptime.py b/src/op_mode/uptime.py index b70c60cf8..2ebe6783b 100755 --- a/src/op_mode/show_uptime.py +++ b/src/op_mode/uptime.py @@ -14,7 +14,11 @@  # You should have received a copy of the GNU General Public License  # along with this program.  If not, see <http://www.gnu.org/licenses/>. -def get_uptime_seconds(): +import sys + +import vyos.opmode + +def _get_uptime_seconds():    from re import search    from vyos.util import read_file @@ -23,7 +27,7 @@ def get_uptime_seconds():    return int(float(seconds)) -def get_load_averages(): +def _get_load_averages():      from re import search      from vyos.util import cmd      from vyos.cpu import get_core_count @@ -40,19 +44,17 @@ def get_load_averages():      return res -def get_raw_data(): +def _get_raw_data():      from vyos.util import seconds_to_human      res = {} -    res["uptime_seconds"] = get_uptime_seconds() -    res["uptime"] = seconds_to_human(get_uptime_seconds()) -    res["load_average"] = get_load_averages() +    res["uptime_seconds"] = _get_uptime_seconds() +    res["uptime"] = seconds_to_human(_get_uptime_seconds()) +    res["load_average"] = _get_load_averages()      return res -def get_formatted_output(): -    data = get_raw_data() - +def _get_formatted_output(data):      out = "Uptime: {}\n\n".format(data["uptime"])      avgs = data["load_average"]      out += "Load averages:\n" @@ -62,5 +64,19 @@ def get_formatted_output():      return out +def show(raw: bool): +    uptime_data = _get_raw_data() + +    if raw: +        return uptime_data +    else: +        return _get_formatted_output(uptime_data) +  if __name__ == '__main__': -    print(get_formatted_output()) +    try: +        res = vyos.opmode.run(sys.modules[__name__]) +        if res: +            print(res) +    except (ValueError, vyos.opmode.Error) as e: +        print(e) +        sys.exit(1) diff --git a/src/services/api/graphql/session/composite/system_status.py b/src/services/api/graphql/session/composite/system_status.py index 8dadcc9f3..3c1a3d45b 100755 --- a/src/services/api/graphql/session/composite/system_status.py +++ b/src/services/api/graphql/session/composite/system_status.py @@ -30,8 +30,8 @@ def get_system_version() -> dict:      return show_version.show(raw=True, funny=False)  def get_system_uptime() -> dict: -    show_uptime = load_op_mode_as_module('show_uptime.py') -    return show_uptime.get_raw_data() +    show_uptime = load_op_mode_as_module('uptime.py') +    return show_uptime._get_raw_data()  def get_system_ram_usage() -> dict:      show_ram = load_op_mode_as_module('memory.py') | 
