Fileserv
- class activelogic.Fileserv
This is the resource that gives access to the “Fileserv” on an ActiveLogic system. It provides a way to download/upload files of different types from/to an ActiveLogic system.
- async Fileserv.list(cls, **kwargs)
Generic list function for all kinds of data that belongs to this resource.
- Parameters:
cls – Object type that determines what kind of data to get.
- Returns:
A list of given dataclass type.
- Raises:
TypeError – Unknown file type
The following data can be listed from this resource:
FileservFileType: Lists all file types (directories) available on the system.
FileservFile: Lists all files of specified type available. The below is the mandatory key value argument:
ftype (FileservFileType or int or str): The FileservFileType or ID or name of the Fileserv type.
>>> fs.list(FileservFileType) [FileservFileType(id=0, name='Host trigger files'), FileservFileType(id=1, name='Firewall trigger files'), ...] >>> fs.list(FileservFile, ftype=FileservArea.SNMP_MIB) [FileservFile(name=b'PACKETLOGIC-HW-MIB', size=607), ...] >>> fs.list(FileservFile, ftype=6) [FileservFile(name=b'PACKETLOGIC-HW-MIB', size=607), ...] >>> fs.list(FileservFile, ftype='SNMP') [FileservFile(name=b'PACKETLOGIC-HW-MIB', size=607), ...]
- class activelogic.FileservArea
Defines set of constants for in which area of the file system different file types belong.
Each area of the file system may be home of multiple file types.
- Variables:
HOSTTRIGGER – File in the “Host trigger files” area.
FWTRIGGER – File in the “Firewall trigger files” area.
DHCP_SNOOPER – File in the “DHCP snooper files” area.
RADIUS_SNOOPER – File in the “RADIUS snooper files” area.
SIP_SNOOPER – File in the “SIP snooper files” area.
CUSTOM_SNOOPER – File in the “Custom snooper files” area.
SNMP_MIB – File in the “SNMP” files area.
DOCUMENTATION – File in the “Documentation” area.
PCAP_1 – File in the “PCAP writer files” area.
PCAP_2 – File in the “PCAP-2 writer files” area.
FIRMWARE_UPLOAD – File in the “Firmware upgrade files” area.
LICENSE_UPLOAD – File in the “Generic update files” area.
GENERIC_UPLOAD – File in the “Generic update files” area.
SHAPER_LOADS – File in the “Shaper load files” area.
KAFKA – File in the “Kafka” area.
ATTRIBUTES – File in the “Attribute descriptions” file area.
BOOKMARKS – File in the “Bookmarks” file area.
VSDEFINITIONS – File in the “Virtual services definition files” file area.
SYSDIAGTRIGGER – File in the “System diagnostics triggers” file area.
SUPPORTBUNDLE – File in the “CLI provided backups” file area.
URLDATA – File in the “URL data files” file area.
CONNPROT_TRIGGER – File in the “Connection protection trigger files” file area.
DEBUG – File in the “System debugging data” file area.
FIRMWARE_CLI – File in the “CLI files” area.
PCAP_3 – File in the “PCAP-3 writer files” file area.
PCAP_4 – File in the “PCAP-4 writer files” file area.
PCAP_5 – File in the “PCAP-5 writer files” file area.
PCAP_6 – File in the “PCAP-6 writer files” file area.
PCAP_7 – File in the “PCAP-7 writer files” file area.
PCAP_8 – File in the “PCAP-8 writer files” file area.
TCPDUMP – File in the “CLI tcpdump files” file area.
- class activelogic.FileservFileType
Object representing information about a Fileserv file type.
- Parameters:
id (int) – The ID of the Fileserv file type.
name (str) – The name associated with the Fileserv file type.
- class activelogic.FileservFile
Object representing information about a Fileserv file.
- Parameters:
name (str) – The name of the Fileserv file of a given type.
size (int) – The size of the file bytes.
Downloading, uploading and removing files
- async Fileserv.download(ftype, fname, *, ofile_obj=None, dest_path=None)
Download a specific file. The file to which the downloaded data is to be written to can be either a file object opened in binary mode or the path of the file to write to.
- Parameters:
ftype (
FileservFileType
or int or str) – The FileservFileType or ID or name of the Fileserv type.fname (str) – The name of the file to be downloaded.
ofile_obj (python file object) – The python file object of the file to which the downloaded data is written to.
dest_path (str or
pathlib.Path
) – The path of the file to which the downloaded data is written to.
- Raises:
TypeError – fname must be of str type
TypeError – ofile_obj must be a file object
TypeError – ofile_obj must be writable
TypeError – dest_path must be an instance of str or pathlib.Path
TypeError – One of ofile_obj, dest_path must be provided
TypeError – Either one of ofile_obj, dest_path must be provided but not both
PLDBError – Failed to download the file
TypeError – ofile_obj must be opened in binary mode to download text/binary files.
The file object ofile_obj must be opened in binary writable mode to download text/binary files.
>>> fs = conn.fileserv() >>> with open('testfile', 'wb+') as testfile: ... fs.download(FileservArea.SNMP_MIB, 'PACKETLOGIC-HW-MIB', ofile_obj=testfile) >>> fs.download(FileservArea.SNMP_MIB, 'PACKETLOGIC-HW-MIB', dest_path='temp_file')
BytesIO objects could also be used to download files.
>>> f = io.BytesIO() >>> fs.download(FileservArea.PCAP_1, 'capture.pcap', ofile_obj=f) >>> f.close()
- async Fileserv.upload(ftype, fname, *, ifile_obj=None, in_path=None)
Upload a specific file. The file from which data to be uploaded is read from can be specified with either a file object opened in binary mode or path of the input file.
- Parameters:
ftype (
FileservFileType
or int or str) – The FileservFileType or ID or name of the Fileserv type.fname (str) – The name of the the file to be uploaded.
ifile_obj (python file object) – The file object of the input file to be to be uploaded.
in_path (str or
pathlib.Path
) – The path of the file from which data is to be read for upload.
- Raises:
TypeError – fname must be of str type
TypeError – in_path must an instance of type str or pathlib.Path
TypeError – One of ifile_obj, in_path must be provided
TypeError – Either one of ifile_obj, in_path must be provided but not both
TypeError – ifile_obj must be a non-None python file object
TypeError – ifile_obj must be a readable file
TypeError – ifile_obj must be opened in binary mode
TypeError – Input file must be a non-empty file
FileNotFoundError – The file pointed by in_path is not found
The input file object must be opened in binary mode before calling this method so as to be to upload both text and binary files.
>>> fs = conn.fileserv() >>> with open('testfile', 'rb') as testfile: ... fs.upload(FileservArea.FIRMWARE_CLI, 'Testfile', ifile_obj=testfile) >>> fs.upload(FileservArea.FIRMWARE_CLI, 'Testfile_', in_path='test_path')
- async Fileserv.remove(ftype, fname)
Remove a specified file from Fileserv.
- Parameters:
ftype (
FileservFileType
or int or str) – The FileservFileType or ID or name of the Fileserv type.fname (str) – The name of the the file to be removed.
- Raises:
>>> fs = conn.fileserv() >>> fs.remove(FileservArea.FIRMWARE_CLI, 'Testfile')