videoipath-automation-tool 0.2.4.dev182__tar.gz → 0.2.4.dev185__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/PKG-INFO +1 -1
  2. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/pyproject.toml +1 -1
  3. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/app/app.py +11 -1
  4. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/inventory_api.py +17 -2
  5. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/LICENSE +0 -0
  6. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/README.md +0 -0
  7. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/__init__.py +0 -0
  8. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/__init__.py +0 -0
  9. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/__init__.py +0 -0
  10. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/app/__init__.py +0 -0
  11. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/app/create_device.py +0 -0
  12. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/app/create_device_from_discovered_device.py +0 -0
  13. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/app/get_device.py +0 -0
  14. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/inventory_utils.py +0 -0
  15. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/__init__.py +0 -0
  16. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/device_status.py +0 -0
  17. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/driver_schema/2023.4.2.json +0 -0
  18. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/driver_schema/2023.4.35.json +0 -0
  19. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/driver_schema/2024.1.4.json +0 -0
  20. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/driver_schema/2024.3.3.json +0 -0
  21. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/driver_schema/README.md +0 -0
  22. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/drivers.py +0 -0
  23. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/inventory_device.py +0 -0
  24. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/inventory_device_configuration.py +0 -0
  25. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/inventory_device_configuration_compare.py +0 -0
  26. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/inventory_discovered_device.py +0 -0
  27. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/inventory/model/inventory_request_rpc.py +0 -0
  28. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/__init__.py +0 -0
  29. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/model/__init__.py +0 -0
  30. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/model/allocator_pools_models.py +0 -0
  31. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/model/interface_item.py +0 -0
  32. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/model/license_models.py +0 -0
  33. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/model/package_item.py +0 -0
  34. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/preferences_api.py +0 -0
  35. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/preferences_app.py +0 -0
  36. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/sections/apps.py +0 -0
  37. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/sections/license.py +0 -0
  38. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/sections/packages_and_certificates.py +0 -0
  39. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/preferences/sections/system_configuration.py +0 -0
  40. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/__init__.py +0 -0
  41. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/model/__init__.py +0 -0
  42. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/model/profile_model.py +0 -0
  43. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/model/schema_custom.json +0 -0
  44. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/profile_api.py +0 -0
  45. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/profile/profile_app.py +0 -0
  46. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/__init__.py +0 -0
  47. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/helper/__init__.py +0 -0
  48. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/helper/placement.py +0 -0
  49. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/__init__.py +0 -0
  50. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/actions/__init__.py +0 -0
  51. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/actions/validate_topology_update.py +0 -0
  52. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/__init__.py +0 -0
  53. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/n_graph_schema/2023.4.2_nGraphSchemaFlat.json +0 -0
  54. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/n_graph_schema/2023.4.2_nGraphSchemaRef.json +0 -0
  55. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/n_graph_schema/2024.1.4_nGraphSchemaFlat.json +0 -0
  56. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/n_graph_schema/README.md +0 -0
  57. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_base_device.py +0 -0
  58. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_codec_vertex.py +0 -0
  59. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_generic_vertex.py +0 -0
  60. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_ip_vertex.py +0 -0
  61. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_n_graph_element.py +0 -0
  62. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_unidirectional_edge.py +0 -0
  63. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/n_graph_elements/topology_vertex.py +0 -0
  64. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/topology_device.py +0 -0
  65. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/topology_device_configuration.py +0 -0
  66. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/model/topology_device_configuration_compare.py +0 -0
  67. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/topology_api.py +0 -0
  68. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/topology/topology_app.py +0 -0
  69. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/apps/videoipath_app.py +0 -0
  70. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/__init__.py +0 -0
  71. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/models/__init__.py +0 -0
  72. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/models/request_rest_v2.py +0 -0
  73. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/models/request_rpc.py +0 -0
  74. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/models/response_rest_v2.py +0 -0
  75. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/models/response_rpc.py +0 -0
  76. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/vip_base_connector.py +0 -0
  77. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/vip_connector.py +0 -0
  78. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/vip_rest_connector.py +0 -0
  79. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/connector/vip_rpc_connector.py +0 -0
  80. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/settings.py +0 -0
  81. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/utils/__init__.py +0 -0
  82. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/utils/cross_app_utils.py +0 -0
  83. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/utils/custom_warnings.py +0 -0
  84. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/validators/__init__.py +0 -0
  85. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/validators/alarm_filter.py +0 -0
  86. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/validators/device_id.py +0 -0
  87. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/validators/device_id_including_virtual.py +0 -0
  88. {videoipath_automation_tool-0.2.4.dev182 → videoipath_automation_tool-0.2.4.dev185}/src/videoipath_automation_tool/validators/virtual_device_id.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: videoipath-automation-tool
3
- Version: 0.2.4.dev182
3
+ Version: 0.2.4.dev185
4
4
  Summary: A Python package for automating VideoIPath configuration workflows.
