Import and Export functionality#
Author: Sam Eure
April 4, 2025
Import#
Import from an export file#
[ ]:
import time
from air_sdk import AirApi
from air_sdk.endpoints import Simulation
api = AirApi.with_ngc_config()
# Or use SAK directly
# api = AirApi.with_api_key(api_key='nvapi-xyz')
file_path = '../files/exports/export_without_oob.json'
sim: Simulation = api.simulations.import_from_export(file_path)
print(f'Current state of simulation: {sim.state}')
print('waiting for simulation to finish importing...', end='')
while sim.state == 'IMPORTING':
sim.refresh()
time.sleep(1)
print('.', end='')
print()
print(f'Current state of simulation: {sim.state}')
Current state of simulation: IMPORTING
waiting for simulation to finish importing....
Current state of simulation: INACTIVE
Import from data#
[11]:
import time
from air_sdk.endpoints import Simulation
ztp_script_path = '../files/ztp/basic_script.sh'
with open(ztp_script_path, 'r') as f:
ztp_script = f.read()
json_data = {
'format': 'JSON',
'name': 'JSON Sim',
'content': {
'nodes': {
'node1': {
'cpu': 2,
'memory': 1024,
'storage': 10,
'os': 'generic/ubuntu2204',
'cpu_arch': 'x86',
},
},
'oob': False,
},
'ztp': ztp_script,
}
sim: Simulation = api.simulations.import_from_data(**json_data)
print(f'Current state of simulation: {sim.state}')
print('waiting for simulation to finish importing...', end='')
while sim.state == 'IMPORTING':
sim.refresh()
time.sleep(1)
print('.', end='')
print()
print(f'Current state of simulation: {sim.state}')
Current state of simulation: IMPORTING
waiting for simulation to finish importing....
Current state of simulation: INACTIVE
Export#
Export an existing simulation#
[ ]:
import json
from air_sdk.endpoints import Simulation
sim_id = ... # Replace with your simulation ID
sim: Simulation = api.simulations.get(sim_id)
export_data = sim.export()
with open('my_export.json', 'w') as f:
json.dump(export_data, f)