Warning
This documentation is actively being updated as the project evolves and may not be complete in all areas.
TFTP driver¶
jumpstarter-driver-tftp
provides functionality for a read-only TFTP server
that can be used to serve files.
Installation¶
$ pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple jumpstarter-driver-tftp
Configuration¶
Example configuration:
export:
tftp:
type: jumpstarter_driver_tftp.driver.Tftp
config:
root_dir: /var/lib/tftpboot # Directory to serve files from
host: 192.168.1.100 # Host IP to bind to (optional)
port: 69 # Port to listen on (optional)
remove_created_on_close: true # Clean up temporary boot files (default)
Config parameters¶
Parameter |
Description |
Type |
Required |
Default |
---|---|---|---|---|
root_dir |
Root directory for the TFTP server |
str |
no |
“/var/lib/tftpboot” |
host |
IP address to bind the server to |
str |
no |
auto-detect |
port |
Port number to listen on |
int |
no |
69 |
remove_created_on_close |
Automatically remove created files/directories when driver closes |
bool |
no |
true |
File Management¶
The TFTP server driver automatically tracks files and directories created during the session. By default, remove_created_on_close
is set to true
to clean up temporary boot files automatically. Set to false
if you want to preserve boot files and firmware images that are reused across sessions.
API Reference¶
- class jumpstarter_driver_tftp.client.TftpServerClient¶
Bases:
CompositeClient
Client interface for TFTP Server driver
This client provides methods to control a TFTP server and manage files on it. Supports file operations like uploading from various storage backends through OpenDAL.
- get_host() str ¶
Get the host address the TFTP server is listening on
- Returns:
str: The IP address or hostname the server is bound to
- get_port() int ¶
Get the port number the TFTP server is listening on
- Returns:
int: The port number (default is 69)
- start()¶
Start the TFTP server
Initializes and starts the TFTP server if it’s not already running. The server will listen on the configured host and port.
- stop()¶
Stop the TFTP server
Stops the running TFTP server and releases associated resources.
- Raises:
ServerNotRunning: If the server is not currently running
Exception Classes¶
- class jumpstarter_driver_tftp.driver.TftpError¶
Bases:
Exception
Base exception for TFTP server errors
Examples¶
>>> import tempfile
>>> import os
>>> from jumpstarter_driver_tftp.driver import Tftp
>>> from jumpstarter.common.utils import serve
>>> with tempfile.TemporaryDirectory() as tmp_dir:
... # Create a test file
... test_file = os.path.join(tmp_dir, "test.txt")
... with open(test_file, "w") as f:
... _ = f.write("hello")
...
... # Start TFTP server
... with serve(Tftp(root_dir=tmp_dir, host="127.0.0.1", port=6969)) as tftp:
... tftp.start()
...
... # List files
... files = list(tftp.storage.list("/"))
... assert "test.txt" in files
...
... tftp.stop()