Releases: aruba/pyedgeconnect
Releases · aruba/pyedgeconnect
0.16.0-a1
0.16.0-a1 -- 2024-03-YY
🚀 Features
.. important::
✨✨Preliminary support for Orchestrator 9.3+✨✨:
There were hundreds of changes to Orchestrator API endpoints in 9.3
forward. Logic has been added to the pyedgeconnect Orchestrator class
``init`` and ``login`` functions to capture Orchestrator version
information to then determine corrent endpoint syntax
in further functions.
As part of this update, 280+ pyedgeconnect functions have been updated
for 9.3 support, detailed in the updated and added functions section.
All the logic has been written with cross-compatability in mind so a
majority of existing code using pyedgeconnect should not need to be
rewritten for functions that have been written for 9.3 support.
As an example, let's disect :func:`~pyedgeconnect.Orchestrator.get_api_key`
In use, it takes the single paramter ``name`` for retrieving a
particular API key from Orchestrator
.. code::
orch.get_api_key(name="myKey")
The original source code for this function just had a simple path
with the paramter inline.
.. code::
return self._get(f"/apiKey/{name}")
The updated source code for this and other functions, leverages the
Orchestrator version to determine the apporpriate syntax.
.. code::
if self.orch_version >= 9.3:
path = f"/apiKey?name={name}"
else:
path = f"/apiKey/{name}"
return self._get(path)
- ✨ **A new code example!**: ⚙️ Automate configuring Service Orchestration
for HPE Aruba Networking SSE including automating the location and
tunnels on the SSE platform side. Read through the full
writeup in the examples to kickstart your integration asap!
- ✨ **A new code example!**: 📈 Pull WAN interface minute data from
Orchestrator to CSV files and generate a report calculating 95th
percentile utilization per-appliance as well as per-interface.
Written walkthrough under the examples section.
- ✨ **A new code example!**: 🚀 Pull Boost minute data from
Orchestrator to CSV files per appliance with a simple calculation
to estimate Kbps from the Bytes Boosted value in the original data to
more easily compare to the configured Boost value already in Kbps.
Written walkthrough under the examples section.
- **Updated code example!**: EdgeConnect Telemetry demo now includes
parsing Shaper & Traffic class data.
Updated the following Orchestrator functions from Swagger:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Added updated API endpoint for Orchestrator 9.3+ support
of the following functions, sorted below by their respective
Swagger tags.
ACLS
- :func:`~pyedgeconnect.Orchestrator.get_appliance_acls`
ADMIN_DISTANCE
- :func:`~pyedgeconnect.Orchestrator.get_appliance_admin_distance`
AGGREGATE_STATS
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_tunnels_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_tunnels_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_appliances_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_appliances_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_applications_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_applications_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_traffic_class_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_traffic_class_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_flows_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_active_flows`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_flows_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_dscp_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_dscp_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_dns_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_dns_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_ports_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_ports_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_top_talkers_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_top_talkers_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_top_talkers_split_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_traffic_behavior_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_traffic_behavior_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_jitter_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_jitter_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_drc_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_drc_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_interface_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_interface_overlay_transport_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_mos_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_mos_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_boost_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_boost_single_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_security_policy_ne_pk_list`
- :func:`~pyedgeconnect.Orchestrator.get_aggregate_stats_security_policy_single_appliance`
ALARM
- :func:`~pyedgeconnect.Orchestrator.get_alarms_from_appliances`
- :func:`~pyedgeconnect.Orchestrator.acknolwedge_alarms_from_appliance`
- :func:`~pyedgeconnect.Orchestrator.add_note_to_appliance_alarm`
- :func:`~pyedgeconnect.Orchestrator.clear_alarms_from_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_alarm_count_from_appliance`
- :func:`~pyedgeconnect.Orchestrator.get_alarm_count_orchestrator_or_appliances`
- :func:`~pyedgeconnect.Orchestrator.get_customized_alarm_severity`
- :func:`~pyedgeconnect.Orchestrator.get_customized_alarm_severity_for_type`
- :func:`~pyedgeconnect.Orchestrator.delete_customized_alarm_severity_for_type`
API_KEYS
- :func:`~pyedgeconnect.Orchestrator.get_api_key`
- :func:`~pyedgeconnect.Orchestrator.update_api_key`
- :func:`~pyedgeconnect.Orchestrator.delete_api_key`
APPLIANCE
- :func:`~pyedgeconnect.Orchestrator.get_appliances`
- This function now has an additional filter parameter of ``ne_pk`` so
a single appliance can be retrieved instead of all appliances
- :func:`~pyedgeconnect.Orchestrator.get_appliance_info`
- Raise warning on deprecation for 9.3+, handles same endpoint logic
as :func:`~pyedgeconnect.Orchestrator.get_appliances`
- :func:`~pyedgeconnect.Orchestrator.delete_appliance`
- :func:`~pyedgeconnect.Orchestrator.delete_appliance_for_rediscovery`
- :func:`~pyedgeconnect.Orchestrator.delete_denied_appliances`
- :func:`~pyedgeconnect.Orchestrator.add_and_approve_discovered_appliances`
- :func:`~pyedgeconnect.Orchestrator.add_discovered_appliances`
- :func:`~pyedgeconnect.Orchestrator.deny_appliance`
- :func:`~pyedgeconnect.Orchestrator.rediscover_denied_appliance`
- :func:`~pyedgeconnect.Orchestrator.change_appliance_credentials`
- :func:`~pyedgeconnect.Orchestrator.appliance_get_api`
- :func:`~pyedgeconnect.Orchestrator.appliance_post_api`
- :func:`~pyedgeconnect.Orchestrator.appliance_delete_api`
- :func:`~pyedgeconnect.Orchestrator.get_appliance_dns_cache_config`
APPLIANCE_BACKUP
- :func:`~pyedgeconnect.Orchestrator.backup_appliance_config`
- :func:`~pyedgeconnect.Orchestrator.get_appliance_backup_history`
- :func:`~pyedgeconnect.Orchestrator.delete_appliance_backup`
- :func:`~pyedgeconnect.Orchestrator.restore_appliance_from_backup`
APPLIANCE_EXTRA_INFO
- :func:`~pyedgeconnect.Orchestrator.get_appliance_extra_info`
- :func:`~pyedgeconnect.Orchestrator.set_appliance_extra_info`
- :func:`~pyedgeconnect.Orchestrator.delete_appliance_extra_info`
APPLIANCE_PRECONFIG
- :func:`~pyedgeconnect.Orchestrator.modify_preconfig`
- :func:`~pyedgeconnect.Orchestrator.delete_preconfig`
- :func:`~pyedgeconnect.Orchestrator.approve_and_apply_preconfig`
- :func:`~pyedgeconnect.Orchestrator.apply_preconfig_to_existing`
- :func:`~pyedgeconnect.Orchestrator.get_apply_preconfig_status`
APPLIANCE_RESYNC
- :func:`~pyedgeconnect.Orchestrator.appliance_resync`
APPLIANCES_SOFTWARE_VERSIONS
- :func:`~pyedgeconnect.Orchestrator.get_appliance_software_version`
APPLIANCE_UPGRADE
- :func:`~pyedgeconnect.Orchestrator.delete_ecos_image`
APPLICATION_DEFINITION
- :func:`~pyedgeconnect.Orchestrator.update_user_defined_app_port_protocol`
- :func:`~pyedgeconnect.Orchestrator.delete_user_defined_app_port_protocol`
- :func:`~pyedgeconnect.Orchestrator.update_user_defined_app_dns_classification`
- :func:`~pyedgeconnect.Orchestrator.delete_user_defined_app_dns_classification`
- :func:`~pyedgeconnect.Orchestrator.post_user_defined_app_address_map`
- :func:`~pyedgeconnect.Orchestrator.delete_user_defined_app_address_map`
- :func:`~pyedgeconnect.Orchestrator.post_user_defined_app_meter_flow`
- :func:`~pyedgeconnect.Orchestrator.delete_user_defined_app_meter_flow`
APP_SYSTEM_DEPLOY_INFO
- :func:`~pyedgeconnect.Orchestrator.get_appliance_system_deployment_info`
APP_SYSTEM_STATE_INFO
- :func:`~pyedgeconnect.Orchestrator.get_appliance_system_state_info`
AUTHENTICATION
- :func:`~pyedgeconnect.Orchestrator.get_appliance_auth_information`
BANNERS
- :func:`~pyedgeconnect.Orchestrator.get_appliance_login_banners`
BGP
- :func:`~pyedgeconnect.Orchestrator.get_appliance_bgp_config`
- :func:`~pyedgeconnect.Orchestrator.get_appliance_bgp_config_all_vrfs`
- :fun...
0.15.4-a1
0.15.4-a1 -- 2023-01-30
🚀 Features
✨ **A new home!**: Pyedgeconnect will now be maintained going forward
on the [Aruba GitHub](https://github.com/aruba/pyedgeconnect)
✨ **A new video!**: Video walkthrough explaining and demonstrating the
EdgeConnect Telemetry code demo has been published,
[check it out](https://youtu.be/tiMdGB-exrg)!
✨ **A new code example!**: Automatically update port forwarding
rules on an appliance with a DHCP-addressed WAN interface to true up
discrepencies when the WAN IP address may have changed and requires
the destination address in the inbound port forwarding rules to be
updated.
Updated the following Orchestrator functions from Swagger:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- :func:`~pyedgeconnect.Orchestrator.broadcast_cli` Updated return type
from ``bool`` to ``text`` forso that result can be retrieved using
returned key string with
:func:`~pyedgeconnect.Orchestrator.get_audit_log_task_status`
- :func:`~pyedgeconnect.Orchestrator.get_appliance_template_history`
Updated type hint for parameter ``latest`` to ``str`` from ``bool``
Added the following EdgeConnect functions from Swagger:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- :func:`~pyedgeconnect.EdgeConnect.get_appliance_flow_bandwidth_stats`
- :func:`~pyedgeconnect.EdgeConnect.get_appliance_flow_details`
- :func:`~pyedgeconnect.EdgeConnect.get_appliance_flow_details_verbose`
- :func:`~pyedgeconnect.EdgeConnect.get_appliance_flows`
- :func:`~pyedgeconnect.EdgeConnect.reclassify_flows`
- :func:`~pyedgeconnect.EdgeConnect.reset_flows`
- :func:`~pyedgeconnect.EdgeConnect.get_port_forwarding_rules`
- :func:`~pyedgeconnect.EdgeConnect.set_port_forwarding_rules`
- :func:`~pyedgeconnect.EdgeConnect.set_gms_marked_port_forwarding_rules`
- :func:`~pyedgeconnect.EdgeConnect.run_ping_or_traceroute`
- :func:`~pyedgeconnect.EdgeConnect.get_ping_or_traceroute`
- :func:`~pyedgeconnect.EdgeConnect.stop_ping_or_traceroute`
- :func:`pyedgeconnect.EdgeConnect.get_appliance_nexthops`
🐛 Bug Fixes
💥 Breaking Changes:
- Corrected function name for :func:`~pyedgeconnect.EdgeConnect.get_vrrp_interfaces`
which previously was missing `c` in `interfaces`
🧰 Maintenance / Other
- Within the EdgeConnect Telemetry Demo code example: fix ``Total Flows``
calculation for tunnel at bottom of ``EdgeConnect Telemetry``
dashboard
🐛 Known Issues
.. warning::
The following two functions for the _ip_objects submodule exprience
errors at this time. These function do work in the Orchestrator UI:
:func:`~pyedgeconnect.Orchestrator.bulk_upload_address_group` and
:func:`~pyedgeconnect.Orchestrator.bulk_upload_service_group`