redfish-python-sdk 1.0.0__tar.gz → 1.2.0__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 (72) hide show
  1. {redfish_python_sdk-1.0.0/redfish_python_sdk.egg-info → redfish_python_sdk-1.2.0}/PKG-INFO +5 -1
  2. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/README.md +4 -0
  3. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/pyproject.toml +1 -1
  4. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0/redfish_python_sdk.egg-info}/PKG-INFO +5 -1
  5. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/__init__.py +27 -1
  6. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/client.py +204 -1
  7. redfish_python_sdk-1.2.0/redfish_sdk/managers/managers.py +442 -0
  8. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/common.py +2 -2
  9. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/fru.py +4 -4
  10. redfish_python_sdk-1.2.0/redfish_sdk/models/managers.py +465 -0
  11. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/oem.py +15 -1
  12. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/processor.py +3 -3
  13. redfish_python_sdk-1.0.0/redfish_sdk/managers/managers.py +0 -120
  14. redfish_python_sdk-1.0.0/redfish_sdk/models/managers.py +0 -153
  15. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/LICENSE +0 -0
  16. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_python_sdk.egg-info/SOURCES.txt +0 -0
  17. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_python_sdk.egg-info/dependency_links.txt +0 -0
  18. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_python_sdk.egg-info/requires.txt +0 -0
  19. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_python_sdk.egg-info/top_level.txt +0 -0
  20. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/exceptions.py +0 -0
  21. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/http_client.py +0 -0
  22. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/__init__.py +0 -0
  23. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/_log_helpers.py +0 -0
  24. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/account.py +0 -0
  25. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/chassis.py +0 -0
  26. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/event.py +0 -0
  27. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/registries.py +0 -0
  28. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/session.py +0 -0
  29. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/systems.py +0 -0
  30. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/task.py +0 -0
  31. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update.py +0 -0
  32. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/__init__.py +0 -0
  33. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/base.py +0 -0
  34. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/h3c.py +0 -0
  35. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/inspur.py +0 -0
  36. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/lenovo.py +0 -0
  37. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/nettrix.py +0 -0
  38. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/registry.py +0 -0
  39. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/vendor_detect.py +0 -0
  40. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/xfusion.py +0 -0
  41. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/managers/update_strategies/zte.py +0 -0
  42. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/__init__.py +0 -0
  43. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/account.py +0 -0
  44. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/chassis.py +0 -0
  45. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/check.py +0 -0
  46. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/drive.py +0 -0
  47. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/event.py +0 -0
  48. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/gpu.py +0 -0
  49. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/logs.py +0 -0
  50. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/memory.py +0 -0
  51. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/network_adapter.py +0 -0
  52. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/pcie_device.py +0 -0
  53. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/power.py +0 -0
  54. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/registry.py +0 -0
  55. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/resource_key.py +0 -0
  56. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/root.py +0 -0
  57. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/session.py +0 -0
  58. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/storage.py +0 -0
  59. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/systems.py +0 -0
  60. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/task.py +0 -0
  61. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/thermal.py +0 -0
  62. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/redfish_sdk/models/update.py +0 -0
  63. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/setup.cfg +0 -0
  64. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_client_mock.py +0 -0
  65. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_log_entries_mock.py +0 -0
  66. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_models.py +0 -0
  67. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_models_mock.py +0 -0
  68. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_offline_json.py +0 -0
  69. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_real_bmc.py +0 -0
  70. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_sdk_mock.py +0 -0
  71. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_update_strategies.py +0 -0
  72. {redfish_python_sdk-1.0.0 → redfish_python_sdk-1.2.0}/tests/test_v1_1_apis_mock.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redfish-python-sdk
3
- Version: 1.0.0
3
+ Version: 1.2.0
4
4
  Summary: A Python SDK for interacting with Redfish-compliant BMC endpoints
5
5
  Author: RedNote Infrastructure
6
6
  License: BSD 3-Clause License
@@ -65,6 +65,10 @@ Dynamic: license-file
65
65
 
66
66
  # Redfish Python SDK
