OXIESEC PANEL
- Current Dir:
/
/
snap
/
core
/
17200
/
usr
/
share
/
subiquity
/
subiquitycore
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/18/2024 07:58:21 PM
rwxr-xr-x
📄
__init__.py
736 bytes
08/23/2016 01:53:31 PM
rw-r--r--
📄
controller.py
2.55 KB
01/20/2017 01:59:19 AM
rw-r--r--
📁
controllers
-
02/18/2024 07:58:21 PM
rwxr-xr-x
📄
core.py
5.39 KB
03/20/2017 01:51:00 AM
rw-r--r--
📄
log.py
1.53 KB
01/20/2017 01:59:19 AM
rw-r--r--
📁
models
-
02/18/2024 07:58:20 PM
rwxr-xr-x
📄
palette.py
3.26 KB
08/23/2016 01:53:31 PM
rw-r--r--
📄
prober.py
2.3 KB
11/08/2016 11:38:01 PM
rw-r--r--
📄
signals.py
4.52 KB
01/20/2017 01:59:19 AM
rw-r--r--
📁
ui
-
02/18/2024 07:58:21 PM
rwxr-xr-x
📄
user.py
2.32 KB
01/25/2017 10:16:04 PM
rw-r--r--
📄
utils.py
5.64 KB
03/24/2017 12:28:59 AM
rw-r--r--
📄
view.py
1.53 KB
03/15/2017 11:20:58 PM
rw-r--r--
Editing: prober.py
Close
# Copyright 2015 Canonical, Ltd. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import logging import yaml import os from probert.storage import (Storage, StorageInfo) log = logging.getLogger('subiquitycore.prober') class ProberException(Exception): '''Base Prober Exception''' pass class Prober(): def __init__(self, opts): self.opts = opts self.probe_data = {} if self.opts.machine_config: log.debug('User specified machine_config: {}'.format( self.opts.machine_config)) if os.path.exists(self.opts.machine_config): self.probe_data = \ self._load_machine_config(self.opts.machine_config) log.debug('Prober() init finished, data:{}'.format(self.probe_data)) def _load_machine_config(self, machine_config): with open(machine_config) as mc: try: data = yaml.safe_load(mc) except (UnicodeDecodeError, yaml.reader.ReaderError): err = 'Failed to parse machine config' log.exception(err) raise ProberException(err) return data def get_storage(self): ''' Load a StorageInfo class. Probe if it's not present ''' if 'storage' not in self.probe_data: log.debug('get_storage: no storage in probe_data, fetching') storage = Storage() results = storage.probe() self.probe_data['storage'] = results return self.probe_data['storage'] def get_storage_info(self, device): ''' Load a StorageInfo class for specified device ''' return StorageInfo({device: self.get_storage().get(device)})