CHANGELOG
All notable changes to this project will be documented in this file. This project’s version numbers will follow the latest NETLAB+ VE server version.
24.0.0 (2025-9-5)
Add the ‘netlab build’ command.
23.2.0 (2025-8-21)
Added
Add
TemplateRequiredForLinkedCloneErrorAdd
SnapshotNotSupportedError
Changed
Snapshot behavior has changed. Previously, the existing snapshot name was used from the source pod. Now the snapshot name will default to GOLDEN.
23.1.0 (2025-8-12)
Added
Added
PodCategory.TEMPLATE_VM
23.0.0 (2025-7-3)
Changed
Stuctured logging used internally.
Change how vm names are constructed while cloning pods.
22.6.0 (2024-10-23)
Fixed
Improve usage of –system flag in the cli.
Fix system.usage.disk documentation.
22.5.0 (2024-9-16)
Added
Added tests for python 3.12.
PYTHONssl_ciphers optionAdd
netlab debugAdd alias for ‘ssl’ config: ‘noverify’ to ‘self_signed’. ‘self_signed’ will be deprecated.
Removed
Remove dependency on
typing_extentions.Remove dependency on
importlib_metadata.
Fixed
Improve handling of csv keys.
22.4.0 (2023-02-15)
Added
Add
lab_exercise_list.
Fixed
Fix double documentation entries.
Removed
Remove python 3.7 support.
21.5.0 (2023-01-09)
Fixed
Version specifier upperbound is set to
python<4.
21.4.0 (2022-07-05)
Added
New
'self_signed'ssl option that disables hostname checks.
Fixed
Version specifier now includes all Python 3.10
21.3.0 (2022-01-05)
Added
An
ssl.SSLContextmay now be passed for complete control over the connection.Remove the ability to disable ssl.
Remove python 3.6 support.
21.2.0 (2021-10-14)
Added
ssl_ciphersoption toNETLAB+ configPython 3.10support
Fixed
a bug in the CLI error handling
missing
pc_clone_specsattributesSSL errors when using Python 3.10
21.1.2.4 (2021-06-17)
Changed
typing and docs of
vm_snapshot_get_treetyping and docs of
vm_snapshot_get_listtyping and docs of
reservation_timeslot_adjusterhow the SDK finds the config file – should not affect most users
Added
Removed
Fixed
docs and types on
reservation_make
21.1.2.2 (2021-06-10)
Changed
documentation structure. Includes a new Getting Started guide
pod_get: addVMAllocdocs
Added
netlab.async_client.NetlabClientPython 3.9supportmypy supportnew methods:
class_roster_get,class_roster_team_update,reservation_plan,vm_host_perf_realtime_list,system_perf_queryteamparameter toreservation_make
Removed
netlab.client.Clienthas been deprecated. Please usenetlab.sync_client.SyncClientornetlab.async_client.NetlabClient.Python 3.5 support. It has reached
End of Life. If you’re still using Python 3.5, you should consider upgrading to the current version. Newer versions of Python have many new features, performance improvements, and bug fixes, which should all serve to enhance your Python programming experience.
20.4.1.0 - (2020-09-14)
Changed
ex_idis now a required parameter in thereservation_makemethod
Fixed
pod_clone_taskwill now run when pc_type is ABSENT
Added
Python 3.8support
Removed
Python 3.4 support. It has reached
End of Life. If you’re still using Python 3.4, you should consider upgrading to the current version. Newer versions of Python have many new features, performance improvements, and bug fixes, which should all serve to enhance your Python programming experience
19.1.1.0 - (2019-04-05)
Fixed
Add setuptools minimum python version. Will now print a warning if user tries to install with python version < 3.4
19.0.0.0 - (2019-02-14)
Added
new
pod_getpropertyvm_alloc
Removed
remove
pod_getpropertypod_csw_base_port
18.7.1.0 - (2018-09-13)
Added
Python 3.7support.new method
user_session_keepalive(requires NETLAB+ server version 18.2.0 or greater)new method
vm_inventory_import_tasknew method
vm_clone_task
Deprecated
method
vm.inventory.add, please usevm_inventory_import_taskinstead
Fixed
timedeltaserializer
18.2.0.2 - (2018-06-21)
Added
additional exceptions
PodNotActiveError,PodTypeIncompatibleError, andReservationTimeInsufficientErrorserializer to turn NETLAB+’s DHMS fields into Python
timedeltaobjects
18.2.0.1 - (2018-04-26)
Fixed
user_community_updatecausing all undefined params to be set to null.usage of
user_account_searchinrecurring_reservations.pysample script
Added
example of using Pod ACLs in
pod_acl.pysample script
18.2.0.0 - (2018-02-26)
Added
vm_license_listmethodvm_license_update_taskmethod
Changed
intfields with no value are now cast to 0 (zero)
18.1.0.1 - (2018-02-14)
Fixed
Serialization and deserialization of
pod_dyn_vlanattribute onpod_listmethod
18.1.0.0 - (2018-02-13)
Added
vm_inventory_remove_localmethodvm_inventory_remove_disk_taskmethodvm_inventory_remove_datacenter_taskmethodreservation_extendmethodcls_ext_slots_per_resparameter toclass_updatecom_ext_slots_per_resparameter touser_community_update
Fixed
Documentation for
user_account_searchmethod
17.3.15.0 - (2018-01-19)
Added
New sample PRTG sensor netlab_pod_usage.py
Add
TEMPLATEtonetlab.enums.VirtualMachineRoleenum.
17.3.11.1 - (2017-11-13)
Added
New method
pod_update
17.3.11.0 - (2017-10-24)
Fixed
Serializer was trying to convert an integer to a datetime for the fields
endandstart
17.3.9.0 - (2017-10-10)
Changed
CHANGELOG from markdown to RST
Added
CHANGELOG to sphinx docs
Missing parameters (
vm_path,vm_vendor_os_name,vm_netlab_os_id,vm_parent_id,vm_parent_snapname) tovm_inventory_addNew method
pod_pc_updateBetter explanation of
vm_snapshotto documentation
Fixed
Documentation formatting for
vm_inventory_add,vm_snapshot_get_listandvm_snapshot_get_tree
17.2.3.2 - (2017-09-20)
Fixed
Change
VirtualMachineDatacenterNotFoundUniquetoVirtualMachineDatacenterNotUniqueErrorinnetlab.errors.vmVersion comparison when talking to a server in the 17.3.*.RG releases
vm_datacenter_finddid not work as expected. Rewritten to mimicvm_host_findin behavior
Updated
The sample.py to use
clone_vh_idin the PC clone specs examples
Added
New method
vm_host_findto retrieve the vh_id when you only have the vh_name
17.2.3.1 - (2017-08-11)
Fixed
Updated docs and example in
pod_clone_taskAdd validation to
pod_clone_task
17.2.3.0 - (2017-08-09)
Fixed
Typo in
AuthenticationErrorexception message
17.1.8.0 - (2017-06-22)
Added
user_account_search_iterwhich combines the power ofuser_account_searchwith the familiarity ofuser_account_listbut uses a generator to efficiently handle paging
Changed
user_account_listnow returns a list, undoing the proceeding release change
17.1.6.0 - (2017-06-14)
Added
- Methods for vm snapshots
PowerStateenumvm_inventory_addmethodvm_snapshot_addmethodvm_snapshot_editmethodvm_snapshot_get_listmethodvm_snapshot_get_treemethodvm_snapshot_removemethodvm_snapshot_revertmethod
Changed
user_account_listto make many small requests using user.account.searchuser_account_listnow returns a generator
17.1.4.1 - (2017-06-07)
Fixed
setup.py wasn’t packaging netlab.enums module
17.1.4.0 - (2017-06-05)
Fixed
Unit type to ‘Percent’ in PRTG sample script for CPU so that gauages work properly
sys_maint_ends property is now a date instead of datetime
Pod clone specs in sample.py uses dictionary syntax now, so the specs apply to all VMs in the pod
Added
Methods for managing timezones NETLAB+ is aware of,
system_time_timezone_getandsystem_time_timezone_listuser_account_searchmethod and new exceptions
Changed
HDR Severity and Status are now Enums
CSV types and other limted sets of values are now Enums
pod_clone_tasknow returns HDR Result for server versions 17.1.4 and laterReturn results for
pod_remove_taskare now backwards compatible with versions below 17.1.3
Removed
user_account_filter, its functionality has been replaced with the server side methoduser_account_search
17.1.3.1 - (2017-04-27)
Fixed
sample.py script for removing pods. Switched to use HDR result
serialization of date types before sending to NETLAB+
situations where
user_community_findcan return None
Added
User settings for
user_account_add,user_account_get,user_account_updateSample code for creating PRTG custom sensors for CPU, Disk and Memory usage
Server version checking. The system usage methods require a minimum server version
17.1.3.0 - (2017-04-13)
Added
New methods
system.usage.cpu,system.usage.disk,system.usage.memoryNew properties cpu_n and uptime_sec to
system.status.get
Removed
notify_completeandotify_progress parameterstopod_remove_task
Changed
pod.remove.taskrefactored to use HDR resultS3 bucket to ‘netlab-py’
properties param to use default/all style for the following methods:
class_list,class_get,class_roster_list,pod_get,pod_types_get,pod_types_list,user_community_get,user_community_list
Fixed
Make sure config file path exists before writing to it.
17.1.2.4 - (2017-02-23)
Fixed
Setup.py not installing all netlab modules properly
17.1.2.3 - (2017-02-23)
Fixed
PC Clone specs handling of clone_snapshot to use existing VM if not specified
Use project JSON serializer in CLI api subcommand. Handles dates and other types specific to NETLAB.
Added
User import sample script. Reads from a CSV file.
Changed
res_timeslot_adjusterhas been changed to a static method and renamed toreservation_timeslot_adjuster. It is no longer used byreservervation_makeandend_timemust reside on a time slot boundary (hour or half hour).Renamed the
tround_lowparameter ofreservation_timeslot_adjusterto beround_low.Made
'ALL'the default scope forreservation_query.
17.1.2.2 - (2017-02-13)
Fixed
PC Clone specs handling of
source_snapshotto use existing VM if not specifiedDisplay error if the number of PC Clone specs doesn’t match the number of VMs to clone
17.1.2.1 - (2017-02-13)
Changed
CLI uses proper exit codes after errors
Fixed
Pc Clone specs handling of
clone_name
17.1.2.0 - (2017-02-10)
Added
Docs are built and published to S3 at same time package is built and published
CLI api subcommand
--outputto change how output is displayed. Options:table,csv,tsv,jsonandvarCLI config subcommand
--alloption to remove all settings from config.jsonIndividual exceptions for each NETLAB+ error
Add exceptions to documenation
Changed
vm_datacenter_listnow uses the native API method vm.datacenter.listCHANGELOGmoved to its own file
17.1.1.1 - (2017-02-06)
Fixed
Documentation for properties in
class_get,class_list, andreservation_get
Removed
No longer includes the
long_descriptionmetadata parameter in setup.py
17.1.1.0 - (2017-02-06)
Added
MIT License
Pod ACL methods
Spinx autogenerates docs from docstrings of API methods
netlab configCLI subcommand for managing config.jsonnetlab apiCLI subcommand for interacting with the NETLAB+ API
Fixed
netlab versionCLI subcommand properly returns versions now
Changed
All properties that should be integers are coerced to the
inttype, i.e.acc_id, `com_id, etc. Previously they could sometimes be returned as strings.
Removed
To ensure consistency with method return values,
what_ifis no longer a parameter.
17.1.0.0 - (2017-01-23)
Added
All methods and documentation for initial public release.