5
5
  License: AGPL-3.0-only
6
6
  Keywords: videoipath,automation,nevion,media-over-ip,st2110,orchestration
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "videoipath-automation-tool"
3
- version = "0.2.4.dev182"
3
+ version = "0.2.4.dev185"
4
4
  description = "A Python package for automating VideoIPath configuration workflows."
5
5
  license = { text = "AGPL-3.0-only" }
6
6
  license-files = ["LICENSE"]
@@ -9,7 +9,7 @@ from videoipath_automation_tool.apps.inventory.app.create_device_from_discovered
9
9
  )
10
10
  from videoipath_automation_tool.apps.inventory.app.get_device import InventoryGetDeviceMixin
11
11
  from videoipath_automation_tool.apps.inventory.inventory_api import InventoryAPI
12
- from videoipath_automation_tool.apps.inventory.model.drivers import CustomSettings, CustomSettingsType
12
+ from videoipath_automation_tool.apps.inventory.model.drivers import CustomSettings, CustomSettingsType, DriverLiteral
13
13
  from videoipath_automation_tool.apps.inventory.model.inventory_device import InventoryDevice
14
14
  from videoipath_automation_tool.apps.inventory.model.inventory_device_configuration_compare import (
15
15
  InventoryDeviceComparison,
@@ -229,6 +229,16 @@ class InventoryApp(InventoryCreateDeviceMixin, InventoryCreateDeviceFromDiscover
229
229
  else:
230
230
  raise ValueError(f"Invalid label_search_mode: {label_search_mode}")
231
231
 
232
+ def list_device_ids_by_driver(self, driver: DriverLiteral) -> List[str]:
233
+ """Method to list all device ids by driver id.
234
+
235
+ Args:
236
+ driver (DriverLiteral): Driver to filter devices by (e.g. `com.nevion.arista-0.1.0`).
237
+ Returns:
238
+ List[str]: List of device ids.
239
+ """
240
+ return self._inventory_api.fetch_device_ids_by_driver(driver=driver)
241
+
232
242
  def enable_device(self, device_id: str) -> InventoryDevice[CustomSettings]:
233
243
  """Method to enable a device in VideoIPath-Inventory.
234
244
 
@@ -7,9 +7,12 @@ from uuid import uuid4
7
7
  from pydantic import IPvAnyAddress
8
8
  from typing_extensions import deprecated
9
9
 
10
- from videoipath_automation_tool.apps.inventory.inventory_utils import construct_driver_id_from_info
10
+ from videoipath_automation_tool.apps.inventory.inventory_utils import (
11
+ construct_driver_id_from_info,
12
+ extract_driver_info_from_id,
13
+ )
11
14
  from videoipath_automation_tool.apps.inventory.model.device_status import DeviceStatus
12
- from videoipath_automation_tool.apps.inventory.model.drivers import CustomSettingsType
15
+ from videoipath_automation_tool.apps.inventory.model.drivers import CustomSettingsType, DriverLiteral
13
16
  from videoipath_automation_tool.apps.inventory.model.inventory_device import InventoryDevice
14
17
  from videoipath_automation_tool.apps.inventory.model.inventory_discovered_device import DiscoveredInventoryDevice
15
18
  from videoipath_automation_tool.apps.inventory.model.inventory_request_rpc import InventoryRequestRpc
@@ -368,6 +371,18 @@ class InventoryAPI:
368
371
  raise ValueError("Response data is empty.")
369
372
  return [device["_id"] for device in response.data["config"]["devman"]["devices"]["_items"]]
370
373
 
374
+ def fetch_device_ids_by_driver(self, driver: DriverLiteral) -> List[str]:
375
+ """Method to fetch all device ids by driver id from VideoIPath-Inventory"""
376
+ driver_organization, driver_name, driver_version = extract_driver_info_from_id(driver_id=driver)
377
+ escaped_driver_organization = urllib.parse.quote(driver_organization, safe="")
378
+ escaped_driver_name = urllib.parse.quote(driver_name, safe="")
379
+ escaped_driver_version = urllib.parse.quote(driver_version, safe="")
380
+ url_path = f"/rest/v2/data/config/devman/devices/* where (config.driver.name='{escaped_driver_name}' and config.driver.version='{escaped_driver_version}' and config.driver.organization='{escaped_driver_organization}') /**"
381
+ response = self.vip_connector.rest.get(url_path)
382
+ if not response.data:
383
+ raise ValueError("Response data is empty.")
384
+ return [device["_id"] for device in response.data["config"]["devman"]["devices"]["_items"]]
385
+
371
386
  # --- Bulk Device Label Fetching Methods ---
372
387
  def fetch_devices_factory_labels_as_dict(self) -> dict[str, str]:
373
388
  """Method to fetch all device factory labels from VideoIPath-Inventory