python-netgear-switch-library 0.0.post351__tar.gz → 0.0.post353__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 (395) hide show
  1. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/PKG-INFO +1 -1
  2. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/specs/2026-08-02-snmp-surface-findings.md +49 -0
  3. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/_version.py +2 -2
  4. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/seed.py +21 -0
  5. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/state.py +49 -0
  6. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_http_configuration.html +177 -0
  7. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_syslog_configuration.html +258 -0
  8. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_user_configuration.html +176 -0
  9. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_vlan_status_live.html +233 -0
  10. python_netgear_switch_library-0.0.post353/tests/virtual/test_syslog_fidelity.py +68 -0
  11. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/.github/workflows/ci.yml +0 -0
  12. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/.github/workflows/deb.yml +0 -0
  13. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/.github/workflows/publish-pypi.yml +0 -0
  14. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/.gitignore +0 -0
  15. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/.readthedocs.yaml +0 -0
  16. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/CLAUDE.md +0 -0
  17. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/LICENSE +0 -0
  18. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/README.md +0 -0
  19. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/RELEASING.md +0 -0
  20. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/debian/changelog +0 -0
  21. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/debian/control +0 -0
  22. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/debian/copyright +0 -0
  23. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/debian/rules +0 -0
  24. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/debian/source/format +0 -0
  25. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/Makefile +0 -0
  26. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_ext/filelinks.py +0 -0
  27. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_ext/support_tables.py +0 -0
  28. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs105pe.png +0 -0
  29. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs110emx.png +0 -0
  30. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs305ep.png +0 -0
  31. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs728tpp.png +0 -0
  32. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gsm7228ps.jpg +0 -0
  33. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gsm7252ps.jpg +0 -0
  34. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/m4300-16x.png +0 -0
  35. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/models/m4300-24x.png +0 -0
  36. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/_static/ngsw.css +0 -0
  37. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/cli.rst +0 -0
  38. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/core.rst +0 -0
  39. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/facades.rst +0 -0
  40. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/index.rst +0 -0
  41. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/mcp.rst +0 -0
  42. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/operations.rst +0 -0
  43. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/protocols.rst +0 -0
  44. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/transport.rst +0 -0
  45. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/api/virtual.rst +0 -0
  46. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/cli.rst +0 -0
  47. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/conf.py +0 -0
  48. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/development.rst +0 -0
  49. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/fake/index.rst +0 -0
  50. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/fake/internals.rst +0 -0
  51. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/fake/serving.rst +0 -0
  52. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/fake/testing.rst +0 -0
  53. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/concepts.rst +0 -0
  54. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/configuration.rst +0 -0
  55. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/installation.rst +0 -0
  56. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/principles.rst +0 -0
  57. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/quickstart.rst +0 -0
  58. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/reading.rst +0 -0
  59. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/guide/writing.rst +0 -0
  60. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/index.rst +0 -0
  61. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/mcp.rst +0 -0
  62. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gs105pe.rst +0 -0
  63. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gs110emx.rst +0 -0
  64. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gs305ep.rst +0 -0
  65. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gs728tpp.rst +0 -0
  66. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gsm7228ps.rst +0 -0
  67. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/gsm7252ps.rst +0 -0
  68. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/index.rst +0 -0
  69. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/m4300-16x.rst +0 -0
  70. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/m4300-24x.rst +0 -0
  71. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/models/support.rst +0 -0
  72. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/cli.rst +0 -0
  73. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/cheetah-form.rst +0 -0
  74. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/cheetah-v1.rst +0 -0
  75. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/gambit.rst +0 -0
  76. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/merge-hash-cgi.rst +0 -0
  77. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/xml-api.rst +0 -0
  78. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/http.rst +0 -0
  79. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/index.rst +0 -0
  80. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/nsdp.rst +0 -0
  81. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/protocols/snmp.rst +0 -0
  82. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-15-foundation.md +0 -0
  83. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-17-slice-02-snmp-read-core.md +0 -0
  84. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-17-slice-03-read-apis.md +0 -0
  85. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-04-snmp-write.md +0 -0
  86. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-05-nsdp.md +0 -0
  87. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-06-http.md +0 -0
  88. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-07-cli.md +0 -0
  89. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-08-packaging-ci.md +0 -0
  90. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-23-gsm7252ps-http-xe-dialect.md +0 -0
  91. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/specs/2026-07-15-netgear-control-library-design.md +0 -0
  92. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/docs/superpowers/specs/2026-07-23-gsm7252ps-http-xe-dialect-design.md +0 -0
  93. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/packaging/apt-index.html +0 -0
  94. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/packaging/ci-build.sh +0 -0
  95. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/packaging/deb-version.py +0 -0
  96. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/pyproject.toml +0 -0
  97. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/__init__.py +0 -0
  98. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/_dispatch.py +0 -0
  99. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/aio_api.py +0 -0
  100. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/capabilities.py +0 -0
  101. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/__init__.py +0 -0
  102. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/capture.py +0 -0
  103. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/context.py +0 -0
  104. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/format.py +0 -0
  105. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/main.py +0 -0
  106. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/resolve.py +0 -0
  107. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/safety.py +0 -0
  108. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli_read.py +0 -0
  109. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli_write.py +0 -0
  110. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/config.py +0 -0
  111. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/errors.py +0 -0
  112. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/http_read.py +0 -0
  113. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/http_write.py +0 -0
  114. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/mcp/__init__.py +0 -0
  115. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/mcp/server.py +0 -0
  116. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/models.py +0 -0
  117. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/nsdp_read.py +0 -0
  118. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/nsdp_write.py +0 -0
  119. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/__init__.py +0 -0
  120. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/__init__.py +0 -0
  121. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/commands.py +0 -0
  122. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/parse.py +0 -0
  123. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/__init__.py +0 -0
  124. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/crypt.py +0 -0
  125. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/endpoints.py +0 -0
  126. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/forms.py +0 -0
  127. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/parse.py +0 -0
  128. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/session.py +0 -0
  129. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/types.py +0 -0
  130. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/__init__.py +0 -0
  131. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/auth.py +0 -0
  132. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/client.py +0 -0
  133. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/parsers.py +0 -0
  134. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/protocol.py +0 -0
  135. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/types.py +0 -0
  136. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/write.py +0 -0
  137. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/__init__.py +0 -0
  138. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/client.py +0 -0
  139. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/oids.py +0 -0
  140. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/parse.py +0 -0
  141. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/write.py +0 -0
  142. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/py.typed +0 -0
  143. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/registry.py +0 -0
  144. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/snmp_read.py +0 -0
  145. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/snmp_write.py +0 -0
  146. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/sync_api.py +0 -0
  147. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/__init__.py +0 -0
  148. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/__init__.py +0 -0
  149. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/nsdp_udp.py +0 -0
  150. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/snmp_pysnmp.py +0 -0
  151. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/__init__.py +0 -0
  152. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/console.py +0 -0
  153. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/session.py +0 -0
  154. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/ssh.py +0 -0
  155. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/telnet.py +0 -0
  156. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/http/__init__.py +0 -0
  157. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/http/client.py +0 -0
  158. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/__init__.py +0 -0
  159. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/nsdp_udp.py +0 -0
  160. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/snmp_netsnmp_cli.py +0 -0
  161. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/__init__.py +0 -0
  162. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/cli_fastpath.py +0 -0
  163. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/__init__.py +0 -0
  164. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/cli.py +0 -0
  165. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/http.py +0 -0
  166. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/mibview.py +0 -0
  167. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/nsdp.py +0 -0
  168. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/snmp.py +0 -0
  169. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/server.py +0 -0
  170. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web.py +0 -0
  171. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_fastpath_vlan.py +0 -0
  172. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_fastpath_xui.py +0 -0
  173. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs105pe.py +0 -0
  174. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs110emx.py +0 -0
  175. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs110emx_templates.py +0 -0
  176. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs728tpp.py +0 -0
  177. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gsm7228ps.py +0 -0
  178. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gsm7252ps.py +0 -0
  179. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_m4300.py +0 -0
  180. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/capture_parity.py +0 -0
  181. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_capture.py +0 -0
  182. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_cli_integration.py +0 -0
  183. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_control_poe_port.py +0 -0
  184. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_control_vlan_ip.py +0 -0
  185. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_format.py +0 -0
  186. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_main_framework.py +0 -0
  187. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_new_commands.py +0 -0
  188. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_op_coverage.py +0 -0
  189. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_prompt_wiring.py +0 -0
  190. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_read_commands.py +0 -0
  191. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_resolve.py +0 -0
  192. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_safety.py +0 -0
  193. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/cli/test_serve.py +0 -0
  194. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/conftest.py +0 -0
  195. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/equivalence.py +0 -0
  196. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/gsm7228ps.json +0 -0
  197. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/gsm7252ps.json +0 -0
  198. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/m4300-16x.json +0 -0
  199. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/m4300-24x.json +0 -0
  200. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_environment.txt +0 -0
  201. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_lldp.txt +0 -0
  202. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_mac_table.txt +0 -0
  203. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_network.txt +0 -0
  204. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_poe.txt +0 -0
  205. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_port_all.txt +0 -0
  206. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_show_version.txt +0 -0
  207. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan.txt +0 -0
  208. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan_brief.txt +0 -0
  209. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan_port_all.txt +0 -0
  210. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_environment.txt +0 -0
  211. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_interface_ethernet_1_0_1.txt +0 -0
  212. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_lldp_remote_device_all.txt +0 -0
  213. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_mac_addr_table.txt +0 -0
  214. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_network.txt +0 -0
  215. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_poe_port_info_all.txt +0 -0
  216. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_port_all.txt +0 -0
  217. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_version.txt +0 -0
  218. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_90.txt +0 -0
  219. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_brief.txt +0 -0
  220. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_port_all.txt +0 -0
  221. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_environment.txt +0 -0
  222. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_interface_ethernet_1_0_1.txt +0 -0
  223. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_ip_management.txt +0 -0
  224. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_lldp_remote_device_all.txt +0 -0
  225. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_mac_addr_table.txt +0 -0
  226. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_poe_port_info_all.txt +0 -0
  227. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_port_all.txt +0 -0
  228. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_version.txt +0 -0
  229. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan.txt +0 -0
  230. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_1.txt +0 -0
  231. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_4.txt +0 -0
  232. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_5.txt +0 -0
  233. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_port_all.txt +0 -0
  234. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_environment.txt +0 -0
  235. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_interface_ethernet_1_0_1.txt +0 -0
  236. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_ip_management.txt +0 -0
  237. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_lldp_remote_device_all.txt +0 -0
  238. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_mac_addr_table.txt +0 -0
  239. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_port_all.txt +0 -0
  240. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_version.txt +0 -0
  241. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan.txt +0 -0
  242. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_5.txt +0 -0
  243. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_90.txt +0 -0
  244. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_port_all.txt +0 -0
  245. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_membership.html +0 -0
  246. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_portstats.html +0 -0
  247. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_pvid.html +0 -0
  248. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_status.html +0 -0
  249. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_switch_info.html +0 -0
  250. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_vlancfg.html +0 -0
  251. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_cf8021q.html +0 -0
  252. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_interface_stats.html +0 -0
  253. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_login.html +0 -0
  254. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_port_settings.html +0 -0
  255. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_pvid.html +0 -0
  256. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_redirect.html +0 -0
  257. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_sysinfo.html +0 -0
  258. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_vlanmembership.html +0 -0
  259. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_dashboard.html +0 -0
  260. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_login.html +0 -0
  261. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_membership.html +0 -0
  262. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_poestatus.html +0 -0
  263. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_portstats.html +0 -0
  264. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_pvid.html +0 -0
  265. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_vlancfg.html +0 -0
  266. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_device_info_and_sensors.xml +0 -0
  267. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_lldp.xml +0 -0
  268. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_macs.xml +0 -0
  269. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_mgmt_ip.xml +0 -0
  270. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_poe.xml +0 -0
  271. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_ports.xml +0 -0
  272. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_pvids_membership.xml +0 -0
  273. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_vlan_membership_per_vlan.xml +0 -0
  274. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_vlans.xml +0 -0
  275. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_basicAddressTable.html +0 -0
  276. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_ipConfiguration.html +0 -0
  277. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_lldpRemoteInventory.html +0 -0
  278. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_poeInterfaceConfiguration.html +0 -0
  279. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portPvidConfiguration.html +0 -0
  280. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portStatistics.html +0 -0
  281. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portsConfiguration.html +0 -0
  282. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_sysInfo.html +0 -0
  283. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_vlanPortCfg_vlan5.html +0 -0
  284. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_vlanStatus.html +0 -0
  285. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_basicAddressTable.html +0 -0
  286. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_ipConfiguration.html +0 -0
  287. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_lldpRemoteInventory.html +0 -0
  288. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_login.html +0 -0
  289. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_poeInterfaceConfiguration.html +0 -0
  290. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portPvidConfiguration.html +0 -0
  291. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portStatistics.html +0 -0
  292. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portsConfiguration.html +0 -0
  293. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_sysInfo.html +0 -0
  294. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan1.html +0 -0
  295. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan141.html +0 -0
  296. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanStatus.html +0 -0
  297. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_lldpRemoteInventory.html +0 -0
  298. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_mgmtVlanIpv4Configuration.html +0 -0
  299. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_poeInterfaceConfiguration.html +0 -0
  300. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_portsConfiguration.html +0 -0
  301. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_vlanportcfg_vlan4.html +0 -0
  302. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_24x_poeInterfaceConfiguration.html +0 -0
  303. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_addresstable.html +0 -0
  304. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_lldpRemoteInventory.html +0 -0
  305. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_mgmtVlanIpv4Configuration.html +0 -0
  306. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_ports.html +0 -0
  307. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_portstats.html +0 -0
  308. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_pvid.html +0 -0
  309. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_sysinfo.html +0 -0
  310. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_vlanportcfg_vlan1.html +0 -0
  311. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_vlanstatus.html +0 -0
  312. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_fans.txt +0 -0
  313. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_ifhighspeed.txt +0 -0
  314. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_ifoperstatus.txt +0 -0
  315. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_psu.txt +0 -0
  316. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/http_specs.py +0 -0
  317. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/cli/test_cli_parse.py +0 -0
  318. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_crypt.py +0 -0
  319. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_endpoints.py +0 -0
  320. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_forms.py +0 -0
  321. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_parse.py +0 -0
  322. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_auth.py +0 -0
  323. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_parsers.py +0 -0
  324. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_protocol.py +0 -0
  325. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_write_frame.py +0 -0
  326. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_client.py +0 -0
  327. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_oids.py +0 -0
  328. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_lldp_macs.py +0 -0
  329. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_mgmt_ip.py +0 -0
  330. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_poe_sensors.py +0 -0
  331. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_ports.py +0 -0
  332. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_system_info.py +0 -0
  333. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_vlans.py +0 -0
  334. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_write_encode.py +0 -0
  335. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_aio_api.py +0 -0
  336. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_capabilities.py +0 -0
  337. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_cli_read.py +0 -0
  338. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_cli_vlan_write.py +0 -0
  339. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_cli_write.py +0 -0
  340. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_config.py +0 -0
  341. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_cross_backend_equivalence.py +0 -0
  342. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_deb_version.py +0 -0
  343. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_dispatch.py +0 -0
  344. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_docs_coverage.py +0 -0
  345. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_errors.py +0 -0
  346. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_facade_equivalence.py +0 -0
  347. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_dispatch.py +0 -0
  348. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_equivalence.py +0 -0
  349. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_read.py +0 -0
  350. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_vlan_membership.py +0 -0
  351. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_write.py +0 -0
  352. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_http_xui_writes.py +0 -0
  353. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_import.py +0 -0
  354. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_mcp_server.py +0 -0
  355. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_models.py +0 -0
  356. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_models_snmp_read.py +0 -0
  357. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_integration.py +0 -0
  358. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_read.py +0 -0
  359. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_write.py +0 -0
  360. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_public_api.py +0 -0
  361. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_quality_gates.py +0 -0
  362. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_registry.py +0 -0
  363. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_integration.py +0 -0
  364. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_read.py +0 -0
  365. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_write.py +0 -0
  366. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_sync_api.py +0 -0
  367. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_version.py +0 -0
  368. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/test_write_equivalence.py +0 -0
  369. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/_fastpath_fake.py +0 -0
  370. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_console.py +0 -0
  371. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_scp_cert.py +0 -0
  372. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_telnet.py +0 -0
  373. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_http_client.py +0 -0
  374. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_nsdp_udp_sync.py +0 -0
  375. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_set_transport.py +0 -0
  376. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_snmp_netsnmp_cli.py +0 -0
  377. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_snmp_pysnmp.py +0 -0
  378. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/transport/test_value_parity.py +0 -0
  379. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_cli_cross_backend.py +0 -0
  380. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_cli_gsm7228ps_parity.py +0 -0
  381. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_gsm7228ps_seed.py +0 -0
  382. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_hostname.py +0 -0
  383. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_m4300_seeds.py +0 -0
  384. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_mibview.py +0 -0
  385. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_mutable_state.py +0 -0
  386. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_nsdp_state.py +0 -0
  387. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_serve_daemon.py +0 -0
  388. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_snmp_write_face.py +0 -0
  389. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_state_seed.py +0 -0
  390. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_switchport_vlan_write.py +0 -0
  391. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_http_face.py +0 -0
  392. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_nsdp_face.py +0 -0
  393. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_snmp_face.py +0 -0
  394. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_web_projection.py +0 -0
  395. {python_netgear_switch_library-0.0.post351 → python_netgear_switch_library-0.0.post353}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-netgear-switch-library
