87 lines
1.9 KiB
Python
87 lines
1.9 KiB
Python
import os
|
|
|
|
from ndct.core.crypt import Crypt
|
|
from ndct.core.log import log
|
|
from ndct.core.paths import DB_PATH
|
|
|
|
devices = []
|
|
|
|
class Device():
|
|
def __init__(self, name, ip, username, password, os):
|
|
'''
|
|
Takes:
|
|
name: Device name
|
|
ip: IP address of the device
|
|
user: Username to use for device connection
|
|
password: Password to use for device connection authentication
|
|
os: Operating system of the device
|
|
'''
|
|
self.name = name
|
|
self.ip = ip
|
|
self.username = username
|
|
self.password = password
|
|
self.os = os
|
|
|
|
def all(self):
|
|
'''
|
|
Summary:
|
|
Gets the contents of a Device instance.
|
|
|
|
Returns:
|
|
Device instance contents in dictionairy form
|
|
'''
|
|
return self.__dict__
|
|
|
|
@staticmethod
|
|
def get_devices_from_file():
|
|
'''
|
|
Summary:
|
|
Gets device data from an encrypted file and creates an object stored in the devices list.
|
|
'''
|
|
if os.path.isfile(DB_PATH + 'devices'):
|
|
devices_temp_file = Crypt.get_encrypted_file_contents('devices')
|
|
for device in devices_temp_file:
|
|
device_object = Device(
|
|
device['name'],
|
|
device['ip'],
|
|
device['username'],
|
|
device['password'],
|
|
device['os']
|
|
)
|
|
devices.append({device['name']: device_object})
|
|
log('Got devices from file', 'info')
|
|
else:
|
|
log('No devices to get from file', 'info')
|
|
|
|
@staticmethod
|
|
def save_devices_to_file():
|
|
'''
|
|
Summary:
|
|
Saves device data to an encrypted file.
|
|
'''
|
|
devices_to_save = []
|
|
|
|
for device in devices:
|
|
for device_name, device_object in device.items():
|
|
devices_to_save.append(device_object.all())
|
|
|
|
Crypt.create_encrypted_file('devices', devices_to_save)
|
|
|
|
log('Saved devices to file', 'info')
|
|
|
|
@staticmethod
|
|
def get_device_information(device_name):
|
|
'''
|
|
Summary:
|
|
Gets the contents of a Device instance.
|
|
|
|
Returns:
|
|
Device instance contents in dictionairy form.
|
|
'''
|
|
for device in devices:
|
|
if device_name in device:
|
|
device_information = device[device_name].all()
|
|
return device_information
|
|
|
|
return None
|