python-netgear-switch-library 0.0.post352__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.post352 → python_netgear_switch_library-0.0.post353}/PKG-INFO +1 -1
  2. {python_netgear_switch_library-0.0.post352 → 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.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/_version.py +2 -2
  4. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_http_configuration.html +177 -0
  5. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_syslog_configuration.html +258 -0
  6. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_user_configuration.html +176 -0
  7. python_netgear_switch_library-0.0.post353/tests/fixtures/http/gsm7252ps_vlan_status_live.html +233 -0
  8. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/.github/workflows/ci.yml +0 -0
  9. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/.github/workflows/deb.yml +0 -0
  10. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/.github/workflows/publish-pypi.yml +0 -0
  11. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/.gitignore +0 -0
  12. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/.readthedocs.yaml +0 -0
  13. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/CLAUDE.md +0 -0
  14. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/LICENSE +0 -0
  15. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/README.md +0 -0
  16. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/RELEASING.md +0 -0
  17. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/debian/changelog +0 -0
  18. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/debian/control +0 -0
  19. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/debian/copyright +0 -0
  20. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/debian/rules +0 -0
  21. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/debian/source/format +0 -0
  22. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/Makefile +0 -0
  23. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_ext/filelinks.py +0 -0
  24. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_ext/support_tables.py +0 -0
  25. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs105pe.png +0 -0
  26. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs110emx.png +0 -0
  27. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs305ep.png +0 -0
  28. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gs728tpp.png +0 -0
  29. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gsm7228ps.jpg +0 -0
  30. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/gsm7252ps.jpg +0 -0
  31. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/m4300-16x.png +0 -0
  32. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/models/m4300-24x.png +0 -0
  33. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/_static/ngsw.css +0 -0
  34. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/cli.rst +0 -0
  35. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/core.rst +0 -0
  36. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/facades.rst +0 -0
  37. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/index.rst +0 -0
  38. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/mcp.rst +0 -0
  39. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/operations.rst +0 -0
  40. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/protocols.rst +0 -0
  41. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/transport.rst +0 -0
  42. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/api/virtual.rst +0 -0
  43. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/cli.rst +0 -0
  44. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/conf.py +0 -0
  45. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/development.rst +0 -0
  46. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/fake/index.rst +0 -0
  47. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/fake/internals.rst +0 -0
  48. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/fake/serving.rst +0 -0
  49. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/fake/testing.rst +0 -0
  50. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/concepts.rst +0 -0
  51. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/configuration.rst +0 -0
  52. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/installation.rst +0 -0
  53. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/principles.rst +0 -0
  54. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/quickstart.rst +0 -0
  55. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/reading.rst +0 -0
  56. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/guide/writing.rst +0 -0
  57. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/index.rst +0 -0
  58. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/mcp.rst +0 -0
  59. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gs105pe.rst +0 -0
  60. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gs110emx.rst +0 -0
  61. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gs305ep.rst +0 -0
  62. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gs728tpp.rst +0 -0
  63. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gsm7228ps.rst +0 -0
  64. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/gsm7252ps.rst +0 -0
  65. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/index.rst +0 -0
  66. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/m4300-16x.rst +0 -0
  67. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/m4300-24x.rst +0 -0
  68. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/models/support.rst +0 -0
  69. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/cli.rst +0 -0
  70. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/cheetah-form.rst +0 -0
  71. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/cheetah-v1.rst +0 -0
  72. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/gambit.rst +0 -0
  73. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/merge-hash-cgi.rst +0 -0
  74. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http/xml-api.rst +0 -0
  75. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/http.rst +0 -0
  76. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/index.rst +0 -0
  77. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/nsdp.rst +0 -0
  78. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/protocols/snmp.rst +0 -0
  79. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-15-foundation.md +0 -0
  80. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-17-slice-02-snmp-read-core.md +0 -0
  81. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-17-slice-03-read-apis.md +0 -0
  82. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-04-snmp-write.md +0 -0
  83. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-05-nsdp.md +0 -0
  84. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-06-http.md +0 -0
  85. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-07-cli.md +0 -0
  86. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-18-slice-08-packaging-ci.md +0 -0
  87. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/plans/2026-07-23-gsm7252ps-http-xe-dialect.md +0 -0
  88. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/specs/2026-07-15-netgear-control-library-design.md +0 -0
  89. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/docs/superpowers/specs/2026-07-23-gsm7252ps-http-xe-dialect-design.md +0 -0
  90. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/packaging/apt-index.html +0 -0
  91. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/packaging/ci-build.sh +0 -0
  92. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/packaging/deb-version.py +0 -0
  93. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/pyproject.toml +0 -0
  94. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/__init__.py +0 -0
  95. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/_dispatch.py +0 -0
  96. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/aio_api.py +0 -0
  97. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/capabilities.py +0 -0
  98. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/__init__.py +0 -0
  99. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/capture.py +0 -0
  100. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/context.py +0 -0
  101. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/format.py +0 -0
  102. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/main.py +0 -0
  103. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/resolve.py +0 -0
  104. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli/safety.py +0 -0
  105. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli_read.py +0 -0
  106. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/cli_write.py +0 -0
  107. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/config.py +0 -0
  108. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/errors.py +0 -0
  109. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/http_read.py +0 -0
  110. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/http_write.py +0 -0
  111. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/mcp/__init__.py +0 -0
  112. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/mcp/server.py +0 -0
  113. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/models.py +0 -0
  114. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/nsdp_read.py +0 -0
  115. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/nsdp_write.py +0 -0
  116. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/__init__.py +0 -0
  117. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/__init__.py +0 -0
  118. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/commands.py +0 -0
  119. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/cli/parse.py +0 -0
  120. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/__init__.py +0 -0
  121. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/crypt.py +0 -0
  122. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/endpoints.py +0 -0
  123. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/forms.py +0 -0
  124. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/parse.py +0 -0
  125. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/session.py +0 -0
  126. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/http/types.py +0 -0
  127. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/__init__.py +0 -0
  128. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/auth.py +0 -0
  129. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/client.py +0 -0
  130. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/parsers.py +0 -0
  131. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/protocol.py +0 -0
  132. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/types.py +0 -0
  133. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/nsdp/write.py +0 -0
  134. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/__init__.py +0 -0
  135. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/client.py +0 -0
  136. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/oids.py +0 -0
  137. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/parse.py +0 -0
  138. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/protocols/snmp/write.py +0 -0
  139. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/py.typed +0 -0
  140. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/registry.py +0 -0
  141. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/snmp_read.py +0 -0
  142. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/snmp_write.py +0 -0
  143. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/sync_api.py +0 -0
  144. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/__init__.py +0 -0
  145. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/__init__.py +0 -0
  146. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/nsdp_udp.py +0 -0
  147. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/aio/snmp_pysnmp.py +0 -0
  148. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/__init__.py +0 -0
  149. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/console.py +0 -0
  150. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/session.py +0 -0
  151. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/ssh.py +0 -0
  152. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/cli/telnet.py +0 -0
  153. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/http/__init__.py +0 -0
  154. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/http/client.py +0 -0
  155. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/__init__.py +0 -0
  156. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/nsdp_udp.py +0 -0
  157. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/transport/sync/snmp_netsnmp_cli.py +0 -0
  158. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/__init__.py +0 -0
  159. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/cli_fastpath.py +0 -0
  160. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/__init__.py +0 -0
  161. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/cli.py +0 -0
  162. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/http.py +0 -0
  163. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/mibview.py +0 -0
  164. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/nsdp.py +0 -0
  165. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/faces/snmp.py +0 -0
  166. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/seed.py +0 -0
  167. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/server.py +0 -0
  168. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/state.py +0 -0
  169. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web.py +0 -0
  170. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_fastpath_vlan.py +0 -0
  171. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_fastpath_xui.py +0 -0
  172. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs105pe.py +0 -0
  173. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs110emx.py +0 -0
  174. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs110emx_templates.py +0 -0
  175. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gs728tpp.py +0 -0
  176. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gsm7228ps.py +0 -0
  177. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_gsm7252ps.py +0 -0
  178. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/src/netgear_switch/virtual/web_m4300.py +0 -0
  179. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/capture_parity.py +0 -0
  180. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_capture.py +0 -0
  181. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_cli_integration.py +0 -0
  182. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_control_poe_port.py +0 -0
  183. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_control_vlan_ip.py +0 -0
  184. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_format.py +0 -0
  185. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_main_framework.py +0 -0
  186. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_new_commands.py +0 -0
  187. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_op_coverage.py +0 -0
  188. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_prompt_wiring.py +0 -0
  189. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_read_commands.py +0 -0
  190. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_resolve.py +0 -0
  191. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_safety.py +0 -0
  192. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/cli/test_serve.py +0 -0
  193. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/conftest.py +0 -0
  194. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/equivalence.py +0 -0
  195. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/gsm7228ps.json +0 -0
  196. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/gsm7252ps.json +0 -0
  197. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/m4300-16x.json +0 -0
  198. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/captures/m4300-24x.json +0 -0
  199. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_environment.txt +0 -0
  200. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_lldp.txt +0 -0
  201. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_mac_table.txt +0 -0
  202. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_network.txt +0 -0
  203. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_poe.txt +0 -0
  204. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_port_all.txt +0 -0
  205. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_show_version.txt +0 -0
  206. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan.txt +0 -0
  207. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan_brief.txt +0 -0
  208. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7228ps_vlan_port_all.txt +0 -0
  209. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_environment.txt +0 -0
  210. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_interface_ethernet_1_0_1.txt +0 -0
  211. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_lldp_remote_device_all.txt +0 -0
  212. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_mac_addr_table.txt +0 -0
  213. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_network.txt +0 -0
  214. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_poe_port_info_all.txt +0 -0
  215. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_port_all.txt +0 -0
  216. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_version.txt +0 -0
  217. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_90.txt +0 -0
  218. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_brief.txt +0 -0
  219. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/gsm7252ps_show_vlan_port_all.txt +0 -0
  220. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_environment.txt +0 -0
  221. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_interface_ethernet_1_0_1.txt +0 -0
  222. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_ip_management.txt +0 -0
  223. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_lldp_remote_device_all.txt +0 -0
  224. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_mac_addr_table.txt +0 -0
  225. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_poe_port_info_all.txt +0 -0
  226. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_port_all.txt +0 -0
  227. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_version.txt +0 -0
  228. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan.txt +0 -0
  229. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_1.txt +0 -0
  230. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_4.txt +0 -0
  231. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_5.txt +0 -0
  232. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_16x_show_vlan_port_all.txt +0 -0
  233. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_environment.txt +0 -0
  234. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_interface_ethernet_1_0_1.txt +0 -0
  235. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_ip_management.txt +0 -0
  236. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_lldp_remote_device_all.txt +0 -0
  237. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_mac_addr_table.txt +0 -0
  238. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_port_all.txt +0 -0
  239. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_version.txt +0 -0
  240. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan.txt +0 -0
  241. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_5.txt +0 -0
  242. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_90.txt +0 -0
  243. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/cli/m4300_24x_show_vlan_port_all.txt +0 -0
  244. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_membership.html +0 -0
  245. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_portstats.html +0 -0
  246. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_pvid.html +0 -0
  247. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_status.html +0 -0
  248. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_switch_info.html +0 -0
  249. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs105pe_vlancfg.html +0 -0
  250. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_cf8021q.html +0 -0
  251. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_interface_stats.html +0 -0
  252. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_login.html +0 -0
  253. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_port_settings.html +0 -0
  254. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_pvid.html +0 -0
  255. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_redirect.html +0 -0
  256. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_sysinfo.html +0 -0
  257. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs110emx_vlanmembership.html +0 -0
  258. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_dashboard.html +0 -0
  259. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_login.html +0 -0
  260. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_membership.html +0 -0
  261. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_poestatus.html +0 -0
  262. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_portstats.html +0 -0
  263. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_pvid.html +0 -0
  264. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs305ep_vlancfg.html +0 -0
  265. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_device_info_and_sensors.xml +0 -0
  266. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_lldp.xml +0 -0
  267. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_macs.xml +0 -0
  268. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_mgmt_ip.xml +0 -0
  269. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_poe.xml +0 -0
  270. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_ports.xml +0 -0
  271. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_pvids_membership.xml +0 -0
  272. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_vlan_membership_per_vlan.xml +0 -0
  273. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gs728tpp_vlans.xml +0 -0
  274. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_basicAddressTable.html +0 -0
  275. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_ipConfiguration.html +0 -0
  276. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_lldpRemoteInventory.html +0 -0
  277. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_poeInterfaceConfiguration.html +0 -0
  278. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portPvidConfiguration.html +0 -0
  279. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portStatistics.html +0 -0
  280. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_portsConfiguration.html +0 -0
  281. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_sysInfo.html +0 -0
  282. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_vlanPortCfg_vlan5.html +0 -0
  283. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7228ps_vlanStatus.html +0 -0
  284. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_basicAddressTable.html +0 -0
  285. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_ipConfiguration.html +0 -0
  286. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_lldpRemoteInventory.html +0 -0
  287. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_login.html +0 -0
  288. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_poeInterfaceConfiguration.html +0 -0
  289. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portPvidConfiguration.html +0 -0
  290. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portStatistics.html +0 -0
  291. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_portsConfiguration.html +0 -0
  292. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_sysInfo.html +0 -0
  293. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan1.html +0 -0
  294. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan141.html +0 -0
  295. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/gsm7252ps_vlanStatus.html +0 -0
  296. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_lldpRemoteInventory.html +0 -0
  297. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_mgmtVlanIpv4Configuration.html +0 -0
  298. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_poeInterfaceConfiguration.html +0 -0
  299. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_portsConfiguration.html +0 -0
  300. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_16x_vlanportcfg_vlan4.html +0 -0
  301. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_24x_poeInterfaceConfiguration.html +0 -0
  302. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_addresstable.html +0 -0
  303. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_lldpRemoteInventory.html +0 -0
  304. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_mgmtVlanIpv4Configuration.html +0 -0
  305. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_ports.html +0 -0
  306. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_portstats.html +0 -0
  307. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_pvid.html +0 -0
  308. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_sysinfo.html +0 -0
  309. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_vlanportcfg_vlan1.html +0 -0
  310. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/http/m4300_vlanstatus.html +0 -0
  311. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_fans.txt +0 -0
  312. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_ifhighspeed.txt +0 -0
  313. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_ifoperstatus.txt +0 -0
  314. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/fixtures/snmp/gsm7252ps_psu.txt +0 -0
  315. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/http_specs.py +0 -0
  316. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/cli/test_cli_parse.py +0 -0
  317. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_crypt.py +0 -0
  318. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_endpoints.py +0 -0
  319. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_forms.py +0 -0
  320. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/http/test_parse.py +0 -0
  321. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_auth.py +0 -0
  322. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_parsers.py +0 -0
  323. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_protocol.py +0 -0
  324. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/nsdp/test_write_frame.py +0 -0
  325. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_client.py +0 -0
  326. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_oids.py +0 -0
  327. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_lldp_macs.py +0 -0
  328. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_mgmt_ip.py +0 -0
  329. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_poe_sensors.py +0 -0
  330. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_ports.py +0 -0
  331. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_system_info.py +0 -0
  332. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_parse_vlans.py +0 -0
  333. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/protocols/snmp/test_write_encode.py +0 -0
  334. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_aio_api.py +0 -0
  335. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_capabilities.py +0 -0
  336. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_cli_read.py +0 -0
  337. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_cli_vlan_write.py +0 -0
  338. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_cli_write.py +0 -0
  339. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_config.py +0 -0
  340. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_cross_backend_equivalence.py +0 -0
  341. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_deb_version.py +0 -0
  342. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_dispatch.py +0 -0
  343. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_docs_coverage.py +0 -0
  344. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_errors.py +0 -0
  345. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_facade_equivalence.py +0 -0
  346. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_dispatch.py +0 -0
  347. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_equivalence.py +0 -0
  348. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_read.py +0 -0
  349. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_vlan_membership.py +0 -0
  350. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_write.py +0 -0
  351. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_http_xui_writes.py +0 -0
  352. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_import.py +0 -0
  353. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_mcp_server.py +0 -0
  354. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_models.py +0 -0
  355. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_models_snmp_read.py +0 -0
  356. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_integration.py +0 -0
  357. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_read.py +0 -0
  358. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_nsdp_write.py +0 -0
  359. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_public_api.py +0 -0
  360. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_quality_gates.py +0 -0
  361. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_registry.py +0 -0
  362. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_integration.py +0 -0
  363. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_read.py +0 -0
  364. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_snmp_write.py +0 -0
  365. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_sync_api.py +0 -0
  366. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_version.py +0 -0
  367. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/test_write_equivalence.py +0 -0
  368. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/_fastpath_fake.py +0 -0
  369. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_console.py +0 -0
  370. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_scp_cert.py +0 -0
  371. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_cli_telnet.py +0 -0
  372. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_http_client.py +0 -0
  373. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_nsdp_udp_sync.py +0 -0
  374. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_set_transport.py +0 -0
  375. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_snmp_netsnmp_cli.py +0 -0
  376. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_snmp_pysnmp.py +0 -0
  377. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/transport/test_value_parity.py +0 -0
  378. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_cli_cross_backend.py +0 -0
  379. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_cli_gsm7228ps_parity.py +0 -0
  380. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_gsm7228ps_seed.py +0 -0
  381. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_hostname.py +0 -0
  382. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_m4300_seeds.py +0 -0
  383. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_mibview.py +0 -0
  384. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_mutable_state.py +0 -0
  385. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_nsdp_state.py +0 -0
  386. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_serve_daemon.py +0 -0
  387. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_snmp_write_face.py +0 -0
  388. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_state_seed.py +0 -0
  389. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_switchport_vlan_write.py +0 -0
  390. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_syslog_fidelity.py +0 -0
  391. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_http_face.py +0 -0
  392. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_nsdp_face.py +0 -0
  393. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_virtual_snmp_face.py +0 -0
  394. {python_netgear_switch_library-0.0.post352 → python_netgear_switch_library-0.0.post353}/tests/virtual/test_web_projection.py +0 -0
  395. {python_netgear_switch_library-0.0.post352 → 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.post352
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.post352'
22
- __version_tuple__ = version_tuple = (0, 0, 'post352')
21
+ __version__ = version = '0.0.post353'
22
+ __version_tuple__ = version_tuple = (0, 0, 'post353')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -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
+