3
- Version: 0.0.post351
3
+ Version: 0.0.post353
4
4
  Summary: Python library and CLI to query and control Netgear switches over SNMP, NSDP and HTTP.
5
5
  Author-email: Tim Ansell <me@mith.ro>
6
6
  License-Expression: Apache-2.0
@@ -256,3 +256,52 @@ or a toggle performed on a switch that is safe to lose contact with. Writing
256
256
  `ip http server` / `no ip ssh server` on the strength of FASTPATH convention
257
257
  would be precisely the inference this project forbids — and the cost of being
258
258
  wrong is a switch that can no longer be reached.
259
+
260
+
261
+ ## DEFECT: HTTP `create_vlan` cannot work on the FASTPATH models
262
+
263
+ Found 2026-08-02 by driving `create_vlan` over each backend of gsm7252ps
264
+ (10.1.5.22) against the live switch:
265
+
266
+ | Backend | Result |
267
+ |---|---|
268
+ | SNMP | created, deleted, VLAN set restored — PASS |
269
+ | SSH | created, deleted, VLAN set restored — PASS |
270
+ | **HTTP** | **`HttpUnexpectedPageError: no CSRF 'hash' token on page before write`** |
271
+
272
+ `HttpWriter.create_vlan` was written for the **Plus** dialect and only ever
273
+ worked there. Its own comment says so — *"web UI 8021qCf.cgi has no VLAN-name
274
+ field"* — that is the gs305ep/gs105pe `.cgi` page. It scrapes an
275
+ `<input name="hash">` CSRF token and posts `forms.vlan_add_form`.
276
+
277
+ On a FASTPATH model `vlan_config_path` is `/vlanStatus.html`, and a live
278
+ capture of that page (`tests/fixtures/http/gsm7252ps_vlan_status_live.html`)
279
+ shows it carries **no `hash` input at all** — only `applet_port`,
280
+ `applet_unit`, `dbgopt` and the XUI cell hiddens (`1.N.14.v_1_1_M`). It is an
281
+ XUI page and needs the two-`FORM` `submit_flag` shape, not the Plus form.
282
+
283
+ ### Why nothing caught it
284
+
285
+ * **The capability oracle says HTTP=yes.** `_http_path_for` only asks whether
286
+ `vlan_config_path` is set. It is — it just points at a page this writer
287
+ cannot drive.
288
+ * **The mock passes.** `virtual/web.py` emits
289
+ `<input type="hidden" name="hash" ...>` on *every* rendered page, including
290
+ the FASTPATH ones. The real FASTPATH page has no such input, so the mock and
291
+ the writer agree with each other while both disagree with the device — the
292
+ exact failure principle 5 describes, and why a green suite proved nothing.
293
+
294
+ ### Scope
295
+
296
+ Confirmed on gsm7252ps. The same code path and page type apply to `gsm7228ps`,
297
+ `m4300-24x` and `m4300-16x`, so they are expected to fail identically — an
298
+ inference, and each needs its own live check before it is recorded as fact.
299
+ `gs728tpp` is a different dialect (GoAhead XML) and untested here.
300
+
301
+ ### What has to change
302
+
303
+ 1. The mock must stop emitting a `hash` token on pages that do not have one.
304
+ That alone will turn the existing suite red, which is the correct outcome.
305
+ 2. `create_vlan` needs an XUI implementation for the FASTPATH dialects.
306
+ 3. Until it exists, the oracle must report HTTP `create_vlan` unsupported on
307
+ those models rather than claiming it works.
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.0.post351'
22
- __version_tuple__ = version_tuple = (0, 0, 'post351')
21
+ __version__ = version = '0.0.post353'
22
+ __version_tuple__ = version_tuple = (0, 0, 'post353')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -31,6 +31,8 @@ from .state import (
31
31
  PoeSim,
32
32
  PortSim,
33
33
  SensorSim,
34
+ SyslogCollectorSim,
35
+ SyslogSim,
34
36
  VirtualSwitchState,
35
37
  VlanMembershipPageSim,
36
38
  VlanSim,
@@ -1237,6 +1239,13 @@ def seed_gsm7252ps() -> VirtualSwitchState:
1237
1239
  # capture of this switch (tests/fixtures/http/gsm7252ps_sysInfo.html).
1238
1240
  serial="2BW20A47000CC",
1239
1241
  firmware="10.0.0.53",
1242
+ # MEASURED 2026-08-02 on 10.1.5.22: identical to the m4300 pair --
1243
+ # enabled, port 514, one collector 10.1.5.1 info(6) 514 Active.
1244
+ syslog=SyslogSim(
1245
+ admin_mode=1,
1246
+ local_port=514,
1247
+ collectors=[SyslogCollectorSim("10.1.5.1", 514, 6)],
1248
+ ),
1240
1249
  hostname="sw-netgear-gsm7252ps-s1.welland.mithis.com",
1241
1250
  nsdp_mac=b"\xe0\x91\xf5\x0c\xd6\xdb", # captured System MAC Address
1242
1251
  # Illustrative sysDescr text -- NOT a captured real firmware string;
@@ -1798,6 +1807,10 @@ def seed_gsm7228ps() -> VirtualSwitchState:
1798
1807
  lldp=lldp,
1799
1808
  mgmt=mgmt,
1800
1809
  model_name="GSM7228PS",
1810
+ # MEASURED 2026-08-02 on 10.1.5.11: the vendor admin-mode column
1811
+ # reads 2 (disabled) and the host table is EMPTY -- this switch has
1812
+ # no collector configured, which is why get_syslog returns none.
1813
+ syslog=SyslogSim(admin_mode=2, local_port=514, collectors=[]),
1801
1814
  hostname="sw-netgear-s3300-1",
1802
1815
  nsdp_mac=b"\x08\xbd\x43\x6b\xb8\xd8", # captured base/System MAC
1803
1816
  # REAL captured identity: the S3300-52X-PoE+'s actual sysDescr and
@@ -2397,6 +2410,14 @@ def seed_m4300_24x() -> VirtualSwitchState:
2397
2410
  state = VirtualSwitchState(
2398
2411
  # Measured 2026-08-02: sysName and `show hosts` both report this on the
2399
2412
  # real switch. Was empty here, which no real FASTPATH switch is.
2413
+ # MEASURED 2026-08-02 on 10.1.5.13: `show logging` reports
2414
+ # "Syslog Logging : enabled" and local port 514, and
2415
+ # `show logging hosts` one row 10.1.5.1 / info(6) / 514 / Active.
2416
+ syslog=SyslogSim(
2417
+ admin_mode=1,
2418
+ local_port=514,
2419
+ collectors=[SyslogCollectorSim("10.1.5.1", 514, 6)],
2420
+ ),
2400
2421
  hostname="sw-netgear-m4300-24x",
2401
2422
  model_key="m4300-24x",
2402
2423
  ports=ports,
@@ -155,6 +155,37 @@ class PortSim:
155
155
  flow_control: bool = True
156
156
 
157
157
 
158
+ @dataclass
159
+ class SyslogCollectorSim:
160
+ """One remote syslog collector row, as the vendor host table reports it.
161
+
162
+ Field values are SEEDED from a live switch, never computed: the severity is
163
+ the standard syslog number the device actually returns (6 for "info" on
164
+ m4300-24x, cross-checked against its own `show logging hosts`), and status 1
165
+ is what that command prints as "Active".
166
+ """
167
+
168
+ host: str
169
+ port: int
170
+ severity: int
171
+ status: int = 1
172
+
173
+
174
+ @dataclass
175
+ class SyslogSim:
176
+ """The switch's remote-logging state, as the vendor `.14` subtree reports it.
177
+
178
+ MEASURED 2026-08-02 -- see docs/superpowers/specs/. ``admin_mode`` is the
179
+ device's own enum (1 = enabled, 2 = disabled), kept as the raw integer
180
+ rather than a bool so the mock emits exactly what a real agent emits and the
181
+ reader's own decoding is what gets exercised.
182
+ """
183
+
184
+ admin_mode: int = 2
185
+ local_port: int = 514
186
+ collectors: list[SyslogCollectorSim] = field(default_factory=list)
187
+
188
+
158
189
  @dataclass
159
190
  class VlanSim:
160
191
  """One dot1q VLAN: display name plus egress-member and untagged port sets.
@@ -374,6 +405,10 @@ class VirtualSwitchState:
374
405
  serial: str = ""
375
406
  firmware: str = ""
376
407
  hostname: str = ""
408
+ #: Remote-logging state. Only meaningful for a model with a vendor subtree;
409
+ #: oid_map() projects it under <vendor base>.14 for those models only, which
410
+ #: is what makes gs728tpp (no vendor OIDs) correctly unable to answer.
411
+ syslog: SyslogSim = field(default_factory=SyslogSim)
377
412
  nsdp_password: str = "password"
378
413
  # Write-auth scheme this mock advertises via AUTH_V2_ENCPASS (0x0014), and
379
414
  # the ONLY scheme it accepts on a WRITE_REQUEST:
@@ -737,6 +772,20 @@ class VirtualSwitchState:
737
772
  # publishes no vendor subtree at all.
738
773
  m[oids.SYS_NAME] = ("OCTETSTR", self.hostname)
739
774
 
775
+ # Remote logging, under <vendor base>.14 -- the same columns the real
776
+ # agents publish, and ONLY for a model that has a vendor subtree. A
777
+ # model with none (gs728tpp) must stay unable to answer get_syslog here
778
+ # exactly as it is on the wire, rather than the mock inventing a reply.
779
+ if v is not None:
780
+ m[f"{v.base}.14.1.4.1.0"] = ("INTEGER", str(self.syslog.admin_mode))
781
+ m[f"{v.base}.14.1.4.3.0"] = ("Gauge32", str(self.syslog.local_port))
782
+ for index, col in enumerate(self.syslog.collectors, start=1):
783
+ m[f"{v.base}.14.1.4.5.1.2.{index}"] = ("INTEGER", "1")
784
+ m[f"{v.base}.14.1.4.5.1.3.{index}"] = ("OCTETSTR", col.host)
785
+ m[f"{v.base}.14.1.4.5.1.4.{index}"] = ("Gauge32", str(col.port))
786
+ m[f"{v.base}.14.1.4.5.1.5.{index}"] = ("INTEGER", str(col.severity))
787
+ m[f"{v.base}.14.1.4.5.1.7.{index}"] = ("INTEGER", str(col.status))
788
+
740
789
  for port, sim in self.ports.items():
741
790
  m[f"{oids.IF_ADMIN_STATUS}.{port}"] = ("INTEGER", "1" if sim.admin else "2")
742
791
  m[f"{oids.IF_OPER_STATUS}.{port}"] = ("INTEGER", "1" if sim.link else "2")
@@ -0,0 +1,177 @@
1
+
2
+
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4
+ <!-- This file is auto-generated by XE - DON'T EDIT -->
5
+ <HTML>
6
+ <HEAD>
7
+ <!-- USR_FTL_DBG: head_start -->
8
+ <LINK REL=stylesheet HREF="/base/style.css" TYPE="text/css">
9
+ <script src="/base/js/rollover.js" type="text/javascript"></script>
10
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
11
+ <TITLE>NetGear - HTTP Configuration</TITLE>
12
+ <!--[if IE 6]>
13
+ <link href="/css/ie6.css" rel="stylesheet" type="text/css" id="fastpath">
14
+ <![endif]-->
15
+ <![if !(IE 6)]>
16
+ <link href="/css/non-ie6.css" rel="stylesheet" type="text/css" id="fastpath">
17
+ <![endif]>
18
+ <link href="/css/ng8xui.css" rel="stylesheet" type="text/css" id="fastpath">
19
+ <script type="text/javascript" src="/scripts/xui_common.js"></script>
20
+ <script type="text/javascript" >xuiIncludeCommonJSFiles("/scripts/");</script>
21
+ <script type="text/javascript" src="/scripts/_xe_httpConfiguration.js"></script>
22
+ <!-- USR_FTL_DBG: head_end -->
23
+ </HEAD>
24
+ <BODY CLASS=page>
25
+
26
+ <FORM method=post ACTION="/httpConfiguration.html/a0">
27
+ <INPUT TYPE="hidden" NAME="applet_port" XC=hidden VALUE="">
28
+ <INPUT TYPE="hidden" NAME="applet_unit" XC=hidden VALUE="">
29
+ <INPUT TYPE="hidden" NAME="dbgopt" XC=hidden VALUE="0">
30
+ </FORM>
31
+ <FORM method=post ACTION="/httpConfiguration.html/a1">
32
+ <DIV ID="xui_preload">
33
+ <DIV ID="preload"><IMG SRC="/images/preload.gif" ALIGN="middle">Loading page, please wait....</DIV>
34
+ </DIV>
35
+ <DIV ID="topdiv" style="display:none;">
36
+ <!-- USR_FTL_DBG: form_start -->
37
+ <div id="xuiMainDiv" class="xuiMainBody mainContainer"><table class="xuiDetailsContainer"><tbody>
38
+ <tr><td class="xuiFont15Bold">HTTP Configuration</td></tr>
39
+ <tr><td class="xuiSpacerHeight9"/></tr>
40
+
41
+ <!-- USR_FTL_DBG: group_common_start 1 1 -->
42
+ <tr id="1">
43
+ <td><table class="xuiTableStyle" cellspacing="0" cellpadding="0" >
44
+ <tbody>
45
+ <tr>
46
+ <td colspan="3">
47
+ <table class="xuiTableStyle" cellpadding="0" cellspacing="0" id="1" ><tbody>
48
+ <tr>
49
+ <td class="xuiSubSectionTabTopLeft xuiSpacer80Percent font12BoldBlue" colspan="2">HTTP Configuration</td>
50
+ <td class="xuiSubSectionTabTopRight xuiSpacer20Percent">
51
+ <a onclick="newWindow('/base/help/help.html#httpConfiguration','httpConfiguration','550','500')" href="javascript: void(0);">
52
+ <img height="12" width="12" title="Click for help" src="/base/images/help_icon.gif"/></a>
53
+ </td>
54
+ </tr>
55
+ <tr>
56
+ <td class="xuiSubSectionTabTopShadow" colspan="3"></td>
57
+ </tr>
58
+ </tbody></table>
59
+ </td>
60
+ </tr>
61
+ <tr>
62
+ <td class="xuiSubSectionBodyDot">&nbsp;</td>
63
+ <td class="xuiSpacer100Percent"><table class="xuiTableStyle" id="1" cellspacing="0" cellpadding="0"><tbody>
64
+ <!-- USR_FTL_DBG: node_start -->
65
+ <TR id=1_1 class=deftestme>
66
+ <TD class=defleft id=1_1_1>HTTP Access</TD>
67
+ <TD class=defright id=1_1_1><INPUT xid=1_1_1 TYPE=hidden NAME=v_1_1_1 VALUE="Enable"></TD>
68
+ </TR>
69
+ <!-- USR_FTL_DBG: node_end -->
70
+ <!-- USR_FTL_DBG: node_start -->
71
+ <TR id=1_2 class=deftestme>
72
+ <TD class=defleft id=1_2_1>Java Mode</TD>
73
+ <TD class=defright id=1_2_1><INPUT xid=1_2_1 TYPE=hidden NAME=v_1_2_1 VALUE="Enable"></TD>
74
+ </TR>
75
+ <!-- USR_FTL_DBG: node_end -->
76
+ <!-- USR_FTL_DBG: node_start -->
77
+ <TR id=1_3 class=deftestme>
78
+ <TD class=defleft id=1_3_1>HTTP Session Soft Timeout (Minutes)</TD>
79
+ <TD class=defright id=1_3_1><INPUT xid=1_3_1 TYPE=hidden NAME=v_1_3_1 VALUE="60"></TD>
80
+ </TR>
81
+ <!-- USR_FTL_DBG: node_end -->
82
+ <!-- USR_FTL_DBG: node_start -->
83
+ <TR id=1_4 class=deftestme>
84
+ <TD class=defleft id=1_4_1>HTTP Session Hard Timeout (Hours)</TD>
85
+ <TD class=defright id=1_4_1><INPUT xid=1_4_1 TYPE=hidden NAME=v_1_4_1 VALUE="24"></TD>
86
+ </TR>
87
+ <!-- USR_FTL_DBG: node_end -->
88
+ <!-- USR_FTL_DBG: node_start -->
89
+ <TR id=1_5 class=deftestme>
90
+ <TD class=defleft id=1_5_1>Maximum Number of HTTP Sessions</TD>
91
+ <TD class=defright id=1_5_1><INPUT xid=1_5_1 TYPE=hidden NAME=v_1_5_1 VALUE="16"></TD>
92
+ </TR>
93
+ <!-- USR_FTL_DBG: node_end -->
94
+ <!-- USR_FTL_DBG: node_start -->
95
+ <TR id=1_6 class=deftestme>
96
+ <TD class=defleft id=1_6_1>Authentication List</TD>
97
+ <TD class=defright id=1_6_1><INPUT xid=1_6_1 TYPE=hidden NAME=v_1_6_1 VALUE="HttpListName"></TD>
98
+ </TR>
99
+ <!-- USR_FTL_DBG: node_end -->
100
+ </tbody></table></td>
101
+ <td class="xuiSubSectionBodyDotRight">&nbsp;</td>
102
+ </tr>
103
+ <tr><td class="xuiSubSectionBottom" colspan="3">&nbsp;</td></tr>
104
+ <tr><td class="xuiSpacerHeight15"/></tr>
105
+ </tbody></table></td>
106
+ </tr>
107
+ <!-- USR_FTL_DBG: group_common_end 1 1 -->
108
+
109
+
110
+
111
+
112
+
113
+ <!-- redirection elements -->
114
+ <INPUT TYPE="hidden" NAME="submit_flag" XC=hidden VALUE="0">
115
+ <INPUT TYPE="hidden" NAME="submit_target" XC=hidden VALUE="httpConfiguration.html">
116
+ <INPUT TYPE="hidden" NAME="err_flag" XC=hidden SIZE="16" MAXLENGTH="15" VALUE="0">
117
+ <INPUT TYPE="hidden" NAME="err_msg" XC=hidden SIZE="80" MAXLENGTH="79" VALUE="">
118
+ <INPUT TYPE="hidden" NAME="clazz_information" XC=hidden VALUE="httpConfiguration.html">
119
+ </tbody></table></div>
120
+ <!-- USR_FTL_DBG: form_end -->
121
+ <!-- USR_FTL_DBG: page_buttons_start -->
122
+ <div id="xuiButtonsDiv"><table align="right" class="xuiRightHAlign"><tr>
123
+
124
+
125
+
126
+ <TD id=2_1_1><INPUT xid=2_1_1 DISABLED TYPE=hidden NAME=v_2_1_1 VALUE="CANCEL"></TD>
127
+ <TD id=2_1_2><INPUT xid=2_1_2 DISABLED TYPE=hidden NAME=v_2_1_2 VALUE="APPLY"></TD>
128
+
129
+
130
+
131
+ </tr></table></div>
132
+ <!-- USR_FTL_DBG: page_buttons_end -->
133
+ <script type="text/javascript" >
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ xeValData.xv_1_3_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 60.";
142
+ xeValData.xv_1_3_1_630 = "Error: Unable to set '$$objName$$' with '$$objValue$$'. The format is invalid.";
143
+ xeValData.xv_1_3_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 60.";
144
+ xeData.min_1_3_1 = "1";
145
+ xeData.max_1_3_1 = "60";
146
+ xeData.minnls_1_3_1 = 842;
147
+ xeData.maxnls_1_3_1 = 842;
148
+ xeValData.xv_1_4_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 168.";
149
+ xeValData.xv_1_4_1_630 = "Error: Unable to set '$$objName$$' with '$$objValue$$'. The format is invalid.";
150
+ xeValData.xv_1_4_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 168.";
151
+ xeData.min_1_4_1 = "1";
152
+ xeData.max_1_4_1 = "168";
153
+ xeData.minnls_1_4_1 = 842;
154
+ xeData.maxnls_1_4_1 = 842;
155
+ xeValData.xv_1_5_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 0 to 16.";
156
+ xeValData.xv_1_5_1_630 = "Error: Unable to set '$$objName$$' with '$$objValue$$'. The format is invalid.";
157
+ xeValData.xv_1_5_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 0 to 16.";
158
+ xeData.min_1_5_1 = "0";
159
+ xeData.max_1_5_1 = "16";
160
+ xeData.minnls_1_5_1 = 842;
161
+ xeData.maxnls_1_5_1 = 842;
162
+
163
+
164
+
165
+
166
+
167
+ xeData.arghelp_1_3_1 = "(0 to 60)";
168
+ xeData.arghelp_1_4_1 = "(0 to 168)";
169
+ xeData.arghelp_1_5_1 = "(0 to 16)";
170
+ var global_repeats = new Array();
171
+ </script>
172
+ </DIV>
173
+ </FORM>
174
+
175
+ </BODY>
176
+ </HTML>
177
+
@@ -0,0 +1,258 @@
1
+
2
+
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4
+ <!-- This file is auto-generated by XE - DON'T EDIT -->
5
+ <HTML>
6
+ <HEAD>
7
+ <!-- USR_FTL_DBG: head_start -->
8
+ <LINK REL=stylesheet HREF="/base/style.css" TYPE="text/css">
9
+ <script src="/base/js/rollover.js" type="text/javascript"></script>
10
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
11
+ <TITLE>NetGear - Syslog Configuration</TITLE>
12
+ <!--[if IE 6]>
13
+ <link href="/css/ie6.css" rel="stylesheet" type="text/css" id="fastpath">
14
+ <![endif]-->
15
+ <![if !(IE 6)]>
16
+ <link href="/css/non-ie6.css" rel="stylesheet" type="text/css" id="fastpath">
17
+ <![endif]>
18
+ <link href="/css/ng8xui.css" rel="stylesheet" type="text/css" id="fastpath">
19
+ <script type="text/javascript" src="/scripts/xui_common.js"></script>
20
+ <script type="text/javascript" >xuiIncludeCommonJSFiles("/scripts/");</script>
21
+ <script type="text/javascript" src="/scripts/_xe_syslogConfiguration.js"></script>
22
+ <!-- USR_FTL_DBG: head_end -->
23
+ </HEAD>
24
+ <BODY CLASS=page>
25
+
26
+ <FORM method=post ACTION="/syslogConfiguration.html/a0">
27
+ <INPUT TYPE="hidden" NAME="applet_port" XC=hidden VALUE="">
28
+ <INPUT TYPE="hidden" NAME="applet_unit" XC=hidden VALUE="">
29
+ <INPUT TYPE="hidden" NAME="dbgopt" XC=hidden VALUE="0">
30
+
31
+
32
+
33
+
34
+ </FORM>
35
+ <FORM method=post ACTION="/syslogConfiguration.html/a1">
36
+ <DIV ID="xui_preload">
37
+ <DIV ID="preload"><IMG SRC="/images/preload.gif" ALIGN="middle">Loading page, please wait....</DIV>
38
+ </DIV>
39
+ <DIV ID="topdiv" style="display:none;">
40
+ <!-- USR_FTL_DBG: form_start -->
41
+ <div id="xuiMainDiv" class="xuiMainBody mainContainer"><table class="xuiDetailsContainer"><tbody>
42
+ <tr><td class="xuiFont15Bold">Syslog Configuration</td></tr>
43
+ <tr><td class="xuiSpacerHeight9"/></tr>
44
+
45
+ <!-- USR_FTL_DBG: group_common_start 1 1 -->
46
+ <tr id="1">
47
+ <td><table class="xuiTableStyle" cellspacing="0" cellpadding="0" >
48
+ <tbody>
49
+ <tr>
50
+ <td colspan="3">
51
+ <table class="xuiTableStyle" cellpadding="0" cellspacing="0" id="1" ><tbody>
52
+ <tr>
53
+ <td class="xuiSubSectionTabTopLeft xuiSpacer80Percent font12BoldBlue" colspan="2">Syslog Configuration</td>
54
+ <td class="xuiSubSectionTabTopRight xuiSpacer20Percent">
55
+ <a onclick="newWindow('/base/help/help.html#syslogConfiguration','syslogConfiguration','550','500')" href="javascript: void(0);">
56
+ <img height="12" width="12" title="Click for help" src="/base/images/help_icon.gif"/></a>
57
+ </td>
58
+ </tr>
59
+ <tr>
60
+ <td class="xuiSubSectionTabTopShadow" colspan="3"></td>
61
+ </tr>
62
+ </tbody></table>
63
+ </td>
64
+ </tr>
65
+ <tr>
66
+ <td class="xuiSubSectionBodyDot">&nbsp;</td>
67
+ <td class="xuiSpacer100Percent"><table class="xuiTableStyle" id="1" cellspacing="0" cellpadding="0"><tbody>
68
+ <!-- USR_FTL_DBG: node_start -->
69
+ <TR id=1_1 class=deftestme>
70
+ <TD class=defleft id=1_1_1>Admin Status</TD>
71
+ <TD class=defright id=1_1_1><INPUT xid=1_1_1 TYPE=hidden NAME=v_1_1_1 VALUE="Enable"></TD>
72
+ </TR>
73
+ <!-- USR_FTL_DBG: node_end -->
74
+ <!-- USR_FTL_DBG: node_start -->
75
+ <TR id=1_2 class=deftestme>
76
+ <TD class=defleft id=1_2_1>Local UDP Port</TD>
77
+ <TD class=defright id=1_2_1><INPUT xid=1_2_1 TYPE=hidden NAME=v_1_2_1 VALUE="514"></TD>
78
+ </TR>
79
+ <!-- USR_FTL_DBG: node_end -->
80
+ <!-- USR_FTL_DBG: node_start -->
81
+ <TR id=1_3 class=deftestme>
82
+ <TD class=defleft id=1_3_1>Messages Received</TD>
83
+ <TD class=defright id=1_3_1><INPUT xid=1_3_1 TYPE=hidden NAME=v_1_3_1 VALUE="9583"></TD>
84
+ </TR>
85
+ <!-- USR_FTL_DBG: node_end -->
86
+ <!-- USR_FTL_DBG: node_start -->
87
+ <TR id=1_5 class=deftestme>
88
+ <TD class=defleft id=1_5_1>Messages Relayed</TD>
89
+ <TD class=defright id=1_5_1><INPUT xid=1_5_1 TYPE=hidden NAME=v_1_5_1 VALUE="15"></TD>
90
+ </TR>
91
+ <!-- USR_FTL_DBG: node_end -->
92
+ <!-- USR_FTL_DBG: node_start -->
93
+ <TR id=1_4 class=deftestme>
94
+ <TD class=defleft id=1_4_1>Messages Ignored</TD>
95
+ <TD class=defright id=1_4_1><INPUT xid=1_4_1 TYPE=hidden NAME=v_1_4_1 VALUE="0"></TD>
96
+ </TR>
97
+ <!-- USR_FTL_DBG: node_end -->
98
+ </tbody></table></td>
99
+ <td class="xuiSubSectionBodyDotRight">&nbsp;</td>
100
+ </tr>
101
+ <tr><td class="xuiSubSectionBottom" colspan="3">&nbsp;</td></tr>
102
+ <tr><td class="xuiSpacerHeight15"/></tr>
103
+ </tbody></table></td>
104
+ </tr>
105
+ <!-- USR_FTL_DBG: group_common_end 1 1 -->
106
+
107
+
108
+
109
+ <!-- USR_FTL_DBG: group_common_start 1 1 -->
110
+ <tr id="2">
111
+ <td><table class="xuiTableStyle" cellspacing="0" cellpadding="0" >
112
+ <tbody>
113
+ <tr>
114
+ <td colspan="3">
115
+ <table class="xuiTableStyle" cellpadding="0" cellspacing="0" id="2" ><tbody>
116
+ <tr>
117
+ <td class="xuiSubSectionTabTopLeft xuiSpacer80Percent font12BoldBlue" colspan="2">Host Configuration</td>
118
+ <td class="xuiSubSectionTabTopRight xuiSpacer20Percent">
119
+ <a onclick="newWindow('/base/help/help.html#hosSyslogConfiguration','hosSyslogConfiguration','550','500')" href="javascript: void(0);">
120
+ <img height="12" width="12" title="Click for help" src="/base/images/help_icon.gif"/></a>
121
+ </td>
122
+ </tr>
123
+ <tr>
124
+ <td class="xuiSubSectionTabTopShadow" colspan="3"></td>
125
+ </tr>
126
+ </tbody></table>
127
+ </td>
128
+ </tr>
129
+ <tr>
130
+ <td class="xuiSubSectionBodyDot">&nbsp;</td>
131
+ <td class="xuiSpacer100Percent"><table class="xuiTableStyle" id="2" cellspacing="0" cellpadding="0"><tbody>
132
+ <!-- USR_FTL_DBG: repeat_start -->
133
+ <tr id='repeat_2_1'><td class="xuiPaddingSubSectionBodyWide" colspan=200>
134
+ <table id="tbl1" class="xuiTableStyle" cellspacing="0" cellpadding="0" ><tbody>
135
+ <TR id=2_1>
136
+ <!-- gecb.VTableHdrTd start -->
137
+ <td class="def_TH geRight"></td>
138
+ <!-- gecb.VTableHdrTd end -->
139
+ <TD class="def_TH alt0 firstCol" id=2_1_7>IP Address Type</TD>
140
+ <TD class="def_TH alt0" id=2_1_1>Host Address</TD>
141
+ <TD class="def_TH alt0" id=2_1_2>Status</TD>
142
+ <TD class="def_TH alt0" id=2_1_3>Port</TD>
143
+ <TD class="def_TH alt0" id=2_1_4>Severity Filter</TD>
144
+ </TR>
145
+ <!-- USR_FTL_DBG: repeat.VTableHdrThAll is not used -->
146
+ <TR id=g_2_1 >
147
+ <!-- gecb.VTableGlobalRow start -->
148
+ <td class="def_getd geRight"><INPUT id="2_1_null" type="checkbox" name="gecb121" xgc ></td>
149
+ <!-- gecb.VTableGlobalRow end -->
150
+ <TD style="display:none" class="def_getd alt0" id=g_2_1_6 ><INPUT xid=g_2_1_6 TYPE=hidden NAME=v_g_2_1_6 VALUE=""></TD>
151
+ <TD class="def_getd alt0 firstCol" id=g_2_1_7><INPUT xid=g_2_1_7 TYPE=hidden NAME=v_g_2_1_7 VALUE=""></TD>
152
+ <TD class="def_getd alt0" id=g_2_1_1><INPUT xid=g_2_1_1 TYPE=hidden NAME=v_g_2_1_1 VALUE=""></TD>
153
+ <TD class="def_getd alt0" id=g_2_1_2><INPUT xid=g_2_1_2 TYPE=hidden NAME=v_g_2_1_2 VALUE=""></TD>
154
+ <TD class="def_getd alt0" id=g_2_1_3><INPUT xid=g_2_1_3 TYPE=hidden NAME=v_g_2_1_3 VALUE=""></TD>
155
+ <TD class="def_getd alt0" id=g_2_1_4><INPUT xid=g_2_1_4 TYPE=hidden NAME=v_g_2_1_4 VALUE=""></TD>
156
+ <TD style="display:none" class="def_getd alt0" id=g_2_1_5 ><INPUT xid=g_2_1_5 TYPE=hidden NAME=v_g_2_1_5 VALUE="Add"></TD>
157
+ </TR>
158
+
159
+
160
+
161
+ <TR p="1.0.10" id=2_1>
162
+ <!-- gecb.VTableRow start -->
163
+ <td id="2_1_null" p="1.0.10" class="def alt0 geRight">
164
+ <INPUT id="2_1_null" type="checkbox" name="1.0.1.gecb122" xgc ></td>
165
+ <!-- gecb.VTableRow end -->
166
+ <TD style="display:none" class="def alt0" p="1.0.10" id=2_1_6><INPUT xid=2_1_6 TYPE=hidden NAME=1.0.1.v_2_1_6 VALUE="1"></TD>
167
+ <TD class="def alt0 firstCol" p="1.0.10" id=2_1_7><INPUT xid=2_1_7 TYPE=hidden NAME=1.0.1.v_2_1_7 VALUE="IPv4">IPv4</TD>
168
+ <TD class="def alt0" p="1.0.10" id=2_1_1><INPUT xid=2_1_1 TYPE=hidden NAME=1.0.1.v_2_1_1 VALUE="10.1.5.1">10.1.5.1</TD>
169
+ <TD class="def alt0" p="1.0.10" id=2_1_2><INPUT xid=2_1_2 TYPE=hidden NAME=1.0.1.v_2_1_2 VALUE="Active">Active</TD>
170
+ <TD class="def alt0" p="1.0.10" id=2_1_3><INPUT xid=2_1_3 TYPE=hidden NAME=1.0.1.v_2_1_3 VALUE="514">514</TD>
171
+ <TD class="def alt0" p="1.0.10" id=2_1_4><INPUT xid=2_1_4 TYPE=hidden NAME=1.0.1.v_2_1_4 VALUE="Info"></TD>
172
+ <TD style="display:none" class="def alt0" p="1.0.10" id=2_1_5><INPUT xid=2_1_5 TYPE=hidden NAME=1.0.1.v_2_1_5 VALUE="Add"></TD>
173
+ </TR>
174
+
175
+
176
+
177
+ </tbody></table></td></tr>
178
+ <!-- USR_FTL_DBG: repeat_end -->
179
+ </tbody></table></td>
180
+ <td class="xuiSubSectionBodyDotRight">&nbsp;</td>
181
+ </tr>
182
+ <tr><td class="xuiSubSectionBottom" colspan="3">&nbsp;</td></tr>
183
+ <tr><td class="xuiSpacerHeight15"/></tr>
184
+ </tbody></table></td>
185
+ </tr>
186
+ <!-- USR_FTL_DBG: group_common_end 1 1 -->
187
+
188
+
189
+
190
+
191
+ <!-- redirection elements -->
192
+ <INPUT TYPE="hidden" NAME="submit_flag" XC=hidden VALUE="0">
193
+ <INPUT TYPE="hidden" NAME="submit_target" XC=hidden VALUE="syslogConfiguration.html">
194
+ <INPUT TYPE="hidden" NAME="err_flag" XC=hidden SIZE="16" MAXLENGTH="15" VALUE="0">
195
+ <INPUT TYPE="hidden" NAME="err_msg" XC=hidden SIZE="80" MAXLENGTH="79" VALUE="">
196
+ <INPUT TYPE="hidden" NAME="clazz_information" XC=hidden VALUE="syslogConfiguration.html">
197
+ </tbody></table></div>
198
+ <!-- USR_FTL_DBG: form_end -->
199
+ <!-- USR_FTL_DBG: page_buttons_start -->
200
+ <div id="xuiButtonsDiv"><table align="right" class="xuiRightHAlign"><tr>
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+ <TD id=4_1_1><INPUT xid=4_1_1 DISABLED TYPE=hidden NAME=v_4_1_1 VALUE="ADD"></TD>
209
+
210
+
211
+ <TD id=4_3_1><INPUT xid=4_3_1 DISABLED TYPE=hidden NAME=v_4_3_1 VALUE="DELETE"></TD>
212
+
213
+
214
+ <TD id=4_4_1><INPUT xid=4_4_1 DISABLED TYPE=hidden NAME=v_4_4_1 VALUE="CANCEL"></TD>
215
+
216
+
217
+ <TD id=4_2_1><INPUT xid=4_2_1 DISABLED TYPE=hidden NAME=v_4_2_1 VALUE="APPLY"></TD>
218
+
219
+
220
+ </tr></table></div>
221
+ <!-- USR_FTL_DBG: page_buttons_end -->
222
+ <script type="text/javascript" >
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+ xeValData.xv_1_2_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 65535.";
231
+ xeValData.xv_1_2_1_630 = "Error: Unable to set '$$objName$$' with '$$objValue$$'. The format is invalid.";
232
+ xeValData.xv_1_2_1_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 65535.";
233
+ xeData.min_1_2_1 = "1";
234
+ xeData.max_1_2_1 = "65535";
235
+ xeData.minnls_1_2_1 = 842;
236
+ xeData.maxnls_1_2_1 = 842;
237
+
238
+
239
+
240
+ xeValData.xv_g_2_1_1_631 = "Error! Invalid String:Unable to set '$$objName$$' with '$$objValue$$'.";
241
+ xeValData.xv_g_2_1_3_630 = "Error: Unable to set '$$objName$$' with '$$objValue$$'. The format is invalid.";
242
+ xeValData.xv_g_2_1_3_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 65535.";
243
+ xeValData.xv_g_2_1_3_842 = "Error: Value ($$objValue$$) is out of range for '$$objName$$'. The valid range is 1 to 65535.";
244
+ xeData.min_g_2_1_3 = "1";
245
+ xeData.max_g_2_1_3 = "65535";
246
+ xeData.minnls_g_2_1_3 = 842;
247
+ xeData.maxnls_g_2_1_3 = 842;
248
+
249
+
250
+ xeData.arghelp_1_2_1 = "(1 to 65535)";
251
+ var global_repeats = new Array();
252
+ </script>
253
+ </DIV>
254
+ </FORM>
255
+
256
+ </BODY>
257
+ </HTML>
258
+