67
67
 
68
+ [![PyPI version](https://img.shields.io/pypi/v/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
69
+ [![Python versions](https://img.shields.io/pypi/pyversions/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
70
+ [![License](https://img.shields.io/pypi/l/redfish-python-sdk)](https://github.com/rednote-infra/redfish-python-sdk/blob/main/LICENSE)
71
+
68
72
  [English](README.md) | [中文](README_zh.md)
69
73
 
70
74
  > A lightweight Python SDK for managing server BMCs (Baseboard Management Controllers) via the [DMTF Redfish](https://www.dmtf.org/standards/redfish) protocol. Covers system inventory, hardware inspection, power control, boot management, event subscriptions, and more.
@@ -1,5 +1,9 @@
1
1
  # Redfish Python SDK
2
2
 
3
+ [![PyPI version](https://img.shields.io/pypi/v/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
5
+ [![License](https://img.shields.io/pypi/l/redfish-python-sdk)](https://github.com/rednote-infra/redfish-python-sdk/blob/main/LICENSE)
6
+
3
7
  [English](README.md) | [中文](README_zh.md)
4
8
 
5
9
  > A lightweight Python SDK for managing server BMCs (Baseboard Management Controllers) via the [DMTF Redfish](https://www.dmtf.org/standards/redfish) protocol. Covers system inventory, hardware inspection, power control, boot management, event subscriptions, and more.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "redfish-python-sdk"
7
- version = "1.0.0"
7
+ version = "1.2.0"
8
8
  description = "A Python SDK for interacting with Redfish-compliant BMC endpoints"
9
9
  requires-python = ">=3.9"
10
10
  readme = "README.md"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redfish-python-sdk
3
- Version: 1.0.0
3
+ Version: 1.2.0
4
4
  Summary: A Python SDK for interacting with Redfish-compliant BMC endpoints
5
5
  Author: RedNote Infrastructure
6
6
  License: BSD 3-Clause License
@@ -65,6 +65,10 @@ Dynamic: license-file
65
65
 
66
66
  # Redfish Python SDK
67
67
 
68
+ [![PyPI version](https://img.shields.io/pypi/v/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
69
+ [![Python versions](https://img.shields.io/pypi/pyversions/redfish-python-sdk)](https://pypi.org/project/redfish-python-sdk/)
70
+ [![License](https://img.shields.io/pypi/l/redfish-python-sdk)](https://github.com/rednote-infra/redfish-python-sdk/blob/main/LICENSE)
71
+
68
72
  [English](README.md) | [中文](README_zh.md)
69
73
 
70
74
  > A lightweight Python SDK for managing server BMCs (Baseboard Management Controllers) via the [DMTF Redfish](https://www.dmtf.org/standards/redfish) protocol. Covers system inventory, hardware inspection, power control, boot management, event subscriptions, and more.
@@ -38,10 +38,24 @@ from .exceptions import (
38
38
  from .models.drive import Drive
39
39
  from .models.event import EventService, Subscription
40
40
  from .models.logs import Log, LogEntry
41
+ from .models.managers import KvmService
42
+ from .models.managers import (
43
+ DnsService,
44
+ FirewallRules,
45
+ HttpsCert,
46
+ LldpService,
47
+ NtpService,
48
+ SecurityService,
49
+ SnmpService,
50
+ SolSourceControlInfo,
51
+ SyslogService,
52
+ VirtualMedia,
53
+ VncService,
54
+ )
41
55
  from .models.resource_key import RedfishResource
42
56
  from .models.systems import BootOption
43
57
 
44
- __version__ = "1.0.0"
58
+ __version__ = "1.2.0"
45
59
  __author__ = "RedNote Infrastructure"
46
60
 
47
61
  __all__ = [
@@ -55,9 +69,21 @@ __all__ = [
55
69
  "RedfishValidationError",
56
70
  # Models commonly used at API boundary.
57
71
  "BootOption",
72
+ "DnsService",
58
73
  "Drive",
59
74
  "EventService",
75
+ "FirewallRules",
76
+ "HttpsCert",
77
+ "KvmService",
78
+ "LldpService",
60
79
  "Log",
61
80
  "LogEntry",
81
+ "NtpService",
82
+ "SecurityService",
83
+ "SnmpService",
84
+ "SolSourceControlInfo",
62
85
  "Subscription",
86
+ "SyslogService",
87
+ "VirtualMedia",
88
+ "VncService",
63
89
  ]
@@ -54,7 +54,24 @@ from .models.event import EventService, Subscription
54
54
  from .models.fru import Fru
55
55
  from .models.logs import Log, LogEntry
56
56
  from .models.oem import MainBoard
57
- from .models.managers import EthernetInterface, HostInterface, Manager, NetworkProtocol
57
+ from .models.managers import (
58
+ DnsService,
59
+ EthernetInterface,
60
+ FirewallRules,
61
+ HostInterface,
62
+ HttpsCert,
63
+ KvmService,
64
+ LldpService,
65
+ Manager,
66
+ NetworkProtocol,
67
+ NtpService,
68
+ SecurityService,
69
+ SnmpService,
70
+ SolSourceControlInfo,
71
+ SyslogService,
72
+ VirtualMedia,
73
+ VncService,
74
+ )
58
75
  from .models.memory import Memory
59
76
  from .models.power import Power, PowerSupply
60
77
  from .models.processor import Processor
@@ -933,6 +950,192 @@ class RedfishClient:
933
950
  """
934
951
  return self._managers.host_interfaces(manager_id)
935
952
 
953
+ def get_kvm_service(self, manager_id: str = "1") -> KvmService:
954
+ """
955
+ Get KVM service configuration for a BMC manager.
956
+
957
+ The KVM service URI is dynamically discovered from the Manager's
958
+ OEM links (``Oem.{vendor}.KVM``).
959
+
960
+ Args:
961
+ manager_id: Manager ID (default "1")
962
+
963
+ Returns:
964
+ KvmService resource
965
+
966
+ Raises:
967
+ RedfishNotFoundError: If the manager does not expose a KVM link
968
+ """
969
+ return self._managers.kvm_service(manager_id)
970
+
971
+ def get_ntp_service(self, manager_id: str = "1") -> NtpService:
972
+ """
973
+ Get NTP service configuration for a BMC manager.
974
+
975
+ Args:
976
+ manager_id: Manager ID (default "1")
977
+
978
+ Returns:
979
+ NtpService resource
980
+
981
+ Raises:
982
+ RedfishNotFoundError: If the manager does not expose NtpService
983
+ """
984
+ return self._managers.ntp_service(manager_id)
985
+
986
+ def get_syslog_service(self, manager_id: str = "1") -> SyslogService:
987
+ """
988
+ Get Syslog service configuration for a BMC manager.
989
+
990
+ Args:
991
+ manager_id: Manager ID (default "1")
992
+
993
+ Returns:
994
+ SyslogService resource
995
+
996
+ Raises:
997
+ RedfishNotFoundError: If the manager does not expose SyslogService
998
+ """
999
+ return self._managers.syslog_service(manager_id)
1000
+
1001
+ def get_snmp_service(self, manager_id: str = "1") -> SnmpService:
1002
+ """
1003
+ Get SNMP service configuration for a BMC manager.
1004
+
1005
+ Args:
1006
+ manager_id: Manager ID (default "1")
1007
+
1008
+ Returns:
1009
+ SnmpService resource
1010
+
1011
+ Raises:
1012
+ RedfishNotFoundError: If the manager does not expose SnmpService
1013
+ """
1014
+ return self._managers.snmp_service(manager_id)
1015
+
1016
+ def get_lldp_service(self, manager_id: str = "1") -> LldpService:
1017
+ """
1018
+ Get LLDP service configuration for a BMC manager.
1019
+
1020
+ Args:
1021
+ manager_id: Manager ID (default "1")
1022
+
1023
+ Returns:
1024
+ LldpService resource
1025
+
1026
+ Raises:
1027
+ RedfishNotFoundError: If the manager does not expose LldpService
1028
+ """
1029
+ return self._managers.lldp_service(manager_id)
1030
+
1031
+ def get_dns_service(self, manager_id: str = "1") -> DnsService:
1032
+ """
1033
+ Get DNS service configuration for a BMC manager.
1034
+
1035
+ Note: Not all BMC vendors support this endpoint.
1036
+
1037
+ Args:
1038
+ manager_id: Manager ID (default "1")
1039
+
1040
+ Returns:
1041
+ DnsService resource
1042
+
1043
+ Raises:
1044
+ RedfishNotFoundError: If the manager does not expose DnsService
1045
+ """
1046
+ return self._managers.dns_service(manager_id)
1047
+
1048
+ def get_vnc_service(self, manager_id: str = "1") -> VncService:
1049
+ """
1050
+ Get VNC/RFB service configuration for a BMC manager.
1051
+
1052
+ Args:
1053
+ manager_id: Manager ID (default "1")
1054
+
1055
+ Returns:
1056
+ VncService resource
1057
+
1058
+ Raises:
1059
+ RedfishNotFoundError: If the manager does not expose VncService
1060
+ """
1061
+ return self._managers.vnc_service(manager_id)
1062
+
1063
+ def get_security_service(self, manager_id: str = "1") -> SecurityService:
1064
+ """
1065
+ Get Security service for a BMC manager.
1066
+
1067
+ Args:
1068
+ manager_id: Manager ID (default "1")
1069
+
1070
+ Returns:
1071
+ SecurityService resource
1072
+
1073
+ Raises:
1074
+ RedfishNotFoundError: If the manager does not expose SecurityService
1075
+ """
1076
+ return self._managers.security_service(manager_id)
1077
+
1078
+ def get_https_cert(self, manager_id: str = "1") -> HttpsCert:
1079
+ """
1080
+ Get HTTPS certificate information for a BMC manager.
1081
+
1082
+ Discovered via SecurityService links.
1083
+
1084
+ Args:
1085
+ manager_id: Manager ID (default "1")
1086
+
1087
+ Returns:
1088
+ HttpsCert resource
1089
+
1090
+ Raises:
1091
+ RedfishNotFoundError: If HttpsCert is not available
1092
+ """
1093
+ return self._managers.https_cert(manager_id)
1094
+
1095
+ def get_firewall_rules(self, manager_id: str = "1") -> FirewallRules:
1096
+ """
1097
+ Get Firewall rules collection for a BMC manager.
1098
+
1099
+ Args:
1100
+ manager_id: Manager ID (default "1")
1101
+
1102
+ Returns:
1103
+ FirewallRules collection resource
1104
+
1105
+ Raises:
1106
+ RedfishNotFoundError: If the manager does not expose FirewallRules
1107
+ """
1108
+ return self._managers.firewall_rules(manager_id)
1109
+
1110
+ def get_virtual_media(self, manager_id: str = "1") -> List[VirtualMedia]:
1111
+ """
1112
+ Get the list of virtual media resources for a BMC manager.
1113
+
1114
+ Args:
1115
+ manager_id: Manager ID (default "1")
1116
+
1117
+ Returns:
1118
+ List of VirtualMedia resources
1119
+ """
1120
+ return self._managers.virtual_media(manager_id)
1121
+
1122
+ def get_sol_source(self, manager_id: str = "1") -> SolSourceControlInfo:
1123
+ """
1124
+ Get SOL source control information for a BMC manager.
1125
+
1126
+ Note: Not all BMC vendors support this endpoint.
1127
+
1128
+ Args:
1129
+ manager_id: Manager ID (default "1")
1130
+
1131
+ Returns:
1132
+ SolSourceControlInfo resource
1133
+
1134
+ Raises:
1135
+ RedfishNotFoundError: If the manager does not expose SOLSourceControlInfo
1136
+ """
1137
+ return self._managers.sol_source(manager_id)
1138
+
936
1139
  # ==================================================================
937
1140
  # Component query methods — Account service
938
1141
  # ==================================================================