diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..e429594e54 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +tests/resources/spellcheck/*.txt diff \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7045372502..b534f86ca6 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -73,8 +73,10 @@ Mention the automated tests included in this FOR (what they test like mode/optio - [ ] I have followed the **[coding style guidelines](https://github.com/centreon/centreon-plugins/blob/develop/doc/en/developer/plugins_global.md#5-code-style-guidelines)** provided by Centreon - [ ] I have commented my code, especially **hard-to-understand areas** of the PR. - [ ] I have **rebased** my development branch on the base branch (develop). +- [ ] In case of a new plugin, I have created the new packaging directory accordingly. - [ ] I have implemented automated tests related to my commits. - [ ] I have reviewed all the help messages in all the .pm files I have modified. - [ ] All sentences begin with a capital letter. - [ ] All sentences are terminated by a period. - - [ ] I am able to understand all the help messages, if not, exchange with the PO or TW to rewrite them. \ No newline at end of file + - [ ] I am able to understand all the help messages, if not, exchange with the PO or TW to rewrite them. +- [ ] After having created the PR, I will make sure that all the tests provided in this PR have run and passed. diff --git a/.github/actions/package-nfpm/action.yml b/.github/actions/package-nfpm/action.yml index 0406144b8a..1aca021b83 100644 --- a/.github/actions/package-nfpm/action.yml +++ b/.github/actions/package-nfpm/action.yml @@ -54,6 +54,12 @@ runs: rm -f ./*.rpm shell: bash + - name: Parse distrib name + id: parse-distrib + uses: ./.github/actions/parse-distrib + with: + distrib: ${{ inputs.distrib }} + - name: Import gpg key env: RPM_GPG_SIGNING_KEY: ${{ inputs.rpm_gpg_key }} @@ -84,9 +90,9 @@ runs: else export DIST="" if [ "${{ inputs.stability }}" == "unstable" ] || [ "${{ inputs.stability }}" == "canary" ]; then - export RELEASE="$RELEASE~${{ inputs.distrib }}" + export RELEASE="$RELEASE${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }}" else - export RELEASE="1~${{ inputs.distrib }}" + export RELEASE="1${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }}" fi export APACHE_USER="www-data" export APACHE_GROUP="www-data" diff --git a/.github/actions/parse-distrib/action.yml b/.github/actions/parse-distrib/action.yml new file mode 100644 index 0000000000..bf79d00056 --- /dev/null +++ b/.github/actions/parse-distrib/action.yml @@ -0,0 +1,46 @@ +name: "parse-distrib" +description: "parse distrib name." +inputs: + distrib: + description: "The distribution name" + required: true +outputs: + package_distrib_separator: + description: "Separator between package version and distrib number" + value: ${{ steps.parse-distrib.outputs.package_distrib_separator }} + package_distrib_name: + description: "Distribution suffix in package name" + value: ${{ steps.parse-distrib.outputs.package_distrib_name }} + +runs: + using: "composite" + steps: + - name: Parse distrib + id: parse-distrib + run: | + if [[ "${{ inputs.distrib }}" == "centos7" || "${{ inputs.distrib }}" == "el7" ]]; then + PACKAGE_DISTRIB_SEPARATOR="." + PACKAGE_DISTRIB_NAME="el7" + elif [[ "${{ inputs.distrib }}" == "alma8" || "${{ inputs.distrib }}" == "el8" ]]; then + PACKAGE_DISTRIB_SEPARATOR="." + PACKAGE_DISTRIB_NAME="el8" + elif [[ "${{ inputs.distrib }}" == "alma9" || "${{ inputs.distrib }}" == "el9" ]]; then + PACKAGE_DISTRIB_SEPARATOR="." + PACKAGE_DISTRIB_NAME="el9" + elif [[ "${{ inputs.distrib }}" == "bullseye" ]]; then + PACKAGE_DISTRIB_SEPARATOR="+" + PACKAGE_DISTRIB_NAME="deb11u1" + elif [[ "${{ inputs.distrib }}" == "bookworm" ]]; then + PACKAGE_DISTRIB_SEPARATOR="+" + PACKAGE_DISTRIB_NAME="deb12u1" + elif [[ "${{ inputs.distrib }}" == "jammy" ]]; then + PACKAGE_DISTRIB_SEPARATOR="-" + PACKAGE_DISTRIB_NAME="0ubuntu.22.04" + else + echo "::error::Distrib ${{ inputs.distrib }} cannot be parsed" + exit 1 + fi + + echo "package_distrib_separator=$PACKAGE_DISTRIB_SEPARATOR" >> $GITHUB_OUTPUT + echo "package_distrib_name=$PACKAGE_DISTRIB_NAME" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/promote-to-stable/action.yml b/.github/actions/promote-to-stable/action.yml index 0309e7677f..209f10d38d 100644 --- a/.github/actions/promote-to-stable/action.yml +++ b/.github/actions/promote-to-stable/action.yml @@ -22,6 +22,12 @@ runs: JF_URL: https://centreon.jfrog.io JF_ACCESS_TOKEN: ${{ inputs.artifactory_token }} + - name: Parse distrib name + id: parse-distrib + uses: ./.github/actions/parse-distrib + with: + distrib: ${{ inputs.distrib }} + - name: Promote RPM packages to stable if: ${{ startsWith(inputs.distrib, 'el') }} run: | @@ -68,15 +74,15 @@ runs: echo "[DEBUG] - Distrib: ${{ inputs.module }}" echo "[DEBUG] - Get path of testing DEB packages to promote to stable." - SRC_PATHS=$(jf rt search --include-dirs apt-plugins-testing/pool/${{ inputs.module }}/*${{ inputs.distrib }}*.deb | jq -r '.[].path') + SRC_PATHS=$(jf rt search --include-dirs apt-plugins-testing/pool/${{ inputs.module }}/*${{ steps.parse-distrib.outputs.package_distrib_name }}*.deb | jq -r '.[].path') if [[ ${SRC_PATHS[@]} ]]; then for SRC_PATH in ${SRC_PATHS[@]}; do echo "[DEBUG] - Source path found: $SRC_PATH" done else - echo "[DEBUG] - No source path found." - continue + echo "::warning::No source path found." + exit 0 fi echo "[DEBUG] - Build target path." @@ -95,5 +101,4 @@ runs: jf rt upload "$ARTIFACT_DL" "$TARGET_PATH" --deb "${{ inputs.distrib }}/main/$ARCH" done rm -f *.deb - shell: bash diff --git a/.github/docker/packaging/Dockerfile.packaging-plugins-bookworm b/.github/docker/packaging/Dockerfile.packaging-plugins-bookworm index 476a9875cc..5927c55b83 100644 --- a/.github/docker/packaging/Dockerfile.packaging-plugins-bookworm +++ b/.github/docker/packaging/Dockerfile.packaging-plugins-bookworm @@ -2,7 +2,7 @@ ARG REGISTRY_URL=docker.io FROM ${REGISTRY_URL}/debian:bookworm -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive # fix locale RUN bash -e <&1 > /dev/null | grep 'java.home' | tr -s ' ' | cut -d ' ' -f 4) + + - name: Build JAR using maven + run: mvn -version && mvn clean install -f as400/connector.as400/pom.xml + + - name: Remove me after debug + run: find / -name "centreon-as400*.jar" + + - name: Package + uses: ./.github/actions/package-nfpm + with: + nfpm_file_pattern: "as400/packaging/centreon-as400-daemon.yaml" + distrib: ${{ matrix.distrib }} + package_extension: ${{ matrix.package_extension }} + version: ${{ needs.get-environment.outputs.version }} + release: 1 + arch: all + commit_hash: ${{ github.sha }} + cache_key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-as400-${{ matrix.distrib }} + rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }} + rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }} + rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }} + stability: ${{ needs.get-environment.outputs.stability }} + + - name: Save to cache + uses: actions/cache/save@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2 + with: + path: ./*.${{ matrix.package_extension }} + key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }} + + deliver-rpm: + needs: [get-environment, package] + if: ${{ contains(fromJson('["stable", "testing", "unstable"]'), needs.get-environment.outputs.stability) }} + runs-on: [self-hosted, common] + + strategy: + matrix: + distrib: [el8, el9] + + steps: + - name: Checkout sources + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Delivery + uses: ./.github/actions/rpm-delivery + with: + module_name: as400 + distrib: ${{ matrix.distrib }} + cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-${{ matrix.distrib }} + stability: ${{ needs.get-environment.outputs.stability }} + artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} + + deliver-deb: + needs: [get-environment, package] + if: ${{ contains(fromJson('["stable", "testing", "unstable"]'), needs.get-environment.outputs.stability) }} + runs-on: [self-hosted, common] + + strategy: + matrix: + distrib: [bullseye, bookworm, jammy] + + steps: + - name: Checkout sources + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Delivery + uses: ./.github/actions/deb-delivery + with: + module_name: as400 + distrib: ${{ matrix.distrib }} + cache_key: ${{ github.sha }}-${{ github.run_id }}-deb-${{ matrix.distrib }} + stability: ${{ needs.get-environment.outputs.stability }} + artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} diff --git a/.github/workflows/docker-builder-packaging-plugins.yml b/.github/workflows/docker-builder-packaging-plugins.yml index ed27cbf655..87fd0cd168 100644 --- a/.github/workflows/docker-builder-packaging-plugins.yml +++ b/.github/workflows/docker-builder-packaging-plugins.yml @@ -28,6 +28,12 @@ jobs: - runner: ubuntu-22.04 dockerfile: packaging-plugins-alma9 image: packaging-plugins-alma9 + - runner: ubuntu-22.04 + dockerfile: packaging-plugins-java-alma8 + image: packaging-plugins-java-alma8 + - runner: ubuntu-22.04 + dockerfile: packaging-plugins-java-alma9 + image: packaging-plugins-java-alma9 - runner: ubuntu-22.04 dockerfile: packaging-plugins-bullseye image: packaging-plugins-bullseye @@ -37,9 +43,18 @@ jobs: - runner: ubuntu-22.04 dockerfile: packaging-plugins-bookworm image: packaging-plugins-bookworm + - runner: ubuntu-22.04 + dockerfile: packaging-plugins-java-bullseye + image: packaging-plugins-java-bullseye + - runner: ubuntu-22.04 + dockerfile: packaging-plugins-java-bookworm + image: packaging-plugins-java-bookworm - runner: ubuntu-22.04 dockerfile: packaging-plugins-jammy image: packaging-plugins-jammy + - runner: ubuntu-22.04 + dockerfile: packaging-plugins-java-jammy + image: packaging-plugins-java-jammy runs-on: ${{ matrix.runner }} diff --git a/.github/workflows/perl-cpan-libraries.yml b/.github/workflows/perl-cpan-libraries.yml index 2630a4aca5..d40d9ebfa4 100644 --- a/.github/workflows/perl-cpan-libraries.yml +++ b/.github/workflows/perl-cpan-libraries.yml @@ -47,6 +47,7 @@ jobs: "Convert::Binary::C", "Convert::EBCDIC", "Crypt::Blowfish_PP", + "Crypt::OpenSSL::AES", "DataStruct::Flat", "DateTime::Format::Duration::ISO8601", "DBD::Sybase", @@ -130,6 +131,8 @@ jobs: - name: "Exporter::Shiny" build_distribs: el8 rpm_provides: "perl(Exporter::Shiny) perl(Exporter::Tiny)" + - name: "FFI::CheckLib" + rpm_dependencies: "perl(Env)" - name: "FFI::Platypus" rpm_provides: "perl(FFI::Platypus::Buffer) perl(FFI::Platypus::Memory)" rpm_dependencies: "perl(Capture::Tiny) perl(FFI::CheckLib) perl(File::Spec::Functions) perl(IPC::Cmd) perl(JSON::PP) perl(List::Util) perl(autodie) perl(constant) perl(parent)" @@ -288,11 +291,11 @@ jobs: distrib: [el8, el9] name: sign rpm ${{ matrix.distrib }} container: - image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/rpm-signing:ubuntu + image: docker.centreon.com/centreon-private/rpm-signing:latest options: -t credentials: - username: ${{ secrets.DOCKER_REGISTRY_ID }} - password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} + username: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_USERNAME }} + password: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_TOKEN }} steps: - run: apt-get install -y zstd @@ -354,6 +357,7 @@ jobs: "Config::AWS", "Convert::EBCDIC", "Crypt::Blowfish_PP", + "Crypt::OpenSSL::AES", "DataStruct::Flat", "DateTime::Format::Duration::ISO8601", "Device::Modbus", @@ -363,6 +367,7 @@ jobs: "HTTP::ProxyPAC", "JMX::Jmx4Perl", "Mojo::IOLoop::Signal", + "Net::Amazon::Signature::V4", "Net::FTPSSL", "Net::HTTPTunnel", "Net::MQTT::Simple", @@ -396,6 +401,8 @@ jobs: image: packaging-plugins-bullseye-arm64 arch: arm64 runner_name: ["self-hosted", "collect-arm64"] + - name: "Net::Amazon::Signature::V4" + build_distribs: ["bullseye", "jammy"] - name: "Paws" use_dh_make_perl: "false" deb_dependencies: "libmoose-perl libmoosex-classattribute-perl libjson-maybexs-perl liburl-encode-perl libargv-struct-perl libmoo-perl libtype-tiny-perl libdatastruct-flat-perl libmodule-find-perl libthrowable-perl liburi-template-perl libnet-amazon-signature-v4-perl" @@ -418,6 +425,13 @@ jobs: - if: ${{ contains(matrix.build_distribs, matrix.distrib) }} uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - if: ${{ contains(matrix.build_distribs, matrix.distrib) }} + name: Parse distrib name + id: parse-distrib + uses: ./.github/actions/parse-distrib + with: + distrib: ${{ matrix.distrib }} + - if: ${{ contains(matrix.build_distribs, matrix.distrib) }} name: Get package version id: package-version @@ -463,7 +477,8 @@ jobs: gem install fpm # Patch to apply fpm fix for debian package generation while waiting for the official fix to be released. patch -i .github/patch/fpm-deb.rb.diff $(find / -type f -name "deb.rb") - fpm -a native -s cpan -t ${{ matrix.package_extension }} --deb-dist ${{ matrix.distrib }} --iteration ${{ matrix.distrib }} --verbose --cpan-verbose --no-cpan-test$PACKAGE_DEPENDENCIES -v ${{ steps.package-version.outputs.package_version }} ${{ matrix.name }} + + fpm -a native -s cpan -t ${{ matrix.package_extension }} --deb-dist ${{ matrix.distrib }} --iteration ${{ steps.parse-distrib.outputs.package_distrib_name }} --verbose --cpan-verbose --no-cpan-test$PACKAGE_DEPENDENCIES -v ${{ steps.package-version.outputs.package_version }} ${{ matrix.name }} shell: bash - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.use_dh_make_perl == 'true' }} @@ -471,7 +486,7 @@ jobs: apt-get install -y libcurl4-openssl-dev dh-make-perl libssh-dev uuid-dev libczmq-dev libmodule-install-perl libmodule-build-tiny-perl # module-build-tiny is required for Mojo::IOLoop::Signal build. - DEB_BUILD_OPTIONS="nocheck nodocs notest" dh-make-perl make --dist ${{ matrix.distrib }} --build --version ${{ steps.package-version.outputs.package_version }}-${{ matrix.distrib }} --cpan ${{ matrix.name }} + DEB_BUILD_OPTIONS="nocheck nodocs notest" dh-make-perl make --dist ${{ matrix.distrib }} --build --version ${{ steps.package-version.outputs.package_version }}${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }} --cpan ${{ matrix.name }} shell: bash - if: ${{ contains(matrix.build_distribs, matrix.distrib) }} diff --git a/.github/workflows/perl-filesys-smbclient.yml b/.github/workflows/perl-filesys-smbclient.yml index 62875563fe..bf5b29f519 100644 --- a/.github/workflows/perl-filesys-smbclient.yml +++ b/.github/workflows/perl-filesys-smbclient.yml @@ -78,11 +78,11 @@ jobs: distrib: el9 name: sign rpm ${{ matrix.distrib }} container: - image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/rpm-signing:ubuntu + image: docker.centreon.com/centreon-private/rpm-signing:latest options: -t credentials: - username: ${{ secrets.DOCKER_REGISTRY_ID }} - password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} + username: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_USERNAME }} + password: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_TOKEN }} steps: - run: | @@ -132,6 +132,12 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - name: Parse distrib name + id: parse-distrib + uses: ./.github/actions/parse-distrib + with: + distrib: ${{ matrix.distrib }} + - run: | apt update apt install -y dh-make-perl perl libsmbclient-dev @@ -139,7 +145,7 @@ jobs: mv dependencies/perl-filesys-smbclient/src/ perl-filesys-smbclient tar czf perl-filesys-smbclient.tar.gz perl-filesys-smbclient - DEB_BUILD_OPTIONS="nocheck nodocs notest noautodbgsym" dh-make-perl make --dist ${{ matrix.distrib }} --verbose --build --version 4.0-${{ matrix.distrib }} perl-filesys-smbclient/ + DEB_BUILD_OPTIONS="nocheck nodocs notest noautodbgsym" dh-make-perl make --dist ${{ matrix.distrib }} --verbose --build --version 4.0${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }} perl-filesys-smbclient/ shell: bash - uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 diff --git a/.github/workflows/plink.yml b/.github/workflows/plink.yml index 9853e2a62d..115391ba75 100644 --- a/.github/workflows/plink.yml +++ b/.github/workflows/plink.yml @@ -72,11 +72,11 @@ jobs: distrib: el9 name: sign rpm ${{ matrix.distrib }} container: - image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/rpm-signing:ubuntu + image: docker.centreon.com/centreon-private/rpm-signing:latest options: -t credentials: - username: ${{ secrets.DOCKER_REGISTRY_ID }} - password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} + username: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_USERNAME }} + password: ${{ secrets.HARBOR_RPM_GPG_SIGNING_REPO_TOKEN }} steps: - run: | diff --git a/.github/workflows/plugins.yml b/.github/workflows/plugins.yml index c31be04f17..6b9f6b50cf 100644 --- a/.github/workflows/plugins.yml +++ b/.github/workflows/plugins.yml @@ -10,6 +10,7 @@ on: paths: - '.github/workflows/plugins.yml' - '.github/scripts/plugins-source.container.pl' + - '.github/packaging/centreon-plugin.yaml.template' - 'src/**' - 'packaging/**' push: @@ -18,6 +19,8 @@ on: - master paths: - '.github/workflows/plugins.yml' + - '.github/scripts/plugins-source.container.pl' + - '.github/packaging/centreon-plugin.yaml.template' - 'src/**' - 'packaging/**' @@ -46,6 +49,7 @@ jobs: filters: | common: - added|deleted|modified: src/centreon/** + - modified: .github/packaging/centreon-plugin.yaml.template packages: - added|modified: packaging/** plugins: diff --git a/as400/LICENSE b/as400/LICENSE new file mode 100644 index 0000000000..57bc88a15a --- /dev/null +++ b/as400/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/as400/changelog b/as400/changelog new file mode 100644 index 0000000000..e1433dfafb --- /dev/null +++ b/as400/changelog @@ -0,0 +1,8 @@ +2024-10-10 Olivier Mercier - 2.0.3 + * New build workflow + +2021-12-31 Quentin Garnier - 2.0.1 + * Use log4j 2.17.1 + +2021-10-13 Quentin Garnier - 2.0.0 + * New release diff --git a/as400/connector.as400.install/.project b/as400/connector.as400.install/.project new file mode 100644 index 0000000000..afe70dda0c --- /dev/null +++ b/as400/connector.as400.install/.project @@ -0,0 +1,11 @@ + + + as400.install + + + + + + + + diff --git a/as400/connector.as400.install/etc/config.properties b/as400/connector.as400.install/etc/config.properties new file mode 100644 index 0000000000..ba780d0326 --- /dev/null +++ b/as400/connector.as400.install/etc/config.properties @@ -0,0 +1,39 @@ +daemonListenerHost=localhost + +#as400 login timeout for nagios check (ms) +as400LoginTimeout=10000 + +#as400 read timeout for nagios check (ms) +as400ReadTimeout=300000 + +#Time before cleaning an unused as400 resource (ms) +as400ResourceDuration=7200000 + +#time before killing a dead as400 connection (s) +as400SoLinger=1 + +#Duration of the job & (ms) +cacheTimeout=60000 + +daemonNoRequestTimeout=5000 + +daemonRequestParseTimeout=5000 + +#time before killing a dead as400 connection (s) +daemonSoLinger=1 + +#Time before discaring a check in queue (ms) +workerQueueTimeout=360000 + +# active debug +debug=false + +# active exception +exception=false + +# active trace (in /tmp/trace.log) +trace=false + +# MessageQueueDB Base path +pathMsgQDB=/tmp/ + diff --git a/as400/connector.as400.install/etc/log4j2.xml b/as400/connector.as400.install/etc/log4j2.xml new file mode 100644 index 0000000000..4da5ff7cf3 --- /dev/null +++ b/as400/connector.as400.install/etc/log4j2.xml @@ -0,0 +1,29 @@ + + + + + + + + + + ${sys:CONNECTOR_LOG}/connector.log + ${sys:CONNECTOR_LOG}/connector.%d{yyyy-MM-dd}.log + + [%-20d{dd/MM/yyyy HH:mm:ss}] [%-6p] %m %n + + + + + + + + + + + + + + + + diff --git a/as400/connector.as400.install/init-script/centreon-as400-sysconfig b/as400/connector.as400.install/init-script/centreon-as400-sysconfig new file mode 100644 index 0000000000..1c52ce76e1 --- /dev/null +++ b/as400/connector.as400.install/init-script/centreon-as400-sysconfig @@ -0,0 +1,8 @@ +# centreon-as400 command line options +JAVA_OPTS="-Xms128M -Xmx2G -XX:MaxPermSize=128m" +CONNECTOR_OPTS="--port 8091" +CONNECTOR_HOME=@CONNECTOR_HOME@ +CONNECTOR_ETC=@CONNECTOR_ETC@ +CONNECTOR_LOG=@CONNECTOR_LOG@ +CONNECTOR_TMP=/tmp/ +CONNECTOR_BIN=@CONNECTOR_HOME@/bin/centreon-as400-@CONNECTOR_VERSION@-jar-with-dependencies.jar diff --git a/as400/connector.as400.install/init-script/centreon-as400.service b/as400/connector.as400.install/init-script/centreon-as400.service new file mode 100644 index 0000000000..5120752a4e --- /dev/null +++ b/as400/connector.as400.install/init-script/centreon-as400.service @@ -0,0 +1,29 @@ +## +## Copyright 2019-2021 Centreon +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## +## For more information : contact@centreon.com +## + +[Unit] +Description=Centreon AS400 + +[Service] +EnvironmentFile=/etc/sysconfig/centreon-as400 +ExecStart=@JAVA_BIN@ $JAVA_OPTS -DCONNECTOR_HOME=${CONNECTOR_HOME} -DCONNECTOR_ETC=${CONNECTOR_ETC} -DCONNECTOR_LOG=${CONNECTOR_LOG} -DCONNECTOR_TMP=${CONNECTOR_TMP} -jar $CONNECTOR_BIN $CONNECTOR_OPTS +Type=simple +User=centreon-as400 + +[Install] +WantedBy=multi-user.target diff --git a/as400/connector.as400.install/install.sh b/as400/connector.as400.install/install.sh new file mode 100755 index 0000000000..69d9a33a44 --- /dev/null +++ b/as400/connector.as400.install/install.sh @@ -0,0 +1,243 @@ +#!/bin/bash + +################################################# +##Functions and vars for actions results printing +################################################# + +RES_COL=80 +MOVE_TO_COL="echo -en \\033[${RES_COL}G" +SETCOLOR_INFO="echo -en \\033[1;38m" +SETCOLOR_SUCCESS="echo -en \\033[1;32m" +SETCOLOR_FAILURE="echo -en \\033[1;31m" +SETCOLOR_NORMAL="echo -en \\033[0;39m" +SETCOLOR_WARNING="echo -en \\033[1;33m" + +function echo_success() { + echo -n "$1" + $MOVE_TO_COL + $SETCOLOR_SUCCESS + echo -n "$2" + $SETCOLOR_NORMAL + echo -e "\r" + echo "" +} + +function echo_failure() { + echo -n "$1" + $MOVE_TO_COL + $SETCOLOR_FAILURE + echo -n "$2" + $SETCOLOR_NORMAL + echo -e "\r" + echo "" +} + +function echo_passed() { + echo -n "$1" + $MOVE_TO_COL + $SETCOLOR_WARNING + echo -n "$2" + $SETCOLOR_NORMAL + echo -e "\r" + echo "" +} + +################## +##Static variables +################## + +INIT_FOLDER="init-script/" +INIT_FILE="centreon-as400.service" +SYSCONFIG_FILE="centreon-as400-sysconfig" + +CONNECTOR_VERSION=2.0.0 +CONNECTOR_HOME="/usr/share/centreon-as400/" +CONNECTOR_LOG="/var/log/centreon-as400/" +CONNECTOR_ETC="/etc/centreon-as400/" +LOG_ETC_FILE="log4j.xml" + +CONNECTOR_USER="centreon-as400" +CONNECTOR_GROUP="centreon-as400" + +JAVA_BIN="" + +ETC_PASSWD="/etc/passwd" +ETC_GROUP="/etc/group" +ETC_INITD="/etc/systemd/system/" +ETC_SYSCONFIG="/etc/sysconfig/" + +###### +##INIT +###### + +$SETCOLOR_WARNING +echo "Starting setup..." +$SETCOLOR_NORMAL +echo "" + +############################## +##Getting modules install path +############################## +DONE="no" +CREATE_HOME="no" +temp_folder="$CONNECTOR_HOME" +while [ "$DONE" = "no" ]; do + echo "Centreon AS400 home Directory [$CONNECTOR_HOME]? " + echo -n ">" + read temp_folder + if [ -z "$temp_folder" ]; then + temp_folder="$CONNECTOR_HOME" + fi + temp_folder=`echo "$temp_folder" | sed "s/$/\//"` + + if [ -d "$temp_folder" ]; then + DONE="yes" + else + echo_failure "$temp does not exists" "CRITICAL" + echo "Specified path does not exists, do you want to create it ?[Y/n]" + echo -n ">" + read temp + if [ -z "$temp" ]; then + temp="Y" + fi + while [ "$temp" != "Y" ] && [ "$temp" != "y" ] && [ "$temp" != "n" ] && [ "$temp" != "N" ]; do + echo "Specified path does not exists, do you want to create it ?[Y/n]" + echo -n ">" + read temp + if [ -z "$temp" ]; then + temp="Y" + fi + done + if [ "$temp" = "Y" ] || [ "$temp" = "y" ]; then + DONE="yes" + CREATE_HOME="yes" + fi + fi +done +temp_folder=$(echo $temp_folder | sed "s/\/\/$/\//") +CONNECTOR_HOME=${temp_folder} +echo_success "Centreon AS400 home directory" "$CONNECTOR_HOME" + +############################# +##Getting java home directory +############################# + +JAVA_HOME="/usr/" +temp=$JAVA_HOME +while [ ! -x "$temp/bin/java" ]; do + echo_failure "Cannot find java binary" "FAILURE" + echo "Java home directory?" + echo -n ">" + read temp + if [ -z "$temp" ]; then + temp="$JAVA_HOME" + fi +done +temp=`echo "$temp" | sed "s/$/\//"` +JAVA_BIN=`echo $temp | sed "s/\/\/$/\//"`"bin/java" +echo_success "Java bin path :" "$JAVA_BIN" + +################### +# CONNECTOR INIT SCRIPT +################### + +echo "Do you want to install AS400 systemd script [y/N]?" +echo -n ">" +read response +if [ -z "$response" ]; then + response="N" +fi +while [ "$response" != "Y" ] && [ "$response" != "y" ] && [ "$response" != "N" ] && [ "$response" != "n" ]; do + echo "Do you want to install AS400 systemd script [y/N]?" + echo -n ">" + read response + if [ -z "$response" ]; then + response="N" + fi +done +INSTALL_CONNECTOR_INIT=$response +echo_success "CONNECTOR systemd script :" "$ETC_INITD/$INIT_FILE" + +######################## +## Centreon BI user and Group +######################## +exists=`cat $ETC_PASSWD | grep "^$CONNECTOR_USER:"` +if [ -z "$exists" ]; then + useradd -m $CONNECTOR_USER -d $CONNECTOR_HOME +fi +echo_success "CONNECTOR run user :" "$CONNECTOR_USER" + +exists=`cat $ETC_GROUP | grep "^$CONNECTOR_GROUP:"` +if [ -z "$exists" ]; then + groupadd $CONNECTOR_GROUP +fi +echo_success "CONNECTOR run group :" "$CONNECTOR_GROUP" + +####################### +# DEPLOYING CENTREON BI +####################### +echo "" +echo_success "Creating directories and moving binaries..." "OK" +if [ ! -d "${CONNECTOR_HOME}" ]; then + mkdir -p $CONNECTOR_HOME +fi +if [ ! -d "${CONNECTOR_HOME}/bin" ]; then + mkdir ${CONNECTOR_HOME}/bin +fi + +if [ -d bin/ ] ; then + cp -f bin/*.jar ${CONNECTOR_HOME}/bin/ +fi + +if [ ! -d "${CONNECTOR_LOG}" ]; then + mkdir -p ${CONNECTOR_LOG} +fi +if [ ! -d "${CONNECTOR_ETC}" ]; then + mkdir -p ${CONNECTOR_ETC} +fi + +cp etc/log4j.xml ${CONNECTOR_ETC} +cp etc/config.properties ${CONNECTOR_ETC} + +################### +##Macro replacement +################### + +ETC_FILE=${CONNECTOR_ETC}${CONNECTOR_ETC_FILE} + +if [ "$INSTALL_CONNECTOR_INIT" = "y" ] || [ "$INSTALL_CONNECTOR_INIT" = "Y" ]; then + echo_success "Copying CONNECTOR init script..." "OK" + sed -e 's|@JAVA_BIN@|'"$JAVA_BIN"'|g' \ + $INIT_FOLDER/$INIT_FILE > $ETC_INITD/$INIT_FILE + chmod 644 $ETC_INITD/$INIT_FILE + sed -e 's|@CONNECTOR_HOME@|'"$CONNECTOR_HOME"'|g' \ + -e 's|@JAVA_BIN@|'"$JAVA_BIN"'|g' \ + -e 's|@CONNECTOR_USER@|'"$CONNECTOR_USER"'|g' \ + -e 's|@CONNECTOR_ETC@|'"${CONNECTOR_ETC}"'|g' \ + -e 's|@CONNECTOR_LOG@|'"${CONNECTOR_LOG}"'|g' \ + -e 's|@CONNECTOR_VERSION@|'"${CONNECTOR_VERSION}"'|g' \ + $INIT_FOLDER/$SYSCONFIG_FILE > $ETC_SYSCONFIG/centreon-as400 +fi +echo_success "Deploying Centreon-AS400..." "OK" + +################################################### +##Rights settings on install directory and binaries +################################################### + +chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_HOME +chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_LOG +chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_ETC +chmod -R 775 $CONNECTOR_HOME + +echo_success "Rights settings..." "OK" + +systemctl enable $INIT_FILE + +######### +# THE END +######### + +echo "" +$SETCOLOR_WARNING +echo "Setup finished." +echo "" diff --git a/as400/connector.as400/.classpath b/as400/connector.as400/.classpath new file mode 100644 index 0000000000..c8c0ea78ba --- /dev/null +++ b/as400/connector.as400/.classpath @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/as400/connector.as400/.gitignore b/as400/connector.as400/.gitignore new file mode 100644 index 0000000000..bef4516e36 --- /dev/null +++ b/as400/connector.as400/.gitignore @@ -0,0 +1,2 @@ +.vscode +/target diff --git a/as400/connector.as400/.project b/as400/connector.as400/.project new file mode 100644 index 0000000000..bcb00691f5 --- /dev/null +++ b/as400/connector.as400/.project @@ -0,0 +1,24 @@ + + + as400 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.sonar.ide.eclipse.core.sonarNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/as400/connector.as400/.settings/org.eclipse.core.resources.prefs b/as400/connector.as400/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..29abf99956 --- /dev/null +++ b/as400/connector.as400/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/as400/connector.as400/.settings/org.eclipse.jdt.apt.core.prefs b/as400/connector.as400/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000000..d4313d4b25 --- /dev/null +++ b/as400/connector.as400/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/as400/connector.as400/.settings/org.eclipse.jdt.core.prefs b/as400/connector.as400/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..cf4d3d8103 --- /dev/null +++ b/as400/connector.as400/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/as400/connector.as400/.settings/org.eclipse.m2e.core.prefs b/as400/connector.as400/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000..433ad2d622 --- /dev/null +++ b/as400/connector.as400/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,5 @@ +#Tue Nov 08 15:01:53 CET 2011 +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/as400/connector.as400/.settings/org.maven.ide.eclipse.prefs b/as400/connector.as400/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 0000000000..a5940f4c09 --- /dev/null +++ b/as400/connector.as400/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,8 @@ +#Tue Nov 08 15:01:08 CET 2011 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/as400/connector.as400/.settings/org.sonar.ide.eclipse.core.prefs b/as400/connector.as400/.settings/org.sonar.ide.eclipse.core.prefs new file mode 100644 index 0000000000..48cc7b6be0 --- /dev/null +++ b/as400/connector.as400/.settings/org.sonar.ide.eclipse.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +extraProperties=sonar.java.coveragePlugin\=jacoco\r\nsonar.language\=java\r\nsonar.jacoco.itReportPath\=/home/jblamotte/git/centreon-connector-as400/connector.as400/../target/jacoco-it.exec\r\nsonar.dynamicAnalysis\=reuseReports +projectKey=com.centreon.connector\:connector-as400 +serverUrl=http\://localhost\:9000 +version=2 diff --git a/as400/connector.as400/.settings/org.sonar.ide.eclipse.prefs b/as400/connector.as400/.settings/org.sonar.ide.eclipse.prefs new file mode 100644 index 0000000000..0ddbd32511 --- /dev/null +++ b/as400/connector.as400/.settings/org.sonar.ide.eclipse.prefs @@ -0,0 +1,4 @@ +#Thu Sep 22 10:02:29 CEST 2011 +eclipse.preferences.version=1 +projectArtifactId=connector-as400 +projectGroupId=com.centreon.connector diff --git a/as400/connector.as400/README.md b/as400/connector.as400/README.md new file mode 100644 index 0000000000..8f5504e7c0 --- /dev/null +++ b/as400/connector.as400/README.md @@ -0,0 +1,25 @@ +# Tools + +## Launch test + +### Build + + mvn clean package + +### Execute + + java \ + -DCONNECTOR_ETC=target/test-classes/ \ + -DCONNECTOR_HOME=target/test-classes/ \ + -DCONNECTOR_LOG=target/test-classes/ \ + -DCONNECTOR_TMP=target/test-classes/ \ + -jar target/centreon-as400-2.0.0-jar-with-dependencies.jar \ + --port 8091 + +### Test + + curl -X POST -d '{"host": "test-as400", "login": "myuser", "password": "mypass", "command": "test" }' http://127.0.0.1:8091 + +## References + +[IBM knowledge center example](https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rzahh/pcsystemstatexample.htm) diff --git a/as400/connector.as400/pom.xml b/as400/connector.as400/pom.xml new file mode 100644 index 0000000000..60ed98face --- /dev/null +++ b/as400/connector.as400/pom.xml @@ -0,0 +1,241 @@ + + 4.0.0 + com.centreon.connector + centreon-as400 + 2.0.3 + Centreon-AS/400 + Connecteur AS/400 + jar + + + UTF-8 + 4.0.5.RELEASE + 17 + 2.17.1 + + jacoco + reuseReports + ${project.basedir}/../target/jacoco-it.exec + java + + + + + qgarnier + Quentin GARNIER + qgarnier@centreon.com + Centreon + + + jblamotte + Jean-Baptiste LAMOTTE + Centreon + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.3.1 + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2.1 + + + jar-with-dependencies + + + + + + com.centreon.connector.as400.Main + true + + + + + + package + + single + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + + + + + org.fusesource.mvnplugins + maven-graph-plugin + 1.35 + + + + org.jacoco + jacoco-maven-plugin + + + + + + + + + pre-test + + prepare-agent + + + + post-test + test + + report + + + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.jacoco + + jacoco-maven-plugin + + + [0.8.2,) + + + prepare-agent + + + + + + + + + + + + + + + + + commons-cli + commons-cli + 1.4 + jar + compile + + + org.apache.commons + commons-exec + 1.3 + jar + compile + + + net.sf.jt400 + jt400 + 10.7 + jar + + + + io.undertow + undertow-core + 2.2.11.Final + + + com.google.code.gson + gson + 2.8.9 + + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + + junit + junit + 4.13.1 + test + + + + org.mockito + mockito-core + 5.13.0 + test + + + + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.7 + + false + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.6 + + + html + xml + + + + + + + diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/Conf.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/Conf.java new file mode 100644 index 0000000000..5efea5781f --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/Conf.java @@ -0,0 +1,143 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Conf { + + public static void loadConfiguration(final InputStream in) throws IOException { + final Properties properties = new Properties(); + properties.load(in); + + String param; + + Conf.debug = Boolean.parseBoolean("" + properties.get("debug")); + Conf.exception = Boolean.parseBoolean("" + properties.get("exception")); + Conf.trace = Boolean.parseBoolean("" + properties.get("trace")); + + param = (String)properties.get("daemonListenerHost"); + if (param != null) { + Conf.daemonListenerHost = param; + } + + param = (String)properties.get("daemonNoRequestTimeout"); + if (param != null) { + Conf.daemonNoRequestTimeout = Integer.parseInt(param); + } + param = (String)properties.get("daemonRequestParseTimeout"); + if (param != null) { + Conf.daemonRequestParseTimeout = Integer.parseInt(param); + } + + Conf.authUsername = (String)properties.get("authUsername"); + Conf.authPassword = (String)properties.get("authPassword"); + + param = (String)properties.get("keyStoreType"); + if (param != null) { + Conf.keyStoreType = param; + } + Conf.keyStoreFile = (String)properties.get("keyStoreFile"); + Conf.keyStorePassword = (String)properties.get("keyStorePassword"); + + param = (String)properties.get("sslProtocol"); + if (param != null) { + Conf.sslProtocol = param; + } + + Conf.daemonSoLinger = Integer.parseInt("" + properties.get("daemonSoLinger")); + Conf.as400SoLinger = Integer.parseInt("" + properties.get("as400SoLinger")); + Conf.as400ReadTimeout = Integer.parseInt("" + properties.get("as400ReadTimeout")); + Conf.as400LoginTimeout = Integer.parseInt("" + properties.get("as400LoginTimeout")); + Conf.as400ResourceDuration = Integer.parseInt("" + properties.get("as400ResourceDuration")); + Conf.workerQueueTimeout = Integer.parseInt("" + properties.get("workerQueueTimeout")); + Conf.cacheTimeout = Integer.parseInt("" + properties.get("cacheTimeout")); + Conf.msgqDbPath = "" + properties.get("pathMsgQDB"); + } + + public static boolean debug = true; + static boolean exception = true; + static boolean trace = true; + + public static String msgqDbPath = "/tmp/"; + + public static String daemonListenerHost = "localhost"; + + public static int daemonNoRequestTimeout = 5000; + + public static int daemonRequestParseTimeout = 5000; + + public static String authUsername = null; + + public static String authPassword = null; + + public static String keyStoreType = "PKCS12"; + + public static String keyStoreFile = null; + + public static String keyStorePassword = null; + + public static String sslProtocol = "TLS"; + + /** + * Delai avant fermeture force d'une connexion mal ferme par les plugins de + * check (en mode daemon) unite en seconde + */ + public static int daemonSoLinger = 1; + + /** + * Delai avant fermeture force d'une connexion mal ferme par l'AS/400 unite en + * seconde + */ + public static int as400SoLinger = 1; + + /** + * Timeout lors de la reception d'une reponse de l'AS400 unite en milliseconde + */ + public static int as400ReadTimeout = 5 * 60 * 1000; + + /** + * Timeout lors de la connexion a un as/400 unite en milliseconde + */ + public static int as400LoginTimeout = 10 * 1000; + + /** + * Delai avant de supprimer une connection inactive a un as/400 unite en + * millisecondes + */ + public static long as400ResourceDuration = 120 * 60 * 1000; + + /** + * duree maximale d'attente d'un check dans une queue unite en millisecondes + */ + public static long workerQueueTimeout = 6 * 60 * 1000; + + /** + * cache duration for disk and job (time before next refresh) duration in + * milliseconds + */ + public static long cacheTimeout = 60 * 1000; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/ConnectorLogger.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/ConnectorLogger.java new file mode 100644 index 0000000000..80b290e327 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/ConnectorLogger.java @@ -0,0 +1,151 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400; + +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.LoggerContext; +import java.io.File; + +/** + * @author Lamotte Jean-Baptiste + */ +public class ConnectorLogger { + + private static ConnectorLogger instance = null; + + public synchronized static final ConnectorLogger getInstance() { + if (ConnectorLogger.instance == null) { + ConnectorLogger.instance = new ConnectorLogger(Main.getEtcDir()); + } + return ConnectorLogger.instance; + } + + private Logger logger = null; + + private ConnectorLogger(String etcDir) { + if ((etcDir != null) && (etcDir.length() > 0)) { + LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false); + File file = new File(etcDir + "log4j2.xml"); + context.setConfigLocation(file.toURI()); + } else { + // DOMConfigurator.configure("log4j.xml"); + } + this.logger = LogManager.getRootLogger(); + } + + public synchronized void debug(final String log) { + this.logger.debug(log); + } + + public synchronized void trace(final String log, final Throwable t) { + this.logger.trace(log, t); + } + + public synchronized void trace(final String log) { + this.logger.trace(log); + } + + public synchronized void debug(final String log, final Throwable t) { + if (Conf.exception) { + this.logger.debug(log, t); + } else { + this.logger.debug(log); + this.logger.debug(" --> Message: " + t.getMessage()); + Throwable cause = null; + if ((cause = t.getCause()) != null) { + this.logger.debug(" --> Cause: " + cause.getMessage()); + } + } + } + + public synchronized void error(final String log) { + this.logger.error(log); + } + + public void error(final String log, final Throwable t) { + if (Conf.exception) { + this.logger.error(log, t); + } else { + this.logger.error(log); + this.logger.error(" --> Message: " + t.getMessage()); + Throwable cause = null; + if ((cause = t.getCause()) != null) { + this.logger.error(" --> Cause: " + cause.getMessage()); + } + } + } + + public synchronized void fatal(final String log) { + this.logger.fatal(log); + } + + public synchronized void fatal(final String log, final Throwable t) { + if (Conf.exception) { + this.logger.fatal(log, t); + } else { + this.logger.fatal(log); + this.logger.fatal(" --> Message: " + t.getMessage()); + Throwable cause = null; + if ((cause = t.getCause()) != null) { + this.logger.fatal(" --> Cause: " + cause.getMessage()); + } + } + } + + public synchronized Logger getLogger() { + return this.logger; + } + + public synchronized void info(final String log) { + this.logger.info(log); + } + + public synchronized void info(final String log, final Throwable t) { + if (Conf.exception) { + this.logger.info(log, t); + } else { + this.logger.info(log); + this.logger.info(" --> Message: " + t.getMessage()); + Throwable cause = null; + if ((cause = t.getCause()) != null) { + this.logger.info(" --> Cause: " + cause.getMessage()); + } + } + } + + public synchronized void warn(final String log) { + this.logger.warn(log); + } + + public synchronized void warn(final String log, final Throwable t) { + if (Conf.exception) { + this.logger.warn(log, t); + } else { + this.logger.warn(log); + this.logger.warn(" --> Message: " + t.getMessage()); + Throwable cause = null; + if ((cause = t.getCause()) != null) { + this.logger.warn(" --> Cause: " + cause.getMessage()); + } + } + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/Main.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/Main.java new file mode 100644 index 0000000000..c11b25dc3a --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/Main.java @@ -0,0 +1,162 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.PosixParser; + +import com.ibm.as400.access.Trace; +import com.centreon.connector.as400.daemon.Daemon; +import com.centreon.connector.as400.dispatcher.client.impl.ClientDispatcherImpl; +import com.centreon.connector.as400.parser.OptionFactory; + +/** + * @author Lamotte Jean-Baptiste + */ +class Main { + static public final String CONNECTOR_LOG = "CONNECTOR_LOG"; + static public final String CONNECTOR_ETC = "CONNECTOR_ETC"; + + static private String etcDir; + + static public String getEtcDir() { + return etcDir; + } + + private static void checkProperties() { + etcDir = System.getProperty(Main.CONNECTOR_ETC, "/etc/centreon-as400/"); + String logDir = System.getProperty(Main.CONNECTOR_LOG, "/var/log/centreon-as400/"); + + try { + final File file = new File(etcDir + "log4j2.xml"); + if (!file.exists()) { + ConnectorLogger.getInstance().fatal(etcDir + "log4j2.xml doesnt exist. Engine stopped"); + System.exit(0); + } + + ConnectorLogger.getInstance().info("[Logs] Logs configuration file : " + file.getAbsolutePath()); + + } catch (final Exception e) { + ConnectorLogger.getInstance().fatal("", e); + } + + System.setErr(System.out); + + try { + ConnectorLogger.getInstance().info("[Config] Configuration file : " + etcDir + "config.properties"); + Conf.loadConfiguration(new FileInputStream(etcDir + "config.properties")); + } catch (final IOException e) { + ConnectorLogger.getInstance().fatal("", e); + System.exit(0); + } + + if (Conf.trace == true) { + try { + final String traceLog = logDir + "/trace.log"; + ConnectorLogger.getInstance().debug("Advanced trace log file : " + traceLog); + + Trace.setFileName(traceLog); + Trace.setTraceAllOn(false); + Trace.setTraceOn(true); + Trace.setTraceErrorOn(true); + Trace.setTraceWarningOn(true); + Trace.setTraceInformationOn(true); + + } catch (final Exception e) { + ConnectorLogger.getInstance().debug("", e); + } + } + } + + private static void daemon(final CommandLine cmd) { + try { + int port = 8091; + + if (cmd.hasOption("port")) { + port = Integer.parseInt(cmd.getOptionValue("port")); + } + final Daemon core = new Daemon(); + core.start(port); + } catch (IOException ioe) { + System.out.println("Couldn't start server: " + ioe); + } catch (InterruptedException ie) { + System.out.println("Interrupted exception: " + ie); + } catch (final Exception e) { + ConnectorLogger.getInstance().fatal("Couldn't start server", e); + } finally { + System.exit(0); + } + } + + /** + * Gets the help. + * + * @return the help + */ + + private static String getHelp() { + final HelpFormatter formatter = new HelpFormatter(); + String exemple = "--port \n"; + exemple += "\n"; + + formatter.printHelp(" ", exemple, OptionFactory.getOptions(), ""); + + return ""; + } + + /** + * The main method. + * + * @param args the arguments + */ + public static void main(final String[] args) { + + Runtime.getRuntime().addShutdownHook(new Thread() { + + @Override + public void run() { + ConnectorLogger.getInstance().info("Shutdown Centreon-Connector"); + super.run(); + } + + }); + + Main.checkProperties(); + + try { + + final CommandLineParser parser = new PosixParser(); + final CommandLine cmd = parser.parse(OptionFactory.getOptions(), args); + + Main.daemon(cmd); + } catch (final Exception e) { + ConnectorLogger.getInstance().fatal("", e); + Main.getHelp(); + } + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/WinService.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/WinService.java new file mode 100644 index 0000000000..61930a93a6 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/WinService.java @@ -0,0 +1,76 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400; + +/** + * Launch the Engine from a variety of sources, either through a main() or + * invoked through Apache Daemon. + */ +public class WinService { + + public static void main(final String[] args) throws Exception { + WinService.start(new String[] { "--port", "8091" }); + } + + public static void start(final String[] args) throws Exception { + final String[] tabArgs = new String[(args.length + 1)]; + + tabArgs[0] = "service"; + int i = 1; + for (final String str : args) { + tabArgs[i] = str; + i++; + } + + final Thread thread = new Thread() { + @Override + public void run() { + Main.main(tabArgs); + } + }; + thread.setDaemon(false); + thread.start(); + + // Main.main(new String[] {"service", "--daemon", "8090"}); + // System.out.println("Out:EngineLauncher#start"); + // ConnectorLogger.getInstance().info("EngineLauncher#start"); + + /* + * Thread thread = new Thread() { + * + * @Override public void run() { while (true) { try { Thread.sleep(1000); } + * catch (InterruptedException e) { e.printStackTrace(); } + * System.out.println("Out:EngineLauncher#isRunning"); + * ConnectorLogger.getInstance().info("EngineLauncher#isRunning"); } } + * + * }; + * + * thread.start(); + */ + } + + public static void stop(final String[] args) throws Exception { + System.out.println("Out:EngineLauncher#stop"); + ConnectorLogger.getInstance().info("EngineLauncher#stop"); + System.exit(0); + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICachedMessageQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICachedMessageQueueHandler.java new file mode 100644 index 0000000000..2d1cafde40 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICachedMessageQueueHandler.java @@ -0,0 +1,30 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +public interface ICachedMessageQueueHandler { + + ResponseData getNewMessageInMessageQueue(String messageQueuePath, String messageIdfilterPattern, int minSeverityLevel, + int maxSeverityLevel) throws Exception; + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICommandHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICommandHandler.java new file mode 100644 index 0000000000..b203dec1df --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ICommandHandler.java @@ -0,0 +1,27 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +public interface ICommandHandler { + ResponseData executeCommand(String commandName) throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IDiskHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IDiskHandler.java new file mode 100644 index 0000000000..b29f8750e9 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IDiskHandler.java @@ -0,0 +1,30 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface IDiskHandler { + ResponseData listDisks(String diskName) throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobHandler.java new file mode 100644 index 0000000000..f510b2e7ad --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobHandler.java @@ -0,0 +1,30 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface IJobHandler { + ResponseData listJobs() throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobQueueHandler.java new file mode 100644 index 0000000000..bf7f0ee4f6 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IJobQueueHandler.java @@ -0,0 +1,34 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import java.util.List; +import java.util.Map; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface IJobQueueHandler { + + ResponseData getJobQueues(List> queues) throws Exception; + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IMessageQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IMessageQueueHandler.java new file mode 100644 index 0000000000..1e5b18143e --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/IMessageQueueHandler.java @@ -0,0 +1,33 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface IMessageQueueHandler { + void dumpMessageQueue() throws Exception; + + ResponseData getErrorMessageQueue(String messageQueuePath, String messageIdfilterPattern, + int minSeverityLevel, int maxSeverityLevel) throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISubSystemHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISubSystemHandler.java new file mode 100644 index 0000000000..a2655b0ad7 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISubSystemHandler.java @@ -0,0 +1,33 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.ibm.as400.access.Subsystem; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface ISubSystemHandler { + void dumpSubSystem(Subsystem subSystem) throws Exception; + + ResponseData listSubsystems() throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISystemHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISystemHandler.java new file mode 100644 index 0000000000..2033ebcfb0 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/ISystemHandler.java @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler; + +import com.ibm.as400.access.SystemPool; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface ISystemHandler { + void dumpPool(SystemPool pool) throws Exception; + + void dumpSystem() throws Exception; + + ResponseData getPageFault() throws Exception; + + ResponseData getSystem() throws Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/AbstractHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/AbstractHandler.java new file mode 100644 index 0000000000..b94c3ab17b --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/AbstractHandler.java @@ -0,0 +1,98 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.io.IOException; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.Locale; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ConnectionEvent; +import com.ibm.as400.access.ConnectionListener; +import com.ibm.as400.access.SocketProperties; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; + +/** + * @author Lamotte Jean-Baptiste + */ +public abstract class AbstractHandler { + + private static NumberFormat formatterNoDecimal; + private static NumberFormat formatterTreeDecimal; + + protected String host = null; + protected String login = null; + protected String password = null; + + public AbstractHandler(final String host, final String login, final String password) { + this.host = host; + this.login = login; + this.password = password; + } + + static { + final DecimalFormat df0 = (DecimalFormat) NumberFormat.getNumberInstance(Locale.ENGLISH); + df0.applyPattern("#0"); + AbstractHandler.formatterNoDecimal = df0; + + final DecimalFormat df3 = (DecimalFormat) NumberFormat.getNumberInstance(Locale.ENGLISH); + df3.applyPattern("#0.###"); + AbstractHandler.formatterTreeDecimal = df3; + } + + static NumberFormat getFormatterNoDecimal() { + return AbstractHandler.formatterNoDecimal; + } + + static NumberFormat getFormatterTreeDecimal() { + return AbstractHandler.formatterTreeDecimal; + } + + protected AS400 getNewAs400() throws AS400SecurityException, IOException { + final SocketProperties properties = new SocketProperties(); + properties.setSoLinger(1); + properties.setKeepAlive(false); + properties.setTcpNoDelay(true); + properties.setLoginTimeout(Conf.as400LoginTimeout); + properties.setSoTimeout(Conf.as400ReadTimeout); + + final AS400 system = new AS400(this.host, this.login, this.password); + system.setSocketProperties(properties); + system.addConnectionListener(new ConnectionListener() { + @Override + public void connected(final ConnectionEvent event) { + ConnectorLogger.getInstance().getLogger().debug("Connect event service : " + event.getService()); + } + + @Override + public void disconnected(final ConnectionEvent event) { + ConnectorLogger.getInstance().getLogger().debug("Disconnect event service : " + event.getService()); + } + }); + + system.validateSignon(); + + return system; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/CommandHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/CommandHandler.java new file mode 100644 index 0000000000..c0f07dc417 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/CommandHandler.java @@ -0,0 +1,74 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.util.HashMap; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Message; +import com.ibm.as400.access.CommandCall; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.ICommandHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class CommandHandler extends AbstractHandler implements ICommandHandler { + + public CommandHandler(final String host, final String login, final String password) { + super(host, login, password); + } + + @Override + public ResponseData executeCommand(final String commandName) throws Exception { + final ResponseData data = new ResponseData(); + HashMap attrs = new HashMap(); + attrs.put("cmdName", commandName); + attrs.put("status", "success"); + + final AS400 system = this.getNewAs400(); + + final CommandCall command = new CommandCall(system); + String output = ""; + try { + if (!command.run(commandName)) { + attrs.put("status", "failed"); + attrs.put("message", "command run failed"); + } + for (final AS400Message message : command.getMessageList()) { + output += message.getText() + "\n"; + } + } catch (final Exception e) { + attrs.put("status", "failed"); + attrs.put("message", "exception: " + e.getMessage()); + ConnectorLogger.getInstance().debug("", e); + } + attrs.put("output", output); + data.getResult().add(attrs); + + // Done with the system. + system.disconnectService(AS400.COMMAND); + system.disconnectAllServices(); + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/DiskHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/DiskHandler.java new file mode 100644 index 0000000000..aa3d12cc91 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/DiskHandler.java @@ -0,0 +1,93 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.io.IOException; +import java.util.List; +import java.util.ArrayList; +import java.util.HashMap; + +import com.ibm.as400.access.AS400SecurityException; +import com.centreon.connector.as400.check.handler.IDiskHandler; +import com.centreon.connector.as400.check.handler.impl.disk.QyaspolYasp0300PcmlHandler; +import com.centreon.connector.as400.check.handler.impl.disk.Yasp0300Data; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class DiskHandler extends AbstractHandler implements IDiskHandler { + + private QyaspolYasp0300PcmlHandler qyaspolPcmlHandler = null; + + public DiskHandler(final String host, final String login, final String password) + throws AS400SecurityException, IOException { + super(host, login, password); + this.qyaspolPcmlHandler = new QyaspolYasp0300PcmlHandler(host, login, password); + } + + @Override + public ResponseData listDisks(final String diskName) throws Exception { + final ResponseData data = new ResponseData(); + + List disks = null; + + if (diskName == null) { + disks = this.qyaspolPcmlHandler.getDisksList(); + } else { + final Yasp0300Data disk = this.qyaspolPcmlHandler.getDiskByResourceName(diskName); + if (disk == null) { + return new ResponseData(ResponseData.statusError, "Disk " + diskName + " not found"); + } + disks = new ArrayList(); + disks.add(disk); + } + + /* + * 0 - There is no unit control value (noUnitControl) + * 1 - The disk unit is active (active) + * 2 - The disk unit has failed (failed) + * 3 - Some other disk unit in the disk subsystem has failed (otherDiskSubFailed) + * 4 - There is a hardware failure within the disk subsystem that affects performance, but does not affect the function of the disk unit (hwFailurePerf) + * 5 - There is a hardware failure within the disk subsystem that does not affect the function or performance of the disk unit (hwFailureOk) + * 6 - The disk unit's parity protection is being rebuilt (rebuilding) + * 7 - The disk unit is not ready (noReady) + * 8 - The disk unit is write protected (writeProtected) + * 9 - The disk unit is busy. (busy) + * 10 - The disk unit is not operational (notOperational) + * 11 - The disk unit has returned a status that is not recognizable by the system (unknownStatus) + * 12 - The disk unit cannot be accessed (noAccess) + * 13 - The disk unit is read/write protected (rwProtected) + */ + for (final Yasp0300Data disk : disks) { + HashMap attrs = new HashMap(); + + attrs.put("status", disk.getUnitControl()); + attrs.put("name", disk.getResourceName()); + attrs.put("totalSpace", disk.getDiskCapacity() * 1024d * 1024d); + attrs.put("reservedSpace", disk.getDiskStorageReservedForSystem() * 1024d * 1024d); + attrs.put("freeSpace", disk.getDiskStorageAvailable() * 1024d * 1024d); + data.getResult().add(attrs); + } + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/FailedCheckException.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/FailedCheckException.java new file mode 100644 index 0000000000..03aacb6094 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/FailedCheckException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +/** + * @author Lamotte Jean-Baptiste + */ +public class FailedCheckException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 1812060950998874570L; + + public FailedCheckException(final String reason) { + super(reason); + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobCache.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobCache.java new file mode 100644 index 0000000000..1c8ad2166f --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobCache.java @@ -0,0 +1,95 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.util.Collection; +import java.util.Enumeration; +import java.util.LinkedList; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.Job; +import com.ibm.as400.access.JobList; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; + +class JobCache { + private volatile LinkedList lastJobCache = null; + private long lastRefresh = 0; + + JobHandler handler; + Exception lastFailException = new Exception("First check"); + + JobCache(final JobHandler handler) { + this.handler = handler; + } + + Collection getJobListCache(final boolean forceRefresh) throws Exception { + this.refreshJobListCache(forceRefresh); + if (this.lastJobCache == null) { + throw this.lastFailException; + } + return new LinkedList(this.lastJobCache); + } + + Collection getJobListCache() throws Exception { + return this.getJobListCache(false); + } + + private void refreshJobListCache(final boolean forceRefresh) throws Exception { + if (!(((this.lastRefresh + Conf.cacheTimeout) < System.currentTimeMillis()) || forceRefresh)) { + return; + } + final AS400 system = this.handler.getNewAs400(); + + final JobList jobList = new JobList(system); + jobList.addJobAttributeToRetrieve(Job.ACTIVE_JOB_STATUS); + jobList.addJobAttributeToRetrieve(Job.SUBSYSTEM); + jobList.addJobAttributeToRetrieve(Job.JOB_NAME); + jobList.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_ACTIVE, Boolean.TRUE); + jobList.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_JOBQ, Boolean.FALSE); + jobList.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_OUTQ, Boolean.FALSE); + + try { + @SuppressWarnings("unchecked") + final Enumeration enumeration = jobList.getJobs(); + final LinkedList list = new LinkedList(); + + while (enumeration.hasMoreElements()) { + list.add(enumeration.nextElement()); + } + + this.lastJobCache = list; + } catch (final Exception e) { + this.lastFailException = new FailedCheckException("" + e.getMessage()); + this.lastJobCache = null; + ConnectorLogger.getInstance().debug("", e); + } finally { + try { + jobList.close(); + system.disconnectAllServices(); + } catch (final Exception e) { + ConnectorLogger.getInstance().info("Job list close failed (" + system.getSystemName() + ")", e); + } + this.lastRefresh = System.currentTimeMillis(); + } + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobHandler.java new file mode 100644 index 0000000000..18bd800142 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobHandler.java @@ -0,0 +1,71 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.util.Collection; +import java.util.HashMap; + +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.Job; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.IJobHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class JobHandler extends AbstractHandler implements IJobHandler { + private final JobCache jobCache; + + public JobHandler(final String host, final String login, final String password) { + super(host, login, password); + this.jobCache = new JobCache(this); + } + + @Override + public ResponseData listJobs() throws Exception { + final ResponseData data = new ResponseData(); + + Collection jobs = this.jobCache.getJobListCache(); + for (final Job job : jobs) { + HashMap attrs = new HashMap(); + + attrs.put("name", job.getName()); + attrs.put("subSystem", job.getSubsystem()); + attrs.put("status", job.getStatus()); + attrs.put("activeStatus", job.getValue(Job.ACTIVE_JOB_STATUS)); + + String currentLibrary = ""; + try { + job.getCurrentLibrary(); + } catch (final Exception e) { + attrs.put("currentLibraryException", e.getMessage()); + } + attrs.put("currentLibrary", currentLibrary); + + data.getResult().add(attrs); + } + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobQueueHandler.java new file mode 100644 index 0000000000..3c18f9a6e5 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/JobQueueHandler.java @@ -0,0 +1,87 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.util.List; +import java.util.Map; +import java.util.HashMap; + +import com.ibm.as400.access.AS400; +import com.centreon.connector.as400.check.handler.IJobQueueHandler; +import com.centreon.connector.as400.check.handler.impl.jobqueue.Jobq0100; +import com.centreon.connector.as400.check.handler.impl.jobqueue.Jobq0200; +import com.centreon.connector.as400.check.handler.impl.jobqueue.Qsprjobq100Handler; +import com.centreon.connector.as400.check.handler.impl.jobqueue.Qsprjobq200Handler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class JobQueueHandler extends AbstractHandler implements IJobQueueHandler { + + public JobQueueHandler(final String host, final String login, final String password) { + super(host, login, password); + } + + @Override + public ResponseData getJobQueues(List> queues) throws Exception { + final ResponseData data = new ResponseData(); + + final AS400 system = this.getNewAs400(); + final Qsprjobq200Handler qsprjobq200Handler = new Qsprjobq200Handler(system); + + for (Map queue : queues) { + String name = queue.get("name"); + String library = queue.get("library"); + + if (name == null || library == null) { + return new ResponseData(ResponseData.statusError, + "JobQueue name/library attribute must be set"); + } + + Jobq0200 jobq0200 = null; + try { + jobq0200 = qsprjobq200Handler.loadJobq0200(name, library); + } catch (final Exception e) { + system.disconnectAllServices(); + throw e; + } + + if (jobq0200 == null) { + return new ResponseData(ResponseData.statusError, + "JobQueue " + name + " in library " + library + " not found"); + } + + HashMap attrs = new HashMap(); + attrs.put("name", name); + attrs.put("library", library); + // RELEASED, HELD + attrs.put("status", jobq0200.getJobQueueStatus()); + attrs.put("activeJob", jobq0200.getActiveJobTotal()); + attrs.put("heldJobOnQueue", jobq0200.getHeldJobTotal()); + attrs.put("scheduledJobOnQueue", jobq0200.getScheduledJobTotal()); + data.getResult().add(attrs); + } + + system.disconnectAllServices(); + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SubSystemHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SubSystemHandler.java new file mode 100644 index 0000000000..bff97d3171 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SubSystemHandler.java @@ -0,0 +1,101 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.io.IOException; +import java.util.Enumeration; +import java.util.HashMap; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Exception; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.ObjectDescription; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.ObjectList; +import com.ibm.as400.access.RequestNotSupportedException; +import com.ibm.as400.access.Subsystem; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.ISubSystemHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class SubSystemHandler extends AbstractHandler implements ISubSystemHandler { + + public SubSystemHandler(final String host, final String login, final String password) + throws AS400SecurityException, IOException { + super(host, login, password); + } + + @Override + public void dumpSubSystem(final Subsystem subSystem) throws AS400Exception, AS400SecurityException, + ErrorCompletingRequestException, InterruptedException, IOException, ObjectDoesNotExistException { + System.out.println("getCurrentActiveJobs : " + subSystem.getCurrentActiveJobs()); + System.out.println("getDescriptionText : " + subSystem.getDescriptionText()); + System.out.println("getDisplayFilePath : " + subSystem.getDisplayFilePath()); + System.out.println("getLanguageLibrary : " + subSystem.getLanguageLibrary()); + System.out.println("getLibrary : " + subSystem.getLibrary()); + System.out.println("getMaximumActiveJobs : " + subSystem.getMaximumActiveJobs()); + + subSystem.getMonitorJob(); + + System.out.println("getName : " + subSystem.getName()); + System.out.println("getObjectDescription : " + subSystem.getObjectDescription()); + System.out.println("getPath : " + subSystem.getPath()); + System.out.println("getPools (array count) : " + subSystem.getPools().length); + System.out.println("getStatus : " + subSystem.getStatus()); + } + + @Override + public ResponseData listSubsystems() throws Exception { + final ResponseData data = new ResponseData(); + + final AS400 system = this.getNewAs400(); + try { + Subsystem[] list = Subsystem.listAllSubsystems(system); + for (int i = 0; i < list.length; i++) { + HashMap attrs = new HashMap(); + + list[i].refresh(); + attrs.put("name", list[i].getName()); + attrs.put("path", list[i].getPath()); + attrs.put("library", list[i].getLibrary()); + // *ACTIVE, *ENDING, *INACTIVE, *RESTRICTED, *STARTING + attrs.put("status", list[i].getStatus()); + attrs.put("currentActiveJobs", list[i].getCurrentActiveJobs()); + data.getResult().add(attrs); + } + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + try { + system.disconnectAllServices(); + } catch (final Exception e1) { + ConnectorLogger.getInstance().debug("", e); + } + throw new Exception(e); + } + system.disconnectAllServices(); + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SystemHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SystemHandler.java new file mode 100644 index 0000000000..a74d8b46b3 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/SystemHandler.java @@ -0,0 +1,221 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.Enumeration; +import java.util.HashMap; + +import com.ibm.as400.access.AS400Bin4; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.AS400Text; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.ProgramCall; +import com.ibm.as400.access.ProgramParameter; +import com.ibm.as400.access.QSYSObjectPathName; +import com.ibm.as400.access.SystemPool; +import com.ibm.as400.access.SystemStatus; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.check.handler.ISystemHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class SystemHandler extends AbstractHandler implements ISystemHandler { + private SystemStatus status = null; + + public SystemHandler(final String host, final String login, final String password) + throws AS400SecurityException, IOException { + this(host, login, password, null); + } + + public SystemHandler(final String host, final String login, final String password, SystemStatus as400Status) + throws AS400SecurityException, IOException { + super(host, login, password); + this.status = as400Status == null ? new SystemStatus(getNewAs400()) : as400Status; + } + + @Override + @SuppressWarnings("deprecation") + public void dumpPool(final SystemPool pool) throws UnsupportedEncodingException, AS400SecurityException, + ErrorCompletingRequestException, InterruptedException, IOException, ObjectDoesNotExistException { + + System.out.println("------------------------------------"); + System.out.println("name : " + pool.getName() + " | " + pool.getDescription()); + System.out.println("Identifier : " + pool.getIdentifier()); + System.out.println("ActiveToIneligible : " + pool.getActiveToIneligible() + + " transitions per minute, of transitions of threads from an active condition to an ineligible condition"); + System.out.println("ActiveToWait : " + pool.getActiveToWait() + + " transitions per minute, of transitions of threads from an active condition to a waiting condition"); + System.out.println("WaitToIneligible : " + pool.getWaitToIneligible() + + " transitions per minute, of transitions of threads from a waiting condition to an ineligible condition"); + System.out.println("ActivityLevel : " + pool.getActivityLevel() + + " maximum number of threads that can be active in the pool at any one time"); + System.out.println("DatabaseFaults : " + pool.getDatabaseFaults() + " page faults per second"); + System.out.println("DatabasePages : " + pool.getDatabasePages() + " page per second"); + System.out.println("MaximumActiveThreads : " + pool.getMaximumActiveThreads() + "(deprecated)"); + System.out.println("NonDatabaseFaults : " + pool.getNonDatabaseFaults() + " page faults per second"); + System.out.println("NonDatabasePages : " + pool.getNonDatabasePages() + " page per second"); + System.out.println("PagingOption : " + pool.getPagingOption()); + System.out.println("PoolIdentifier : " + pool.getPoolIdentifier() + "(deprecated)"); + System.out.println("PoolName : " + pool.getPoolName() + "(deprecated)"); + System.out.println("PoolSize : " + pool.getPoolSize() + " (deprecated)"); + System.out.println("ReservedSize : " + pool.getReservedSize() + " kilobytes,"); + System.out.println("Size : " + pool.getSize() + " kilobytes"); + System.out.println("SubsystemLibrary : " + pool.getSubsystemLibrary()); + System.out.println("SubsystemName : " + pool.getSubsystemName()); + System.out.println("System : " + pool.getSystem()); + + pool.getActiveToIneligible(); + } + + @Override + public void dumpSystem() throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, + IOException, ObjectDoesNotExistException { + + System.out.println("ActiveJobsInSystem : " + this.status.getActiveJobsInSystem()); + // System.out.println("PercentSystemASPUsed : " + + // status.getPercentSystemASPUsed() + "%"); //<== stockage + // System.out.println("getPercentProcessingUnitUsed : " + + // status.getPercentProcessingUnitUsed() + "%"); + System.out.println("ActiveThreadsInSystem : " + this.status.getActiveThreadsInSystem() + ""); + System.out.println("BatchJobsEndedWithPrinterOutputWaitingToPrint : " + + this.status.getBatchJobsEndedWithPrinterOutputWaitingToPrint() + ""); + System.out.println("BatchJobsEnding : " + this.status.getBatchJobsEnding() + ""); + System.out.println("BatchJobsHeldOnJobQueue : " + this.status.getBatchJobsHeldOnJobQueue() + ""); + System.out.println("BatchJobsHeldWhileRunning : " + this.status.getBatchJobsHeldWhileRunning() + ""); + System.out.println("BatchJobsOnAHeldJobQueue : " + this.status.getBatchJobsOnAHeldJobQueue() + ""); + System.out.println("BatchJobsOnUnassignedJobQueue : " + this.status.getBatchJobsOnUnassignedJobQueue() + ""); + System.out.println("BatchJobsRunning : " + this.status.getBatchJobsRunning() + ""); + System.out.println("BatchJobsWaitingForMessage : " + this.status.getBatchJobsWaitingForMessage() + ""); + System.out.println( + "BatchJobsWaitingToRunOrAlreadyScheduled : " + this.status.getBatchJobsWaitingToRunOrAlreadyScheduled() + ""); + System.out.println("CurrentProcessingCapacity : " + this.status.getCurrentProcessingCapacity() + ""); + System.out.println("CurrentUnprotectedStorageUsed : " + this.status.getCurrentUnprotectedStorageUsed() + ""); + System.out.println("DateAndTimeStatusGathered : " + this.status.getDateAndTimeStatusGathered() + ""); + System.out.println("ElapsedTime : " + this.status.getElapsedTime() + ""); + System.out.println("JobsInSystem : " + this.status.getJobsInSystem() + ""); + System.out.println("MainStorageSize : " + this.status.getMainStorageSize() + ""); + System.out.println("MaximumJobsInSystem : " + this.status.getMaximumJobsInSystem() + ""); + System.out.println("MaximumUnprotectedStorageUsed : " + this.status.getMaximumUnprotectedStorageUsed() + ""); + System.out.println("NumberOfPartitions : " + this.status.getNumberOfPartitions() + ""); + System.out.println("NumberOfProcessors : " + this.status.getNumberOfProcessors() + ""); + System.out.println("PartitionIdentifier : " + this.status.getPartitionIdentifier() + ""); + System.out.println( + "PercentCurrentInteractivePerformance : " + this.status.getPercentCurrentInteractivePerformance() + ""); + System.out.println("PercentDBCapability : " + this.status.getPercentDBCapability() + ""); + System.out + .println("PercentPermanent256MBSegmentsUsed : " + this.status.getPercentPermanent256MBSegmentsUsed() + ""); + System.out.println("PercentPermanent4GBSegmentsUsed : " + this.status.getPercentPermanent4GBSegmentsUsed() + ""); + System.out.println("PercentPermanentAddresses : " + this.status.getPercentPermanentAddresses() + ""); + System.out.println("PercentProcessingUnitUsed : " + this.status.getPercentProcessingUnitUsed() + ""); + System.out.println("PercentSharedProcessorPoolUsed : " + this.status.getPercentSharedProcessorPoolUsed() + ""); + System.out.println("PercentSystemASPUsed : " + this.status.getPercentSystemASPUsed() + ""); + System.out + .println("PercentTemporary256MBSegmentsUsed : " + this.status.getPercentTemporary256MBSegmentsUsed() + ""); + System.out.println("PercentTemporary4GBSegmentsUsed : " + this.status.getPercentTemporary4GBSegmentsUsed() + ""); + System.out.println("PercentTemporaryAddresses : " + this.status.getPercentTemporaryAddresses() + ""); + System.out.println("PercentUncappedCPUCapacityUsed : " + this.status.getPercentUncappedCPUCapacityUsed() + ""); + System.out.println("PoolsNumber : " + this.status.getPoolsNumber() + ""); + System.out.println("ProcessorSharingAttribute : " + this.status.getProcessorSharingAttribute() + ""); + System.out.println("RestrictedStateFlag : " + this.status.getRestrictedStateFlag() + ""); + System.out.println("System : " + this.status.getSystem() + ""); + System.out.println("SystemASP : " + this.status.getSystemASP() + " Mbytes"); + System.out.println("SystemName : " + this.status.getSystemName() + ""); + System.out.println("TotalAuxiliaryStorage : " + this.status.getTotalAuxiliaryStorage() + ""); + System.out.println("UsersCurrentSignedOn : " + this.status.getUsersCurrentSignedOn() + ""); + System.out.println("UsersSignedOffWithPrinterOutputWaitingToPrint : " + + this.status.getUsersSignedOffWithPrinterOutputWaitingToPrint() + ""); + System.out.println("UsersSuspendedByGroupJobs : " + this.status.getUsersSuspendedByGroupJobs() + ""); + System.out.println("UsersSuspendedBySystemRequest : " + this.status.getUsersSuspendedBySystemRequest() + ""); + System.out.println("UsersTemporarilySignedOff : " + this.status.getUsersTemporarilySignedOff() + ""); + + final Enumeration enumeration = this.status.getSystemPools(); + + while (enumeration.hasMoreElements()) { + this.dumpPool((SystemPool) enumeration.nextElement()); + } + } + + @Override + public ResponseData getSystem() throws Exception { + final ResponseData data = new ResponseData(); + HashMap attrs = new HashMap(); + + attrs.put("percentProcessingUnitUsed", this.status.getPercentProcessingUnitUsed()); + attrs.put("percentSystemASPUsed", this.status.getPercentSystemASPUsed()); + attrs.put("maxJobInSystem", this.status.getMaximumJobsInSystem()); + attrs.put("jobInSystem", this.status.getJobsInSystem()); + attrs.put("activeJobInSystem", this.status.getActiveJobsInSystem()); + attrs.put("activeThreadInSystem", this.status.getActiveThreadsInSystem()); + attrs.put("batchJobsEndedWithPrinterOutputWaitingToPrint", this.status + .getBatchJobsEndedWithPrinterOutputWaitingToPrint()); + attrs.put("batchJobEnding", this.status.getBatchJobsEnding()); + attrs.put("batchJobHeldInJobQueue", this.status.getBatchJobsHeldOnJobQueue()); + attrs.put("batchJobHeldWhileRunning", this.status.getBatchJobsHeldWhileRunning()); + attrs.put("batchJobOnHeldJobQueue", this.status.getBatchJobsOnAHeldJobQueue()); + attrs.put("batchJobOnUnassignedJobQueue", this.status.getBatchJobsOnUnassignedJobQueue()); + attrs.put("batchJobRunning", this.status.getBatchJobsRunning()); + attrs.put("batchJobWaitingForMessage", this.status.getBatchJobsWaitingForMessage()); + attrs.put("batchJobWaitingToRunOrAlreadyScheduled", this.status.getBatchJobsWaitingToRunOrAlreadyScheduled()); + data.getResult().add(attrs); + + return data; + } + + @Override + @SuppressWarnings("unchecked") + public ResponseData getPageFault() throws Exception { + final ResponseData data = new ResponseData(); + + for (final Enumeration enumeration = this.status.getSystemPools(); enumeration.hasMoreElements();) { + final SystemPool pool = enumeration.nextElement(); + HashMap attrs = new HashMap(); + + attrs.put("id", pool.getIdentifier()); + attrs.put("name", pool.getPoolName()); + attrs.put("dbPageFault", pool.getDatabaseFaults()); + attrs.put("dbPage", pool.getDatabasePages()); + attrs.put("nonDbPageFault", pool.getNonDatabaseFaults()); + attrs.put("nonDbPage",pool.getNonDatabasePages()); + data.getResult().add(attrs); + } + + return data; + } + + @SuppressWarnings("unchecked") + public SystemPool searchSystemPoolByName(final String poolName) throws AS400SecurityException, + ErrorCompletingRequestException, InterruptedException, IOException, ObjectDoesNotExistException { + for (final Enumeration enumeration = this.status.getSystemPools(); enumeration.hasMoreElements();) { + final SystemPool pool = enumeration.nextElement(); + System.out.println("poolName : " + pool.getName()); + if (poolName.equalsIgnoreCase(pool.getName())) { + return pool; + } + } + return null; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskInfo.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskInfo.java new file mode 100644 index 0000000000..435b9965ad --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskInfo.java @@ -0,0 +1,108 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +import java.io.IOException; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Exception; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.AS400Text; +import com.ibm.as400.access.BinaryConverter; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.ProgramCall; +import com.ibm.as400.access.ProgramParameter; + +/** + * @author Lamotte Jean-Baptiste + */ +public class DiskInfo { + AS400 system = null; + + private static final ProgramParameter ERROR_CODE = new ProgramParameter(new byte[8]); + + byte[][] receiverVariables_ = new byte[4][]; + + public DiskInfo(final AS400 system) { + this.system = system; + } + + public void load() throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, IOException, + ObjectDoesNotExistException { + this.load(1); + } + + // Retrieve Disk Information (QYASRDI) API + public void load(int format) throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, + IOException, ObjectDoesNotExistException { + // Check to see if the format has been loaded already. + if (this.receiverVariables_[format] != null) { + return; + } + if (format == 0) { + format = 1; + } + + final int receiverVariableLength = format == 1 ? 80 : format == 2 ? 148 : 2048; + + final AS400Text param3 = new AS400Text(8, this.system); + // AS400Array param4 = new AS400Array(param3., system); + + final ProgramParameter[] parameters = new ProgramParameter[] { + // 1 Receiver variable Output Char(*) + new ProgramParameter(receiverVariableLength), + // 2 Length of receiver variable Input Binary(4) + new ProgramParameter(BinaryConverter.intToByteArray(receiverVariableLength)), + // 3 Format name Input Char(8) + new ProgramParameter(param3.toBytes("DMIN0100")), + // 4 Disk unit resource name array Input Array of CHAR(10) + new ProgramParameter(("*ALL ").getBytes("ASCII")), + // 5 Number of disk unit resource names Input Binary(4) + new ProgramParameter(BinaryConverter.intToByteArray(1)), DiskInfo.// 6 + // Error + // code + // I/O + // Char(*) + ERROR_CODE }; + + final ProgramCall pc = new ProgramCall(this.system, "/QSYS.LIB/QYASRDI.PGM", parameters); + // QWCRSSTS is not thread safe. + boolean repeatRun; + do { + repeatRun = false; + if (!pc.run()) { + throw new AS400Exception(pc.getMessageList()); + } + + this.receiverVariables_[format] = parameters[0].getOutputData(); + + final int bytesAvailable = BinaryConverter.byteArrayToInt(this.receiverVariables_[format], 0); + final int bytesReturned = BinaryConverter.byteArrayToInt(this.receiverVariables_[format], 4); + if (bytesReturned < bytesAvailable) { + repeatRun = true; + parameters[0] = new ProgramParameter(bytesAvailable); + parameters[1] = new ProgramParameter(BinaryConverter.intToByteArray(bytesAvailable)); + } + } while (repeatRun); + this.receiverVariables_[0] = this.receiverVariables_[format]; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagement.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagement.java new file mode 100644 index 0000000000..cf3ab4d126 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagement.java @@ -0,0 +1,109 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +import java.io.IOException; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Exception; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.AS400Text; +import com.ibm.as400.access.BinaryConverter; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.ProgramCall; +import com.ibm.as400.access.ProgramParameter; + +/** + * @author Lamotte Jean-Baptiste + */ +public class DiskManagement { + AS400 system = null; + DiskManagementSession session = null; + + private static final ProgramParameter ERROR_CODE = new ProgramParameter(new byte[8]); + + byte[][] receiverVariables_ = new byte[4][]; + + public DiskManagement(final AS400 system) { + this.system = system; + this.session = new DiskManagementSession(system); + } + + public void load() throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, IOException, + ObjectDoesNotExistException { + this.load(1); + } + + // Retrieve Disk Information (QYASRDI) API + public void load(int format) throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, + IOException, ObjectDoesNotExistException { + this.session.load(); + // Check to see if the format has been loaded already. + if (this.receiverVariables_[format] != null) { + return; + } + if (format == 0) { + format = 1; + } + + final int receiverVariableLength = format == 1 ? 80 : format == 2 ? 148 : 2048; + + final AS400Text param3 = new AS400Text(8, this.system); + // AS400Array param4 = new AS400Array(param3., system); + + final ProgramParameter[] parameters = new ProgramParameter[] { + // 1 Receiver variable Output Char(*) + new ProgramParameter(receiverVariableLength), + // 2 Length of receiver variable Input Binary(4) + new ProgramParameter(BinaryConverter.intToByteArray(receiverVariableLength)), + // 3 Format name Input Char(8) + new ProgramParameter(param3.toBytes("DMIN0100")), + // 4 Session handle Input Char(8) + new ProgramParameter(this.session.getHandle()), DiskManagement.// 5 + // Error + // code + // I/O + // Char(*)a + ERROR_CODE }; + + final ProgramCall pc = new ProgramCall(this.system, "/QSYS.LIB/QYASRDI.PGM", parameters); + // QWCRSSTS is not thread safe. + boolean repeatRun; + do { + repeatRun = false; + if (!pc.run()) { + throw new AS400Exception(pc.getMessageList()); + } + + this.receiverVariables_[format] = parameters[0].getOutputData(); + + final int bytesAvailable = BinaryConverter.byteArrayToInt(this.receiverVariables_[format], 0); + final int bytesReturned = BinaryConverter.byteArrayToInt(this.receiverVariables_[format], 4); + if (bytesReturned < bytesAvailable) { + repeatRun = true; + parameters[0] = new ProgramParameter(bytesAvailable); + parameters[1] = new ProgramParameter(BinaryConverter.intToByteArray(bytesAvailable)); + } + } while (repeatRun); + this.receiverVariables_[0] = this.receiverVariables_[format]; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagementSession.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagementSession.java new file mode 100644 index 0000000000..d0a1498836 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/DiskManagementSession.java @@ -0,0 +1,64 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +import java.io.IOException; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.ProgramCall; +import com.ibm.as400.access.ProgramParameter; + +/** + * @author Lamotte Jean-Baptiste + */ +public class DiskManagementSession { + AS400 system = null; + + byte[] session; + + private static final ProgramParameter ERROR_CODE = new ProgramParameter(new byte[8]); + + public DiskManagementSession(final AS400 system) { + this.system = system; + } + + public byte[] getHandle() { + return this.session; + } + + // Retrieve Disk Information (QYASRDI) API + public void load() throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, IOException, + ObjectDoesNotExistException { + + final ProgramParameter[] parameters = new ProgramParameter[] { + // 1 Session handle Output Char(8) + new ProgramParameter(8), DiskManagementSession.// 2 Error code + // I/O Char(*) + ERROR_CODE }; + + new ProgramCall(this.system, "/QSYS.LIB/QYASSDMS.PGM", parameters); + + this.session = parameters[0].getOutputData(); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0100PcmlHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0100PcmlHandler.java new file mode 100644 index 0000000000..e0db0cbcd9 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0100PcmlHandler.java @@ -0,0 +1,136 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Message; +import com.ibm.as400.data.PcmlException; +import com.ibm.as400.data.ProgramCallDocument; + +/** + * @author Lamotte Jean-Baptiste + */ +public class QyaspolYasp0100PcmlHandler { + AS400 system = null; + + ProgramCallDocument pcml; // com.ibm.as400.data.ProgramCallDocument + HashMap disks = new HashMap(); + + long lastLoad = 0; + + int totalRecord = -1; + + int rcdsReturned = -1; + + byte[] rqsHandle = null; + + public QyaspolYasp0100PcmlHandler(final AS400 system) { + this.system = system; + + } + + public void addYasp0100Data(final Yasp0100Data data) { + this.disks.put(data.getResourceName(), data); + } + + public boolean callProgram(final String programName) throws PcmlException { + + // Request to call the API + final boolean rc = this.pcml.callProgram(programName); + if (rc == false) { + this.displayMessageError(this.pcml, programName); + return false; + } + return true; + } + + public void displayMessageError(final ProgramCallDocument pcml, final String programmName) throws PcmlException { + // Retrieve list of server messages + final AS400Message[] msgs = pcml.getMessageList(programmName); + + // Iterate through messages and write them to standard output + for (final AS400Message msg : msgs) { + final String msgId = msg.getID(); + final String msgText = msg.getText(); + System.out.println(" " + msgId + " - " + msgText); + } + } + + public Yasp0100Data getDiskByResourceName(final String name) { + return this.disks.get(name); + } + + public List getDisksList() { + final List list = new LinkedList(); + list.addAll(this.disks.values()); + return list; + } + + public List getResourceNameList() { + final LinkedList list = new LinkedList(); + list.addAll(this.disks.keySet()); + return list; + } + + public synchronized void load() throws PcmlException { + if (System.currentTimeMillis() < (this.lastLoad + (10 * 1000))) { + return; + } + this.lastLoad = System.currentTimeMillis(); + + this.pcml = new ProgramCallDocument(this.system, "com.centreon.connector.as400.box.system.disk.qyaspol100.pcml"); + + this.callProgram("qyaspol"); + this.loadListInfo("qyaspol"); + this.addYasp0100Data(this.loadYasp0100(this.pcml, "qyaspol")); + + if (this.totalRecord > 1) { + for (int i = 1; i <= this.totalRecord; i++) { + this.pcml.setValue("qgygtle.requestHandle", this.rqsHandle); + this.pcml.setIntValue("qgygtle.startingRcd", i); + this.callProgram("qgygtle"); + this.addYasp0100Data(this.loadYasp0100(this.pcml, "qgygtle")); + } + } + this.pcml.setValue("qgyclst.requestHandle", this.rqsHandle); + this.callProgram("qgyclst"); + } + + public void loadListInfo(final String programName) throws PcmlException { + this.totalRecord = this.pcml.getIntValue(programName + ".listInfo.totalRcds"); + this.rcdsReturned = this.pcml.getIntValue(programName + ".listInfo.rcdsReturned"); + this.rqsHandle = (byte[]) this.pcml.getValue(programName + ".listInfo.rqsHandle"); + } + + public Yasp0100Data loadYasp0100(final ProgramCallDocument pcml, final String programName) throws PcmlException { + final int[] indices = new int[1]; + indices[0] = 0; + + final Yasp0100Data data = new Yasp0100Data(); + data.setResourceName(pcml.getStringValue(programName + ".receiver.resourceName", indices)); + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0300PcmlHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0300PcmlHandler.java new file mode 100644 index 0000000000..80715ee28f --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/QyaspolYasp0300PcmlHandler.java @@ -0,0 +1,259 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +import java.io.IOException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Message; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ConnectionEvent; +import com.ibm.as400.access.ConnectionListener; +import com.ibm.as400.access.SocketProperties; +import com.ibm.as400.data.PcmlException; +import com.ibm.as400.data.ProgramCallDocument; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.impl.FailedCheckException; + +/** + * @author Lamotte Jean-Baptiste + */ +public class QyaspolYasp0300PcmlHandler { + String pcmlFile = "qyaspol300.pcml"; + + // AS400 system = null; + + ProgramCallDocument pcml; // com.ibm.as400.data.ProgramCallDocument + HashMap currentDiskLoad = new HashMap(); + HashMap cachedDiskList = null; + Exception lastFailException = new Exception("First check"); + + long lastLoad = 0; + + int totalRecord = -1; + + int rcdsReturned = -1; + + byte[] rqsHandle = null; + + String host = null; + String login = null; + String password = null; + + public QyaspolYasp0300PcmlHandler(final String host, final String login, final String password) { + this.host = host; + this.login = login; + this.password = password; + } + + public void addYasp0300Data(final Yasp0300Data data) { + this.currentDiskLoad.put(data.getResourceName(), data); + } + + public boolean callProgram(final String programName) throws PcmlException { + + // Request to call the API + final boolean rc = this.pcml.callProgram(programName); + if (rc == false) { + this.displayMessageError(this.pcml, programName); + return false; + } + return true; + } + + public void displayMessageError(final ProgramCallDocument pcml, final String programmName) throws PcmlException { + // Retrieve list of server messages + final AS400Message[] msgs = pcml.getMessageList(programmName); + + // Iterate through messages and write them to standard output + for (final AS400Message msg : msgs) { + final String msgId = msg.getID(); + final String msgText = msg.getText(); + System.out.println(" " + msgId + " - " + msgText); + } + } + + public Yasp0300Data getDiskByResourceName(final String name) throws Exception { + this.load(); + if (this.cachedDiskList == null) { + throw this.lastFailException; + } + return this.cachedDiskList.get(name); + } + + public List getDisksList() throws Exception { + this.load(); + if (this.cachedDiskList == null) { + throw this.lastFailException; + } + final List list = new LinkedList(); + list.addAll(this.cachedDiskList.values()); + return list; + } + + public List getResourceNameList() throws Exception { + this.load(); + if (this.cachedDiskList == null) { + throw this.lastFailException; + } + final LinkedList list = new LinkedList(); + list.addAll(this.cachedDiskList.keySet()); + return list; + } + + public void load() throws PcmlException { + if (!((this.lastLoad + Conf.cacheTimeout) < System.currentTimeMillis())) { + return; + } + + AS400 system = null; + try { + this.currentDiskLoad = new HashMap(); + + system = this.getNewAs400(); + this.pcml = new ProgramCallDocument(system, this.pcmlFile); + + this.callProgram("qyaspol"); + this.loadListInfo("qyaspol"); + this.addYasp0300Data(this.loadYasp0300(this.pcml, "qyaspol")); + + if (this.totalRecord > 1) { + for (int i = 1; i <= this.totalRecord; i++) { + this.pcml.setValue("qgygtle.requestHandle", this.rqsHandle); + this.pcml.setIntValue("qgygtle.startingRcd", i); + this.callProgram("qgygtle"); + this.addYasp0300Data(this.loadYasp0300(this.pcml, "qgygtle")); + } + } + + this.pcml.setValue("qgyclst.requestHandle", this.rqsHandle); + this.callProgram("qgyclst"); + + this.cachedDiskList = this.currentDiskLoad; + this.lastLoad = System.currentTimeMillis(); + + } catch (final com.ibm.as400.data.PcmlException e) { + if (e.getCause() != null) { + new FailedCheckException("" + e.getCause().getMessage()); + } else { + new FailedCheckException("" + e.getMessage()); + } + this.cachedDiskList = null; + ConnectorLogger.getInstance().debug("", e); + } catch (final java.net.UnknownHostException e) { + this.lastFailException = new FailedCheckException("Invalid hostname for server: " + e.getMessage()); + this.cachedDiskList = null; + ConnectorLogger.getInstance().debug("", e); + } catch (final Exception e) { + System.out.println("plop " + e.getMessage()); + this.lastFailException = new FailedCheckException("" + e.getMessage()); + this.cachedDiskList = null; + ConnectorLogger.getInstance().debug("", e); + } finally { + this.lastLoad = System.currentTimeMillis(); + if (system != null) { + system.disconnectAllServices(); + } + } + } + + public void loadListInfo(final String programName) throws PcmlException { + this.totalRecord = this.pcml.getIntValue(programName + ".listInfo.totalRcds"); + this.rcdsReturned = this.pcml.getIntValue(programName + ".listInfo.rcdsReturned"); + this.rqsHandle = (byte[]) this.pcml.getValue(programName + ".listInfo.rqsHandle"); + } + + public Yasp0300Data loadYasp0300(final ProgramCallDocument pcml, final String programName) throws PcmlException { + final int[] indices = new int[1]; + indices[0] = 0; + + final Yasp0300Data data = new Yasp0300Data(); + + data.setAspNumber(pcml.getIntValue(programName + ".receiver.aspNumber", indices)); + data.setDiskType(pcml.getStringValue(programName + ".receiver.diskType", indices)); + data.setDiskModel(pcml.getStringValue(programName + ".receiver.diskModel", indices)); + data.setDiskSerialNumber(pcml.getStringValue(programName + ".receiver.diskSerialNumber", indices)); + data.setResourceName(pcml.getStringValue(programName + ".receiver.resourceName", indices)); + data.setDiskUnitNumber(pcml.getIntValue(programName + ".receiver.diskUnitNumber", indices)); + data.setDiskCapacity(pcml.getIntValue(programName + ".receiver.diskCapacity", indices)); + data.setDiskStorageAvailable(pcml.getIntValue(programName + ".receiver.diskStorageAvailable", indices)); + data.setDiskStorageReservedForSystem( + pcml.getIntValue(programName + ".receiver.diskStorageReservedForSystem", indices)); + data.setMirroredUnitProtected(pcml.getStringValue(programName + ".receiver.mirroredUnitProtected", indices)); + data.setMirroredUnitReported(pcml.getStringValue(programName + ".receiver.mirroredUnitReported", indices)); + data.setMirroredUnitStatus(pcml.getStringValue(programName + ".receiver.mirroredUnitStatus", indices)); + data.setReserved(pcml.getStringValue(programName + ".receiver.reserved", indices)); + data.setUnitControl(pcml.getIntValue(programName + ".receiver.unitControl", indices)); + data.setBlockTransferredToMainStorage( + pcml.getIntValue(programName + ".receiver.blockTransferredToMainStorage", indices)); + data.setBlockTransferredFromMainStorage( + pcml.getIntValue(programName + ".receiver.blockTransferredFromMainStorage", indices)); + data.setRequestForDataToMainStorage( + pcml.getIntValue(programName + ".receiver.requestForDataToMainStorage", indices)); + data.setRequestForDataForMainStorage( + pcml.getIntValue(programName + ".receiver.requestForDataForMainStorage", indices)); + data.setRequestForPermanentFromMainStorage( + pcml.getIntValue(programName + ".receiver.requestForPermanentFromMainStorage", indices)); + data.setSampleCount(pcml.getIntValue(programName + ".receiver.sampleCount", indices)); + data.setNotBusyCount(pcml.getIntValue(programName + ".receiver.notBusyCount", indices)); + data.setCompressionStatus(pcml.getStringValue(programName + ".receiver.compressionStatus", indices)); + data.setDiskProtectionType(pcml.getStringValue(programName + ".receiver.diskProtectionType", indices)); + data.setCompressedUnit(pcml.getStringValue(programName + ".receiver.compressedUnit", indices)); + data.setStorageAllocationRestrictedUnit( + pcml.getStringValue(programName + ".receiver.storageAllocationRestrictedUnit", indices)); + data.setAvailabilityParitySetUnit( + pcml.getStringValue(programName + ".receiver.availabilityParitySetUnit", indices)); + data.setMultipleConnectionUnit(pcml.getStringValue(programName + ".receiver.multipleConnectionUnit", indices)); + + return data; + } + + protected AS400 getNewAs400() throws AS400SecurityException, IOException { + final SocketProperties properties = new SocketProperties(); + properties.setSoLinger(1); + properties.setKeepAlive(false); + properties.setTcpNoDelay(true); + properties.setLoginTimeout(Conf.as400LoginTimeout); + properties.setSoTimeout(Conf.as400ReadTimeout); + + final AS400 system = new AS400(this.host, this.login, this.password); + system.setSocketProperties(properties); + system.addConnectionListener(new ConnectionListener() { + @Override + public void connected(final ConnectionEvent event) { + ConnectorLogger.getInstance().getLogger().debug("Connect event service : " + event.getService()); + } + + @Override + public void disconnected(final ConnectionEvent event) { + ConnectorLogger.getInstance().getLogger().debug("Disconnect event service : " + event.getService()); + } + }); + + system.validateSignon(); + + return system; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0100Data.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0100Data.java new file mode 100644 index 0000000000..3841d62b6e --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0100Data.java @@ -0,0 +1,46 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +/** + * @author Lamotte Jean-Baptiste + */ +class Yasp0100Data { + private int aspNumber; + String resourceName; + + public int getAspNumber() { + return this.aspNumber; + } + + public String getResourceName() { + return this.resourceName; + } + + public void setAspNumber(final int aspNumber) { + this.aspNumber = aspNumber; + } + + public void setResourceName(final String resourceName) { + this.resourceName = resourceName; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0300Data.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0300Data.java new file mode 100644 index 0000000000..fdb0cdcec2 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/disk/Yasp0300Data.java @@ -0,0 +1,317 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.disk; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Yasp0300Data { + private int aspNumber; + private String diskType; + private String diskModel; + private String diskSerialNumber; + private String resourceName; + private int diskUnitNumber; + private int diskCapacity; + private int diskStorageAvailable; + private int diskStorageReservedForSystem; + private String mirroredUnitProtected; + private String mirroredUnitReported; + private String mirroredUnitStatus; + private String reserved; + private int unitControl; + private int blockTransferredToMainStorage; + private int blockTransferredFromMainStorage; + private int requestForDataToMainStorage; + private int requestForDataForMainStorage; + private int requestForPermanentFromMainStorage; + private int sampleCount; + private int notBusyCount; + private String compressionStatus; + private String diskProtectionType; + private String compressedUnit; + private String storageAllocationRestrictedUnit; + private String availabilityParitySetUnit; + private String multipleConnectionUnit; + + public int getAspNumber() { + return this.aspNumber; + } + + public String getAvailabilityParitySetUnit() { + return this.availabilityParitySetUnit; + } + + public int getBlockTransferredFromMainStorage() { + return this.blockTransferredFromMainStorage; + } + + public int getBlockTransferredToMainStorage() { + return this.blockTransferredToMainStorage; + } + + public String getCompressedUnit() { + return this.compressedUnit; + } + + public String getCompressionStatus() { + return this.compressionStatus; + } + + public int getDiskCapacity() { + return this.diskCapacity; + } + + public String getDiskModel() { + return this.diskModel; + } + + public String getDiskProtectionType() { + return this.diskProtectionType; + } + + public String getDiskSerialNumber() { + return this.diskSerialNumber; + } + + public int getDiskStorageAvailable() { + return this.diskStorageAvailable; + } + + public int getDiskStorageReservedForSystem() { + return this.diskStorageReservedForSystem; + } + + public String getDiskType() { + return this.diskType; + } + + public int getDiskUnitNumber() { + return this.diskUnitNumber; + } + + public String getMirroredUnitProtected() { + return this.mirroredUnitProtected; + } + + public String getMirroredUnitReported() { + return this.mirroredUnitReported; + } + + public String getMirroredUnitStatus() { + return this.mirroredUnitStatus; + } + + public String getMultipleConnectionUnit() { + return this.multipleConnectionUnit; + } + + public int getNotBusyCount() { + return this.notBusyCount; + } + + public int getRequestForDataForMainStorage() { + return this.requestForDataForMainStorage; + } + + public int getRequestForDataToMainStorage() { + return this.requestForDataToMainStorage; + } + + public int getRequestForPermanentFromMainStorage() { + return this.requestForPermanentFromMainStorage; + } + + public String getReserved() { + return this.reserved; + } + + public String getResourceName() { + return this.resourceName; + } + + public int getSampleCount() { + return this.sampleCount; + } + + public String getStorageAllocationRestrictedUnit() { + return this.storageAllocationRestrictedUnit; + } + + public int getUnitControl() { + return this.unitControl; + } + + public String getUnitControlString() { + /* + * 0 There is no unit control value. 1 The disk unit is active. 2 The disk unit + * has failed. 3 Some other disk unit in the disk subsystem has failed. 4 There + * is a hardware failure within the disk subsystem that affects performance, but + * does not affect the function of the disk unit. 5 There is a hardware failure + * within the disk subsystem that does not affect the function or performance of + * the disk unit. 6 The disk unit's parity protection is being rebuilt. 7 The + * disk unit is not ready. 8 The disk unit is write protected. 9 The disk unit + * is busy. 10 The disk unit is not operational. 11 The disk unit has returned a + * status that is not recognizable by the system. 12 The disk unit cannot be + * accessed. 13 The disk unit is read/write protected. + */ + if (this.getUnitControl() == 0) { + return "There is no unit control value"; + } else if (this.getUnitControl() == 1) { + return "The disk unit is active"; + } else if (this.getUnitControl() == 2) { + return "The disk unit has failed"; + } else if (this.getUnitControl() == 3) { + return "Some other disk unit in the disk subsystem has failed"; + } else if (this.getUnitControl() == 4) { + return "There is a hardware failure within the disk subsystem that affects performance, but does not affect the function of the disk unit"; + } else if (this.getUnitControl() == 5) { + return "There is a hardware failure within the disk subsystem that does not affect the function or performance of the disk unit"; + } else if (this.getUnitControl() == 6) { + return "The disk unit's parity protection is being rebuilt"; + } else if (this.getUnitControl() == 7) { + return "The disk unit is not ready"; + } else if (this.getUnitControl() == 8) { + return "The disk unit is write protected"; + } else if (this.getUnitControl() == 9) { + return "The disk unit is busy"; + } else if (this.getUnitControl() == 10) { + return "The disk unit is not operational"; + } else if (this.getUnitControl() == 11) { + return "The disk unit has returned a status that is not recognizable by the system"; + } else if (this.getUnitControl() == 12) { + return "The disk unit cannot be accessed"; + } else if (this.getUnitControl() == 13) { + return "The disk unit is read/write protected"; + } else { + return "state unknown (" + this.getUnitControl() + ")"; + } + } + + public void setAspNumber(final int aspNumber) { + this.aspNumber = aspNumber; + } + + public void setAvailabilityParitySetUnit(final String availabilityParitySetUnit) { + this.availabilityParitySetUnit = availabilityParitySetUnit; + } + + public void setBlockTransferredFromMainStorage(final int blockTransferredFromMainStorage) { + this.blockTransferredFromMainStorage = blockTransferredFromMainStorage; + } + + public void setBlockTransferredToMainStorage(final int blockTransferredToMainStorage) { + this.blockTransferredToMainStorage = blockTransferredToMainStorage; + } + + public void setCompressedUnit(final String compressedUnit) { + this.compressedUnit = compressedUnit; + } + + public void setCompressionStatus(final String compressionStatus) { + this.compressionStatus = compressionStatus; + } + + public void setDiskCapacity(final int diskCapacity) { + this.diskCapacity = diskCapacity; + } + + public void setDiskModel(final String diskModel) { + this.diskModel = diskModel; + } + + public void setDiskProtectionType(final String diskProtectionType) { + this.diskProtectionType = diskProtectionType; + } + + public void setDiskSerialNumber(final String diskSerialNumber) { + this.diskSerialNumber = diskSerialNumber; + } + + public void setDiskStorageAvailable(final int diskStorageAvailable) { + this.diskStorageAvailable = diskStorageAvailable; + } + + public void setDiskStorageReservedForSystem(final int diskStorageReservedForSystem) { + this.diskStorageReservedForSystem = diskStorageReservedForSystem; + } + + public void setDiskType(final String diskType) { + this.diskType = diskType; + } + + public void setDiskUnitNumber(final int diskUnitNumber) { + this.diskUnitNumber = diskUnitNumber; + } + + public void setMirroredUnitProtected(final String mirroredUnitProtected) { + this.mirroredUnitProtected = mirroredUnitProtected; + } + + public void setMirroredUnitReported(final String mirroredUnitReported) { + this.mirroredUnitReported = mirroredUnitReported; + } + + public void setMirroredUnitStatus(final String mirroredUnitStatus) { + this.mirroredUnitStatus = mirroredUnitStatus; + } + + public void setMultipleConnectionUnit(final String multipleConnectionUnit) { + this.multipleConnectionUnit = multipleConnectionUnit; + } + + public void setNotBusyCount(final int notBusyCount) { + this.notBusyCount = notBusyCount; + } + + public void setRequestForDataForMainStorage(final int requestForDataForMainStorage) { + this.requestForDataForMainStorage = requestForDataForMainStorage; + } + + public void setRequestForDataToMainStorage(final int requestForDataToMainStorage) { + this.requestForDataToMainStorage = requestForDataToMainStorage; + } + + public void setRequestForPermanentFromMainStorage(final int requestForPermanentFromMainStorage) { + this.requestForPermanentFromMainStorage = requestForPermanentFromMainStorage; + } + + public void setReserved(final String reserved) { + this.reserved = reserved; + } + + public void setResourceName(final String resourceName) { + this.resourceName = resourceName; + } + + public void setSampleCount(final int sampleCount) { + this.sampleCount = sampleCount; + } + + public void setStorageAllocationRestrictedUnit(final String storageAllocationRestrictedUnit) { + this.storageAllocationRestrictedUnit = storageAllocationRestrictedUnit; + } + + public void setUnitControl(final int unitControl) { + this.unitControl = unitControl; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0100.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0100.java new file mode 100644 index 0000000000..ae3b7e3aa4 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0100.java @@ -0,0 +1,153 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.jobqueue; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Jobq0100 { + private int bytesReturned; + private int bytesAvailable; + private String jobqName; + private String jobqLibName; + private String operatorControlled; + private String authorityCheck; + private int numberOfJob; + private String jobQueueStatus; + private String subSystemName; + private String textDescription; + private String subSystemLibName; + private int sequenceNumber; + private int maximumActive; + private int currentActive; + + public int getBytesReturned() { + return this.bytesReturned; + } + + public void setBytesReturned(final int bytesReturned) { + this.bytesReturned = bytesReturned; + } + + public int getBytesAvailable() { + return this.bytesAvailable; + } + + public void setBytesAvailable(final int bytesAvailable) { + this.bytesAvailable = bytesAvailable; + } + + public String getJobqName() { + return this.jobqName; + } + + public void setJobqName(final String jobqName) { + this.jobqName = jobqName; + } + + public String getJobqLibName() { + return this.jobqLibName; + } + + public void setJobqLibName(final String jobqLibName) { + this.jobqLibName = jobqLibName; + } + + public String getOperatorControlled() { + return this.operatorControlled; + } + + public void setOperatorControlled(final String operatorControlled) { + this.operatorControlled = operatorControlled; + } + + public String getAuthorityCheck() { + return this.authorityCheck; + } + + public void setAuthorityCheck(final String authorityCheck) { + this.authorityCheck = authorityCheck; + } + + public int getNumberOfJob() { + return this.numberOfJob; + } + + public void setNumberOfJob(final int numberOfJob) { + this.numberOfJob = numberOfJob; + } + + public String getJobQueueStatus() { + return this.jobQueueStatus; + } + + public void setJobQueueStatus(final String jobQueueStatus) { + this.jobQueueStatus = jobQueueStatus; + } + + public String getSubSystemName() { + return this.subSystemName; + } + + public void setSubSystemName(final String subSystemName) { + this.subSystemName = subSystemName; + } + + public String getTextDescription() { + return this.textDescription; + } + + public void setTextDescription(final String textDescription) { + this.textDescription = textDescription; + } + + public String getSubSystemLibName() { + return this.subSystemLibName; + } + + public void setSubSystemLibName(final String subSystemLibName) { + this.subSystemLibName = subSystemLibName; + } + + public int getSequenceNumber() { + return this.sequenceNumber; + } + + public void setSequenceNumber(final int sequenceNumber) { + this.sequenceNumber = sequenceNumber; + } + + public int getMaximumActive() { + return this.maximumActive; + } + + public void setMaximumActive(final int maximumActive) { + this.maximumActive = maximumActive; + } + + public int getCurrentActive() { + return this.currentActive; + } + + public void setCurrentActive(final int currentActive) { + this.currentActive = currentActive; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0200.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0200.java new file mode 100644 index 0000000000..bb1a4e0953 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Jobq0200.java @@ -0,0 +1,403 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.jobqueue; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Jobq0200 extends Jobq0100 { + + private int maxActiveJobPriority1; + private int maxActiveJobPriority2; + private int maxActiveJobPriority3; + private int maxActiveJobPriority4; + private int maxActiveJobPriority5; + private int maxActiveJobPriority6; + private int maxActiveJobPriority7; + private int maxActiveJobPriority8; + private int maxActiveJobPriority9; + + private int activeJobPriority0; + private int activeJobPriority1; + private int activeJobPriority2; + private int activeJobPriority3; + private int activeJobPriority4; + private int activeJobPriority5; + private int activeJobPriority6; + private int activeJobPriority7; + private int activeJobPriority8; + private int activeJobPriority9; + + private int scheduledJobOnQueuePriority0; + private int scheduledJobOnQueuePriority1; + private int scheduledJobOnQueuePriority2; + private int scheduledJobOnQueuePriority3; + private int scheduledJobOnQueuePriority4; + private int scheduledJobOnQueuePriority5; + private int scheduledJobOnQueuePriority6; + private int scheduledJobOnQueuePriority7; + private int scheduledJobOnQueuePriority8; + private int scheduledJobOnQueuePriority9; + + private int heldJobOnQueuePriority0; + private int heldJobOnQueuePriority1; + private int heldJobOnQueuePriority2; + private int heldJobOnQueuePriority3; + private int heldJobOnQueuePriority4; + private int heldJobOnQueuePriority5; + private int heldJobOnQueuePriority6; + private int heldJobOnQueuePriority7; + private int heldJobOnQueuePriority8; + private int heldJobOnQueuePriority9; + + public int getActiveJobTotal() { + return this.activeJobPriority0 + this.activeJobPriority1 + this.activeJobPriority2 + this.activeJobPriority3 + + this.activeJobPriority4 + this.activeJobPriority5 + this.activeJobPriority6 + this.activeJobPriority7 + + this.activeJobPriority8 + this.activeJobPriority9; + } + + public int getScheduledJobTotal() { + return this.scheduledJobOnQueuePriority0 + this.scheduledJobOnQueuePriority1 + this.scheduledJobOnQueuePriority2 + + this.scheduledJobOnQueuePriority3 + this.scheduledJobOnQueuePriority4 + this.scheduledJobOnQueuePriority5 + + this.scheduledJobOnQueuePriority6 + this.scheduledJobOnQueuePriority7 + this.scheduledJobOnQueuePriority8 + + this.scheduledJobOnQueuePriority9; + } + + public int getHeldJobTotal() { + return this.heldJobOnQueuePriority0 + this.heldJobOnQueuePriority1 + this.heldJobOnQueuePriority2 + + this.heldJobOnQueuePriority3 + this.heldJobOnQueuePriority4 + this.heldJobOnQueuePriority5 + + this.heldJobOnQueuePriority6 + this.heldJobOnQueuePriority7 + this.heldJobOnQueuePriority8 + + this.heldJobOnQueuePriority9; + } + + public int getMaxActiveJobPriority1() { + return this.maxActiveJobPriority1; + } + + public void setMaxActiveJobPriority1(final int maxActiveJobPriority1) { + this.maxActiveJobPriority1 = maxActiveJobPriority1; + } + + public int getMaxActiveJobPriority2() { + return this.maxActiveJobPriority2; + } + + public void setMaxActiveJobPriority2(final int maxActiveJobPriority2) { + this.maxActiveJobPriority2 = maxActiveJobPriority2; + } + + public int getMaxActiveJobPriority3() { + return this.maxActiveJobPriority3; + } + + public void setMaxActiveJobPriority3(final int maxActiveJobPriority3) { + this.maxActiveJobPriority3 = maxActiveJobPriority3; + } + + public int getMaxActiveJobPriority4() { + return this.maxActiveJobPriority4; + } + + public void setMaxActiveJobPriority4(final int maxActiveJobPriority4) { + this.maxActiveJobPriority4 = maxActiveJobPriority4; + } + + public int getMaxActiveJobPriority5() { + return this.maxActiveJobPriority5; + } + + public void setMaxActiveJobPriority5(final int maxActiveJobPriority5) { + this.maxActiveJobPriority5 = maxActiveJobPriority5; + } + + public int getMaxActiveJobPriority6() { + return this.maxActiveJobPriority6; + } + + public void setMaxActiveJobPriority6(final int maxActiveJobPriority6) { + this.maxActiveJobPriority6 = maxActiveJobPriority6; + } + + public int getMaxActiveJobPriority7() { + return this.maxActiveJobPriority7; + } + + public void setMaxActiveJobPriority7(final int maxActiveJobPriority7) { + this.maxActiveJobPriority7 = maxActiveJobPriority7; + } + + public int getMaxActiveJobPriority8() { + return this.maxActiveJobPriority8; + } + + public void setMaxActiveJobPriority8(final int maxActiveJobPriority8) { + this.maxActiveJobPriority8 = maxActiveJobPriority8; + } + + public int getMaxActiveJobPriority9() { + return this.maxActiveJobPriority9; + } + + public void setMaxActiveJobPriority9(final int maxActiveJobPriority9) { + this.maxActiveJobPriority9 = maxActiveJobPriority9; + } + + public int getActiveJobPriority1() { + return this.activeJobPriority1; + } + + public void setActiveJobPriority1(final int activeJobPriority1) { + this.activeJobPriority1 = activeJobPriority1; + } + + public int getActiveJobPriority2() { + return this.activeJobPriority2; + } + + public void setActiveJobPriority2(final int activeJobPriority2) { + this.activeJobPriority2 = activeJobPriority2; + } + + public int getActiveJobPriority3() { + return this.activeJobPriority3; + } + + public void setActiveJobPriority3(final int activeJobPriority3) { + this.activeJobPriority3 = activeJobPriority3; + } + + public int getActiveJobPriority4() { + return this.activeJobPriority4; + } + + public void setActiveJobPriority4(final int activeJobPriority4) { + this.activeJobPriority4 = activeJobPriority4; + } + + public int getActiveJobPriority5() { + return this.activeJobPriority5; + } + + public void setActiveJobPriority5(final int activeJobPriority5) { + this.activeJobPriority5 = activeJobPriority5; + } + + public int getActiveJobPriority6() { + return this.activeJobPriority6; + } + + public void setActiveJobPriority6(final int activeJobPriority6) { + this.activeJobPriority6 = activeJobPriority6; + } + + public int getActiveJobPriority7() { + return this.activeJobPriority7; + } + + public void setActiveJobPriority7(final int activeJobPriority7) { + this.activeJobPriority7 = activeJobPriority7; + } + + public int getActiveJobPriority8() { + return this.activeJobPriority8; + } + + public void setActiveJobPriority8(final int activeJobPriority8) { + this.activeJobPriority8 = activeJobPriority8; + } + + public int getActiveJobPriority9() { + return this.activeJobPriority9; + } + + public void setActiveJobPriority9(final int activeJobPriority9) { + this.activeJobPriority9 = activeJobPriority9; + } + + public int getScheduledJobOnQueuePriority1() { + return this.scheduledJobOnQueuePriority1; + } + + public void setScheduledJobOnQueuePriority1(final int scheduledJobOnQueuePriority1) { + this.scheduledJobOnQueuePriority1 = scheduledJobOnQueuePriority1; + } + + public int getScheduledJobOnQueuePriority2() { + return this.scheduledJobOnQueuePriority2; + } + + public void setScheduledJobOnQueuePriority2(final int scheduledJobOnQueuePriority2) { + this.scheduledJobOnQueuePriority2 = scheduledJobOnQueuePriority2; + } + + public int getScheduledJobOnQueuePriority3() { + return this.scheduledJobOnQueuePriority3; + } + + public void setScheduledJobOnQueuePriority3(final int scheduledJobOnQueuePriority3) { + this.scheduledJobOnQueuePriority3 = scheduledJobOnQueuePriority3; + } + + public int getScheduledJobOnQueuePriority4() { + return this.scheduledJobOnQueuePriority4; + } + + public void setScheduledJobOnQueuePriority4(final int scheduledJobOnQueuePriority4) { + this.scheduledJobOnQueuePriority4 = scheduledJobOnQueuePriority4; + } + + public int getScheduledJobOnQueuePriority5() { + return this.scheduledJobOnQueuePriority5; + } + + public void setScheduledJobOnQueuePriority5(final int scheduledJobOnQueuePriority5) { + this.scheduledJobOnQueuePriority5 = scheduledJobOnQueuePriority5; + } + + public int getScheduledJobOnQueuePriority6() { + return this.scheduledJobOnQueuePriority6; + } + + public void setScheduledJobOnQueuePriority6(final int scheduledJobOnQueuePriority6) { + this.scheduledJobOnQueuePriority6 = scheduledJobOnQueuePriority6; + } + + public int getScheduledJobOnQueuePriority7() { + return this.scheduledJobOnQueuePriority7; + } + + public void setScheduledJobOnQueuePriority7(final int scheduledJobOnQueuePriority7) { + this.scheduledJobOnQueuePriority7 = scheduledJobOnQueuePriority7; + } + + public int getScheduledJobOnQueuePriority8() { + return this.scheduledJobOnQueuePriority8; + } + + public void setScheduledJobOnQueuePriority8(final int scheduledJobOnQueuePriority8) { + this.scheduledJobOnQueuePriority8 = scheduledJobOnQueuePriority8; + } + + public int getScheduledJobOnQueuePriority9() { + return this.scheduledJobOnQueuePriority9; + } + + public void setScheduledJobOnQueuePriority9(final int scheduledJobOnQueuePriority9) { + this.scheduledJobOnQueuePriority9 = scheduledJobOnQueuePriority9; + } + + public int getHeldJobOnQueuePriority1() { + return this.heldJobOnQueuePriority1; + } + + public void setHeldJobOnQueuePriority1(final int heldJobOnQueuePriority1) { + this.heldJobOnQueuePriority1 = heldJobOnQueuePriority1; + } + + public int getHeldJobOnQueuePriority2() { + return this.heldJobOnQueuePriority2; + } + + public void setHeldJobOnQueuePriority2(final int heldJobOnQueuePriority2) { + this.heldJobOnQueuePriority2 = heldJobOnQueuePriority2; + } + + public int getHeldJobOnQueuePriority3() { + return this.heldJobOnQueuePriority3; + } + + public void setHeldJobOnQueuePriority3(final int heldJobOnQueuePriority3) { + this.heldJobOnQueuePriority3 = heldJobOnQueuePriority3; + } + + public int getHeldJobOnQueuePriority4() { + return this.heldJobOnQueuePriority4; + } + + public void setHeldJobOnQueuePriority4(final int heldJobOnQueuePriority4) { + this.heldJobOnQueuePriority4 = heldJobOnQueuePriority4; + } + + public int getHeldJobOnQueuePriority5() { + return this.heldJobOnQueuePriority5; + } + + public void setHeldJobOnQueuePriority5(final int heldJobOnQueuePriority5) { + this.heldJobOnQueuePriority5 = heldJobOnQueuePriority5; + } + + public int getHeldJobOnQueuePriority6() { + return this.heldJobOnQueuePriority6; + } + + public void setHeldJobOnQueuePriority6(final int heldJobOnQueuePriority6) { + this.heldJobOnQueuePriority6 = heldJobOnQueuePriority6; + } + + public int getHeldJobOnQueuePriority7() { + return this.heldJobOnQueuePriority7; + } + + public void setHeldJobOnQueuePriority7(final int heldJobOnQueuePriority7) { + this.heldJobOnQueuePriority7 = heldJobOnQueuePriority7; + } + + public int getHeldJobOnQueuePriority8() { + return this.heldJobOnQueuePriority8; + } + + public void setHeldJobOnQueuePriority8(final int heldJobOnQueuePriority8) { + this.heldJobOnQueuePriority8 = heldJobOnQueuePriority8; + } + + public int getHeldJobOnQueuePriority9() { + return this.heldJobOnQueuePriority9; + } + + public void setHeldJobOnQueuePriority9(final int heldJobOnQueuePriority9) { + this.heldJobOnQueuePriority9 = heldJobOnQueuePriority9; + } + + public int getActiveJobPriority0() { + return this.activeJobPriority0; + } + + public void setActiveJobPriority0(final int activeJobPriority0) { + this.activeJobPriority0 = activeJobPriority0; + } + + public int getScheduledJobOnQueuePriority0() { + return this.scheduledJobOnQueuePriority0; + } + + public void setScheduledJobOnQueuePriority0(final int scheduledJobOnQueuePriority0) { + this.scheduledJobOnQueuePriority0 = scheduledJobOnQueuePriority0; + } + + public int getHeldJobOnQueuePriority0() { + return this.heldJobOnQueuePriority0; + } + + public void setHeldJobOnQueuePriority0(final int heldJobOnQueuePriority0) { + this.heldJobOnQueuePriority0 = heldJobOnQueuePriority0; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq100Handler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq100Handler.java new file mode 100644 index 0000000000..69abbe0a82 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq100Handler.java @@ -0,0 +1,91 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.jobqueue; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Message; +import com.ibm.as400.data.ProgramCallDocument; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Qsprjobq100Handler { + private final String pcmlFile = "qsprjobq100.pcml"; + + private AS400 system = null; + + public Qsprjobq100Handler(final AS400 system) { + this.system = system; + } + + private void displayMessageError(final ProgramCallDocument pcml, final String programmName) throws Exception { + final AS400Message[] msgs = pcml.getMessageList(programmName); + + for (final AS400Message msg : msgs) { + final String msgId = msg.getID(); + final String msgText = msg.getText(); + throw new Exception("" + msgId + " - " + msgText); + } + } + + public Jobq0100 loadJobq0100(final String jobqName, final String lib) throws Exception { + + String qualifiedQueueName = jobqName; + while (qualifiedQueueName.length() < 10) { + qualifiedQueueName += " "; + } + qualifiedQueueName += lib; + + final ProgramCallDocument pcml = new ProgramCallDocument(this.system, this.pcmlFile); + + pcml.setValue("qsprjobq.receiverLength", pcml.getOutputsize("qsprjobq.receiver")); + pcml.setValue("qsprjobq.qualifiedJobQueueName", qualifiedQueueName); + // pcml.setValue("qsprjobq.qualifiedJobQueueName", jobqName); + + // If return code is false, we received messages from the server + if (pcml.callProgram("qsprjobq") == false) { + this.displayMessageError(pcml, "qsprjobq"); + } else { + final int[] indices = new int[1]; + indices[0] = 0; + + final Jobq0100 jobq0100 = new Jobq0100(); + + jobq0100.setAuthorityCheck(pcml.getStringValue("qsprjobq.receiver.authorityCheck", indices)); + jobq0100.setBytesAvailable(pcml.getIntValue("qsprjobq.receiver.bytesAvailable", indices)); + jobq0100.setBytesReturned(pcml.getIntValue("qsprjobq.receiver.bytesReturned", indices)); + jobq0100.setCurrentActive(pcml.getIntValue("qsprjobq.receiver.currentActive", indices)); + jobq0100.setJobqLibName(pcml.getStringValue("qsprjobq.receiver.jobqLibName", indices)); + jobq0100.setJobqName(pcml.getStringValue("qsprjobq.receiver.jobqName", indices)); + jobq0100.setJobQueueStatus(pcml.getStringValue("qsprjobq.receiver.jobQueueStatus", indices)); + jobq0100.setMaximumActive(pcml.getIntValue("qsprjobq.receiver.maximumActive", indices)); + jobq0100.setNumberOfJob(pcml.getIntValue("qsprjobq.receiver.numberOfJob", indices)); + jobq0100.setOperatorControlled(pcml.getStringValue("qsprjobq.receiver.operatorControlled", indices)); + jobq0100.setSequenceNumber(pcml.getIntValue("qsprjobq.receiver.sequenceNumber", indices)); + jobq0100.setSubSystemLibName(pcml.getStringValue("qsprjobq.receiver.subSystemLibName", indices)); + jobq0100.setSubSystemName(pcml.getStringValue("qsprjobq.receiver.subSystemName", indices)); + jobq0100.setTextDescription(pcml.getStringValue("qsprjobq.receiver.textDescription", indices)); + + return jobq0100; + } + return null; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq200Handler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq200Handler.java new file mode 100644 index 0000000000..a4ce2bae68 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/impl/jobqueue/Qsprjobq200Handler.java @@ -0,0 +1,144 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.impl.jobqueue; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400Message; +import com.ibm.as400.data.ProgramCallDocument; + +/** + * @author Lamotte Jean-Baptiste + */ +public class Qsprjobq200Handler { + private final String pcmlFile = "qsprjobq200.pcml"; + + private AS400 system = null; + + public Qsprjobq200Handler(final AS400 system) { + this.system = system; + } + + private void displayMessageError(final ProgramCallDocument pcml, final String programmName) throws Exception { + final AS400Message[] msgs = pcml.getMessageList(programmName); + + for (final AS400Message msg : msgs) { + final String msgId = msg.getID(); + final String msgText = msg.getText(); + throw new Exception("" + msgId + " - " + msgText); + } + } + + public Jobq0200 loadJobq0200(final String jobqName, final String lib) throws Exception { + + String qualifiedQueueName = jobqName; + while (qualifiedQueueName.length() < 10) { + qualifiedQueueName += " "; + } + qualifiedQueueName += lib; + + final ProgramCallDocument pcml = new ProgramCallDocument(this.system, this.pcmlFile); + + pcml.setValue("qsprjobq.receiverLength", pcml.getOutputsize("qsprjobq.receiver")); + pcml.setValue("qsprjobq.qualifiedJobQueueName", qualifiedQueueName); + // pcml.setValue("qsprjobq.qualifiedJobQueueName", jobqName); + + // If return code is false, we received messages from the server + if (pcml.callProgram("qsprjobq") == false) { + this.displayMessageError(pcml, "qsprjobq"); + } else { + final int[] indices = new int[1]; + indices[0] = 0; + + final Jobq0200 jobq0200 = new Jobq0200(); + + jobq0200.setBytesReturned(pcml.getIntValue("qsprjobq.receiver.bytesReturned", indices)); + jobq0200.setBytesAvailable(pcml.getIntValue("qsprjobq.receiver.bytesAvailable", indices)); + jobq0200.setJobqName(pcml.getStringValue("qsprjobq.receiver.jobqName", indices)); + jobq0200.setJobqLibName(pcml.getStringValue("qsprjobq.receiver.jobqLibName", indices)); + jobq0200.setOperatorControlled(pcml.getStringValue("qsprjobq.receiver.operatorControlled", indices)); + jobq0200.setAuthorityCheck(pcml.getStringValue("qsprjobq.receiver.authorityCheck", indices)); + jobq0200.setNumberOfJob(pcml.getIntValue("qsprjobq.receiver.numberOfJob", indices)); + jobq0200.setJobQueueStatus(pcml.getStringValue("qsprjobq.receiver.jobQueueStatus", indices)); + jobq0200.setSubSystemName(pcml.getStringValue("qsprjobq.receiver.subSystemName", indices)); + jobq0200.setSubSystemLibName(pcml.getStringValue("qsprjobq.receiver.subSystemLibName", indices)); + jobq0200.setTextDescription(pcml.getStringValue("qsprjobq.receiver.textDescription", indices)); + jobq0200.setSequenceNumber(pcml.getIntValue("qsprjobq.receiver.sequenceNumber", indices)); + jobq0200.setMaximumActive(pcml.getIntValue("qsprjobq.receiver.maximumActive", indices)); + jobq0200.setCurrentActive(pcml.getIntValue("qsprjobq.receiver.currentActive", indices)); + + jobq0200.setMaxActiveJobPriority1(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority1", indices)); + jobq0200.setMaxActiveJobPriority2(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority2", indices)); + jobq0200.setMaxActiveJobPriority3(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority3", indices)); + jobq0200.setMaxActiveJobPriority4(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority4", indices)); + jobq0200.setMaxActiveJobPriority5(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority5", indices)); + jobq0200.setMaxActiveJobPriority6(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority6", indices)); + jobq0200.setMaxActiveJobPriority7(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority7", indices)); + jobq0200.setMaxActiveJobPriority8(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority8", indices)); + jobq0200.setMaxActiveJobPriority9(pcml.getIntValue("qsprjobq.receiver.maxActiveJobPriority9", indices)); + + jobq0200.setActiveJobPriority0(pcml.getIntValue("qsprjobq.receiver.activeJobPriority0", indices)); + jobq0200.setActiveJobPriority1(pcml.getIntValue("qsprjobq.receiver.activeJobPriority1", indices)); + jobq0200.setActiveJobPriority2(pcml.getIntValue("qsprjobq.receiver.activeJobPriority2", indices)); + jobq0200.setActiveJobPriority3(pcml.getIntValue("qsprjobq.receiver.activeJobPriority3", indices)); + jobq0200.setActiveJobPriority4(pcml.getIntValue("qsprjobq.receiver.activeJobPriority4", indices)); + jobq0200.setActiveJobPriority5(pcml.getIntValue("qsprjobq.receiver.activeJobPriority5", indices)); + jobq0200.setActiveJobPriority6(pcml.getIntValue("qsprjobq.receiver.activeJobPriority6", indices)); + jobq0200.setActiveJobPriority7(pcml.getIntValue("qsprjobq.receiver.activeJobPriority7", indices)); + jobq0200.setActiveJobPriority8(pcml.getIntValue("qsprjobq.receiver.activeJobPriority8", indices)); + jobq0200.setActiveJobPriority9(pcml.getIntValue("qsprjobq.receiver.activeJobPriority9", indices)); + + jobq0200 + .setScheduledJobOnQueuePriority0(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority0", indices)); + jobq0200 + .setScheduledJobOnQueuePriority1(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority1", indices)); + jobq0200 + .setScheduledJobOnQueuePriority2(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority2", indices)); + jobq0200 + .setScheduledJobOnQueuePriority3(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority3", indices)); + jobq0200 + .setScheduledJobOnQueuePriority4(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority4", indices)); + jobq0200 + .setScheduledJobOnQueuePriority5(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority5", indices)); + jobq0200 + .setScheduledJobOnQueuePriority6(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority6", indices)); + jobq0200 + .setScheduledJobOnQueuePriority7(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority7", indices)); + jobq0200 + .setScheduledJobOnQueuePriority8(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority8", indices)); + jobq0200 + .setScheduledJobOnQueuePriority9(pcml.getIntValue("qsprjobq.receiver.scheduledJobOnQueuePriority9", indices)); + + jobq0200.setHeldJobOnQueuePriority0(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority0", indices)); + jobq0200.setHeldJobOnQueuePriority1(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority1", indices)); + jobq0200.setHeldJobOnQueuePriority2(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority2", indices)); + jobq0200.setHeldJobOnQueuePriority3(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority3", indices)); + jobq0200.setHeldJobOnQueuePriority4(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority4", indices)); + jobq0200.setHeldJobOnQueuePriority5(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority5", indices)); + jobq0200.setHeldJobOnQueuePriority6(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority6", indices)); + jobq0200.setHeldJobOnQueuePriority7(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority7", indices)); + jobq0200.setHeldJobOnQueuePriority8(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority8", indices)); + jobq0200.setHeldJobOnQueuePriority9(pcml.getIntValue("qsprjobq.receiver.heldJobOnQueuePriority9", indices)); + + return jobq0200; + } + return null; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandler.java new file mode 100644 index 0000000000..ea8d53de00 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandler.java @@ -0,0 +1,289 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.msgqueue; + +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.MessageQueue; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.QueuedMessage; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.ICachedMessageQueueHandler; +import com.centreon.connector.as400.check.handler.impl.AbstractHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; +import com.centreon.connector.as400.utils.BlowFishUtils; + +public class CachedMessageQueueHandler extends AbstractHandler implements ICachedMessageQueueHandler { + + static int PAGINATE_SIZE = 50; + private static Map LAST_MESSAGES = java.util.Collections + .synchronizedMap(new HashMap()); + + public static String dumpLightMessage(QueuedMessage m) { + StringBuilder sb = new StringBuilder(); + sb.append("[").append(m.getDate().getTime()).append("] ").append("(").append(m.getSeverity()).append(") ") + .append(m.getID()).append(":").append(m.getText().replace('|', ' ')).append(" [JobName: ") + .append(m.getFromJobName()).append("][JobNumber: ").append(m.getFromJobNumber()).append("][User: ") + .append(m.getUser()).append("]"); + + return sb.toString(); + } + + public static String dumpMessage(QueuedMessage m) { + final String newLine = "\n"; + StringBuilder sb = new StringBuilder(); + sb.append("[").append(m.getDate().getTime()).append("] ").append("(").append(m.getSeverity()).append(") ") + .append(m.getID()).append(":").append(m.getText().replace('|', ' ')).append(" [JobName: ") + .append(m.getFromJobName()).append("][JobNumber: ").append(m.getFromJobNumber()).append("][User: ") + .append(m.getUser()).append("]"); + + sb.append("getModificationDate: ").append(m.getModificationDate()).append(newLine).append("getAlertOption: ") + .append(m.getAlertOption()).append(newLine).append("getCurrentUser: ").append(m.getCurrentUser()) + .append(newLine).append("getDataCcsidConversionStatusIndicator: ") + .append(m.getDataCcsidConversionStatusIndicator()).append(newLine).append("getDefaultReply: ") + .append(m.getDefaultReply()).append(newLine).append("getFileName: ").append(m.getFileName()).append(newLine) + .append("getFromJobName: ").append(m.getFromJobName()).append(newLine).append("getFromJobNumber: ") + .append(m.getFromJobNumber()).append(newLine).append("getFromProgram: ").append(m.getFromProgram()) + .append(newLine).append("getLibraryName: ").append(m.getLibraryName()).append(newLine).append("getQueue: ") + .append(m.getQueue()).append(newLine).append("getMessage: ").append(m.getMessage()).append(newLine) + .append("getMessageFileLibrarySpecified: ").append(m.getMessageFileLibrarySpecified()).append(newLine) + .append("getMessageHelp: ").append(m.getMessageHelp()).append(newLine).append("getMessageHelpFormat: ") + .append(m.getMessageHelpFormat()).append(newLine).append("getMessageHelpReplacement: ") + .append(m.getMessageHelpReplacement()).append(newLine).append("getMessageHelpReplacementandFormat: ") + .append(m.getMessageHelpReplacementandFormat()).append(newLine).append("getPath: ").append(m.getPath()) + .append(newLine).append("getReceivingModuleName: ").append(m.getReceivingModuleName()).append(newLine) + .append("getReceivingProcedureName: ").append(m.getReceivingProcedureName()).append(newLine) + .append("getReceivingProgramInstructionNumber: ").append(m.getReceivingProgramInstructionNumber()) + .append(newLine).append("getReceivingProgramName: ").append(m.getReceivingProgramName()).append(newLine) + .append("getReceivingType: ").append(m.getReceivingType()).append(newLine).append("getReplyStatus: ") + .append(m.getReplyStatus()).append(newLine).append("getRequestStatus: ").append(m.getRequestStatus()) + .append(newLine).append("getReceiverStatementNumbers: ").append(m.getReceiverStatementNumbers()).append(newLine) + .append("getRequestLevel: ").append(m.getRequestLevel()).append(newLine).append("getSenderType: ") + .append(m.getSenderType()).append(newLine).append("getSendingModuleName: ").append(m.getSendingModuleName()) + .append(newLine).append("getSendingProcedureName: ").append(m.getSendingProcedureName()).append(newLine) + .append("getSendingProgramInstructionNumber: ").append(m.getSendingProgramInstructionNumber()).append(newLine) + .append("getSendingProgramName: ").append(m.getSendingProgramName()).append(newLine).append("getSendingType: ") + .append(m.getSendingType()).append(newLine).append("getSendingUserProfile: ").append(m.getSendingUserProfile()) + .append(newLine).append("getSendingStatementNumbers: ").append(m.getSendingStatementNumbers()).append(newLine) + .append("getSeverity: ").append(m.getSeverity()).append(newLine).append("getSubstitutionData: ") + .append(m.getSubstitutionData()).append(newLine).append("getCcsidCodedCharacterSetIdentifierForData: ") + .append(m.getCcsidCodedCharacterSetIdentifierForData()).append(newLine) + .append("getCcsidCodedCharacterSetIdentifierForText: ").append(m.getCcsidCodedCharacterSetIdentifierForText()) + .append(newLine).append("getCcsidconversionStatusIndicatorForData: ") + .append(m.getCcsidconversionStatusIndicatorForData()).append(newLine) + .append("getCcsidConversionStatusIndicatorForText: ").append(m.getCcsidConversionStatusIndicatorForText()) + .append(newLine); + + return sb.toString(); + } + + public CachedMessageQueueHandler(final String host, final String login, final String password) { + super(host, login, password); + } + + @Override + public ResponseData getNewMessageInMessageQueue(final String messageQueuePath, final String messageIdfilterPattern, + final int minSeverityLevel, final int maxSeverityLevel) + throws Exception { + + StringBuilder dbIdentifier = new StringBuilder(); + dbIdentifier.append(messageQueuePath).append(messageIdfilterPattern).append(minSeverityLevel) + .append(maxSeverityLevel); + + final Collection messages = this.synchronizeDB(messageQueuePath, dbIdentifier.toString()); + + if (messages == null) { + return new ResponseData(ResponseData.statusOk, "Initialisation of the local DB"); + } + + final ResponseData data = new ResponseData(); + + for (final QueuedMessage message : messages) { + if ((message.getSeverity() >= minSeverityLevel) && (message.getSeverity() < maxSeverityLevel)) { + if ("A".equals(message.getReplyStatus())) { + // The message has been acknowledge already and we don't take it into account + continue; + } + + final String messageId = message.getID(); + if (messageIdfilterPattern != null && !messageId.matches(messageIdfilterPattern)) { + continue; + } + + HashMap attrs = new HashMap(); + attrs.put("id", messageId); + attrs.put("text", message.getText()); + attrs.put("severity", message.getSeverity()); + attrs.put("date", message.getDate().getTimeInMillis()); + attrs.put("jobName", message.getFromJobName()); + attrs.put("jobNumber", message.getFromJobNumber()); + attrs.put("user", message.getUser()); + data.getResult().add(attrs); + } + } + + return data; + } + + /** + * Synchronize DB and return the new messages + * + * @param messageQueuePath + * @return the new messages + * @throws AS400SecurityException + * @throws IOException + * @throws ErrorCompletingRequestException + * @throws InterruptedException + * @throws ObjectDoesNotExistException + */ + private Collection synchronizeDB(final String messageQueuePath, final String dbIdentifier) + throws AS400SecurityException, IOException, ErrorCompletingRequestException, InterruptedException, + ObjectDoesNotExistException { + + String key = BlowFishUtils.encrypt(host + login + dbIdentifier); + QueuedMessage previousLastMessage = CachedMessageQueueHandler.LAST_MESSAGES.get(key); + + final AS400 system = this.getNewAs400(); + final MessageQueue queue = new MessageQueue(system, messageQueuePath); + queue.setListDirection(false); + + Collection newMessages = null; + + if (previousLastMessage == null) { + final QueuedMessage[] messages = queue.getMessages(0, 1); + CachedMessageQueueHandler.LAST_MESSAGES.put(key, messages[0]); + } else { + newMessages = new LinkedList(); + int position = 0; + final int lenght = queue.getLength(); + boolean foundMessage = false; + boolean firstLoop = true; + + ConnectorLogger.getInstance().trace("*********************************************************"); + ConnectorLogger.getInstance().trace(" Check message for key: " + key); + ConnectorLogger.getInstance().trace(" Last message was: "); + ConnectorLogger.getInstance().trace(CachedMessageQueueHandler.dumpLightMessage(previousLastMessage)); + + while (position < lenght && !foundMessage) { + final QueuedMessage[] messages = queue.getMessages(position, CachedMessageQueueHandler.PAGINATE_SIZE); + position += CachedMessageQueueHandler.PAGINATE_SIZE; + + for (QueuedMessage message : messages) { + if (firstLoop) { + firstLoop = false; + CachedMessageQueueHandler.LAST_MESSAGES.put(key, message); + ConnectorLogger.getInstance().trace(" New message is:"); + ConnectorLogger.getInstance().trace(CachedMessageQueueHandler.dumpLightMessage(message)); + } + if (this.customMessageEquals(message, previousLastMessage) + || message.getDate().before(previousLastMessage.getDate())) { + foundMessage = true; + break; + } else { + newMessages.add(message); + } + } + } + } + system.disconnectService(AS400.COMMAND); + system.disconnectAllServices(); + + return newMessages; + } + + /** + * + * @param a Message to compare with + * @param b Message to compare to + * @return True if all the used fields are equals. False otherwise. + */ + private boolean customMessageEquals(QueuedMessage a, QueuedMessage b) { + if (a == null) { + if (b == null) { + return true; + } else { + return false; + } + } + if (b == null) { + return false; + } + + if (a.getDate() == null) { + if (b.getDate() != null) + return false; + } else { + if (!a.getDate().equals(b.getDate())) + return false; + } + + if (a.getSeverity() != b.getSeverity()) + return false; + + if (a.getID() == null) { + if (b.getID() != null) + return false; + } else { + if (!a.getID().equals(b.getID())) + return false; + } + + if (a.getText() == null) { + if (b.getText() != null) + return false; + } else { + if (!a.getText().equals(b.getText())) + return false; + } + + if (a.getFromJobName() == null) { + if (b.getFromJobName() != null) + return false; + } else { + if (!a.getFromJobName().equals(b.getFromJobName())) + return false; + } + + if (a.getFromJobNumber() == null) { + if (b.getFromJobNumber() != null) + return false; + } else { + if (!a.getFromJobNumber().equals(b.getFromJobNumber())) + return false; + } + + if (a.getUser() == null) { + if (b.getUser() != null) + return false; + } else { + if (!a.getUser().equals(b.getUser())) + return false; + } + return true; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/MessageQueueHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/MessageQueueHandler.java new file mode 100644 index 0000000000..8431de8614 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/msgqueue/MessageQueueHandler.java @@ -0,0 +1,128 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.msgqueue; + +import java.io.IOException; +import java.util.Collection; +import java.util.Enumeration; +import java.util.LinkedList; +import java.util.HashMap; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.AS400SecurityException; +import com.ibm.as400.access.ErrorCompletingRequestException; +import com.ibm.as400.access.MessageQueue; +import com.ibm.as400.access.ObjectDoesNotExistException; +import com.ibm.as400.access.QueuedMessage; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.IMessageQueueHandler; +import com.centreon.connector.as400.check.handler.impl.AbstractHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public class MessageQueueHandler extends AbstractHandler implements IMessageQueueHandler { + + public MessageQueueHandler(final String host, final String login, final String password) { + super(host, login, password); + } + + @Override + public void dumpMessageQueue() throws AS400SecurityException, ErrorCompletingRequestException, InterruptedException, + IOException, ObjectDoesNotExistException { + final AS400 system = this.getNewAs400(); + /* + * MessageQueue messageQueue = new MessageQueue(system); + * messageQueue.getHelpTextFormatting(); messageQueue.getLength(); + * messageQueue.getListDirection(); messageQueue.getMessages(); + * messageQueue.getMessages(-1, -1); messageQueue.getPath(); + * messageQueue.getSelection(); messageQueue.getSeverity(); + * messageQueue.getSort(); messageQueue.getSystem(); + * messageQueue.getUserStartingMessageKey(); + * messageQueue.getWorkstationStartingMessageKey(); + */ + final MessageQueue queue = new MessageQueue(system, MessageQueue.CURRENT); + + @SuppressWarnings("rawtypes") + final Enumeration e = queue.getMessages(); + + while (e.hasMoreElements()) { + final QueuedMessage message = (QueuedMessage) e.nextElement(); + System.out.println(message.getText().replace('|', ' ')); + } + + } + + @Override + public ResponseData getErrorMessageQueue(final String messageQueuePath, final String messageIdfilterPattern, + final int minSeverityLevel, final int maxSeverityLevel) throws Exception { + final ResponseData data = new ResponseData(); + + final AS400 system = this.getNewAs400(); + try { + final Collection messagesFound = new LinkedList(); + + final MessageQueue queue = new MessageQueue(system, messageQueuePath); + + @SuppressWarnings("rawtypes") + final Enumeration e = queue.getMessages(); + + long errorCount = 0; + while (e.hasMoreElements()) { + + final QueuedMessage message = (QueuedMessage) e.nextElement(); + ConnectorLogger.getInstance() + .debug("Message found : " + message.getID() + " - " + message.getText().replace('|', ' ')); + + if ((message.getSeverity() >= minSeverityLevel) && (message.getSeverity() < maxSeverityLevel)) { + if ("A".equals(message.getReplyStatus())) { + // The message has been acknowledge already and we don't take it into account + continue; + } + + final String messageId = message.getID(); + if (messageIdfilterPattern != null && !messageId.matches(messageIdfilterPattern)) { + continue; + } + + HashMap attrs = new HashMap(); + attrs.put("id", messageId); + attrs.put("text", message.getText()); + attrs.put("severity", message.getSeverity()); + attrs.put("date", message.getDate().getTimeInMillis()); + attrs.put("jobName", message.getFromJobName()); + attrs.put("jobNumber", message.getFromJobNumber()); + attrs.put("user", message.getUser()); + data.getResult().add(attrs); + } + } + } catch (final Exception e) { + system.disconnectService(AS400.COMMAND); + system.disconnectAllServices(); + throw e; + } + system.disconnectService(AS400.COMMAND); + system.disconnectAllServices(); + + return data; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/CheckAS400Lang.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/CheckAS400Lang.java new file mode 100755 index 0000000000..75a5be4f98 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/CheckAS400Lang.java @@ -0,0 +1,142 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.wrkprb; + +public class CheckAS400Lang { + // These constants are referenced during parsing so + // that the correct phrases are found. + + // This is found at the bottom when you type dspjob (name of a job + // that exists) + public String SELECTION = "Selection"; + + // This is the status of job or sbs when you type dspjob or dspsbsd + public String ACTIVE = "ACTIVE"; + + // This is the "DB Capability" dsplay when you type wrksyssts + public String DB_CAPABILITY = "DB capability"; + + // This is le display for the login screen + public String LOGIN_SCREEN = "System . . . . ."; + + // Run dspmsg and it will display "No messages available" if there are no + // messages + public String NO_MESSAGES_AVAILABLE = "No messages available"; + + // The "password has expired"/"password expires" messages are the messages + // you get when you login with an account which has an expired/will expire + // password. + public String PASSWORD_HAS_EXPIRED = "Password has expired"; + public String PASSWORD_EXPIRES = "password expires"; + + // The "Display Messages" is what you get after logging into an account + // which displays any messages before continuing to the menu. + public String DISPLAY_MESSAGES = "Display Messages"; + + // Run wrkoutq blah* and it will say "(No output queues)" + public String NO_OUTPUT_QUEUES = "No output queues"; + + // If you type dspsbsd blah it will say "...not found..." + public static String NOT_FOUND = "not found"; + + // If you type dspjob QINTER, it should complain that there are duplicate + // jobs and print at the bottom of the window "duplicate jobs found" + public String DUPLICATE = "Duplicate"; + + // if you type dspjob blah, it will respond Job //blah not found + // Only put the Job // part. + public String JOB = "Job //"; + + // If try and execute a command that you are not allowed it will say + // "library *LIBL not allowed" + public String LIBRARY_NOT_ALLOWED = "library *LIBL not allowed"; + + // On a login with an expired password we look for "Exit sign-on" on the + // screen before we send the F3 to exit and disconnect. + public static String EXIT_SIGNON = "Exit sign-on request"; + + // If you type WRKACTJOB it may respond "No active jobs to display" + // when there is no job like searched for in the sytem + public String NO_JOB_TO_DISPLAY = "No active jobs to display"; + + // Messages needing a reply OR Messages not needing a reply + public String MSG_NEED_REPLY = "Messages needing a reply"; + public String MSG_NOT_NEED_REPLY = "Messages not needing a reply"; + + // WRKDSKSTS The "Request/Compression/Bottom" message. + public String REQUEST_WORD = "Request"; + public String DSK_STS_COMPRESSION = "Compression"; + public String LIST_END = "Bottom"; + + public CheckAS400Lang(String lang) { + if (lang != null && lang.equals("fr")) { + this.setLangFr(); + } else { + this.setLangEn(); + } + } + + public void setLangFr() { + this.SELECTION = "Selection"; + this.ACTIVE = "ACTIVE"; + this.DB_CAPABILITY = "DB capability"; + this.LOGIN_SCREEN = "System . . . . ."; + this.NO_MESSAGES_AVAILABLE = "No messages available"; + this.PASSWORD_HAS_EXPIRED = "Password has expired"; + this.PASSWORD_EXPIRES = "password expires"; + this.DISPLAY_MESSAGES = "Display Messages"; + this.NO_OUTPUT_QUEUES = "No output queues"; + this.NOT_FOUND = "not found"; + this.DUPLICATE = "Duplicate"; + this.JOB = "Job //"; + this.LIBRARY_NOT_ALLOWED = "library *LIBL not allowed"; + this.EXIT_SIGNON = "Exit sign-on request"; + this.NO_JOB_TO_DISPLAY = "No active jobs to display"; + this.MSG_NEED_REPLY = "Messages needing a reply"; + this.MSG_NOT_NEED_REPLY = "Messages not needing a reply"; + this.REQUEST_WORD = "Request"; + this.DSK_STS_COMPRESSION = "Compression"; + this.LIST_END = "Bottom"; + } + + public void setLangEn() { + this.SELECTION = "Selection"; + this.ACTIVE = "ACTIVE"; + this.DB_CAPABILITY = "DB capability"; + this.LOGIN_SCREEN = "System . . . . ."; + this.NO_MESSAGES_AVAILABLE = "No messages available"; + this.PASSWORD_HAS_EXPIRED = "Password has expired"; + this.PASSWORD_EXPIRES = "password expires"; + this.DISPLAY_MESSAGES = "Display Messages"; + this.NO_OUTPUT_QUEUES = "No output queues"; + this.NOT_FOUND = "not found"; + this.DUPLICATE = "Duplicate"; + this.JOB = "Job //"; + this.LIBRARY_NOT_ALLOWED = "library *LIBL not allowed"; + this.EXIT_SIGNON = "Exit sign-on request"; + this.NO_JOB_TO_DISPLAY = "No active jobs to display"; + this.MSG_NEED_REPLY = "Messages needing a reply"; + this.MSG_NOT_NEED_REPLY = "Messages not needing a reply"; + this.REQUEST_WORD = "Request"; + this.DSK_STS_COMPRESSION = "Compression"; + this.LIST_END = "Bottom"; + } +}; diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/ColorCodes.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/ColorCodes.java new file mode 100644 index 0000000000..2519e8a799 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/ColorCodes.java @@ -0,0 +1,109 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.wrkprb; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +//Example Use +/* + * Color code format WITH background color -> :foreground,background: + * Color code format WITHOUT background color -> :foreground,N: + * Reset Color format -> [RC] + * + * Example Use: + * String ansiColoredString = ColorCodes.ParseColors("Hello, This :blue,n:is[RC] a :red,white:response[RC]."); + * - or - + * String ansiColoredString = ColorCodes.RED + "Hello" + ColorCodes.WHITE + ". This is a " + ColorColorCodes.BLUE + "test"; + */ + +/** + * Class used for ANSI Color manipulation in a console supporting ANSI color + * codes + */ +public class ColorCodes { + + public static final String RESET = "\u001B[0m"; + public static final String BLACK = "\u001B[30;40;1m"; + public static final String RED = "\u001B[31;40;1m"; + public static final String GREEN = "\u001B[32;40;1m"; + public static final String YELLOW = "\u001B[33;40;1m"; + public static final String BLUE = "\u001B[34;40;1m"; + public static final String PURPLE = "\u001B[35;40;1m"; + public static final String CYAN = "\u001B[36;40;1m"; + public static final String WHITE = "\u001B[37;40;1m"; + + /** + * Parses a string with ANSI color codes based on the input + * + * @param input the input string + * @return the parsed ANSI string + */ + public static String ParseColors(final String input) { + String ret = input; + Pattern regexChecker = Pattern.compile(":\\S+,\\S+:"); + Matcher regexMatcher = regexChecker.matcher(input); + while (regexMatcher.find()) { + if (regexMatcher.group().length() != 0) { + String sub = regexMatcher.group().trim(); + sub = sub.replace(":", ""); + String[] colors = sub.split(","); + + ret = (colors[1].equalsIgnoreCase("N")) + ? ret.replace(regexMatcher.group().trim(), "\u001B[3" + getColorID(colors[0]) + ";1m") + : ret.replace(regexMatcher.group().trim(), + "\u001B[3" + getColorID(colors[0]) + ";4" + getColorID(colors[1]) + ";1m"); + ret = ret.replace("[RC]", ColorCodes.WHITE); + } + } + ret = ret + ColorCodes.RESET; + return ret; + } + + /** + * Internal function for getting a colors value + * + * @param color The color as test + * @return The colors integral value + */ + private static int getColorID(String color) { + if (color.equalsIgnoreCase("BLACK")) { + return 0; + } else if (color.equalsIgnoreCase("RED")) { + return 1; + } else if (color.equalsIgnoreCase("GREEN")) { + return 2; + } else if (color.equalsIgnoreCase("YELLOW")) { + return 3; + } else if (color.equalsIgnoreCase("BLUE")) { + return 4; + } else if (color.equalsIgnoreCase("MAGENTA")) { + return 5; + } else if (color.equalsIgnoreCase("CYAN")) { + return 6; + } else if (color.equalsIgnoreCase("WHITE")) { + return 7; + } + + return 7; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/WorkWithProblemHandler.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/WorkWithProblemHandler.java new file mode 100644 index 0000000000..fa3fbbd7e9 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/check/handler/wrkprb/WorkWithProblemHandler.java @@ -0,0 +1,327 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.check.handler.wrkprb; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.Socket; +import java.util.List; +import java.util.HashMap; + +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; + +import com.centreon.connector.as400.check.handler.wrkprb.CheckAS400Lang; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.check.handler.impl.AbstractHandler; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +@SuppressWarnings("unused") +public class WorkWithProblemHandler extends AbstractHandler { + + private static int INSTANCE_ID = 0; + private static long LOGIN_COUNT = 0; + private static long LOGOUT_COUNT = 0; + private static final int LOG_TRACE = 0; + private static final int LOG_DEBUG = 1; + private static final int LOG_WARN = 2; + private static final int LOG_ERROR = 3; + + private static final int OK = 0; + private static final int WARN = 1; + private static final int CRITICAL = 2; + private static final int UNKNOWN = 3; + // These constants are for the wait recieve, controlling + // any other logic that it should turn on. For example checking + // for invalid login. + private final static int NONE = 0; + private final static int LOGIN = 1; + private final static int GETOUTQ = 2; + private final static int GETJOB = 3; + private final static int GETSBSD = 4; + private final static int GETFD = 5; + + private CheckAS400Lang AS400Lang; + private SSLSocket sslSocket; + private Socket ioSocket; + private PrintWriter ioWriter; + private BufferedReader ioReader; + private final boolean SSL = false; + private final String logPrefix; + + public WorkWithProblemHandler(final String host, final String login, final String password) { + super(host, login, password); + this.logPrefix = "[" + WorkWithProblemHandler.INSTANCE_ID++ + "]"; + } + + private synchronized static long getAndIncrementLoginCount() { + return WorkWithProblemHandler.LOGIN_COUNT++; + } + + private synchronized static long getAndIncrementLogoutCount() { + return WorkWithProblemHandler.LOGOUT_COUNT++; + } + + public ResponseData getProblems(String lang) { + ResponseData response = null; + + this.AS400Lang = new CheckAS400Lang(lang); + ConnectorLogger.getInstance().debug(this.logPrefix + "Establishing connection to server..."); + if (this.open()) { + ConnectorLogger.getInstance().debug(this.logPrefix + "done.\nLogging in..."); + boolean loggedIn = false; + try { + loggedIn = this.login(); + } catch (final Exception e) { + ConnectorLogger.getInstance().debug(this.logPrefix + e.getMessage(), e); + response = new ResponseData(ResponseData.statusError, e.getMessage()); + this.close(); + return response; + } + if (loggedIn) { + ConnectorLogger.getInstance() + .debug(this.logPrefix + "LoginCount = " + WorkWithProblemHandler.getAndIncrementLoginCount()); + ConnectorLogger.getInstance().debug(this.logPrefix + "Login completed.\nSending command (WRKPRB)..."); + + this.send("WRKPRB\r"); + String result = null; + try { + result = this.waitReceive("F3=", WorkWithProblemHandler.NONE); + } catch (final Exception e) { + this.logout(); + response = new ResponseData(ResponseData.statusError, e.getMessage()); + ConnectorLogger.getInstance().error(e.getMessage(), e); + return response; + } + + if (result != null) { + HashMap attrs = new HashMap(); + response = new ResponseData(); + + attrs.put("result", result); + response.getResult().add(attrs); + ConnectorLogger.getInstance().debug(this.logPrefix + "Finished."); + } else { + response = new ResponseData(ResponseData.statusError, "Unexpected output on command"); + } + + this.logout(); + } else { + this.logout(); + response = new ResponseData(ResponseData.statusError, "Unexpected output on login"); + } + } else { + response = new ResponseData(ResponseData.statusError, "Could not open connection to AS400"); + } + + return response; + } + + // open connection to server + public boolean open() { + try { + if (this.SSL) { + final SSLSocket sslSocket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(this.host, 992); + this.ioWriter = new PrintWriter(sslSocket.getOutputStream(), true); + this.ioReader = new BufferedReader(new InputStreamReader(sslSocket.getInputStream())); + } else { + ConnectorLogger.getInstance().debug(this.logPrefix + "Create socket..."); + this.ioSocket = new Socket(this.host, 23); + this.ioSocket.setSoTimeout(6000); + ConnectorLogger.getInstance().debug(this.logPrefix + "Get outputstream"); + this.ioWriter = new PrintWriter(this.ioSocket.getOutputStream(), true); + ConnectorLogger.getInstance().debug(this.logPrefix + "Read from socket"); + this.ioReader = new BufferedReader(new InputStreamReader(this.ioSocket.getInputStream())); + ConnectorLogger.getInstance().debug(this.logPrefix + "Reading done"); + } + + this.send("\n\r"); + + return true; + } catch (final Exception e) { + ConnectorLogger.getInstance().debug(this.logPrefix + "CRITICAL: Network error", e); + return false; + } + } + + // write str to stream + public void send(final String str) { + this.ioWriter.print(str); + this.ioWriter.flush(); + } + + public boolean login() throws Exception { + + ConnectorLogger.getInstance().debug(this.logPrefix + " waiting for screen..."); + /* Wait for the login screen */ + if (this.waitReceive("IBM CORP", WorkWithProblemHandler.NONE) != null) { + ConnectorLogger.getInstance().debug(this.logPrefix + " sending login information for " + this.login + "..."); + int unameLength; + unameLength = this.login.length(); + /* send login user/pass */ + this.send(this.login); + if (unameLength != 10) { + this.send("\t"); + } + + this.send(this.password + "\r"); + + ConnectorLogger.getInstance().debug(this.logPrefix + " waiting for login to process..."); + /* Wait and receive command screen */ + if (this.waitReceive("===>", WorkWithProblemHandler.LOGIN) != null) + return true; + } + return false; + } + + // close connection to server + public boolean close() { + try { + if (this.SSL) { + this.sslSocket.close(); + } else { + if (this.ioSocket != null) { + this.ioSocket.close(); + } + } + if (this.ioReader != null) { + this.ioReader.close(); + } + if (this.ioWriter != null) { + this.ioWriter.close(); + } + return true; + } catch (final IOException e) { + ConnectorLogger.getInstance().debug(this.logPrefix + "CRITICAL: Network error", e); + return false; + } + } + + // Receives all info in stream until it sees the string 'str'. + public String waitReceive(final String str, final int procedure) throws Exception { + final StringBuilder buffer = new StringBuilder(); + boolean flag = true; + + ConnectorLogger.getInstance().debug(this.logPrefix + " waiting for token " + str + "..."); + + try { + while (flag) { + int ch; + while ((ch = this.ioReader.read()) != -1) { + buffer.append((char) ch); + + if (!this.ioReader.ready()) + break; + } + ConnectorLogger.getInstance().trace("\n**BUFFER IS:**\n"); + final String convertedBuffer = ColorCodes.ParseColors(buffer.toString()); + ConnectorLogger.getInstance().trace(convertedBuffer); + ConnectorLogger.getInstance().trace("\n**END OF BUFFER**\n"); + if (procedure == WorkWithProblemHandler.LOGIN) { + if (buffer.indexOf("CPF1107") != -1) { + this.close(); + throw new Exception("CRITICAL - Login ERROR, Invalid password"); + } else if (buffer.indexOf("CPF1120") != -1) { + this.close(); + throw new Exception("CRITICAL - Login ERROR, Invalid username"); + } else if (buffer.indexOf("/" + this.login.toUpperCase() + "/") != -1) { + ConnectorLogger.getInstance() + .debug(this.logPrefix + " responding to allocated to another job message..."); + this.send("\r"); + buffer.setLength(0); + } else if (buffer.indexOf(this.AS400Lang.PASSWORD_HAS_EXPIRED) != -1) { + this.send((char) 27 + "3"); + this.waitReceive("Exit sign-on request", WorkWithProblemHandler.NONE); + this.send("Y\r"); + this.close(); + throw new Exception("WARNING - Expired password, Please change it."); + } else if (buffer.indexOf("CPF1394") != -1) { + this.close(); + throw new Exception("CRITICAL - Login ERROR, User profile " + this.login + " cannot sign on."); + } else if (buffer.indexOf(this.AS400Lang.PASSWORD_EXPIRES) != -1) { + ConnectorLogger.getInstance().debug(this.logPrefix + " responding to password expires message..."); + this.send("\r"); + buffer.setLength(0); + } else if (buffer.indexOf(this.AS400Lang.DISPLAY_MESSAGES) != -1) { + ConnectorLogger.getInstance().debug(this.logPrefix + " continuing through message display..."); + this.send((char) 27 + "3"); + buffer.setLength(0); + } + } else if (procedure == WorkWithProblemHandler.GETOUTQ) { + if (buffer.indexOf(this.AS400Lang.NO_OUTPUT_QUEUES) != -1) { + this.logout(); + throw new Exception("CRITICAL - outq does NOT exist"); + } + } + // check for command not allowed errors + if (procedure != WorkWithProblemHandler.LOGIN) { + if (buffer.indexOf(this.AS400Lang.LIBRARY_NOT_ALLOWED) != -1) { + this.send((char) 27 + "3"); + this.logout(); + throw new Exception("CRITICAL - Command NOT allowed"); + } + } + if (buffer.indexOf(str) != -1) + flag = false; + + } + } catch (final IOException e) { + throw new Exception("CRITICAL: Network error:" + e); + } + + ConnectorLogger.getInstance().debug(this.logPrefix + " token received."); + + return buffer.toString(); + } + + public void logout() { + // send F3 + ConnectorLogger.getInstance().debug(this.logPrefix + "Logging out...\n sending F3..."); + this.send((char) 27 + "3"); + try { + ConnectorLogger.getInstance().debug(this.logPrefix + "Wait for response..."); + this.waitReceive("===>", WorkWithProblemHandler.NONE); + ConnectorLogger.getInstance().debug(this.logPrefix + "Response received. requesting signoff..."); + // send logout + this.send("signoff *nolist\r"); + // waitReceive(";53H",NONE); + ConnectorLogger.getInstance().debug(this.logPrefix + "Signoff sent. Wait for lockscreen..."); + waitReceive("IBM CORP", NONE); + } catch (final Exception e) { + ConnectorLogger.getInstance().error(e.getMessage(), e); + } finally { + this.close(); + } + + ConnectorLogger.getInstance().debug(this.logPrefix + "Job ending immediately"); + this.send("\r"); + // waitReceive(LANG.LOGIN_SCREEN, NONE); + + ConnectorLogger.getInstance().debug(this.logPrefix + " terminating connection..."); + + this.close(); + ConnectorLogger.getInstance().debug(this.logPrefix + "Logged out."); + ConnectorLogger.getInstance() + .debug(this.logPrefix + "LogoutCount = " + WorkWithProblemHandler.getAndIncrementLogoutCount()); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/IClient.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/IClient.java new file mode 100644 index 0000000000..77a22d2bb4 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/IClient.java @@ -0,0 +1,44 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.client; + +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +public interface IClient { + String getRawRequest(); + + void writeAnswer(ResponseData answer); + + void parseRequest() throws Exception; + + String getAs400Host(); + + String getAs400Login(); + + String getAs400Password(); + + String getAs400CheckType(); + + Object getAs400Arg(String key); +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/AbstractClient.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/AbstractClient.java new file mode 100644 index 0000000000..0c22486d70 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/AbstractClient.java @@ -0,0 +1,116 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.client.impl; + +import java.util.List; +import java.util.Map; +import java.util.ArrayList; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.centreon.connector.as400.dispatcher.check.InputData; + +import com.centreon.connector.as400.client.IClient; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +/** + * @author Lamotte Jean-Baptiste + */ +abstract class AbstractClient implements IClient { + private InputData input = null; + + private String as400Host = null; + private String as400Login = null; + private String as400Password = null; + private String as400CheckType = null; + private String as400Args = null; + private List> argList = new ArrayList>(); + + @Override + public abstract String getRawRequest(); + + protected abstract void writeAnswer(String answer); + + public AbstractClient() { + } + + @Override + public String getAs400Host() { + return this.input.getHost(); + } + + @Override + public String getAs400Login() { + return this.input.getLogin(); + } + + @Override + public String getAs400Password() { + return this.input.getPassword(); + } + + @Override + public String getAs400CheckType() { + return this.input.getCommand(); + } + + @Override + public Object getAs400Arg(String key) { + return this.input.getArg(key); + } + + public List> getAs400ArgList(String key) { + Object arg = this.input.getArg(key); + if (arg == null) { + return null; + } + + Gson gson = new Gson(); + return gson.fromJson(arg.toString(), argList.getClass()); + } + + @Override + public void parseRequest() throws Exception { + Gson gson = new Gson(); + this.input = gson.fromJson(this.getRawRequest(), InputData.class); + + if (this.input.getHost() == null) { + throw new Exception("Invalid option: As/400 host required"); + } + if (this.input.getLogin() == null) { + throw new Exception("Invalid option: As/400 login required"); + } + if (this.input.getPassword() == null) { + throw new Exception("Invalid option: As/400 password required"); + } + if (this.input.getCommand() == null) { + throw new Exception("Invalid option: As/400 command required"); + } + } + + @Override + public void writeAnswer(final ResponseData data) { + Gson gson = new GsonBuilder().create(); + String json = gson.toJson(data); + + this.writeAnswer(json); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/NetworkClient.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/NetworkClient.java new file mode 100644 index 0000000000..bc3b450893 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/client/impl/NetworkClient.java @@ -0,0 +1,82 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.client.impl; + +import io.undertow.util.HttpString; +import io.undertow.server.HttpServerExchange; +import io.undertow.util.Headers; +import io.undertow.io.Receiver.FullBytesCallback; + +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.client.IClient; + +/** + * @author Lamotte Jean-Baptiste + */ +public class NetworkClient extends AbstractClient implements IClient { + private HttpServerExchange exchange = null; + private String rawRequest = null; + + public NetworkClient(final HttpServerExchange exchange) { + super(); + this.exchange = exchange; + } + + public void readRequest() throws Exception { + HttpString method = exchange.getRequestMethod(); + + if (method.toString().equals("POST") == false) { + throw new Exception("Unsupported method"); + } + + this.exchange.getRequestReceiver().receiveFullBytes(new FullBytesCallback() { + @Override + public void handle(HttpServerExchange exchange, byte[] message) { + rawRequest = new String(message); + } + }); + } + + @Override + protected void writeAnswer(final String answer) { + ConnectorLogger.getInstance().debug("--------------------"); + ConnectorLogger.getInstance().debug("request : " + this.getRawRequest()); + ConnectorLogger.getInstance().debug("answer : \n" + answer); + ConnectorLogger.getInstance().debug("--------------------"); + + this.exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/json"); + this.exchange.getResponseSender().send(answer); + this.exchange.endExchange(); + } + + private void clean() { + } + + @Override + public String getRawRequest() { + return this.rawRequest; + } + + public HttpServerExchange getExchange() { + return this.exchange; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/Daemon.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/Daemon.java new file mode 100644 index 0000000000..85965bc1a5 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/Daemon.java @@ -0,0 +1,140 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.daemon; + +import java.io.IOException; +import java.io.FileInputStream; +import java.util.HashMap; +import java.util.Map; +import java.util.Collections; +import java.util.List; + +import io.undertow.Undertow; +import io.undertow.UndertowOptions; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.util.HttpString; + +import io.undertow.security.api.AuthenticationMechanism; +import io.undertow.security.api.AuthenticationMode; +import io.undertow.security.api.SecurityContext; +import io.undertow.security.handlers.AuthenticationCallHandler; +import io.undertow.security.handlers.AuthenticationConstraintHandler; +import io.undertow.security.handlers.AuthenticationMechanismsHandler; +import io.undertow.security.handlers.SecurityInitialHandler; +import io.undertow.security.idm.IdentityManager; +import io.undertow.security.impl.BasicAuthenticationMechanism; + +import java.security.KeyStore; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; + +import com.centreon.connector.as400.daemon.MapIdentityManager; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.client.impl.NetworkClient; + +/** + * The Class DaemonCore. + * + * @author Lamotte Jean-Baptiste + */ +public class Daemon { + /** + * execute. + * + */ + public void start(int port) throws Exception, IOException, InterruptedException { + Undertow server; + + Undertow.Builder builder = Undertow.builder(); + + builder.setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, Conf.daemonNoRequestTimeout) + .setServerOption(UndertowOptions.REQUEST_PARSE_TIMEOUT, Conf.daemonRequestParseTimeout); + + if (Conf.keyStoreFile != null) { + try { + ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); + + KeyStore keyStore = KeyStore.getInstance(Conf.keyStoreType); + FileInputStream stream = new FileInputStream(Conf.keyStoreFile); + if (stream == null) { + throw new Exception("keystore file not found: " + Conf.keyStoreFile); + } + + keyStore.load( + stream, + Conf.keyStorePassword.toCharArray()); + KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + keyManagerFactory.init(keyStore, Conf.keyStorePassword.toCharArray()); + + SSLContext sslContext; + sslContext = SSLContext.getInstance(Conf.sslProtocol); + + sslContext.init(keyManagerFactory.getKeyManagers(), null, null); + builder.addHttpsListener(port, Conf.daemonListenerHost, sslContext); + } catch (final Exception e) { + throw new Exception(e); + } + } else { + builder.addHttpListener(port, Conf.daemonListenerHost); + } + + if (Conf.authUsername != null && Conf.authPassword != null) { + final Map users = new HashMap(1); + users.put(Conf.authUsername, Conf.authPassword.toCharArray()); + + final IdentityManager identityManager = new MapIdentityManager(users); + + server = builder.setHandler(addSecurity(new HttpHandler() { + @Override + public void handleRequest(final HttpServerExchange exchange) throws Exception { + NewtworkRunnable network = new NewtworkRunnable(new NetworkClient(exchange)); + network.run(); + } + }, identityManager)) + .build(); + } else { + server = builder.setHandler(new HttpHandler() { + @Override + public void handleRequest(final HttpServerExchange exchange) throws Exception { + NewtworkRunnable network = new NewtworkRunnable(new NetworkClient(exchange)); + network.run(); + } + }).build(); + } + server.start(); + + while (true) { + Thread.sleep(10000); + } + } + + private static HttpHandler addSecurity(final HttpHandler toWrap, final IdentityManager identityManager) { + HttpHandler handler = toWrap; + handler = new AuthenticationCallHandler(handler); + handler = new AuthenticationConstraintHandler(handler); + final List mechanisms = Collections.singletonList(new BasicAuthenticationMechanism("My Realm")); + handler = new AuthenticationMechanismsHandler(handler, mechanisms); + handler = new SecurityInitialHandler(AuthenticationMode.PRO_ACTIVE, identityManager, handler); + return handler; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/DelayedConnectionException.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/DelayedConnectionException.java new file mode 100644 index 0000000000..ca14c4cb96 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/DelayedConnectionException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.daemon; + +/** + * @author Lamotte Jean-Baptiste + */ +public class DelayedConnectionException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 1L; + + DelayedConnectionException(final String reason) { + super(reason); + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/MapIdentityManager.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/MapIdentityManager.java new file mode 100644 index 0000000000..1f1477fbf2 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/MapIdentityManager.java @@ -0,0 +1,110 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.daemon; + +import io.undertow.security.idm.Account; +import io.undertow.security.idm.Credential; +import io.undertow.security.idm.IdentityManager; +import io.undertow.security.idm.PasswordCredential; + +import java.security.Principal; +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +/** + * A simple {@link IdentityManager} implementation, that just takes a map of users to their + * password. + * + * This is in now way suitable for real world production use. + * + * +* @author Stuart Douglas +*/ +class MapIdentityManager implements IdentityManager { + + private final Map users; + + MapIdentityManager(final Map users) { + this.users = users; + } + + @Override + public Account verify(Account account) { + // An existing account so for testing assume still valid. + return account; + } + + @Override + public Account verify(String id, Credential credential) { + Account account = getAccount(id); + if (account != null && verifyCredential(account, credential)) { + return account; + } + + return null; + } + + @Override + public Account verify(Credential credential) { + // TODO Auto-generated method stub + return null; + } + + private boolean verifyCredential(Account account, Credential credential) { + if (credential instanceof PasswordCredential) { + char[] password = ((PasswordCredential) credential).getPassword(); + char[] expectedPassword = users.get(account.getPrincipal().getName()); + + return Arrays.equals(password, expectedPassword); + } + return false; + } + + private Account getAccount(final String id) { + if (users.containsKey(id)) { + return new Account() { + + private final Principal principal = new Principal() { + + @Override + public String getName() { + return id; + } + }; + + @Override + public Principal getPrincipal() { + return principal; + } + + @Override + public Set getRoles() { + return Collections.emptySet(); + } + + }; + } + return null; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/NewtworkRunnable.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/NewtworkRunnable.java new file mode 100644 index 0000000000..9913114f0f --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/daemon/NewtworkRunnable.java @@ -0,0 +1,68 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.daemon; + +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.client.impl.NetworkClient; +import com.centreon.connector.as400.dispatcher.check.ResponseData; +import com.centreon.connector.as400.dispatcher.client.impl.ClientDispatcherImpl; + +/** + * The Class NewtworkRunnable. + * + * @author Lamotte Jean-Baptiste + */ +class NewtworkRunnable implements Runnable { + private NetworkClient client = null; + + /** + * Instantiates a new newtwork runnable. + * + * @param client the client + */ + NewtworkRunnable(final NetworkClient client) { + this.client = client; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Runnable#run() + */ + @Override + public void run() { + try { + try { + this.client.readRequest(); + this.client.parseRequest(); + ClientDispatcherImpl.getInstance().dispatch(this.client); + } catch (final java.net.SocketException e) { + ConnectorLogger.getInstance().debug("", e); + this.client.writeAnswer(new ResponseData(ResponseData.statusError, "" + e.getMessage())); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + this.client.writeAnswer(new ResponseData(ResponseData.statusError, "" + e.getMessage())); + } + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + } + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckDispatcher.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckDispatcher.java new file mode 100644 index 0000000000..bce1102677 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckDispatcher.java @@ -0,0 +1,241 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.check; + +import java.io.IOException; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +import com.ibm.as400.access.AS400SecurityException; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.check.handler.ICachedMessageQueueHandler; +import com.centreon.connector.as400.check.handler.ICommandHandler; +import com.centreon.connector.as400.check.handler.IDiskHandler; +import com.centreon.connector.as400.check.handler.IJobHandler; +import com.centreon.connector.as400.check.handler.IJobQueueHandler; +import com.centreon.connector.as400.check.handler.IMessageQueueHandler; +import com.centreon.connector.as400.check.handler.ISubSystemHandler; +import com.centreon.connector.as400.check.handler.ISystemHandler; +import com.centreon.connector.as400.check.handler.impl.CommandHandler; +import com.centreon.connector.as400.check.handler.impl.DiskHandler; +import com.centreon.connector.as400.check.handler.impl.JobHandler; +import com.centreon.connector.as400.check.handler.impl.JobQueueHandler; +import com.centreon.connector.as400.check.handler.impl.SubSystemHandler; +import com.centreon.connector.as400.check.handler.impl.SystemHandler; +import com.centreon.connector.as400.check.handler.msgqueue.CachedMessageQueueHandler; +import com.centreon.connector.as400.check.handler.msgqueue.MessageQueueHandler; +import com.centreon.connector.as400.check.handler.wrkprb.WorkWithProblemHandler; +import com.centreon.connector.as400.client.impl.NetworkClient; + +import io.undertow.server.HttpServerExchange; + +/** + * @author Lamotte Jean-Baptiste + */ +public class CheckDispatcher { + + private static class DefaultThreadFactory implements ThreadFactory { + private static final AtomicInteger poolNumber = new AtomicInteger(1); + private final ThreadGroup group; + private final AtomicInteger threadNumber = new AtomicInteger(1); + private final String namePrefix; + + private DefaultThreadFactory(final String host, final String type) { + final SecurityManager s = System.getSecurityManager(); + this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup(); + this.namePrefix = "" + host + "-pool-" + type + "-" + DefaultThreadFactory.poolNumber.getAndIncrement() + + "-thread-"; + } + + @Override + public Thread newThread(final Runnable r) { + final Thread t = new Thread(this.group, r, this.namePrefix + this.threadNumber.getAndIncrement(), 0); + if (t.isDaemon()) { + t.setDaemon(false); + } + if (t.getPriority() != Thread.NORM_PRIORITY) { + t.setPriority(Thread.NORM_PRIORITY); + } + return t; + } + } + + private String host = null; + private String login = null; + private String password = null; + + private volatile ConcurrentHashMap filter = new ConcurrentHashMap(); + + private ISubSystemHandler subSystemHandler = null; + private ISystemHandler systemHandler = null; + private IJobHandler jobHandler = null; + private IDiskHandler diskHandler = null; + private ICommandHandler commandHandler = null; + + private ThreadPoolExecutor executorGlobal = null; + private ThreadPoolExecutor executorJobs = null; + private ThreadPoolExecutor executorDisk = null; + + class ThreadPoolExecutorPostFilter extends ThreadPoolExecutor { + public ThreadPoolExecutorPostFilter(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, + final TimeUnit unit, final BlockingQueue workQueue, final RejectedExecutionHandler handler) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, handler); + } + + public ThreadPoolExecutorPostFilter(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, + final TimeUnit unit, final BlockingQueue workQueue) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue); + } + + public ThreadPoolExecutorPostFilter(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, + final TimeUnit unit, final BlockingQueue workQueue, final ThreadFactory threadFactory) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory); + } + + public ThreadPoolExecutorPostFilter(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, + final TimeUnit unit, final BlockingQueue workQueue, final ThreadFactory threadFactory, + final RejectedExecutionHandler handler) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); + } + + @Override + protected void afterExecute(final Runnable r, final Throwable t) { + if (r instanceof CheckHandlerRunnable) { + final CheckHandlerRunnable runnable = (CheckHandlerRunnable) r; + final NetworkClient client = runnable.getClient(); + final String rawRequest = client.getRawRequest(); + + CheckDispatcher.this.filter.remove(rawRequest); + } + super.afterExecute(r, t); + } + } + + public CheckDispatcher(final String host, final String login, final String password) { + this.host = host; + this.login = login; + this.password = password; + + this.executorGlobal = new ThreadPoolExecutorPostFilter(5, 10, Conf.workerQueueTimeout, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + this.executorGlobal.setThreadFactory(new DefaultThreadFactory(host, "global")); + + this.executorJobs = new ThreadPoolExecutorPostFilter(1, 1, Conf.workerQueueTimeout, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + this.executorJobs.setThreadFactory(new DefaultThreadFactory(host, "job")); + + this.executorDisk = new ThreadPoolExecutorPostFilter(1, 1, Conf.workerQueueTimeout, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + this.executorDisk.setThreadFactory(new DefaultThreadFactory(host, "disk")); + } + + public String getHost() { + return this.host; + } + + public String getLogin() { + return this.login; + } + + public String getPassword() { + return this.password; + } + + public synchronized void dispatch(final NetworkClient client) { + + if (this.filter.containsKey(client.getRawRequest())) { + final long time = this.filter.get(client.getRawRequest()); + client.writeAnswer(new ResponseData(ResponseData.statusError, "Previous request pending (started " + + (System.currentTimeMillis() - time) + + " ms ago). Increase your check interval, and nagios check timeout. Also check your bandwidth availability")); + return; + } + + this.filter.put(client.getRawRequest(), System.currentTimeMillis()); + + final String command = client.getAs400CheckType(); + + if (command.equalsIgnoreCase("listJobs")) { + client.getExchange().dispatch(this.executorJobs, new CheckHandlerRunnable(client, this)); + } else if (command.equalsIgnoreCase("listDisks")) { + client.getExchange().dispatch(this.executorDisk, new CheckHandlerRunnable(client, this)); + } else { + client.getExchange().dispatch(this.executorGlobal, new CheckHandlerRunnable(client, this)); + } + } + + public ICommandHandler getCommandHandler() throws AS400SecurityException, IOException { + if (this.commandHandler == null) { + this.commandHandler = new CommandHandler(this.host, this.login, this.password); + } + return this.commandHandler; + } + + public IDiskHandler getDiskHandler() throws AS400SecurityException, IOException { + if (this.diskHandler == null) { + this.diskHandler = new DiskHandler(this.host, this.login, this.password); + } + return this.diskHandler; + } + + public IJobHandler getJobHandler() throws AS400SecurityException, IOException { + if (this.jobHandler == null) { + this.jobHandler = new JobHandler(this.host, this.login, this.password); + } + return this.jobHandler; + } + + public ISubSystemHandler getSubSystemHandler() throws AS400SecurityException, IOException { + if (this.subSystemHandler == null) { + this.subSystemHandler = new SubSystemHandler(this.host, this.login, this.password); + } + return this.subSystemHandler; + } + + public ISystemHandler getSystemHandler() throws AS400SecurityException, IOException { + if (this.systemHandler == null) { + this.systemHandler = new SystemHandler(this.host, this.login, this.password); + } + return this.systemHandler; + } + + public ICachedMessageQueueHandler getCachedMessageQueueHandler() throws AS400SecurityException, IOException { + return new CachedMessageQueueHandler(this.host, this.login, this.password); + } + + public IMessageQueueHandler getMessageQueueHandler() throws AS400SecurityException, IOException { + return new MessageQueueHandler(this.host, this.login, this.password); + } + + public IJobQueueHandler getJobQueueHandler() throws AS400SecurityException, IOException { + return new JobQueueHandler(this.host, this.login, this.password); + } + + public WorkWithProblemHandler getWrkPrbHandler() throws AS400SecurityException, IOException { + return new WorkWithProblemHandler(this.host, this.login, this.password); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckHandlerRunnable.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckHandlerRunnable.java new file mode 100644 index 0000000000..ce6b95565f --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/CheckHandlerRunnable.java @@ -0,0 +1,249 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.check; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.ibm.as400.access.AS400SecurityException; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.client.impl.NetworkClient; + +/** + * @author Lamotte Jean-Baptiste + */ +public class CheckHandlerRunnable implements Runnable { + + protected NetworkClient client = null; + protected CheckDispatcher checkDispatcher = null; + + public CheckHandlerRunnable(final NetworkClient client, final CheckDispatcher checkDispatcher) { + this.client = client; + this.checkDispatcher = checkDispatcher; + } + + public NetworkClient getClient() { + return this.client; + } + + private ResponseData getErrorResponse(final String message) { + return new ResponseData(ResponseData.statusError, message); + } + + @Override + public void run() { + this.client.writeAnswer(this.handleAs400Args(this.client.getAs400CheckType())); + } + + protected ResponseData handleAs400Args(final String check) { + ResponseData data = null; + + final String[] args = null; + final long now = System.currentTimeMillis(); + + try { + if (check.equalsIgnoreCase("listDisks")) { + data = this.listDisks(); + } else if (check.equalsIgnoreCase("listSubsystems")) { + data = this.listSubsystems(); + } else if (check.equalsIgnoreCase("listJobs")) { + data = this.listJobs(); + } else if (check.equalsIgnoreCase("getErrorMessageQueue")) { + data = this.getErrorMessageQueue(); + } else if (check.equalsIgnoreCase("pageFault")) { + data = this.checkPageFault(); + } else if (check.equalsIgnoreCase("getSystem")) { + data = this.getSystem(); + } else if (check.equalsIgnoreCase("getJobQueues")) { + data = this.getJobQueues(); + } else if (check.equalsIgnoreCase("executeCommand")) { + data = this.executeCommand(); + } else if (check.equalsIgnoreCase("getNewMessageInMessageQueue")) { + data = this.getNewMessageInMessageQueue(); + } else if (check.equalsIgnoreCase("workWithProblem")) { + data = this.workWithProblem(); + } else if (check.equalsIgnoreCase("dumpAll")) { + this.dumpAll(); + data = new ResponseData(ResponseData.statusOk, "dump done"); + } else { + data = new ResponseData(ResponseData.statusError, "unknown request : " + check); + ConnectorLogger.getInstance().debug("unknown request : " + check); + } + } catch (final NumberFormatException e) { + data = new ResponseData(ResponseData.statusError, e.getMessage()); + ConnectorLogger.getInstance().debug("Error during request", e); + } catch (final AS400SecurityException e) { + String error = ""; + if (e.getCause() != null) { + error = e.getCause().getMessage(); + } else { + error = e.getMessage(); + } + data = new ResponseData(ResponseData.statusError, error); + ConnectorLogger.getInstance().debug("Error during request", e); + } catch (final IOException e) { + data = new ResponseData(ResponseData.statusError, e.getMessage()); + ConnectorLogger.getInstance().debug("Error during request", e); + } catch (final Exception e) { + data = new ResponseData(ResponseData.statusError, e.getMessage()); + ConnectorLogger.getInstance().debug("Error during request", e); + } + + data.setRequestDuration(System.currentTimeMillis() - now); + return data; + } + + private void dumpAll() { + try { + checkDispatcher.getSystemHandler().dumpSystem(); + } catch (Exception e) { + ConnectorLogger.getInstance().error("Failed to dump system measures", e); + throw new IllegalStateException("Failed to dump system measures", e); + } + } + + private ResponseData workWithProblem() throws Exception { + Object lang = this.client.getAs400Arg("lang"); + + final ResponseData data = this.checkDispatcher.getWrkPrbHandler().getProblems( + lang != null ? lang.toString() : null); + + return data; + } + + private ResponseData listDisks() throws Exception { + Object diskName = this.client.getAs400Arg("diskName"); + + final ResponseData data = this.checkDispatcher.getDiskHandler().listDisks( + diskName != null ? diskName.toString() : null); + + return data; + } + + private ResponseData listJobs() throws Exception { + ResponseData data = this.checkDispatcher.getJobHandler().listJobs(); + + return data; + } + + private ResponseData executeCommand() throws Exception { + Object cmdName = this.client.getAs400Arg("cmdName"); + + final ResponseData data = this.checkDispatcher.getCommandHandler().executeCommand( + cmdName != null ? cmdName.toString() : null); + + return data; + } + + private ResponseData getJobQueues() throws Exception { + List> queues = this.client.getAs400ArgList("queues"); + + if (queues == null || queues.size() == 0) { + return this.getErrorResponse("Invalid arguments. please set jobQueueNames"); + } + + final ResponseData data = this.checkDispatcher.getJobQueueHandler().getJobQueues(queues); + + return data; + } + + private ResponseData getSystem() throws Exception { + final ResponseData data = this.checkDispatcher.getSystemHandler().getSystem(); + + return data; + } + + private ResponseData checkPageFault() throws Exception { + final ResponseData data = this.checkDispatcher.getSystemHandler().getPageFault(); + + return data; + } + + private ResponseData getErrorMessageQueue() throws NumberFormatException, Exception { + Object arg = this.client.getAs400Arg("messageQueuePath"); + String messageQueuePath = (arg != null ? arg.toString() : null); + + arg = this.client.getAs400Arg("messageIdfilterPattern"); + String messageIdfilterPattern = (arg != null ? arg.toString() : null); + + if (messageQueuePath == null) { + return this.getErrorResponse("Invalid arguments. please set messageQueuePath"); + } + + int minSeverityLevel; + try { + minSeverityLevel = Integer.parseInt(this.client.getAs400Arg("minSeverityLevel").toString()); + } catch (final Exception e) { + minSeverityLevel = Integer.MIN_VALUE; + } + int maxSeverityLevel; + try { + maxSeverityLevel = Integer.parseInt(this.client.getAs400Arg("maxSeverityLevel").toString()); + } catch (final Exception e) { + maxSeverityLevel = Integer.MAX_VALUE; + } + + final ResponseData data = this.checkDispatcher.getMessageQueueHandler().getErrorMessageQueue( + messageQueuePath, messageIdfilterPattern, minSeverityLevel, maxSeverityLevel); + + return data; + } + + private ResponseData getNewMessageInMessageQueue() throws NumberFormatException, Exception { + Object arg = this.client.getAs400Arg("messageQueuePath"); + String messageQueuePath = (arg != null ? arg.toString() : null); + + arg = this.client.getAs400Arg("messageIdfilterPattern"); + String messageIdfilterPattern = (arg != null ? arg.toString() : null); + + if (messageQueuePath == null) { + return this.getErrorResponse("Invalid arguments. please set messageQueuePath"); + } + + int minSeverityLevel; + try { + minSeverityLevel = Integer.parseInt(this.client.getAs400Arg("minSeverityLevel").toString()); + } catch (final Exception e) { + minSeverityLevel = Integer.MIN_VALUE; + } + int maxSeverityLevel; + try { + maxSeverityLevel = Integer.parseInt(this.client.getAs400Arg("maxSeverityLevel").toString()); + } catch (final Exception e) { + maxSeverityLevel = Integer.MAX_VALUE; + } + + final ResponseData data = this.checkDispatcher.getCachedMessageQueueHandler().getNewMessageInMessageQueue( + messageQueuePath, messageIdfilterPattern, minSeverityLevel, maxSeverityLevel); + + return data; + } + + private ResponseData listSubsystems() throws Exception { + final ResponseData data = this.checkDispatcher.getSubSystemHandler().listSubsystems(); + + return data; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/InputData.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/InputData.java new file mode 100644 index 0000000000..61916b6c8d --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/InputData.java @@ -0,0 +1,61 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.check; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author Garnier Quentin + */ +public class InputData { + private String login = null; + private String password = null; + private String host = null; + private String command = null; + Map args = null; + + public InputData() { + } + + public String getLogin() { + return this.login; + } + + public String getPassword() { + return this.password; + } + + public String getHost() { + return this.host; + } + + public String getCommand() { + return this.command; + } + + public Object getArg(String name) { + if (args == null) { + return null; + } + return this.args.get(name); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/ResponseData.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/ResponseData.java new file mode 100644 index 0000000000..a88065daa0 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/check/ResponseData.java @@ -0,0 +1,82 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.check; + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * @author Lamotte Jean-Baptiste + */ +public class ResponseData { + public static final int statusOk = 0; + public static final int statusError = 1; + + private long requestDuration = 0; + private int code = 0; + private String message = null; + private ArrayList result = new ArrayList(); + + public ResponseData() { + } + + public ResponseData(final int code, final String message) { + this.message = message; + this.code = code; + } + + public int getCode() { + return this.code; + } + + public void setCode(final int code) { + this.code = code; + } + + public ArrayList getResult() { + return this.result; + } + + public Object getAttrResult(int index, String attr) { + HashMap attrs = (HashMap)this.result.get(index); + return attrs.get(attr); + } + + public void setResult(final ArrayList result) { + this.result = result; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(final String message) { + this.message = message; + } + + public long getRequestDuration() { + return this.requestDuration; + } + + public void setRequestDuration(final long requestDuration) { + this.requestDuration = requestDuration; + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/ClientDispatcher.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/ClientDispatcher.java new file mode 100644 index 0000000000..8743906ee0 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/ClientDispatcher.java @@ -0,0 +1,31 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.client; + +import java.io.IOException; + +import com.ibm.as400.access.AS400SecurityException; +import com.centreon.connector.as400.client.impl.NetworkClient; +import com.centreon.connector.as400.daemon.DelayedConnectionException; + +public interface ClientDispatcher { + void dispatch(final NetworkClient client) throws AS400SecurityException, IOException, DelayedConnectionException, Exception; +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/impl/ClientDispatcherImpl.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/impl/ClientDispatcherImpl.java new file mode 100644 index 0000000000..5fa0b5ca1b --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/dispatcher/client/impl/ClientDispatcherImpl.java @@ -0,0 +1,88 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.dispatcher.client.impl; + +import java.io.IOException; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import com.ibm.as400.access.AS400SecurityException; +import com.centreon.connector.as400.ConnectorLogger; +import com.centreon.connector.as400.client.impl.NetworkClient; +import com.centreon.connector.as400.daemon.DelayedConnectionException; +import com.centreon.connector.as400.dispatcher.check.CheckDispatcher; +import com.centreon.connector.as400.dispatcher.client.ClientDispatcher; + +/** + * @author Lamotte Jean-Baptiste + */ +public class ClientDispatcherImpl implements ClientDispatcher { + + private volatile Map pool = null; + + private static ClientDispatcherImpl instance = null; + + public static synchronized ClientDispatcherImpl getInstance() { + if (ClientDispatcherImpl.instance == null) { + ClientDispatcherImpl.instance = new ClientDispatcherImpl(); + } + return ClientDispatcherImpl.instance; + } + + private ClientDispatcherImpl() { + this.pool = new ConcurrentHashMap(); + } + + private synchronized CheckDispatcher createNewCheckDispatcher(final String host, final String login, + final String password) throws AS400SecurityException, IOException, DelayedConnectionException, Exception { + + ConnectorLogger.getInstance().info("create new As400 : " + host); + + CheckDispatcher resource = null; + resource = new CheckDispatcher(host, login, password); + + this.pool.put(resource, System.currentTimeMillis()); + + return resource; + } + + private CheckDispatcher getAs400(final String host, final String login, final String password) + throws AS400SecurityException, IOException, DelayedConnectionException, Exception { + + for (final CheckDispatcher resource : this.pool.keySet()) { + if (resource.getHost().equalsIgnoreCase(host) && resource.getLogin().equalsIgnoreCase(login) + && resource.getPassword().equalsIgnoreCase(password)) { + this.pool.put(resource, System.currentTimeMillis()); + return resource; + } + } + + return this.createNewCheckDispatcher(host, login, password); + } + + @Override + public synchronized void dispatch(final NetworkClient client) + throws AS400SecurityException, IOException, DelayedConnectionException, Exception { + final CheckDispatcher checkDispatcher = this.getAs400(client.getAs400Host(), client.getAs400Login(), + client.getAs400Password()); + checkDispatcher.dispatch(client); + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/InvalidOptionException.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/InvalidOptionException.java new file mode 100644 index 0000000000..6848ec6b1c --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/InvalidOptionException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.parser; + +import org.apache.commons.cli.ParseException; + +/** + * @author Lamotte Jean-Baptiste + */ +public class InvalidOptionException extends ParseException { + + /** + * + */ + private static final long serialVersionUID = 3542190890196517483L; + + public InvalidOptionException(final String reason) { + super(reason); + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/OptionFactory.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/OptionFactory.java new file mode 100644 index 0000000000..9e889cf5cf --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/parser/OptionFactory.java @@ -0,0 +1,112 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.parser; + +import org.apache.commons.cli.Option; +import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.OptionGroup; +import org.apache.commons.cli.Options; + +/** + * @author Lamotte Jean-Baptiste + */ +public class OptionFactory { + + private OptionFactory() { + + } + + private static synchronized Options addAs400Options(final Options options) { + + OptionBuilder.withArgName("host"); + OptionBuilder.hasArg(); + OptionBuilder.withDescription("dns name or ip address"); + OptionBuilder.withLongOpt("host"); + final Option host = OptionBuilder.create('H'); + + OptionBuilder.withArgName("login"); + OptionBuilder.hasArg(); + OptionBuilder.withDescription("login"); + OptionBuilder.withLongOpt("login"); + final Option login = OptionBuilder.create('l'); + + OptionBuilder.withArgName("password"); + OptionBuilder.hasArg(); + OptionBuilder.withDescription("password"); + OptionBuilder.withLongOpt("password"); + final Option password = OptionBuilder.create('p'); + + OptionBuilder.withArgName("check"); + OptionBuilder.hasArgs(); + OptionBuilder.withDescription("check command type"); + OptionBuilder.withLongOpt("check"); + final Option check = OptionBuilder.create('C'); + + OptionBuilder.withArgName("args"); + OptionBuilder.hasArgs(); + OptionBuilder.withDescription("arguments for as400 request"); + OptionBuilder.withLongOpt("args"); + final Option args = OptionBuilder.create('A'); + + options.addOption(host); + options.addOption(login); + options.addOption(password); + options.addOption(check); + options.addOption(args); + + return options; + } + + /** + * Gets the options. + * + * @return the options + */ + public static synchronized Options getOptions() { + Options options = new Options(); + + final Option daemon = Option.builder("D") + .argName("port") + .hasArg() + .desc("Start the daemon on the specified port") + .longOpt("port") + .build(); + + // Création des option générique + final Option help = new Option("h", "help", false, "print this message"); + final Option version = new Option("v", "version", false, "print the version information and exit"); + final Option jmx = new Option("I", "as400", false, "Request type : as400"); + + // Ajout des options de groupe unique + final OptionGroup startType = new OptionGroup(); + startType.addOption(daemon); + startType.addOption(jmx); + startType.addOption(help); + startType.addOption(version); + startType.setRequired(true); + options.addOptionGroup(startType); + + options = OptionFactory.addAs400Options(options); + + return options; + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/BlowFishUtils.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/BlowFishUtils.java new file mode 100644 index 0000000000..22d680a528 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/BlowFishUtils.java @@ -0,0 +1,83 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.utils; + +import java.security.GeneralSecurityException; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +import com.centreon.connector.as400.ConnectorLogger; + +public final class BlowFishUtils { + + private static final String BLOWFISH = "Blowfish"; //$NON-NLS-1$ + private static final String TRANSFORMATION = "Blowfish/CBC/PKCS5Padding"; //$NON-NLS-1$ + private static final byte[] KEY = "3fe7b4d9e0b50a".getBytes(StringUtils.CHARSET); //$NON-NLS-1$ + private static final byte[] IV_BYTES = "00000000".getBytes(StringUtils.CHARSET); //$NON-NLS-1$ + + public static final String decrypt(final String cryptedMessage) { + if (cryptedMessage == null) { + return StringUtils.EMPTY_STRING; + } + try { + final byte[] buffer = HexUtils.hexToBuffer(cryptedMessage); + return new String(BlowFishUtils.decrypt(buffer, BlowFishUtils.KEY), StringUtils.CHARSET); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + return StringUtils.EMPTY_STRING; + } + } + + public static final String encrypt(final String message) { + if (message == null) { + return StringUtils.EMPTY_STRING; + } + try { + final byte[] crypted = BlowFishUtils.encrypt(message.getBytes(StringUtils.CHARSET), BlowFishUtils.KEY); + return HexUtils.bufferToHex(crypted); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + return StringUtils.EMPTY_STRING; + } + } + + private static final byte[] decrypt(final byte[] encrypted, final byte[] key) throws GeneralSecurityException { + final SecretKeySpec skeySpec = new SecretKeySpec(key, BlowFishUtils.BLOWFISH); + final Cipher cipher = Cipher.getInstance(BlowFishUtils.TRANSFORMATION); + final IvParameterSpec ivs = new IvParameterSpec(BlowFishUtils.IV_BYTES); + cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivs); + return cipher.doFinal(encrypted); + } + + private static final byte[] encrypt(final byte[] messageBytes, final byte[] key) throws GeneralSecurityException { + final SecretKeySpec skeySpec = new SecretKeySpec(key, BlowFishUtils.BLOWFISH); + final Cipher cipher = Cipher.getInstance(BlowFishUtils.TRANSFORMATION); + final IvParameterSpec ivs = new IvParameterSpec(BlowFishUtils.IV_BYTES); + cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivs); + return cipher.doFinal(messageBytes); + } + + private BlowFishUtils() { + // hide + } +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/HexUtils.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/HexUtils.java new file mode 100644 index 0000000000..3ed749f383 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/HexUtils.java @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.utils; + +public final class HexUtils { + + private static final char[] K_HEX_CHARS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', + 'F' }; + + public static String bufferToHex(final byte[] buffer) { + return HexUtils.bufferToHex(buffer, 0, buffer.length); + } + + public static byte[] hexToBuffer(final String hex) { + final byte[] bytes = new byte[hex.length() / 2]; + for (int i = 0; i < (hex.length() - 1); i += 2) { + final String output = hex.substring(i, i + 2); + bytes[i / 2] = (byte) Integer.parseInt(output, 16); + } + return bytes; + } + + private static void appendHexPair(final byte b, final StringBuilder hexString) { + final char highNibble = HexUtils.K_HEX_CHARS[(b & 0xF0) >> 4]; + final char lowNibble = HexUtils.K_HEX_CHARS[b & 0x0F]; + hexString.append(highNibble); + hexString.append(lowNibble); + } + + private static String bufferToHex(final byte[] buffer, final int startOffset, final int length) { + final StringBuilder hexString = new StringBuilder(2 * length); + final int endOffset = startOffset + length; + for (int i = startOffset; i < endOffset; i++) { + HexUtils.appendHexPair(buffer[i], hexString); + } + return hexString.toString(); + } + + private HexUtils() { + } + +} diff --git a/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/StringUtils.java b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/StringUtils.java new file mode 100644 index 0000000000..35c20a5922 --- /dev/null +++ b/as400/connector.as400/src/main/java/com/centreon/connector/as400/utils/StringUtils.java @@ -0,0 +1,125 @@ +/* + * Copyright 2021 Centreon (http://www.centreon.com/) + * + * Centreon is a full-fledged industry-strength solution that meets + * the needs in IT infrastructure and application monitoring for + * service performance. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.centreon.connector.as400.utils; + +import java.nio.charset.Charset; + +import com.centreon.connector.as400.ConnectorLogger; + +public final class StringUtils { + + public static final Charset CHARSET = Charset.forName("UTF-8"); //$NON-NLS-1$ + + public static final String NEW_LINE = System.getProperty("line.separator"); //$NON-NLS-1$ + public static final String EMPTY_STRING = ""; //$NON-NLS-1$ + public static final String SLASH = "/"; //$NON-NLS-1$ + public static final String VIRGULE = ","; //$NON-NLS-1$ + + public static boolean isNullEmptyOrBlank(final String string) { + if (string == null) { + return true; + } + if (string.length() == 0) { + return true; + } + if (string.trim().length() == 0) { + return true; + } + return "null".equalsIgnoreCase(string.trim()); //$NON-NLS-1$ + } + + public static boolean isOneNullEmptyOrBlank(final String... args) { + for (final String arg : args) { + if (StringUtils.isNullEmptyOrBlank(arg)) { + return true; + } + } + return false; + } + + public static String nonNullString(final String string) { + if (string == null) { + return StringUtils.EMPTY_STRING; + } + return string; + } + + public static double parseDouble(final String input) { + return StringUtils.parseDouble(input, -1d); + } + + public static double parseDouble(final String input, final double errorValue) { + if ((input == null) || (input.length() == 0)) { + return errorValue; + } + try { + return Double.parseDouble(input); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + return errorValue; + } + } + + public static int parseInt(final String input) { + return StringUtils.parseInt(input, -1); + } + + public static int parseInt(final String input, final int errorValue) { + if ((input == null) || (input.length() == 0)) { + return errorValue; + } + try { + return Integer.parseInt(input); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + return errorValue; + } + } + + public static long parseLong(final String input) { + return StringUtils.parseLong(input, Long.MIN_VALUE); + } + + public static long parseLong(final String input, final long errorValue) { + if ((input == null) || (input.length() == 0)) { + return errorValue; + } + try { + return Long.parseLong(input); + } catch (final Exception e) { + ConnectorLogger.getInstance().error("", e); + return errorValue; + } + } + + public static String toHex(final int value, final int length) { + String hex = Integer.toHexString(value); + while (hex.length() < length) { + hex = '0' + hex; + } + return hex; + } + + private StringUtils() { + // hide constructor + } + +} diff --git a/as400/connector.as400/src/main/resources/API.txt b/as400/connector.as400/src/main/resources/API.txt new file mode 100644 index 0000000000..2329fbe8f6 --- /dev/null +++ b/as400/connector.as400/src/main/resources/API.txt @@ -0,0 +1,4 @@ +Open List of Jobs (QGYOLJOB) API +Retrieve Job Queue Information (QSPRJOBQ) API +List Subsystem Job Queues (QWDLSJBQ) API +Open List of ASPs (QYASPOL) API \ No newline at end of file diff --git a/as400/connector.as400/src/main/resources/qsprjobq100.pcml b/as400/connector.as400/src/main/resources/qsprjobq100.pcml new file mode 100644 index 0000000000..1eec2206b2 --- /dev/null +++ b/as400/connector.as400/src/main/resources/qsprjobq100.pcml @@ -0,0 +1,55 @@ + + +Offset Type Field +Dec Hex +0 0 BINARY(4) Bytes returned +4 4 BINARY(4) Bytes availablea +8 8 CHAR(10) Job queue name +18 12 CHAR(10) Job queue library name +28 1C CHAR(10) Operator controlled +38 26 CHAR(10) Authority to check +48 30 BINARY(4) Number of jobs +52 34 CHAR(10) Job queue status +62 3E CHAR(10) Subsystem name +72 48 CHAR(50) Text description +122 7A CHAR(10) Subsystem library name +132 84 BINARY(4) Sequence number +136 88 BINARY(4) Maximum active +140 8C BINARY(4) Current active + + + + + + + + + + + + + + + + + + + + + +1 Receiver variable Output Char(*) +2 Length of receiver variable Input Binary(4) +3 Format name Input Char(8) +4 Qualified job queue name Input Char(20) +5 Error Code I/O Char(*) + + + + + + + + + + + \ No newline at end of file diff --git a/as400/connector.as400/src/main/resources/qsprjobq200.pcml b/as400/connector.as400/src/main/resources/qsprjobq200.pcml new file mode 100644 index 0000000000..e6b597868b --- /dev/null +++ b/as400/connector.as400/src/main/resources/qsprjobq200.pcml @@ -0,0 +1,153 @@ + + +Offset Type Field +Dec Hex +0 0 BINARY(4) Bytes returned +4 4 BINARY(4) Bytes available +8 8 CHAR(10) Job queue name +18 12 CHAR(10) Job queue library name +28 1C CHAR(10) Operator controlled +38 26 CHAR(10) Authority to check +48 30 BINARY(4) Number of jobs +52 34 CHAR(10) Job queue status +62 3E CHAR(10) Subsystem name +72 48 CHAR(10) Subsystem library name +82 52 CHAR(50) Text description +132 84 BINARY(4) Sequence Number +136 88 BINARY(4) Maximum active +140 8C BINARY(4) Current active + +144 90 BINARY(4) Maximum active jobs with priority 1 +148 94 BINARY(4) Maximum active jobs with priority 2 +152 98 BINARY(4) Maximum active jobs with priority 3 +156 9C BINARY(4) Maximum active jobs with priority 4 +160 A0 BINARY(4) Maximum active jobs with priority 5 +164 A4 BINARY(4) Maximum active jobs with priority 6 +168 A8 BINARY(4) Maximum active jobs with priority 7 +172 AC BINARY(4) Maximum active jobs with priority 8 +176 B0 BINARY(4) Maximum active jobs with priority 9 + +180 B4 BINARY(4) Active jobs with priority 0 +184 B8 BINARY(4) Active jobs with priority 1 +188 BC BINARY(4) Active jobs with priority 2 +192 C0 BINARY(4) Active jobs with priority 3 +196 C4 BINARY(4) Active jobs with priority 4 +200 C8 BINARY(4) Active jobs with priority 5 +204 CC BINARY(4) Active jobs with priority 6 +208 D0 BINARY(4) Active jobs with priority 7 +212 D4 BINARY(4) Active jobs with priority 8 +216 D8 BINARY(4) Active jobs with priority 9 + +220 DC BINARY(4) Released jobs on queue with priority 0 +224 E0 BINARY(4) Released jobs on queue with priority 1 +228 E4 BINARY(4) Released jobs on queue with priority 2 +232 E8 BINARY(4) Released jobs on queue with priority 3 +236 EC BINARY(4) Released jobs on queue with priority 4 +240 F0 BINARY(4) Released jobs on queue with priority 5 +244 F4 BINARY(4) Released jobs on queue with priority 6 +248 F8 BINARY(4) Released jobs on queue with priority 7 +252 FC BINARY(4) Released jobs on queue with priority 8 +256 100 BINARY(4) Released jobs on queue with priority 9 + +260 104 BINARY(4) Scheduled jobs on queue with priority 0 +264 108 BINARY(4) Scheduled jobs on queue with priority 1 +268 10C BINARY(4) Scheduled jobs on queue with priority 2 +272 110 BINARY(4) Scheduled jobs on queue with priority 3 +276 114 BINARY(4) Scheduled jobs on queue with priority 4 +280 118 BINARY(4) Scheduled jobs on queue with priority 5 +284 11C BINARY(4) Scheduled jobs on queue with priority 6 +288 120 BINARY(4) Scheduled jobs on queue with priority 7 +292 124 BINARY(4) Scheduled jobs on queue with priority 8 +296 128 BINARY(4) Scheduled jobs on queue with priority 9 + +300 12C BINARY(4) Held jobs on queue with priority 0 +304 130 BINARY(4) Held jobs on queue with priority 1 +308 134 BINARY(4) Held jobs on queue with priority 2 +312 138 BINARY(4) Held jobs on queue with priority 3 +316 13C BINARY(4) Held jobs on queue with priority 4 +320 140 BINARY(4) Held jobs on queue with priority 5 +324 144 BINARY(4) Held jobs on queue with priority 6 +328 148 BINARY(4) Held jobs on queue with priority 7 +332 14C BINARY(4) Held jobs on queue with priority 8 +336 150 BINARY(4) Held jobs on queue with priority 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 Receiver variable Output Char(*) +2 Length of receiver variable Input Binary(4) +3 Format name Input Char(8) +4 Qualified job queue name Input Char(20) +5 Error Code I/O Char(*) + + + + + + + + + + + \ No newline at end of file diff --git a/as400/connector.as400/src/main/resources/qyaspol100.pcml b/as400/connector.as400/src/main/resources/qyaspol100.pcml new file mode 100644 index 0000000000..a936055624 --- /dev/null +++ b/as400/connector.as400/src/main/resources/qyaspol100.pcml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/as400/connector.as400/src/main/resources/qyaspol300.pcml b/as400/connector.as400/src/main/resources/qyaspol300.pcml new file mode 100644 index 0000000000..259648a6ec --- /dev/null +++ b/as400/connector.as400/src/main/resources/qyaspol300.pcml @@ -0,0 +1,151 @@ + + + + + +0 0 BINARY(4) ASP number +4 4 CHAR(4) Disk type +8 8 CHAR(4) Disk model +12 C CHAR(10) Disk serial number +22 16 CHAR(10) Resource name +32 20 BINARY(4) Disk unit number +36 24 BINARY(4) Disk capacity +40 28 BINARY(4) Disk storage available +44 2C BINARY(4) Disk storage reserved for system +48 30 CHAR(1) Mirrored unit protected +49 31 CHAR(1) Mirrored unit reported +50 32 CHAR(1) Mirrored unit status +51 33 CHAR(1) Reserved +52 34 BINARY(4) Unit control +56 38 BINARY(4) Blocks transferred to main storage +60 3C BINARY(4) Blocks transferred from main storage +64 40 BINARY(4) Requests for data transfer to main storage +68 44 BINARY(4) Requests for data transfer from main storage +72 48 BINARY(4) Permanent blocks transferred from main storage +76 4C BINARY(4) Requests for permanent data transfer from main storage +80 50 BINARY(4) Sample count +84 64 BINARY(4) Not busy count +88 68 CHAR(1) Compression status +89 69 CHAR(1) Disk protection type +90 6A CHAR(1) Compressed unit +91 6B CHAR(1) Storage allocation restricted unit +92 6C CHAR(1) Availability parity set unit +93 6D CHAR(1) Multiple connection unit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 0 BINARY(4) Total records +4 4 BINARY(4) Records returned +8 8 CHAR(4) Request handle +12 C BINARY(4) Record length +16 10 CHAR(1) Information complete indicator +17 11 CHAR(13) Date and time created +30 1E CHAR(1) List status indicator +31 1F CHAR(1) Reserved +32 20 BINARY(4) Length of information returned +36 24 BINARY(4) First record in receiver variable +40 28 CHAR(40) Reserved + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 Receiver variable Output Char(*) +2 Length of receiver variable Input Binary(4) +3 Request handle Input Char(4) +4 List information Output Char(80) +5 Number of records to return Input Binary(4) +6 Starting record Input Binary(4) +7 Error code I/O Char(*) + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/IbmTest.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/IbmTest.java new file mode 100644 index 0000000000..8b98c3297f --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/IbmTest.java @@ -0,0 +1,195 @@ +///////////////////////////////////////////////////////////////////////// +// +// Program call example. This program calls the QWCRSSTS server program +// to retrieve the status of the system. +// +// Command syntax: +// PCSystemStatusExample system +// +// This source is an example of IBM Toolbox for Java "ProgramCall". +// +///////////////////////////////////////////////////////////////////////// + +package com.centreon.connector.as400; + +import com.ibm.as400.access.*; + +public class IbmTest extends Object { + public static void main(String[] parameters) { + System.out.println(" "); + + // if a system was not specified, display help text and exit. + + if (parameters.length >= 3) { + + try { + // Create an AS400 object for the server that contains the + // program. Assume the parameters are the system name, the login + // and the password. + + AS400 as400 = new AS400(parameters[0], parameters[1], parameters[2]); + + // Create the path to the program. + + QSYSObjectPathName programName = new QSYSObjectPathName("QSYS", "QWCRSSTS", "PGM"); + + // Create the program call object. Assocate the object with the + // AS400 object that represents the server we get status from. + + ProgramCall getSystemStatus = new ProgramCall(as400); + + // Create the program parameter list. This program has five + // parameters that will be added to this list. + + ProgramParameter[] parmlist = new ProgramParameter[5]; + + // The server program returns data in parameter 1. It is an output + // parameter. Allocate 64 bytes for this parameter. + + parmlist[0] = new ProgramParameter(64); + + // Parameter 2 is the buffer size of parm 1. It is a numeric input + // parameter. Sets its value to 64, convert it to the server format, + // then add the parm to the parm list. + + AS400Bin4 bin4 = new AS400Bin4(); + Integer iStatusLength = 64; + byte[] statusLength = bin4.toBytes(iStatusLength); + parmlist[1] = new ProgramParameter(statusLength); + + // Parameter 3 is the status-format parameter. It is a string input + // parameter. Set the string value, convert it to the server format, + // then add the parameter to the parm list. + + AS400Text text1 = new AS400Text(8, as400); + byte[] statusFormat = text1.toBytes("SSTS0200"); + parmlist[2] = new ProgramParameter(statusFormat); + + // Parameter 4 is the reset-statistics parameter. It is a string input + // parameter. Set the string value, convert it to the server format, + // then add the parameter to the parm list. + + AS400Text text3 = new AS400Text(10, as400); + byte[] resetStats = text3.toBytes("*NO "); + parmlist[3] = new ProgramParameter(resetStats); + + // Parameter 5 is the error info parameter. It is an input/output + // parameter. Add it to the parm list. + + byte[] errorInfo = new byte[32]; + parmlist[4] = new ProgramParameter(errorInfo, 0); + + // Set the program to call and the parameter list to the program + // call object. + + getSystemStatus.setProgram(programName.getPath(), parmlist); + + // Run the program then sleep. We run the program twice because + // the first set of results are inflated. If we discard the first + // set of results and run the command again five seconds later the + // number will be more accurate. + + getSystemStatus.run(); + Thread.sleep(5000); + + // Run the program + + if (getSystemStatus.run() != true) { + + // If the program did not run get the list of error messages + // from the program object and display the messages. The error + // would be something like program-not-found or not-authorized + // to the program. + + AS400Message[] msgList = getSystemStatus.getMessageList(); + + System.out.println("The program did not run. Server messages:"); + + for (int i = 0; i < msgList.length; i++) { + System.out.println(msgList[i].getText()); + } + } + + // Else the program did run. + + else { + + // Create a server to Java numeric converter. This converter + // will be used in the following section to convert the numeric + // output from the server format to Java format. + + AS400Bin4 as400Int = new AS400Bin4(); + + // Get the results of the program. Output data is in + // a byte array in the first parameter. + + byte[] as400Data = parmlist[0].getOutputData(); + + // CPU utilization is a numeric field starting at byte + // 32 of the output buffer. Convert this number from the + // server format to Java format and output the number. + + Integer cpuUtil = (Integer) as400Int.toObject(as400Data, 32); + cpuUtil = cpuUtil.intValue() / 10; + System.out.print("CPU Utilization: "); + System.out.print(cpuUtil); + System.out.println("%"); + + // DASD utilization is a numeric field starting at byte + // 52 of the output buffer. Convert this number from the + // server format to Java format and output the number. + + Integer dasdUtil = (Integer) as400Int.toObject(as400Data, 52); + dasdUtil = dasdUtil.intValue() / 10000; + System.out.print("Dasd Utilization: "); + System.out.print(dasdUtil); + System.out.println("%"); + + // Number of jobs is a numeric field starting at byte + // 36 of the output buffer. Convert this number from the + // server format to Java format and output the number. + + Integer nj = (Integer) as400Int.toObject(as400Data, 36); + System.out.print("Active jobs: "); + System.out.println(nj); + + } + + // This program is done running program so disconnect from + // the command server on the server. Program call and command + // call use the same server on the server. + + as400.disconnectService(AS400.COMMAND); + } catch (Exception e) { + // If any of the above operations failed say the program failed + // and output the exception. + + System.out.println("Program call failed"); + System.out.println(e); + } + } + + // Display help text when parameters are incorrect. + + else { + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println("Parameters are not correct. Command syntax is:"); + System.out.println(""); + System.out.println(" PCSystemStatusExample myServer myLogin myPassword"); + System.out.println(""); + System.out.println("Where"); + System.out.println(""); + System.out.println(" myServer = get status of this server "); + System.out.println(""); + System.out.println("For example:"); + System.out.println(""); + System.out.println(" PCSystemStatusExample mySystem myUser myUserPwd"); + System.out.println(""); + System.out.println(""); + } + + System.exit(0); + } +} \ No newline at end of file diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/JobHandlerTest.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/JobHandlerTest.java new file mode 100644 index 0000000000..d031cbe175 --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/JobHandlerTest.java @@ -0,0 +1,34 @@ +// package com.centreon.connector.as400.check.handler.impl; +// +// import static org.junit.Assert.*; +// +// import org.junit.After; +// import org.junit.AfterClass; +// import org.junit.Before; +// import org.junit.BeforeClass; +// import org.junit.Test; +// +// public class JobHandlerTest { +// +// @BeforeClass +// public static void setUpBeforeClass() throws Exception { +// } +// +// @AfterClass +// public static void tearDownAfterClass() throws Exception { +// } +// +// @Before +// public void setUp() throws Exception { +// } +// +// @After +// public void tearDown() throws Exception { +// } +// +// @Test +// public void test() { +// fail("Not yet implemented"); +// } +// +// } diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/SystemHandlerTest.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/SystemHandlerTest.java new file mode 100644 index 0000000000..9139082bea --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/impl/SystemHandlerTest.java @@ -0,0 +1,60 @@ +package com.centreon.connector.as400.check.handler.impl; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Arrays; +import java.util.Vector; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.ArrayList; + +import com.ibm.as400.access.AS400; +import com.ibm.as400.access.ProgramCall; +import com.ibm.as400.access.ProgramParameter; +import com.ibm.as400.access.SystemStatus; +import com.centreon.connector.as400.Conf; +import com.centreon.connector.as400.dispatcher.check.ResponseData; + +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +public class SystemHandlerTest { + + private AtomicInteger runs = new AtomicInteger(0); + + @Test + public void dumpAll_should_print_measures() throws Exception { + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + PrintStream originalOut = System.out; + System.setOut(new PrintStream(outContent)); + try { + SystemStatus as400 = mock(SystemStatus.class); + when(as400.getSystemPools()).thenReturn(new Vector().elements()); + SystemHandler sh = new SystemHandler(null, null, null, as400); + sh.dumpSystem(); + } finally { + System.setOut(originalOut); + } + assertEquals(DUMP_OUTPUT_EXPECTED, outContent.toString()); + } + + private final String DUMP_OUTPUT_EXPECTED = "ActiveJobsInSystem : 0\nActiveThreadsInSystem : 0\n" + + "BatchJobsEndedWithPrinterOutputWaitingToPrint : 0\nBatchJobsEnding : 0\nBatchJobsHeldOnJobQueue : 0\n" + + "BatchJobsHeldWhileRunning : 0\nBatchJobsOnAHeldJobQueue : 0\nBatchJobsOnUnassignedJobQueue : 0\nBatchJobsRunning : 0\n" + + "BatchJobsWaitingForMessage : 0\nBatchJobsWaitingToRunOrAlreadyScheduled : 0\nCurrentProcessingCapacity : 0.0\n" + + "CurrentUnprotectedStorageUsed : 0\nDateAndTimeStatusGathered : null\nElapsedTime : 0\nJobsInSystem : 0\nMainStorageSize : 0\n" + + "MaximumJobsInSystem : 0\nMaximumUnprotectedStorageUsed : 0\nNumberOfPartitions : 0\nNumberOfProcessors : 0\nPartitionIdentifier : 0\n" + + "PercentCurrentInteractivePerformance : 0.0\nPercentDBCapability : 0.0\nPercentPermanent256MBSegmentsUsed : 0.0\n" + + "PercentPermanent4GBSegmentsUsed : 0.0\nPercentPermanentAddresses : 0.0\nPercentProcessingUnitUsed : 0.0\n" + + "PercentSharedProcessorPoolUsed : 0.0\nPercentSystemASPUsed : 0.0\nPercentTemporary256MBSegmentsUsed : 0.0\n" + + "PercentTemporary4GBSegmentsUsed : 0.0\nPercentTemporaryAddresses : 0.0\nPercentUncappedCPUCapacityUsed : 0.0\n" + + "PoolsNumber : 0\nProcessorSharingAttribute : 0\nRestrictedStateFlag : false\nSystem : null\nSystemASP : 0 Mbytes\n" + + "SystemName : null\nTotalAuxiliaryStorage : 0\nUsersCurrentSignedOn : 0\nUsersSignedOffWithPrinterOutputWaitingToPrint : 0\n" + + "UsersSuspendedByGroupJobs : 0\nUsersSuspendedBySystemRequest : 0\nUsersTemporarilySignedOff : 0\n"; + +} diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandlerTest.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandlerTest.java new file mode 100644 index 0000000000..b631177d45 --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/CachedMessageQueueHandlerTest.java @@ -0,0 +1,37 @@ +// package com.centreon.connector.as400.check.handler.msgqueue; +// +// import org.junit.After; +// import org.junit.AfterClass; +// import org.junit.Before; +// import org.junit.BeforeClass; +// import org.junit.Test; +// import org.mockito.Mockito; +// +// import com.ibm.as400.access.QueuedMessage; +// +// public class CachedMessageQueueHandlerTest { +// +// @BeforeClass +// public static void setUpBeforeClass() throws Exception { +// } +// +// @AfterClass +// public static void tearDownAfterClass() throws Exception { +// } +// +// @Before +// public void setUp() throws Exception { +// } +// +// @After +// public void tearDown() throws Exception { +// } +// +// @Test +// public void test() { +// new CachedMessageQueueHandler("localhost", "toto", "tutu"); +// +// Mockito.mock(QueuedMessage.class); +// } +// +// } diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/LocalDbTest.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/LocalDbTest.java new file mode 100644 index 0000000000..8dafe6939a --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/check/handler/msgqueue/LocalDbTest.java @@ -0,0 +1,61 @@ +//package com.centreon.connector.as400.check.handler.msgqueue; +// +//import java.sql.Date; +//import java.sql.SQLException; +//import java.util.Calendar; +// +//import org.junit.After; +//import org.junit.AfterClass; +//import org.junit.Before; +//import org.junit.BeforeClass; +//import org.junit.Test; +//import org.mockito.Mockito; +// +//import com.ibm.as400.access.QueuedMessage; +// +//public class LocalDbTest { +// +// @BeforeClass +// public static void setUpBeforeClass() throws Exception { +// } +// +// @AfterClass +// public static void tearDownAfterClass() throws Exception { +// } +// +// @Before +// public void setUp() throws Exception { +// } +// +// @After +// public void tearDown() throws Exception { +// } +// +// private QueuedMessage createMockedObject(final String msgId, final int severity, final String text, final int type, final String user, final Date date, +// final Date createDate) { +// +// final QueuedMessage msg = Mockito.mock(QueuedMessage.class); +// Mockito.when(msg.getID()).thenReturn(msgId); +// Mockito.when(msg.getSeverity()).thenReturn(severity); +// Mockito.when(msg.getText()).thenReturn(text); +// Mockito.when(msg.getType()).thenReturn(type); +// Mockito.when(msg.getUser()).thenReturn(user); +// Mockito.when(msg.getDate()).thenReturn(new Calendar.Builder().setDate(1, 1, 1).build()); +// Mockito.when(msg.getCreateDate()).thenReturn(createDate); +// +// return msg; +// } +// +// @Test +// public void testAddEntry() throws SQLException { +// final LocalDb db = new LocalDb("/tmp/test123"); +// final QueuedMessage msg = this.createMockedObject("123", 5, "This is an output", 2, "user", new Date(0), new Date(0)); +// db.addEntry(msg); +// } +// +// @Test +// public void testGetQueuedMessage() { +// // Assert.fail("Not yet implemented"); +// } +// +//} diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/client/TestClient.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/client/TestClient.java new file mode 100644 index 0000000000..608f53bd1c --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/client/TestClient.java @@ -0,0 +1,53 @@ +// package com.centreon.connector.as400.client; +// +// import java.io.IOException; +// +// import org.junit.After; +// import org.junit.AfterClass; +// import org.junit.Before; +// import org.junit.BeforeClass; +// import org.junit.Test; +// import org.mockito.Mockito; +// +// import com.ibm.as400.access.AS400SecurityException; +// import com.centreon.connector.as400.client.impl.CommandLineClient; +// import com.centreon.connector.as400.daemon.DelayedConnectionException; +// import com.centreon.connector.as400.dispatcher.check.CheckDispatcher; +// import com.centreon.connector.as400.dispatcher.check.CheckHandlerRunnable; +// +// public class TestClient { +// @BeforeClass +// public static void setUpBeforeClass() throws Exception { +// } +// +// @AfterClass +// public static void tearDownAfterClass() throws Exception { +// } +// +// @Before +// public void setUp() throws Exception { +// +// } +// +// @After +// public void tearDown() throws Exception { +// } +// +// @Test +// public void testCommandLine() throws AS400SecurityException, IOException, +// DelayedConnectionException, Exception { +// final String args[] = { "-I", "-H", "localhost", "--login", "test", +// "--password", "test", "-C", "cpu", "-A", "80,90" }; +// final IClient client = new CommandLineClient(args); +// // ClientDispatcherImpl.getInstance().dispatch(client); +// +// final CheckDispatcher dispatcher = Mockito.mock(CheckDispatcher.class); +// +// final CheckHandlerRunnable runnable = new CheckHandlerRunnable(client, +// dispatcher); +// runnable.run(); +// // final CheckDispatcher checkDispatcher = new +// // CheckDispatcher("localhost", "test", "test"); +// // checkDispatcher.dispatch(client); +// } +// } diff --git a/as400/connector.as400/src/test/java/com/centreon/connector/as400/dispatcher/check/TestCheckHandlerRunnable.java b/as400/connector.as400/src/test/java/com/centreon/connector/as400/dispatcher/check/TestCheckHandlerRunnable.java new file mode 100644 index 0000000000..d433f1fb87 --- /dev/null +++ b/as400/connector.as400/src/test/java/com/centreon/connector/as400/dispatcher/check/TestCheckHandlerRunnable.java @@ -0,0 +1,144 @@ +package com.centreon.connector.as400.dispatcher.check; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import com.centreon.connector.as400.check.handler.ICommandHandler; +import com.centreon.connector.as400.check.handler.IDiskHandler; +import com.centreon.connector.as400.check.handler.IJobHandler; +import com.centreon.connector.as400.check.handler.IJobQueueHandler; +import com.centreon.connector.as400.check.handler.IMessageQueueHandler; +import com.centreon.connector.as400.check.handler.ISubSystemHandler; +import com.centreon.connector.as400.check.handler.ISystemHandler; + +public class TestCheckHandlerRunnable extends CheckHandlerRunnable { + + public TestCheckHandlerRunnable() { + super(null, null); + + } + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + new ResponseData(ResponseData.statusOk, "OK"); + + final ISubSystemHandler subSystemHandler = Mockito.mock(ISubSystemHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final ISystemHandler systemHandler = Mockito.mock(ISystemHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final IJobHandler jobHandler = Mockito.mock(IJobHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final IDiskHandler diskHandler = Mockito.mock(IDiskHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final ICommandHandler commandHandler = Mockito.mock(ICommandHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final IMessageQueueHandler messageQueueHandler = Mockito.mock(IMessageQueueHandler.class, + new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + final IJobQueueHandler jobQueueHandler = Mockito.mock(IJobQueueHandler.class, new Answer() { + @Override + public ResponseData answer(final InvocationOnMock invocation) throws Throwable { + return new ResponseData(ResponseData.statusOk, "OK"); + } + }); + + this.checkDispatcher = Mockito.mock(CheckDispatcher.class); + + Mockito.when(this.checkDispatcher.getJobHandler()).thenReturn(jobHandler); + Mockito.when(this.checkDispatcher.getCommandHandler()).thenReturn(commandHandler); + Mockito.when(this.checkDispatcher.getSubSystemHandler()).thenReturn(subSystemHandler); + Mockito.when(this.checkDispatcher.getDiskHandler()).thenReturn(diskHandler); + Mockito.when(this.checkDispatcher.getSystemHandler()).thenReturn(systemHandler); + Mockito.when(this.checkDispatcher.getMessageQueueHandler()).thenReturn(messageQueueHandler); + Mockito.when(this.checkDispatcher.getJobQueueHandler()).thenReturn(jobQueueHandler); + } + + @After + public void tearDown() throws Exception { + } + + private void testCommand(final String command, final int exceptedStatus) { + final ResponseData data = this.handleAs400Args(command); + Assert.assertEquals(data.getMessage(), exceptedStatus, data.getCode()); + } + + @Test + public void testListDisks() throws NumberFormatException, Exception { + this.testCommand("listDisks", ResponseData.statusError); + } + + @Test + public void testListSubsystems() throws NumberFormatException, Exception { + this.testCommand("listSubsystems", ResponseData.statusOk); + } + + @Test + public void testListJobs() throws NumberFormatException, Exception { + this.testCommand("listJobs", ResponseData.statusOk); + } + + @Test + public void testGetErrorMessageQueue() throws NumberFormatException, Exception { + this.testCommand("getErrorMessageQueue", ResponseData.statusError); + } + + @Test + public void testPageFault() throws NumberFormatException, Exception { + this.testCommand("pageFault", ResponseData.statusOk); + } + + @Test + public void testGetJobQueues() throws NumberFormatException, Exception { + this.testCommand("getJobQueues", ResponseData.statusError); + } + + @Test + public void testExecuteCommand() throws NumberFormatException, Exception { + this.testCommand("executeCommand", ResponseData.statusError); + } + + @Test + public void testUnknown() throws NumberFormatException, Exception { + this.testCommand("blabla", ResponseData.statusError); + } +} diff --git a/as400/connector.as400/src/test/resources/config.properties b/as400/connector.as400/src/test/resources/config.properties new file mode 100644 index 0000000000..ba780d0326 --- /dev/null +++ b/as400/connector.as400/src/test/resources/config.properties @@ -0,0 +1,39 @@ +daemonListenerHost=localhost + +#as400 login timeout for nagios check (ms) +as400LoginTimeout=10000 + +#as400 read timeout for nagios check (ms) +as400ReadTimeout=300000 + +#Time before cleaning an unused as400 resource (ms) +as400ResourceDuration=7200000 + +#time before killing a dead as400 connection (s) +as400SoLinger=1 + +#Duration of the job & (ms) +cacheTimeout=60000 + +daemonNoRequestTimeout=5000 + +daemonRequestParseTimeout=5000 + +#time before killing a dead as400 connection (s) +daemonSoLinger=1 + +#Time before discaring a check in queue (ms) +workerQueueTimeout=360000 + +# active debug +debug=false + +# active exception +exception=false + +# active trace (in /tmp/trace.log) +trace=false + +# MessageQueueDB Base path +pathMsgQDB=/tmp/ + diff --git a/as400/connector.as400/src/test/resources/log4j2.xml b/as400/connector.as400/src/test/resources/log4j2.xml new file mode 100644 index 0000000000..65a7c6f27a --- /dev/null +++ b/as400/connector.as400/src/test/resources/log4j2.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/as400/packaging/centreon-as400-daemon.yaml b/as400/packaging/centreon-as400-daemon.yaml new file mode 100644 index 0000000000..b6b0910443 --- /dev/null +++ b/as400/packaging/centreon-as400-daemon.yaml @@ -0,0 +1,69 @@ +name: "centreon-plugin-Operatingsystems-AS400-daemon" +arch: "${ARCH}" +platform: "linux" +version_schema: "none" +version: "2.0.3" +release: "${RELEASE}${DIST}" +section: "default" +priority: "optional" +maintainer: "Centreon " +description: | + Centreon Connector Server for AS400. +vendor: "Centreon" +homepage: "https://www.centreon.com" +license: "Apache-2.0" + +contents: + - src: "../connector.as400/target/centreon-as400-${VERSION}-jar-with-dependencies.jar" # VARIABLE VERSION REQUIRED HERE + dst: "/usr/share/centreon-as400/bin/centreon-as400-${VERSION}-jar-with-dependencies.jar" # VARIABLE VERSION REQUIRED HERE + expand: true + file_info: + mode: 0755 + owner: "centreon-as400" + group: "centreon-as400" + + - src: "../connector.as400.install/init-script/centreon-as400.service" + dst: "/lib/systemd/system/centreon-as400.service" + file_info: + mode: 0644 + + - src: "../connector.as400.install/init-script/centreon-as400-sysconfig" + dst: "/etc/sysconfig/centreon-as400-sysconfig" + file_info: + mode: 0644 + + - src: "../connector.as400.install/etc/config.properties" + dst: "/etc/centreon-as400/config.properties" + file_info: + mode: 0644 + + - src: "../connector.as400.install/etc/log4j2.xml" + dst: "/etc/centreon-as400/log4j2.xml" + file_info: + mode: 0644 + + - dst: "/var/log/centreon-as400" + type: dir + file_info: + mode: 0755 + owner: centreon-as400 + group: centreon-as400 + +scripts: + preinstall: ./scripts/centreon-as400-daemon-preinstall.sh + postinstall: ./scripts/centreon-as400-daemon-postinstall.sh + preremove: ./scripts/centreon-as400-daemon-preremove.sh + +overrides: + rpm: + depends: + - java-1.8.0-openjdk + deb: + depends: + - default-jre + +rpm: + summary: Centreon AS 400 Plugin daemon + signature: + key_file: ${RPM_SIGNING_KEY_FILE} + key_id: ${RPM_SIGNING_KEY_ID} \ No newline at end of file diff --git a/as400/packaging/scripts/centreon-as400-daemon-postinstall.sh b/as400/packaging/scripts/centreon-as400-daemon-postinstall.sh new file mode 100644 index 0000000000..e5d5829623 --- /dev/null +++ b/as400/packaging/scripts/centreon-as400-daemon-postinstall.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Start as400-daemon function + +# Handle actions diff --git a/as400/packaging/scripts/centreon-as400-daemon-preinstall.sh b/as400/packaging/scripts/centreon-as400-daemon-preinstall.sh new file mode 100644 index 0000000000..8e9f5106aa --- /dev/null +++ b/as400/packaging/scripts/centreon-as400-daemon-preinstall.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "Creating centreon-as400 user ..." +useradd -m -r centreon-as400 2> /dev/null ||: \ No newline at end of file diff --git a/as400/packaging/scripts/centreon-as400-daemon-preremove.sh b/as400/packaging/scripts/centreon-as400-daemon-preremove.sh new file mode 100644 index 0000000000..b615952916 --- /dev/null +++ b/as400/packaging/scripts/centreon-as400-daemon-preremove.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Stop as400-daemon +systemctl stop centreon-as400 \ No newline at end of file diff --git a/connectors/vmware/changelog b/connectors/vmware/changelog index 0b146c7b09..d842412c12 100644 --- a/connectors/vmware/changelog +++ b/connectors/vmware/changelog @@ -1,3 +1,8 @@ +2024-10-10 Olivier Mercier - 3.3.0 + * Enhancement: add ability to read configuration from JSON file + * Enhancement: add ability to get the VMware credentials from a Centreon + flavoured Hashicorp vault + 2022-08-09 Quentin Garnier - 3.2.5 * Enhancement: add tags in discovery diff --git a/connectors/vmware/packaging/centreon-plugin-virtualization-vmware-daemon.yaml b/connectors/vmware/packaging/centreon-plugin-virtualization-vmware-daemon.yaml index 8e54f62c1a..bfe7829620 100644 --- a/connectors/vmware/packaging/centreon-plugin-virtualization-vmware-daemon.yaml +++ b/connectors/vmware/packaging/centreon-plugin-virtualization-vmware-daemon.yaml @@ -39,6 +39,11 @@ contents: dst: "/usr/share/perl5/centreon/script/centreon_vmware.pm" packager: deb + - src: "../src/centreon/script/centreon_vmware_convert_config_file" + dst: "/usr/bin/centreon_vmware_convert_config_file" + file_info: + mode: 0755 + - src: "../src/centreon_vmware.pl" dst: "/usr/bin/centreon_vmware.pl" file_info: @@ -76,23 +81,25 @@ scripts: overrides: rpm: depends: - - perl-VMware-vSphere >= 5.1 - - perl(ZMQ::LibZMQ4) - - perl(ZMQ::Constants) - - perl(LWP::Protocol::https) + - perl(Crypt::OpenSSL::AES) - perl(IO::Socket::INET6) - perl(JSON::XS) + - perl(LWP::Protocol::https) + - perl(ZMQ::Constants) + - perl(ZMQ::LibZMQ4) - perl-Net-Curl + - perl-VMware-vSphere >= 5.1 deb: depends: - - perl-vmware-vsphere - - libzmq-libzmq4-perl - - libzmq-constants-perl - - liblwp-protocol-https-perl + - libcrypt-openssl-aes-perl - libio-socket-inet6-perl - libjson-xs-perl + - liblwp-protocol-https-perl - libnet-curl-perl - libtext-template-perl + - libzmq-constants-perl + - libzmq-libzmq4-perl + - perl-vmware-vsphere rpm: signature: diff --git a/connectors/vmware/packaging/config/centreon_vmware-conf.json b/connectors/vmware/packaging/config/centreon_vmware-conf.json new file mode 100644 index 0000000000..44ae1417b4 --- /dev/null +++ b/connectors/vmware/packaging/config/centreon_vmware-conf.json @@ -0,0 +1,28 @@ +{ + "bind": "*", + "case_insensitive": 0, + "credstore_file": "/root/.vmware/credstore/vicredentials.xml", + "credstore_use": 0, + "dynamic_timeout_kill": 86400, + "ipc_file": "/tmp/centreon_vmware/routing.ipc", + "port": 5700, + "refresh_keeper_session": 15, + "timeout": 60, + "timeout_kill": 30, + "timeout_vsphere": 60, + "vsan_sdk_path": "/usr/local/share/perl5/VMware", + "vsphere_server": [ + { + "name": "additional", + "password": "XXXXXX", + "url": "https://vcenter2/sdk", + "username": "XXXXXX" + }, + { + "name": "default", + "password": "XXXXXX", + "url": "https://vcenter/sdk", + "username": "XXXXXX" + } + ] +} diff --git a/connectors/vmware/packaging/config/centreon_vmware-conf.pm b/connectors/vmware/packaging/config/centreon_vmware-conf.pm index f8ffae8cd5..33dd113745 100644 --- a/connectors/vmware/packaging/config/centreon_vmware-conf.pm +++ b/connectors/vmware/packaging/config/centreon_vmware-conf.pm @@ -1,10 +1,28 @@ - %centreon_vmware_config = ( - vsphere_server => { - 'default' => {'url' => 'https://vcenter/sdk', - 'username' => 'XXXXXX', - 'password' => 'XXXXXX'} - } + vsphere_server => { + 'default' => { + 'url' => 'https://vcenter/sdk', + 'username' => 'XXXXXX', + 'password' => 'XXXXXX' + }, + 'additional' => { + 'url' => 'https://vcenter2/sdk', + 'username' => 'XXXXXX', + 'password' => 'XXXXXX' + } + }, + credstore_use => 0, + credstore_file => '/root/.vmware/credstore/vicredentials.xml', + timeout_vsphere => 60, + timeout => 60, + timeout_kill => 30, + dynamic_timeout_kill => 86400, + refresh_keeper_session => 15, + bind => '*', + port => 5700, + ipc_file => '/tmp/centreon_vmware/routing.ipc', + case_insensitive => 0, + vsan_sdk_path => '/usr/local/share/perl5/VMware' ); 1; diff --git a/connectors/vmware/packaging/debian/centreon_vmware-systemd b/connectors/vmware/packaging/debian/centreon_vmware-systemd index c0660a4303..519ed51de5 100644 --- a/connectors/vmware/packaging/debian/centreon_vmware-systemd +++ b/connectors/vmware/packaging/debian/centreon_vmware-systemd @@ -1,4 +1,4 @@ -## Copyright 2016 Centreon +# Copyright 2024 Centreon ## ## Licensed under the Apache License, Version 2.0 (the "License"); ## you may not use this file except in compliance with the License. diff --git a/connectors/vmware/packaging/redhat/centreon_vmware-systemd b/connectors/vmware/packaging/redhat/centreon_vmware-systemd index c0660a4303..519ed51de5 100644 --- a/connectors/vmware/packaging/redhat/centreon_vmware-systemd +++ b/connectors/vmware/packaging/redhat/centreon_vmware-systemd @@ -1,4 +1,4 @@ -## Copyright 2016 Centreon +# Copyright 2024 Centreon ## ## Licensed under the Apache License, Version 2.0 (the "License"); ## you may not use this file except in compliance with the License. diff --git a/connectors/vmware/src/centreon/script/centreon_vmware.pm b/connectors/vmware/src/centreon/script/centreon_vmware.pm index f491dea1e3..f0a7b5740b 100644 --- a/connectors/vmware/src/centreon/script/centreon_vmware.pm +++ b/connectors/vmware/src/centreon/script/centreon_vmware.pm @@ -1,15 +1,15 @@ #!/usr/bin/perl -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for # service performance. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -32,6 +32,7 @@ use JSON::XS; use centreon::vmware::script; use centreon::vmware::common; use centreon::vmware::connector; +use centreon::script::centreonvault; my ($centreon_vmware, $frontend); @@ -52,9 +53,8 @@ BEGIN { } use base qw(centreon::vmware::script); -use vars qw(%centreon_vmware_config); -my $VERSION = '3.2.6'; +my $VERSION = '3.3.0'; my %handlers = (TERM => {}, HUP => {}, CHLD => {}); my @load_modules = ( @@ -108,43 +108,90 @@ sub new { bless $self, $class; $self->add_options( - 'config-extra=s' => \$self->{opt_extra} + 'config-extra=s' => \$self->{opt_extra}, + 'check-config' => \$self->{opt_check_config}, + 'vault-config=s' => \$self->{opt_vault_config} ); - %{$self->{centreon_vmware_default_config}} = - ( - credstore_use => 0, - credstore_file => '/root/.vmware/credstore/vicredentials.xml', - timeout_vsphere => 60, - timeout => 60, - timeout_kill => 30, - dynamic_timeout_kill => 86400, - refresh_keeper_session => 15, - bind => '*', - port => 5700, - ipc_file => '/tmp/centreon_vmware/routing.ipc', - case_insensitive => 0, - vsphere_server => { - #'default' => {'url' => 'https://XXXXXX/sdk', - # 'username' => 'XXXXX', - # 'password' => 'XXXXX'}, - #'testvc' => {'url' => 'https://XXXXXX/sdk', - # 'username' => 'XXXXX', - # 'password' => 'XXXXXX'} - }, - vsan_sdk_path => '/usr/local/share/perl5/VMware' - ); + %{$self->{centreon_vmware_default_config}} = ( + credstore_use => 0, + credstore_file => '/root/.vmware/credstore/vicredentials.xml', + timeout_vsphere => 60, + timeout => 60, + timeout_kill => 30, + dynamic_timeout_kill => 86400, + refresh_keeper_session => 15, + bind => '*', + port => 5700, + ipc_file => '/tmp/centreon_vmware/routing.ipc', + case_insensitive => 0, + vsphere_server => { + #'default' => {'url' => 'https://XXXXXX/sdk', + # 'username' => 'XXXXX', + # 'password' => 'XXXXX'}, + #'testvc' => {'url' => 'https://XXXXXX/sdk', + # 'username' => 'XXXXX', + # 'password' => 'XXXXXX'} + }, + vsan_sdk_path => '/usr/local/share/perl5/VMware' + ); - $self->{return_child} = {}; - $self->{stop} = 0; - $self->{childs_vpshere_pid} = {}; - $self->{counter_stats} = {}; - $self->{whoaim} = undef; # to know which vsphere to connect - $self->{modules_registry} = {}; + $self->{return_child} = {}; + $self->{stop} = 0; + $self->{children_vpshere_pid} = {}; + $self->{counter_stats} = {}; + $self->{whoaim} = undef; # to know which vsphere to connect + $self->{modules_registry} = {}; + $self->{vault} = {}; return $self; } +# read_configuration: reads the configuration file given as parameter +sub read_configuration { + my ($self, %options) = @_; + + $self->{logger}->writeLogDebug("Reading configuration from " . $self->{opt_extra}); + my $centreon_vmware_config_from_json; + + if ($self->{opt_extra} =~ /.*\.pm$/i) { + our %centreon_vmware_config; + # loads the .pm configuration (compile time) + require($self->{opt_extra}) or $self->{logger}->writeLogFatal("There has been an error while requiring file " . $self->{opt_extra}); + # Concatenation of the default parameters with the ones from the config file + $self->{centreon_vmware_config} = {%{$self->{centreon_vmware_default_config}}, %centreon_vmware_config}; + } elsif ($self->{opt_extra} =~ /.*\.json$/i) { + $centreon_vmware_config_from_json = centreon::vmware::common::parse_json_file( 'json_file' => $self->{opt_extra} ); + if (defined($centreon_vmware_config_from_json->{error_message})) { + $self->{logger}->writeLogFatal("Error while parsing " . $self->{opt_extra} . ": " . $centreon_vmware_config_from_json->{error_message}); + } + # The structure of the JSON is different from the .pm file. The code was designed to work with the latter, so + # the structure of $self->{centreon_vmware_config} must be adapted after parsing to avoid a massive refactoring of + # the whole program. The wanted structure is a key-object dictionary instead of an array of objects. + my %vsphere_server_dict = map { lc($_->{name}) => $_ } @{$centreon_vmware_config_from_json->{vsphere_server}}; + # Replace the "raw" structure from the JSON file. + $centreon_vmware_config_from_json->{vsphere_server} = \%vsphere_server_dict; + # Concatenation of the default parameters with the ones from the config file + $self->{centreon_vmware_config} = {%{$self->{centreon_vmware_default_config}}, %$centreon_vmware_config_from_json}; + } else { + $self->{logger}->writeLogFatal($self->{opt_extra} . " does not seem to be in a supported format (supported: .pm or .json)."); + } +} + +# report_config_check: writes a report of what has been loaded from the configuration file +sub report_config_check { + my ($self, %options) = @_; + + my $nb_server_entries = scalar(keys %{$self->{centreon_vmware_config}->{vsphere_server}}); + my $entry_spelling = ($nb_server_entries > 1) ? 'entries' : 'entry'; + + my $report = "Configuration file " . $self->{opt_extra} . " has been read correctly and has " + . $nb_server_entries . " " . $entry_spelling . "."; + + $self->{logger}->writeLogInfo($report); + return $report; +} + sub init { my $self = shift; $self->SUPER::init(); @@ -152,22 +199,31 @@ sub init { # redefine to avoid out when we try modules $SIG{__DIE__} = undef; - if (!defined($self->{opt_extra})) { + if ( ! defined($self->{opt_extra}) ) { $self->{opt_extra} = "/etc/centreon/centreon_vmware.pm"; } - if (-f $self->{opt_extra}) { - require $self->{opt_extra}; - } else { - $self->{logger}->writeLogInfo("Can't find extra config file $self->{opt_extra}"); + + if ( ! -f $self->{opt_extra} ) { + $self->{logger}->writeLogFatal( + "Can't find config file '$self->{opt_extra}'. If a migration from " + . "/etc/centreon/centreon_vmware.pm to /etc/centreon/centreon_vmware.json is required, you may " + . "centreon_vmware_convert_config_file /etc/centreon/centreon_vmware.pm > /etc/centreon/centreon_vmware.json" + ); } - $self->{centreon_vmware_config} = {%{$self->{centreon_vmware_default_config}}, %centreon_vmware_config}; + $self->read_configuration(filename => $self->{opt_extra}); - foreach my $name (keys %{$self->{centreon_vmware_config}->{vsphere_server}}) { - my $iname = lc($name); - $self->{centreon_vmware_config}->{vsphere_server}->{$iname} = delete $self->{centreon_vmware_config}->{vsphere_server}->{$name}; + if (! defined($self->{opt_vault_config}) || $self->{opt_vault_config} eq '') { + $self->{opt_vault_config} = '/var/lib/centreon/vault/vault.json'; + $self->{logger}->writeLogInfo("No vault config file given. Applying default: " . $self->{opt_vault_config}); } + $self->{logger}->writeLogDebug("Vault config file " . $self->{opt_vault_config} . " exists. Creating the vault object."); + $self->{vault} = centreon::script::centreonvault->new( + 'logger' => $self->{logger}, + 'config_file' => $self->{opt_vault_config} + ); + ##### Load modules $self->load_module(@load_modules); @@ -194,23 +250,42 @@ sub init { $self->{logger}->writeLogError("Credstore init failed: $@"); exit(1); } + } else { + $self->{logger}->writeLogDebug("Not using credstore."); + $self->{centreon_vmware_config}->{credstore_use} = 0; + } - ### - # Get password - ### - foreach (keys %{$self->{centreon_vmware_config}->{vsphere_server}}) { - my $lpassword = VMware::VICredStore::get_password(server => $_, username => $self->{centreon_vmware_config}->{vsphere_server}->{$_}->{username}); - if (!defined($lpassword)) { - $self->{logger}->writeLogError("Can't get password for couple host='" . $_ . "', username='" . $self->{centreon_vmware_config}->{vsphere_server}->{$_}->{username} . "' : $@"); - exit(1); + # Get passwords + foreach my $server (keys %{$self->{centreon_vmware_config}->{vsphere_server}}) { + + # If appropriate, get the password from the vmware credentials store + if ($self->{centreon_vmware_config}->{credstore_use} == 1) { + $self->{centreon_vmware_config}->{vsphere_server}->{$server}->{password} = VMware::VICredStore::get_password( + server => $server, + username => $self->{centreon_vmware_config}->{vsphere_server}->{$server}->{username} + ); + if (!defined($self->{centreon_vmware_config}->{vsphere_server}->{$server}->{password})) { + $self->{logger}->writeLogFatal("Can't get password for couple host='" . $server . "', username='" . $self->{centreon_vmware_config}->{vsphere_server}->{$server}->{username} . "' : $@"); + } + } else { + # we let the vault object handle the secrets + for my $key ('username', 'password') { + $self->{logger}->writeLogDebug("Retrieving secret: $key"); + $self->{centreon_vmware_config}->{vsphere_server}->{$server}->{$key} + = $self->{vault}->get_secret($self->{centreon_vmware_config}->{vsphere_server}->{$server}->{$key}); } - $self->{centreon_vmware_config}->{vsphere_server}->{$_}->{password} = $lpassword; } } + my $config_check_report = $self->report_config_check(); + if (defined($self->{opt_check_config})) { + print($config_check_report . " Exiting now."); + exit(0); + } $self->set_signal_handlers; } + sub set_signal_handlers { my $self = shift; @@ -245,15 +320,15 @@ sub handle_TERM { $self->{logger}->writeLogInfo("$$ Receiving order to stop..."); $self->{stop} = 1; - foreach (keys %{$self->{childs_vpshere_pid}}) { + foreach (keys %{$self->{children_vpshere_pid}}) { kill('TERM', $_); - $self->{logger}->writeLogInfo("Send -TERM signal to '" . $self->{childs_vpshere_pid}->{$_} . "' process.."); + $self->{logger}->writeLogInfo("Send -TERM signal to '" . $self->{children_vpshere_pid}->{$_} . "' process.."); } } sub handle_HUP { my $self = shift; - $self->{logger}->writeLogInfo("$$ Receiving order to reload..."); + $self->{logger}->writeLogInfo("$$ Receiving order to reload but it has not been implemented yet..."); # TODO } @@ -276,7 +351,7 @@ sub load_module { require $file; my $obj = $_->new(logger => $self->{logger}, case_insensitive => $self->{centreon_vmware_config}->{case_insensitive}); $self->{modules_registry}->{ $obj->getCommandName() } = $obj; - } + } } sub verify_child_vsphere { @@ -286,24 +361,24 @@ sub verify_child_vsphere { foreach (keys %{$self->{return_child}}) { delete $self->{return_child}->{$_}; - if (defined($self->{childs_vpshere_pid}->{$_})) { + if (defined($self->{children_vpshere_pid}->{$_})) { if ($self->{stop} == 0) { - my $name = $self->{childs_vpshere_pid}->{$_}; - $self->{logger}->writeLogError("Sub-process for '" . $self->{childs_vpshere_pid}->{$_} . "'???!! we relaunch it!!!"); + my $name = $self->{children_vpshere_pid}->{$_}; + $self->{logger}->writeLogError("Sub-process for '" . $self->{children_vpshere_pid}->{$_} . "'???!! we relaunch it!!!"); - if ($self->{centreon_vmware_config}->{vsphere_server}->{$self->{childs_vpshere_pid}->{$_}}->{dynamic} == 0) { + if ($self->{centreon_vmware_config}->{vsphere_server}->{$self->{children_vpshere_pid}->{$_}}->{dynamic} == 0) { # Can have the same pid (so we delete before) - delete $self->{childs_vpshere_pid}->{$_}; + delete $self->{children_vpshere_pid}->{$_}; $self->create_vsphere_child(vsphere_name => $name, dynamic => 0); } else { - $self->{logger}->writeLogError("Sub-process for '" . $self->{childs_vpshere_pid}->{$_} . "' is dead. But we don't relaunch it (dynamic sub-process)"); - delete $self->{centreon_vmware_config}->{vsphere_server}->{$self->{childs_vpshere_pid}->{$_}}; - delete $self->{childs_vpshere_pid}->{$_}; + $self->{logger}->writeLogError("Sub-process for '" . $self->{children_vpshere_pid}->{$_} . "' is dead. But we don't relaunch it (dynamic sub-process)"); + delete $self->{centreon_vmware_config}->{vsphere_server}->{$self->{children_vpshere_pid}->{$_}}; + delete $self->{children_vpshere_pid}->{$_}; } } else { - $self->{logger}->writeLogInfo("Sub-process for '" . $self->{childs_vpshere_pid}->{$_} . "' dead ???!!"); - $self->{centreon_vmware_config}->{vsphere_server}->{$self->{childs_vpshere_pid}->{$_}}->{running} = 0; - delete $self->{childs_vpshere_pid}->{$_}; + $self->{logger}->writeLogInfo("Sub-process for '" . $self->{children_vpshere_pid}->{$_} . "' dead ???!!"); + $self->{centreon_vmware_config}->{vsphere_server}->{$self->{children_vpshere_pid}->{$_}}->{running} = 0; + delete $self->{children_vpshere_pid}->{$_}; } } } @@ -317,7 +392,7 @@ sub verify_child_vsphere { time() - $self->{centreon_vmware_config}->{dynamic_timeout_kill} > $self->{centreon_vmware_config}->{vsphere_server}->{$_}->{last_request}) { $self->{logger}->writeLogError("Send TERM signal for process '" . $_ . "': too many times without requests. We clean it."); kill('TERM', $self->{centreon_vmware_config}->{vsphere_server}->{$_}->{pid}); - } + } } return $count; @@ -329,11 +404,11 @@ sub waiting_ready { return 1 if ($self->{centreon_vmware_config}->{vsphere_server}->{$options{container}}->{ready} == 1); # Need to check if we need to relaunch (maybe it can have a problem) - $self->check_childs(); + $self->check_children(); my $time = time(); # We wait 10 seconds - while ($self->{centreon_vmware_config}->{vsphere_server}->{$options{container}}->{ready} == 0 && + while ($self->{centreon_vmware_config}->{vsphere_server}->{$options{container}}->{ready} == 0 && time() - $time < 10) { zmq_poll($self->{poll}, 5000); } @@ -368,7 +443,7 @@ sub request_dynamic { }; $self->{logger}->writeLogError( sprintf( - "Dynamic creation: identity = %s [address: %s] [username: %s] [password: %s]", + "Dynamic creation: identity = %s [address: %s] [username: %s] [password: %s]", $container, $options{result}->{vsphere_address}, $options{result}->{vsphere_username}, $options{result}->{vsphere_password} ) ); @@ -436,7 +511,7 @@ sub request { return if ($self->waiting_ready( container => $result->{container}, manager => $options{manager}, identity => $options{identity}) == 0); - + $self->{counter_stats}->{ $result->{container} }++; my $flag = ZMQ_NOBLOCK | ZMQ_SNDMORE; @@ -465,7 +540,7 @@ sub repserver { my $identity = 'client-' . pack('H*', $1); centreon::vmware::common::response( - token => 'RESPSERVER', endpoint => $frontend, + token => 'RESPSERVER', endpoint => $frontend, identity => $identity, force_response => $options{data} ); } @@ -498,17 +573,18 @@ sub router_event { } centreon::vmware::common::free_response(); - my $more = zmq_getsockopt($frontend, ZMQ_RCVMORE); + my $more = zmq_getsockopt($frontend, ZMQ_RCVMORE); last unless $more; } } -sub check_childs { +sub check_children { my ($self, %options) = @_; my $count = $self->verify_child_vsphere(); + $self->{logger}->writeLogDebug("$count child(ren) found. Stop ? : " . $self->{stop}); if ($self->{stop} == 1) { - # No childs + # No children if ($count == 0) { $self->{logger}->writeLogInfo("Quit main process"); zmq_close($frontend); @@ -516,7 +592,7 @@ sub check_childs { } } } - + sub create_vsphere_child { my ($self, %options) = @_; @@ -527,7 +603,7 @@ sub create_vsphere_child { my $child_vpshere_pid = fork(); if (!defined($child_vpshere_pid)) { - $self->{logger}->writeLogError("Cannot fork for '" . $options{vsphere_name} . "': $!"); + $self->{logger}->writeLogError("Cannot fork for '" . $options{vsphere_name} . "': $!"); return -1; } if ($child_vpshere_pid == 0) { @@ -541,10 +617,11 @@ sub create_vsphere_child { $connector->run(); exit(0); } - $self->{childs_vpshere_pid}->{$child_vpshere_pid} = $self->{whoaim}; + $self->{children_vpshere_pid}->{$child_vpshere_pid} = $self->{whoaim}; + $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{running} = 1; $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{dynamic} = $options{dynamic}; - $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{pid} = $child_vpshere_pid; + $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{pid} = $child_vpshere_pid; } sub bind_ipc { @@ -577,21 +654,21 @@ sub run { my $context = zmq_init(); $frontend = zmq_socket($context, ZMQ_ROUTER); if (!defined($frontend)) { - $centreon_vmware->{logger}->writeLogError("Can't setup server: $!"); - exit(1); + $centreon_vmware->{logger}->writeLogFatal("Can't setup server: $!"); } - zmq_setsockopt($frontend, ZMQ_LINGER, 0); # we discard + zmq_setsockopt($frontend, ZMQ_LINGER, 0); # we discard zmq_bind($frontend, 'tcp://' . $centreon_vmware->{centreon_vmware_config}->{bind} . ':' . $centreon_vmware->{centreon_vmware_config}->{port}); $centreon_vmware->bind_ipc(socket => $frontend, ipc_file => $centreon_vmware->{centreon_vmware_config}->{ipc_file}); foreach (keys %{$centreon_vmware->{centreon_vmware_config}->{vsphere_server}}) { $centreon_vmware->{counter_stats}->{$_} = 0; + $centreon_vmware->{logger}->writeLogDebug("Creating vSphere child for $_"); $centreon_vmware->create_vsphere_child(vsphere_name => $_, dynamic => 0); } $centreon_vmware->{logger}->writeLogInfo("[Server accepting clients]"); - + # Initialize poll set $centreon_vmware->{poll} = [ { @@ -600,10 +677,10 @@ sub run { callback => \&router_event } ]; - + $centreon_vmware->{logger}->writeLogDebug("Global loop starting..."); # Switch messages between sockets while (1) { - $centreon_vmware->check_childs(); + $centreon_vmware->check_children(); zmq_poll($centreon_vmware->{poll}, 5000); } } @@ -611,3 +688,4 @@ sub run { 1; __END__ + diff --git a/connectors/vmware/src/centreon/script/centreon_vmware_convert_config_file b/connectors/vmware/src/centreon/script/centreon_vmware_convert_config_file new file mode 100644 index 0000000000..1c9a599167 --- /dev/null +++ b/connectors/vmware/src/centreon/script/centreon_vmware_convert_config_file @@ -0,0 +1,55 @@ +#!/usr/bin/perl +# Copyright 2024 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +use strict; +use warnings FATAL => 'all'; +use JSON::XS; +use Data::Dumper; + +die "Usage: centreon_vmware_convert_config_file /etc/centreon/centreon_vmware.pm > /etc/centreon/centreon_vmware.json" if (scalar(@ARGV) < 1); +my $config_file = $ARGV[0]; + +die "Config file $config_file does not exist.\n" if (! -f $config_file); + +our %centreon_vmware_config; +require($config_file) or die "Error while loading file $config_file"; + +my $new_config_structure = { + vsphere_server => [] +}; + + +for my $config_entry_key (keys %centreon_vmware_config){ + if ($config_entry_key eq 'vsphere_server') { + for my $server_config_entry_key (keys %{$centreon_vmware_config{vsphere_server}}) { + my $config_entry_content = $centreon_vmware_config{vsphere_server}->{$server_config_entry_key}; + $config_entry_content->{name} = $server_config_entry_key; + push @{$new_config_structure->{vsphere_server}}, $config_entry_content; + } + } else { + $new_config_structure->{$config_entry_key} = $centreon_vmware_config{$config_entry_key}; + } + + +} + +my $new_json_config = encode_json($new_config_structure) or die "Unable to convert this object to JSON:\n" . Dumper($new_config_structure); +print($new_json_config); + +exit(0); diff --git a/connectors/vmware/src/centreon/script/centreonvault.pm b/connectors/vmware/src/centreon/script/centreonvault.pm new file mode 100644 index 0000000000..7acc97e5e3 --- /dev/null +++ b/connectors/vmware/src/centreon/script/centreonvault.pm @@ -0,0 +1,382 @@ +# +# Copyright 2024 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::script::centreonvault; + +use strict; +use warnings; +use JSON::XS; +use MIME::Base64; +use Crypt::OpenSSL::AES; +use Net::Curl::Easy qw(:constants); +use centreon::vmware::common; + +my $VAULT_PATH_REGEX = qr/^secret::hashicorp_vault::([^:]+)::(.+)$/; + +sub new { + my ($class, %options) = @_; + my $self = bless \%options, $class; + # mandatory options: + # - logger: logger object + # - config_file: path of a JSON vault config file + + $self->{enabled} = 1; + $self->{crypted_credentials} = 1; + + if ( !$self->init() ) { + $self->{enabled} = 0; + $self->{logger}->writeLogError("An error occurred in init() method. Centreonvault cannot be used."); + } + return $self; +} + + +sub init { + my ($self, %options) = @_; + + $self->check_options() or return undef; + + # check if the following information is available + $self->{logger}->writeLogDebug("Reading Vault configuration from file " . $self->{config_file} . "."); + $self->{vault_config} = centreon::vmware::common::parse_json_file( 'json_file' => $self->{config_file} ); + if (defined($self->{vault_config}->{error_message})) { + $self->{logger}->writeLogError("Error while parsing " . $self->{config_file} . ": " + . $self->{vault_config}->{error_message}); + return undef; + } + + $self->check_configuration() or return undef; + + $self->{logger}->writeLogDebug("Vault configuration read. Name: " . $self->{vault_config}->{name} + . ". Url: " . $self->{vault_config}->{url} . "."); + + # Create the Curl object, it will be used several times + $self->{curl_easy} = Net::Curl::Easy->new(); + $self->{curl_easy}->setopt( CURLOPT_USERAGENT, "Centreon VMware daemon's centreonvault.pm"); + + return 1; +} + +sub check_options { + my ($self, %options) = @_; + + if ( !defined($self->{logger}) ) { + die "FATAL: No logger given to the constructor. Centreonvault cannot be used."; + } + if ( !defined($self->{config_file})) { + $self->{logger}->writeLogError("No config file given to the constructor. Centreonvault cannot be used."); + return undef; + } + if ( ! -f $self->{config_file} ) { + $self->{logger}->writeLogError("The given configuration file " . $self->{config_file} + . " does not exist. Centreonvault cannot be used."); + return undef; + } + + return 1; +} + +sub check_configuration { + my ($self, %options) = @_; + + if ( !defined($self->{vault_config}->{url}) || $self->{vault_config}->{url} eq '') { + $self->{logger}->writeLogInfo("Vault url is missing from configuration."); + $self->{vault_config}->{url} = '127.0.0.1'; + } + if ( !defined($self->{vault_config}->{port}) || $self->{vault_config}->{port} eq '') { + $self->{logger}->writeLogInfo("Vault port is missing from configuration."); + $self->{vault_config}->{port} = '443'; + } + + # Normally, the role_id and secret_id data are encrypted using AES wit the following information: + # firstKey = APP_SECRET (environment variable) + # secondKey = 'salt' (hashing) key given by vault.json configuration file + # both are base64 encoded + if ( !defined($self->{vault_config}->{salt}) || $self->{vault_config}->{salt} eq '') { + $self->{logger}->writeLogError("Vault environment does not seem complete: 'salt' attribute missing from " + . $self->{config_file} + . ". 'role_id' and 'secret_id' won't be decrypted, so they'll be used as they're stored in the vault config file."); + $self->{crypted_credentials} = 0; + $self->{hash_key} = ''; + } else { + $self->{hash_key} = $self->{vault_config}->{salt}; # key for sha3-512 hmac + } + + if ( !defined($ENV{'APP_SECRET'}) || $ENV{'APP_SECRET'} eq '' ) { + $self->{logger}->writeLogError("Vault environment does not seem complete. 'APP_SECRET' environment variable missing." + . " 'role_id' and 'secret_id' won't be decrypted, so they'll be used as they're stored in the vault config file."); + $self->{crypted_credentials} = 0; + $self->{encryption_key} = ''; + } else { + $self->{encryption_key} = $ENV{'APP_SECRET'}; # key for aes-256-cbc + } + + + + + return 1; +} + +sub extract_and_decrypt { + my ($self, %options) = @_; + + my $input = decode_base64($options{data}); + $self->{logger}->writeLogDebug("data to extract and decrypt: '" . $options{data} . "'"); + + # with AES-256, the IV length must 16 bytes + my $iv_length = 16; + # extract the IV, the hashed data, the encrypted data + my $iv = substr($input, 0, $iv_length); # initialization vector + my $hashed_data = substr($input, $iv_length, 64); # hmac of the original data, for integrity control + my $encrypted_data = substr($input, $iv_length + 64); # data to decrypt + + # create the AES object + $self->{logger}->writeLogDebug( + "Creating the AES decryption object for initialization vector (IV) of length " + . length($iv) . "B, key of length " . length($self->{encryption_key}) . "B." + ); + my $cipher; + eval { + $cipher = Crypt::OpenSSL::AES->new( + decode_base64( $self->{encryption_key} ), + { + 'cipher' => 'AES-256-CBC', + 'iv' => $iv, + 'padding' => 1 + } + ); + }; + if ($@) { + $self->{logger}->writeLogError("There was an error while creating the AES object: " . $@); + return undef; + } + + # decrypt + $self->{logger}->writeLogDebug("Decrypting the data of length " . length($encrypted_data) . "B."); + my $decrypted_data; + eval {$decrypted_data = $cipher->decrypt($encrypted_data);}; + if ($@) { + $self->{logger}->writeLogError("There was an error while decrypting one of the AES-encrypted data: " . $@); + return undef; + } + + return $decrypted_data; +} + +sub authenticate { + my ($self) = @_; + + # initial value: assuming the role and secret id might not be encrypted + my $role_id = $self->{vault_config}->{role_id}; + my $secret_id = $self->{vault_config}->{secret_id}; + + + if ($self->{crypted_credentials}) { + # Then decrypt using https://github.com/perl-openssl/perl-Crypt-OpenSSL-AES + # keep the decrypted data in local variables so that they stay in memory for as little time as possible + $self->{logger}->writeLogDebug("Decrypting the credentials needed to authenticate to the vault."); + $role_id = $self->extract_and_decrypt( ('data' => $role_id )); + $secret_id = $self->extract_and_decrypt( ('data' => $secret_id )); + $self->{logger}->writeLogDebug("role_id and secret_id have been decrypted."); + } else { + $self->{logger}->writeLogDebug("role_id and secret_id are not crypted"); + } + + + # Authenticate to get the token + my $url = "https://" . $self->{vault_config}->{url} . ":" . $self->{vault_config}->{port} . "/v1/auth/approle/login"; + $self->{logger}->writeLogDebug("Authenticating to the vault server at URL: $url"); + $self->{curl_easy}->setopt( CURLOPT_URL, $url ); + + my $post_data = "role_id=$role_id&secret_id=$secret_id"; + my $auth_result_json; + # to get more details (in STDERR) + #$self->{curl_easy}->setopt(CURLOPT_VERBOSE, 1); + $self->{curl_easy}->setopt(CURLOPT_POST, 1); + $self->{curl_easy}->setopt(CURLOPT_POSTFIELDS, $post_data); + $self->{curl_easy}->setopt(CURLOPT_POSTFIELDSIZE, length($post_data)); + $self->{curl_easy}->setopt(CURLOPT_WRITEDATA(), \$auth_result_json); + + eval { + $self->{curl_easy}->perform(); + }; + if ($@) { + $self->{logger}->writeLogError("Error while authenticating to the vault: " . $@); + return undef; + } + + $self->{logger}->writeLogInfo("Authentication to the vault passed." ); + + my $auth_result_obj = centreon::vmware::common::transform_json_to_object($auth_result_json); + if (defined($auth_result_obj->{error_message})) { + $self->{logger}->writeLogError("Error while decoding JSON '$auth_result_json'. Message: " + . $auth_result_obj->{error_message}); + return undef; + } + + # store the token (.auth.client_token) and its expiration date (current date + .lease_duration) + my $expiration_epoch = -1; + my $lease_duration = $auth_result_obj->{auth}->{lease_duration}; + if ( defined($lease_duration) + && $lease_duration =~ /\d+/ + && $lease_duration > 0 ) { + $expiration_epoch = time() + $lease_duration; + } + $self->{auth} = { + 'token' => $auth_result_obj->{auth}->{client_token}, + 'expiration_epoch' => $expiration_epoch + }; + + $self->{logger}->writeLogInfo("Authenticating worked. Token valid until " + . localtime($self->{auth}->{expiration_epoch})); + + return 1; +} + +sub is_token_still_valid { + my ($self) = @_; + if ( + !defined($self->{auth}) + || !defined($self->{auth}->{token}) + || $self->{auth}->{token} eq '' + || $self->{auth}->{expiration_epoch} <= time() + ) { + $self->{logger}->writeLogInfo("The token has expired or is invalid."); + return undef; + } + $self->{logger}->writeLogDebug("The token is still valid."); + return 1; +} + +sub get_secret { + my ($self, $secret) = @_; + + # if vault not enabled, return the secret unchanged + return $secret if ( ! $self->{enabled}); + + my ($secret_path, $secret_name) = $secret =~ $VAULT_PATH_REGEX; + if (!defined($secret_path) || !defined($secret_name)) { + $self->{logger}->writeLogInfo("A string given to get_secret does not look like a secret. Using it as a plain text credential?"); + return $secret; + } + $self->{logger}->writeLogDebug("Secret path: $secret_path - Secret name: $secret_name"); + + if (!defined($self->{auth}) || !$self->is_token_still_valid() ) { + $self->authenticate() or return $secret; + } + + # prepare the GET statement + my $get_result_json; + my $url = "https://" . $self->{vault_config}->{url} . ":" . $self->{vault_config}->{port} . "/v1/" . $secret_path; + $self->{logger}->writeLogDebug("Requesting URL: $url"); + + #$self->{curl_easy}->setopt( CURLOPT_VERBOSE, 1 ); + $self->{curl_easy}->setopt( CURLOPT_URL, $url ); + $self->{curl_easy}->setopt( CURLOPT_POST, 0 ); + $self->{curl_easy}->setopt( CURLOPT_WRITEDATA(), \$get_result_json ); + $self->{curl_easy}->setopt( CURLOPT_HTTPHEADER(), ["X-Vault-Token: " . $self->{auth}->{token}]); + + eval { + $self->{curl_easy}->perform(); + }; + if ($@) { + $self->{logger}->writeLogError("Error while getting a secret from the vault: " . $@); + return $secret; + } + + $self->{logger}->writeLogDebug("Request passed."); + # request_id + + # the result is a json string, convert it into an object + my $get_result_obj = centreon::vmware::common::transform_json_to_object($get_result_json); + if (defined($get_result_obj->{error_message})) { + $self->{logger}->writeLogError("Error while decoding JSON '$get_result_json'. Message: " + . $get_result_obj->{error_message}); + return $secret; + } + $self->{logger}->writeLogDebug("Request id is " . $get_result_obj->{request_id}); + + # .data.data will contain the stored macros + if ( !defined($get_result_obj->{data}) + || !defined($get_result_obj->{data}->{data}) + || !defined($get_result_obj->{data}->{data}->{$secret_name}) ) { + $self->{logger}->writeLogError("Could not get secret '$secret_name' from path '$secret_path' from the vault. Enable debug for more details."); + $self->{logger}->writeLogDebug("Response: " . $get_result_json); + return $secret; + } + $self->{logger}->writeLogInfo("Secret '$secret_name' from path '$secret_path' retrieved from the vault."); + return $get_result_obj->{data}->{data}->{$secret_name}; +} + +1; + +__END__ + +=head1 NAME + +Centreon Vault password manager + +=head1 SYNOPSIS + +Allows to retrieve secrets (usually username and password) from a Hashicorp vault compatible api given a config file as constructor. + + use centreon::vmware::logger; + use centreon::script::centreonvault; + my $vault = centreon::script::centreonvault->new( + ( + 'logger' => centreon::vmware::logger->new(), + 'config_file' => '/var/lib/centreon/vault/vault.json' + ) + ); + my $password = $vault->get_secret('secret::hashicorp_vault::mypath/to/mysecrets::password'); + +=head1 METHODS + +=head2 new(\%options) + +Constructor of the vault object. + +%options must provide: + +- logger: an object of the centreon::vmware::logger class. + +- config_file: full path and file name of the Centreon Vault JSON config file. + +The default config_file path should be '/var/lib/centreon/vault/vault.json'. +The expected file format for Centreon Vault is: + + { + "name": "hashicorp_vault", + "url": "vault-server.mydomain.com", + "salt": "", + "port": 443, + "root_path": "vmware_daemon", + "role_id": ")", + "secret_id": ")" + } + +=head2 get_secret($secret) + +Returns the secret stored in the Centreon Vault at the given path. +If the format of the secret does not match the regular expression +C +or in case of any failure in the process, the method will return the secret unchanged. + +=cut diff --git a/connectors/vmware/src/centreon/vmware/cisTags.pm b/connectors/vmware/src/centreon/vmware/cisTags.pm index 5d4656deb9..92b33b8901 100644 --- a/connectors/vmware/src/centreon/vmware/cisTags.pm +++ b/connectors/vmware/src/centreon/vmware/cisTags.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm b/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm index e9c779dc73..ca0a8a1c17 100644 --- a/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm +++ b/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm b/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm index 23588f642c..93316dfb7e 100644 --- a/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdbase.pm b/connectors/vmware/src/centreon/vmware/cmdbase.pm index 0725e93f99..ea13db9be1 100644 --- a/connectors/vmware/src/centreon/vmware/cmdbase.pm +++ b/connectors/vmware/src/centreon/vmware/cmdbase.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm b/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm index 75640d781d..3d062f1e43 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdcpucluster.pm b/connectors/vmware/src/centreon/vmware/cmdcpucluster.pm index ed4127e103..335c46d1c8 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcpucluster.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcpucluster.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm b/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm index 508289e343..7c832da318 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm b/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm index a8de655991..ac5547d266 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm b/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm index 97734b4943..e6b631f78f 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm b/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm index 974fc98c24..63e7c42e3d 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm index 27cb1fcdde..a8e07bcda3 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm index 965255d2c7..5ae69b9704 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm b/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm index c0e561b9cb..cfc7b6ae5e 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm index 1c38e06f0d..e0fb2345ba 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm b/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm index ddd6fb575e..04fd9f415f 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddevicevm.pm b/connectors/vmware/src/centreon/vmware/cmddevicevm.pm index 0584601f6b..574785a2df 100644 --- a/connectors/vmware/src/centreon/vmware/cmddevicevm.pm +++ b/connectors/vmware/src/centreon/vmware/cmddevicevm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmddiscovery.pm b/connectors/vmware/src/centreon/vmware/cmddiscovery.pm index 690641f665..94fb3acc81 100644 --- a/connectors/vmware/src/centreon/vmware/cmddiscovery.pm +++ b/connectors/vmware/src/centreon/vmware/cmddiscovery.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -162,19 +162,22 @@ sub run { push @$customValuesEsx, { key => $customFields->{ $_->{key} }, value => $_->{value} }; } } - $esx{type} = 'esx'; - $esx{name} = $esx->name; - $esx{os} = $esx->{'config.product.productLineId'} . ' ' . $esx->{'config.product.version'}; - $esx{hardware} = $esx->{'hardware.systemInfo.vendor'} . ' ' . $esx->{'hardware.systemInfo.model'}; - $esx{power_state} = $esx->{'runtime.powerState'}->val; - $esx{connection_state} = $esx->{'runtime.connectionState'}->val; - $esx{maintenance} = $esx->{'runtime.inMaintenanceMode'}; - $esx{datacenter} = $datacenter->name; - $esx{cluster} = $cluster->name; + + $esx{type} = 'esx'; + $esx{name} = $esx->name; + $esx{hardware} = $esx->{'hardware.systemInfo.vendor'} . ' ' . $esx->{'hardware.systemInfo.model'}; + $esx{power_state} = $esx->{'runtime.powerState'}->val; + $esx{connection_state} = $esx->{'runtime.connectionState'}->val; + $esx{maintenance} = $esx->{'runtime.inMaintenanceMode'}; + $esx{datacenter} = $datacenter->name; + $esx{cluster} = $cluster->name; $esx{custom_attributes} = $customValuesEsx; - $esx{tags} = []; - if (defined($tags)) { - $esx{tags} = $tags->{esx}->{ $esx->{mo_ref}->{value} } if (defined($tags->{esx}->{ $esx->{mo_ref}->{value} })); + $esx{tags} = []; + $esx{os} = defined($esx->{'config.product.productLineId'}) ? $esx->{'config.product.productLineId'} . ' ' : '' + . defined($esx->{'config.product.version'}) ? $esx->{'config.product.version'} : ''; + + if (defined($tags) and defined($tags->{esx}->{ $esx->{mo_ref}->{value} })) { + $esx{tags} = $tags->{esx}->{ $esx->{mo_ref}->{value} }; } foreach my $nic (@{$esx->{'config.virtualNicManagerInfo.netConfig'}}) { diff --git a/connectors/vmware/src/centreon/vmware/cmdgetmap.pm b/connectors/vmware/src/centreon/vmware/cmdgetmap.pm index c131dbef57..8198ab3aca 100644 --- a/connectors/vmware/src/centreon/vmware/cmdgetmap.pm +++ b/connectors/vmware/src/centreon/vmware/cmdgetmap.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm b/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm index 3b07712327..8d68a915d5 100644 --- a/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlicenses.pm b/connectors/vmware/src/centreon/vmware/cmdlicenses.pm index 2b90aa89c8..4a7d895304 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlicenses.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlicenses.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm b/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm index eabe415eb0..ea165341e3 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlistclusters.pm b/connectors/vmware/src/centreon/vmware/cmdlistclusters.pm index d9ab90e10f..f3a5891d9c 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistclusters.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistclusters.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm b/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm index a17c354684..f8905bc307 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm b/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm index 05a12c7b3e..20ea6449ba 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm b/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm index 8dd883f3b6..c6963e5097 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm b/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm index 6afae99511..80c3904f75 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdmemhost.pm b/connectors/vmware/src/centreon/vmware/cmdmemhost.pm index c7c72c80bd..07a72108c2 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmemhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmemhost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdmemvm.pm b/connectors/vmware/src/centreon/vmware/cmdmemvm.pm index 17e8aa7f54..cea1f2087d 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmemvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmemvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdnethost.pm b/connectors/vmware/src/centreon/vmware/cmdnethost.pm index 0312ba7fba..c4f69d6ae8 100644 --- a/connectors/vmware/src/centreon/vmware/cmdnethost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdnethost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdnetvm.pm b/connectors/vmware/src/centreon/vmware/cmdnetvm.pm index ab7442c6ba..16aa1b08ce 100644 --- a/connectors/vmware/src/centreon/vmware/cmdnetvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdnetvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdservicehost.pm b/connectors/vmware/src/centreon/vmware/cmdservicehost.pm index 0c50e7d2e1..e8f2b97a4c 100644 --- a/connectors/vmware/src/centreon/vmware/cmdservicehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdservicehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm b/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm index 14666f1aca..f50fa5a8b8 100644 --- a/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdstatuscluster.pm b/connectors/vmware/src/centreon/vmware/cmdstatuscluster.pm index 8437851302..2df794a9d9 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstatuscluster.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstatuscluster.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdstatushost.pm b/connectors/vmware/src/centreon/vmware/cmdstatushost.pm index c2094f67fe..cd3cc79354 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstatushost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstatushost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm b/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm index 0e9ecf2452..888ea12fcc 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdstoragehost.pm b/connectors/vmware/src/centreon/vmware/cmdstoragehost.pm index 1374410013..c1d2814769 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstoragehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstoragehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdswaphost.pm b/connectors/vmware/src/centreon/vmware/cmdswaphost.pm index b2fd7dbc40..28c27dc094 100644 --- a/connectors/vmware/src/centreon/vmware/cmdswaphost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdswaphost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdswapvm.pm b/connectors/vmware/src/centreon/vmware/cmdswapvm.pm index 2102040187..9394fde443 100644 --- a/connectors/vmware/src/centreon/vmware/cmdswapvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdswapvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm b/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm index 38c8a942ad..5f1ff1fda7 100644 --- a/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdtimehost.pm b/connectors/vmware/src/centreon/vmware/cmdtimehost.pm index c9559e9788..4ac7a17b2c 100644 --- a/connectors/vmware/src/centreon/vmware/cmdtimehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdtimehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm b/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm index 4679281713..7553399917 100644 --- a/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmduptimehost.pm b/connectors/vmware/src/centreon/vmware/cmduptimehost.pm index e19697fd24..7296b6ff8c 100644 --- a/connectors/vmware/src/centreon/vmware/cmduptimehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmduptimehost.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm b/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm index 2e51a0c55c..54ac7beac2 100644 --- a/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm +++ b/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/cmdvsanclusterusage.pm b/connectors/vmware/src/centreon/vmware/cmdvsanclusterusage.pm index ff298ab440..7c9738dcf4 100644 --- a/connectors/vmware/src/centreon/vmware/cmdvsanclusterusage.pm +++ b/connectors/vmware/src/centreon/vmware/cmdvsanclusterusage.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/common.pm b/connectors/vmware/src/centreon/vmware/common.pm index 2704a63f45..aaf1d8039f 100644 --- a/connectors/vmware/src/centreon/vmware/common.pm +++ b/connectors/vmware/src/centreon/vmware/common.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -25,7 +25,7 @@ use VMware::VIRuntime; use VMware::VILib; use ZMQ::LibZMQ4; use ZMQ::Constants qw(:all); -use JSON::XS;; +use JSON::XS; my $manager_display = {}; my $manager_response = {}; @@ -45,7 +45,7 @@ sub init_response { my (%options) = @_; $manager_response->{code} = 0; - $manager_response->{vmware_connector_version} = '3.2.6'; + $manager_response->{vmware_connector_version} = '3.3.0'; $manager_response->{short_message} = 'OK'; $manager_response->{extra_message} = ''; $manager_response->{identity} = $options{identity} if (defined($options{identity})); @@ -794,4 +794,38 @@ sub vsan_get_performances { return $result; } +sub transform_json_to_object { + my ($json_data) = @_; + + my $json_as_object; + eval { + $json_as_object = decode_json($json_data); + }; + if ($@) { + return ('error_message' => "Could not decode JSON from '$json_data'. Reason: " . $@); + }; + return($json_as_object); +} + +sub parse_json_file { + my (%options) = @_; + + my $fh; + my $json_data = ''; + + if ( !defined($options{json_file}) ) { + return ('error_message' => "parse_json_file: json_file option is mandatory"); + } + + my $json_file = $options{json_file}; + + open($fh, '<', $json_file) or return ('error_message' => "parse_json_file: Cannot open " . $json_file); + for my $line (<$fh>) { + chomp $line; + $json_data .= $line; + } + close($fh); + return transform_json_to_object($json_data); +} + 1; diff --git a/connectors/vmware/src/centreon/vmware/connector.pm b/connectors/vmware/src/centreon/vmware/connector.pm index abfab28a65..cf85450e2b 100644 --- a/connectors/vmware/src/centreon/vmware/connector.pm +++ b/connectors/vmware/src/centreon/vmware/connector.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -237,7 +237,7 @@ sub run { my ($connector) = shift; my $timeout_process = 0; - $connector->{logger}->writeLogInfo("'" . $connector->{whoaim} . "' init begin"); + $connector->{logger}->writeLogInfo("'" . $connector->{whoaim} . "' ZMQ init begin"); my $context = zmq_init(); $backend = zmq_socket($context, ZMQ_DEALER); diff --git a/connectors/vmware/src/centreon/vmware/http/backend/curl.pm b/connectors/vmware/src/centreon/vmware/http/backend/curl.pm index 6d746f913b..b69d769159 100644 --- a/connectors/vmware/src/centreon/vmware/http/backend/curl.pm +++ b/connectors/vmware/src/centreon/vmware/http/backend/curl.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/http/backend/curlconstants.pm b/connectors/vmware/src/centreon/vmware/http/backend/curlconstants.pm index 8e409c0090..4df11c4253 100644 --- a/connectors/vmware/src/centreon/vmware/http/backend/curlconstants.pm +++ b/connectors/vmware/src/centreon/vmware/http/backend/curlconstants.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/http/backend/lwp.pm b/connectors/vmware/src/centreon/vmware/http/backend/lwp.pm index 9f718d624e..80b1e6671e 100644 --- a/connectors/vmware/src/centreon/vmware/http/backend/lwp.pm +++ b/connectors/vmware/src/centreon/vmware/http/backend/lwp.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/http/backend/useragent.pm b/connectors/vmware/src/centreon/vmware/http/backend/useragent.pm index 228638c2ca..a462f8f592 100644 --- a/connectors/vmware/src/centreon/vmware/http/backend/useragent.pm +++ b/connectors/vmware/src/centreon/vmware/http/backend/useragent.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/http/http.pm b/connectors/vmware/src/centreon/vmware/http/http.pm index f7ab98ae99..9eb1b75069 100644 --- a/connectors/vmware/src/centreon/vmware/http/http.pm +++ b/connectors/vmware/src/centreon/vmware/http/http.pm @@ -1,5 +1,5 @@ # -# Copyright 2019 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/connectors/vmware/src/centreon/vmware/logger.pm b/connectors/vmware/src/centreon/vmware/logger.pm index ab59dad937..3b654e27c9 100644 --- a/connectors/vmware/src/centreon/vmware/logger.pm +++ b/connectors/vmware/src/centreon/vmware/logger.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -50,9 +50,18 @@ use warnings; use Sys::Syslog qw(:standard :macros); use IO::Handle; -my %severities = (1 => LOG_INFO, - 2 => LOG_ERR, - 4 => LOG_DEBUG); +my %syslog_severities = ( + 1 => LOG_CRIT, + 2 => LOG_ERR, + 4 => LOG_INFO, + 5 => LOG_DEBUG +); +my %human_severities = ( + 1 => 'fatal', + 2 => 'error', + 4 => 'info', + 5 => 'debug' +); sub new { my $class = shift; @@ -62,8 +71,8 @@ sub new { file => 0, filehandler => undef, # 0 = nothing, 1 = critical, 3 = info, 7 = debug - severity => 3, - old_severity => 3, + severity => 4, + old_severity => 4, # 0 = stdout, 1 = file, 2 = syslog log_mode => 0, # Output pid of current process @@ -104,7 +113,7 @@ sub is_file_mode { sub is_debug { my $self = shift; - if (($self->{severity} & 4) == 0) { + if ($self->{severity} < 5) { return 0; } return 1; @@ -138,21 +147,22 @@ sub set_default_severity { # Getter/Setter Log severity sub severity { my $self = shift; + if (@_) { my $save_severity = $self->{severity}; - if ($_[0] =~ /^[012347]$/) { + if ($_[0] =~ /^[01245]$/) { $self->{severity} = $_[0]; } elsif ($_[0] eq "none") { $self->{severity} = 0; } elsif ($_[0] eq "error") { - $self->{severity} = 1; + $self->{severity} = 2; } elsif ($_[0] eq "info") { - $self->{severity} = 3; + $self->{severity} = 4; } elsif ($_[0] eq "debug") { - $self->{severity} = 7; + $self->{severity} = 5; } else { - $self->writeLogError("Wrong severity value set."); - return -1; + $self->writeLogError("Wrong severity value given: " . $_[0] . ". Keeping default value: " . $self->{severity}); + return $self->{severity}; } $self->{old_severity} = $save_severity; } @@ -176,14 +186,18 @@ sub get_date { sub writeLog($$$%) { my ($self, $severity, $msg, %options) = @_; + + # do nothing if the configured severity does not imply logging this message + return if ($self->{severity} < $severity); + my $withdate = (defined $options{withdate}) ? $options{withdate} : 1; - $msg = ($self->{withpid} == 1) ? "$$ - $msg " : $msg; + $msg = ($self->{withpid} == 1) ? "[$$] $msg " : $msg; + my $newmsg = ($withdate) - ? $self->get_date . " - $msg" : $msg; + ? "[" . $self->get_date . "] " : ''; + $newmsg .= "[" . $human_severities{$severity} . "] " . $msg; + # Bit mask: if AND gives 0 it means the log level does not require this message to be logged - if (($self->{severity} & $severity) == 0) { - return; - } if ($self->{log_mode} == 0) { print "$newmsg\n"; } elsif ($self->{log_mode} == 1) { @@ -191,20 +205,24 @@ sub writeLog($$$%) { print { $self->{filehandler} } "$newmsg\n"; } } elsif ($self->{log_mode} == 2) { - syslog($severities{$severity}, $msg); + syslog($syslog_severities{$severity}, $msg); } } sub writeLogDebug { - shift->writeLog(4, @_); + shift->writeLog(5, @_); } sub writeLogInfo { - shift->writeLog(2, @_); + shift->writeLog(4, @_); } sub writeLogError { + shift->writeLog(2, @_); +} +sub writeLogFatal { shift->writeLog(1, @_); + die("FATAL: " . $_[0] . "\n"); } sub DESTROY { diff --git a/connectors/vmware/src/centreon/vmware/script.pm b/connectors/vmware/src/centreon/vmware/script.pm index b1b9aa8c64..d59bc731c3 100644 --- a/connectors/vmware/src/centreon/vmware/script.pm +++ b/connectors/vmware/src/centreon/vmware/script.pm @@ -1,4 +1,4 @@ -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -46,9 +46,9 @@ sub new { $self->{name} = $name; $self->{logger} = centreon::vmware::logger->new(); $self->{options} = { - "logfile=s" => \$self->{log_file}, + "logfile=s" => \$self->{log_file}, "severity=s" => \$self->{severity}, - "help|?" => \$self->{help} + "help|?" => \$self->{help} }; return $self; } diff --git a/connectors/vmware/src/centreon_vmware.pl b/connectors/vmware/src/centreon_vmware.pl index 2aa48ea429..27cf0ebcb0 100644 --- a/connectors/vmware/src/centreon_vmware.pl +++ b/connectors/vmware/src/centreon_vmware.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -# Copyright 2015 Centreon (http://www.centreon.com/) +# Copyright 2024 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -42,6 +42,10 @@ =head1 OPTIONS Specify the path to the centreon_vmware configuration file (default: /etc/centreon/centreon_vmware.pm). +=item B<--vault-config> + +Full path to the file defining access to the Centreon vault (/etc/centreon-engine/centreonvault.json by default). + =item B<--help> Print a brief help message and exits. @@ -51,6 +55,6 @@ =head1 OPTIONS =head1 DESCRIPTION B will connect to ESX and/or VirtualCenter. -Use the plugin 'apps::vmware::connector::plugin' from: https://github.com/centreon/centreon-plugins +To be used with the plugin 'apps::vmware::connector::plugin' from: https://github.com/centreon/centreon-plugins =cut diff --git a/connectors/vmware/tests/centreon/vmware/centreonvault.t b/connectors/vmware/tests/centreon/vmware/centreonvault.t new file mode 100644 index 0000000000..619a6d9798 --- /dev/null +++ b/connectors/vmware/tests/centreon/vmware/centreonvault.t @@ -0,0 +1,43 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test2::V0; +use Test2::Plugin::NoWarnings echo => 1; + +use FindBin; +use lib qw($FindBin::RealBin/../../../src); + +use centreon::script::centreonvault; +use centreon::vmware::logger; +my $vault; +my $global_logger = centreon::vmware::logger->new(); +my @test_data = ( + {'logger' => undef, 'config_file' => undef, 'test' => '$error_message =~ /FATAL: No logger given to the constructor/'}, + {'logger' => $global_logger, 'config_file' => undef, 'test' => '$vault->{enabled} == 0'}, + {'logger' => $global_logger, 'config_file' => 'does_not_exist.json', 'test' => '$vault->{enabled} == 0'} +); + +for my $i (0..$#test_data) { + my $logger = $test_data[$i]->{logger}; + my $config_file = $test_data[$i]->{config_file}; + my $test = $test_data[$i]->{test}; + + use Data::Dumper; + #print("Test $i with logger " . Dumper($logger) ."\n"); + eval { + $vault = centreon::script::centreonvault->new( + ( + 'logger' => $logger, + 'config_file' => $config_file + ) + ); + }; + + my $error_message = defined($@) ? $@ : ''; + print("Test $i with vault " . Dumper($vault) ."\n"); + + ok (eval($test), "TEST CASE $i FAILED: '$test' with error message: '" . $error_message . "'" ); +} + +done_testing(); + diff --git a/packaging/centreon-plugin-Applications-Rubrik-Restapi/deb.json b/packaging/centreon-plugin-Applications-Rubrik-Restapi/deb.json index 9757fe1126..113c4a8ad2 100644 --- a/packaging/centreon-plugin-Applications-Rubrik-Restapi/deb.json +++ b/packaging/centreon-plugin-Applications-Rubrik-Restapi/deb.json @@ -1,4 +1,7 @@ { "dependencies": [ + "libdatetime-perl", + "libdigest-md5-perl", + "libjson-perl" ] } diff --git a/packaging/centreon-plugin-Applications-Rubrik-Restapi/rpm.json b/packaging/centreon-plugin-Applications-Rubrik-Restapi/rpm.json index 9757fe1126..962a3832e8 100644 --- a/packaging/centreon-plugin-Applications-Rubrik-Restapi/rpm.json +++ b/packaging/centreon-plugin-Applications-Rubrik-Restapi/rpm.json @@ -1,4 +1,7 @@ { "dependencies": [ + "perl(DateTime)", + "perl(Digest::MD5)", + "perl(JSON::XS)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Apigateway-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Backup-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Backup-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Backup-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Backup-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Backup-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Backup-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Backup-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Backup-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Billing-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Billing-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Billing-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Billing-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Billing-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Billing-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Billing-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Billing-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudfront-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/deb.json index bc17ef2ad4..ca10556df1 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/rpm.json index bc30a2c0d6..10fe653181 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudtrail-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/rpm.json index 5c2153a421..198e3f0b08 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudwatch-Api/rpm.json @@ -1,6 +1,7 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ], "replaces": ["centreon-plugin-Cloud-Aws-Api"] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/rpm.json index 5c2153a421..198e3f0b08 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Cloudwatchlogs-Api/rpm.json @@ -1,6 +1,7 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ], "replaces": ["centreon-plugin-Cloud-Aws-Api"] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Directconnect-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/deb.json index bc17ef2ad4..ca10556df1 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/rpm.json index bc30a2c0d6..10fe653181 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ebs-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ec2-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Efs-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Efs-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Efs-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Efs-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Efs-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Efs-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Efs-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Efs-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elasticache-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Application-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Elb-Network-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Fsx-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Health-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Health-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Health-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Health-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Health-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Health-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Health-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Health-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Kinesis-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Lambda-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Rds-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Rds-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Rds-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Rds-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Rds-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Rds-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Rds-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Rds-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-S3-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-S3-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-S3-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-S3-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-S3-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-S3-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-S3-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-S3-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ses-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Ses-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ses-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ses-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Ses-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Ses-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Ses-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Ses-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Sns-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Sns-Api/deb.json index bc17ef2ad4..ca10556df1 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Sns-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Sns-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Sns-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Sns-Api/rpm.json index bc30a2c0d6..10fe653181 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Sns-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Sns-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/deb.json index bc17ef2ad4..ca10556df1 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/rpm.json index bc30a2c0d6..10fe653181 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Sqs-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/deb.json index 8133a85e5e..6eb65ad6bf 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/rpm.json index e9dff7552f..89678fed05 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Transitgateway-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/deb.json b/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/deb.json index bc17ef2ad4..ca10556df1 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/deb.json +++ b/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/deb.json @@ -1,5 +1,6 @@ { "dependencies": [ - "libdatetime-perl" + "libdatetime-perl", + "libpaws-perl" ] } diff --git a/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/rpm.json b/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/rpm.json index bc30a2c0d6..10fe653181 100644 --- a/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/rpm.json +++ b/packaging/centreon-plugin-Cloud-Aws-Vpn-Api/rpm.json @@ -1,5 +1,6 @@ { "dependencies": [ - "perl(DateTime)" + "perl(DateTime)", + "perl(Paws)" ] } diff --git a/src/apps/automation/ansible/tower/mode/discovery.pm b/src/apps/automation/ansible/tower/mode/discovery.pm index d5be13eddd..a1d967b70e 100644 --- a/src/apps/automation/ansible/tower/mode/discovery.pm +++ b/src/apps/automation/ansible/tower/mode/discovery.pm @@ -30,7 +30,7 @@ sub new { my ($class, %options) = @_; my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - + $options{options}->add_options(arguments => { 'group' => { name => 'group' }, 'inventory' => { name => 'inventory' }, @@ -54,7 +54,7 @@ sub run { $disco_stats->{start_time} = time(); my $hosts = $options{custom}->tower_list_hosts( - group => $self->{option_results}->{group}, + group => $self->{option_results}->{group}, inventory => $self->{option_results}->{inventory} ); @@ -71,6 +71,14 @@ sub run { $host{inventory_name} = $host->{summary_fields}->{inventory}->{name}; $host{groups} = $host->{summary_fields}->{groups}->{results}; $host{enabled} = $host->{enabled}; + # Get the ansible host IP address if available + eval { + my $json = decode_json($host->{variables}); + $host{ansible_host} = $json->{ansible_host} || ''; + }; + if ($@) { + $host{ansible_host} = ''; + } push @disco_data, \%host; } @@ -88,7 +96,7 @@ sub run { if ($@) { $encoded_data = '{"code":"encode_error","message":"Cannot encode discovered data into JSON format"}'; } - + $self->{output}->output_add(short_msg => $encoded_data); $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1); $self->{output}->exit(); diff --git a/src/apps/automation/ansible/tower/mode/jobs.pm b/src/apps/automation/ansible/tower/mode/jobs.pm index 1592d491a0..008cb68908 100644 --- a/src/apps/automation/ansible/tower/mode/jobs.pm +++ b/src/apps/automation/ansible/tower/mode/jobs.pm @@ -24,6 +24,7 @@ use base qw(centreon::plugins::templates::counter); use strict; use warnings; +use Date::Parse; use centreon::plugins::statefile; sub prefix_output_global { @@ -41,24 +42,24 @@ sub set_counters { $self->{maps_counters}->{global} = [ { label => 'total', nlabel => 'jobs.total.count', set => { - key_values => [ { name => 'total' } ], - output_template => 'total: %d', - perfdatas => [ - { value => 'total', template => '%d', min => 0 } - ] - } + key_values => [ { name => 'total' } ], + output_template => 'total: %d', + perfdatas => [ + { value => 'total', template => '%d', min => 0 } + ] + } } ]; - foreach ((['successful', 1], ['failed', 1], ['running', 1], ['canceled', 0], ['pending', 0], ['default', 0])) { + foreach (([ 'successful', 1 ], [ 'failed', 1 ], [ 'running', 1 ], [ 'canceled', 0 ], [ 'pending', 0 ], [ 'default', 0 ])) { push @{$self->{maps_counters}->{global}}, { - label => $_->[0], nlabel => 'jobs.' . $_->[0] . '.count', display_ok => $_->[1], set => { - key_values => [ { name => $_->[0] }, { name => 'total' } ], - output_template => $_->[0] . ': %d', - perfdatas => [ - { template => '%d', min => 0, max => 'total' } - ] - } + label => $_->[0], nlabel => 'jobs.' . $_->[0] . '.count', display_ok => $_->[1], set => { + key_values => [ { name => $_->[0] }, { name => 'total' } ], + output_template => $_->[0] . ': %d', + perfdatas => [ + { template => '%d', min => 0, max => 'total' } + ] + } }; } } @@ -70,6 +71,7 @@ sub new { $options{options}->add_options(arguments => { 'filter-name:s' => { name => 'filter_name' }, + 'filter-time:s' => { name => 'filter_time' }, 'display-failed-jobs' => { name => 'display_failed_jobs' }, 'memory' => { name => 'memory' } }); @@ -85,8 +87,8 @@ sub check_options { if (defined($self->{option_results}->{memory})) { $self->{statefile_cache}->check_options(%options); centreon::plugins::misc::mymodule_load( - output => $self->{output}, - module => 'Date::Parse', + output => $self->{output}, + module => 'Date::Parse', error_msg => "Cannot load module 'Date::Parse'." ); } @@ -108,14 +110,18 @@ sub manage_selection { my $current_time = time(); my $failed_jobs = {}; foreach my $job (@$jobs) { - next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' - && $job->{name} !~ /$self->{option_results}->{filter_name}/); + next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' + && $job->{name} !~ /$self->{option_results}->{filter_name}/); + + next if (defined($self->{option_results}->{filter_time}) + && defined($job->{finished}) + && $current_time - Date::Parse::str2time($job->{finished}) > $self->{option_results}->{filter_time} * 3600); if (defined($self->{option_results}->{memory}) && defined($job->{finished})) { my $finished_time = Date::Parse::str2time($job->{finished}); if (!defined($finished_time)) { $self->{output}->output_add( - severity => 'UNKNOWN', + severity => 'UNKNOWN', short_msg => "Can't parse date '" . $job->{finished} . "'" ); next; @@ -135,7 +141,7 @@ sub manage_selection { } if (defined($self->{option_results}->{display_failed_jobs})) { - $self->{output}->output_add(long_msg => 'Failed jobs list: ' . join(', ', keys %$failed_jobs)); + $self->{output}->output_add(long_msg => 'Failed jobs list: ' . join(', ', keys %$failed_jobs)); } } @@ -151,16 +157,75 @@ Check jobs. =item B<--filter-name> -Filter job name (can use regexp). +Define which jobs should be monitored based on their names. This option will be treated as a regular expression. + +=item B<--filter-time> + +Define which jobs should be monitored based on the age of their last execution. Jobs that finished longer than X hours ago will be ignored. =item B<--display-failed-jobs> Display failed jobs list in verbose output. -=item B<--warning-*> B<--critical-*> +=item B<--memory> + +Only check new jobs. + +=item B<--warning-total> + +Threshold warning for total jobs. + +=item B<--critical-total> + +Threshold critical for total jobs. + +=item B<--warning-successful> + +Threshold warning for successful jobs. + +=item B<--critical-successful> + +Threshold critical for successful jobs. + +=item B<--warning-failed> + +Threshold warning for failed jobs. + +=item B<--critical-failed> + +Threshold critical for failed jobs. + +=item B<--warning-running> + +Threshold warning for running jobs. + +=item B<--critical-running> + +Threshold critical for running jobs. + +=item B<--warning-canceled> + +Threshold warning for canceled jobs. + +=item B<--critical-canceled> + +Threshold critical for canceled jobs. + +=item B<--warning-pending> + +Threshold warning for pending jobs. + +=item B<--critical-pending> + +Threshold critical for pending jobs. + +=item B<--warning-default> + +Threshold warning for default jobs. + +=item B<--critical-default> -Thresholds. -Can be: 'total', 'successful', 'failed', 'running', 'canceled', 'pending', 'default'. +Threshold critical for default jobs. =back diff --git a/src/apps/backup/rubrik/restapi/mode/jobs.pm b/src/apps/backup/rubrik/restapi/mode/jobs.pm index 24ea815ec8..fe96121d26 100644 --- a/src/apps/backup/rubrik/restapi/mode/jobs.pm +++ b/src/apps/backup/rubrik/restapi/mode/jobs.pm @@ -221,7 +221,8 @@ sub new { 'filter-location-name:s' => { name => 'filter_location_name' }, 'filter-object-type:s' => { name => 'filter_object_type' }, 'unit:s' => { name => 'unit', default => 's' }, - 'limit:s' => { name => 'limit' } + 'limit:s' => { name => 'limit' }, + 'check-retention' => { name => 'check_retention' } }); $self->{cache_exec} = centreon::plugins::statefile->new(%options); @@ -247,7 +248,11 @@ sub check_options { sub manage_selection { my ($self, %options) = @_; - my $jobs_exec = $options{custom}->get_jobs_monitoring(get_param => [ 'limit=' . $self->{option_results}->{limit} ]); + my $get_param = [ 'limit=' . $self->{option_results}->{limit} ]; + if (defined($self->{option_results}->{filter_job_type}) && $self->{option_results}->{filter_job_type} ne '') { + push @{$get_param}, 'job_type=' . $self->{option_results}->{filter_job_type}; + } + my $jobs_exec = $options{custom}->get_jobs_monitoring(get_param => $get_param); $self->{cache_exec}->read(statefile => 'rubrik_' . $self->{mode} . '_' . Digest::MD5::md5_hex( @@ -260,7 +265,8 @@ sub manage_selection { ); my $ctime = time(); my $last_exec_times = $self->{cache_exec}->get(name => 'jobs'); - $last_exec_times = {} if (!defined($last_exec_times)); + $last_exec_times = {} if (!defined($last_exec_times)); + my %jobs_detected = (); $self->{global} = { detected => 0 }; $self->{jobs} = {}; @@ -269,13 +275,13 @@ sub manage_selection { $job_exec->{objectId} !~ /$self->{option_results}->{filter_job_id}/); next if (defined($self->{option_results}->{filter_job_name}) && $self->{option_results}->{filter_job_name} ne '' && $job_exec->{objectName} !~ /$self->{option_results}->{filter_job_name}/); - next if (defined($self->{option_results}->{filter_job_type}) && $self->{option_results}->{filter_job_type} ne '' && - $job_exec->{jobType} !~ /$self->{option_results}->{filter_job_type}/i); next if (defined($self->{option_results}->{filter_object_type}) && $self->{option_results}->{filter_object_type} ne '' && $job_exec->{objectType} !~ /$self->{option_results}->{filter_object_type}/i); next if (defined($self->{option_results}->{filter_location_name}) && $self->{option_results}->{filter_location_name} ne '' && $job_exec->{locationName} !~ /$self->{option_results}->{filter_location_name}/); + $self->{global}->{detected}++; + $jobs_detected{$job_exec->{objectName}} = 1; $job_exec->{jobType} = lc($job_exec->{jobType}); if (!defined($self->{jobs}->{ $job_exec->{objectId} })) { @@ -302,7 +308,6 @@ sub manage_selection { $last_exec = $_; } - $self->{global}->{detected}++; # Failure, Scheduled, Success, SuccessfulWithWarnings, Active, Canceled $failed++ if ($_->{jobStatus} =~ /Failure/i); $total++; @@ -326,7 +331,9 @@ sub manage_selection { $last_exec_times->{ $job_exec->{objectId} } = { jobName => $job_exec->{objectName}, jobType => $job_exec->{jobType}, - epoch => $dt->epoch() + epoch => $dt->epoch(), + objectType => $job_exec->{objectType}, + locationName => $job_exec->{locationName} }; } @@ -355,6 +362,8 @@ sub manage_selection { $self->{jobs}->{$objectId} = { name => $last_exec_times->{$objectId}->{jobName}, jobType => $last_exec_times->{$objectId}->{jobType}, + objectType => $last_exec_times->{$objectId}->{objectType}, + locationName => $last_exec_times->{$objectId}->{locationName}, timers => { jobName => $last_exec_times->{$objectId}->{jobName}, jobType => $last_exec_times->{$objectId}->{jobType}, @@ -364,6 +373,15 @@ sub manage_selection { }; } + if ($self->{global}->{detected} == 0 && defined($self->{option_results}->{check_retention})) { + my $jobs_last_detected = $self->{cache_exec}->get(name => 'jobs'); + foreach my $job_id (keys %{$jobs_last_detected}) { + if (!defined($jobs_detected{$jobs_last_detected->{$job_id}->{jobName}})) { + $self->{global}->{detected}++; + } + } + } + $self->{cache_exec}->write(data => { jobs => $last_exec_times }); @@ -407,6 +425,10 @@ Select the time unit for last execution time thresholds. May be 's' for seconds, Define the number of entries to retrieve for the pagination (default: 500). +=item B<--check-retention> + +Use the retention file to check if a job has been detected once but does not appear in the API response. + =item B<--unknown-execution-status> Set unknown threshold for last job execution status. diff --git a/src/apps/vmware/connector/mode/vsanclusterusage.pm b/src/apps/vmware/connector/mode/vsanclusterusage.pm index 16d622863f..49edcf37d9 100644 --- a/src/apps/vmware/connector/mode/vsanclusterusage.pm +++ b/src/apps/vmware/connector/mode/vsanclusterusage.pm @@ -83,19 +83,19 @@ sub set_counters { ] } }, - { label => 'backend-latency-read', nlabel => 'cluster.vsan.backend.latency.read.milliseconds', display_ok => 0, set => { + { label => 'backend-latency-read', nlabel => 'cluster.vsan.backend.latency.read.microseconds', display_ok => 0, set => { key_values => [ { name => 'latencyAvgRead' } ], - output_template => 'read latency: %s ms', + output_template => 'read latency: %s µs', perfdatas => [ - { template => '%s', unit => 'ms', min => 0 } + { template => '%s', unit => 'µs', min => 0 } ] } }, - { label => 'backend-latency-write', nlabel => 'cluster.vsan.backend.latency.write.milliseconds', display_ok => 0, set => { + { label => 'backend-latency-write', nlabel => 'cluster.vsan.backend.latency.write.microseconds', display_ok => 0, set => { key_values => [ { name => 'latencyAvgWrite' } ], - output_template => 'write latency: %s ms', + output_template => 'write latency: %s µs', perfdatas => [ - { template => '%s', unit => 'ms', min => 0 } + { template => '%s', unit => 'µs', min => 0 } ] } } @@ -115,7 +115,6 @@ sub new { $options{options}->add_options(arguments => { 'cluster-name:s' => { name => 'cluster_name' }, - 'filter' => { name => 'filter' }, 'scope-datacenter:s' => { name => 'scope_datacenter' } }); @@ -133,11 +132,18 @@ sub manage_selection { foreach my $cluster_id (keys %{$response->{data}}) { my $cluster_name = $response->{data}->{$cluster_id}->{name}; + next if ( !centreon::plugins::misc::is_empty($self->{option_results}->{cluster_name}) + and $cluster_name !~ /$self->{option_results}->{cluster_name}/ ); + $self->{cluster}->{$cluster_name} = { display => $cluster_name, %{$response->{data}->{$cluster_id}->{cluster_domcompmgr}}, }; - } + } + if ( scalar(keys(%{$self->{cluster}}) ) == 0) { + my $explanation = centreon::plugins::misc::is_empty($self->{option_results}->{cluster_name}) ? '' : ' matching /' . $self->{option_results}->{cluster_name} . '/'; + $self->{output}->output_add(severity => 'UNKNOWN', short_msg => "No clusters found" . $explanation); + } } 1; @@ -146,30 +152,83 @@ __END__ =head1 MODE -Check Vsan cluster usage +Check VMware vSAN cluster usage. =over 8 =item B<--cluster-name> -cluster to check. -If not set, we check all clusters. +Define which clusters should be monitored based on their name. +This option will be treated as a regular expression. -=item B<--filter> +=item B<--scope-datacenter> -Cluster name is a regexp. +Define which clusters to monitor based on their data center's name. +This option will be treated as a regular expression. -=item B<--scope-datacenter> +=item B<--warning-backend-write-usage> + +Thresholds. + +=item B<--critical-backend-write-usage> + +Thresholds. + +=item B<--warning-backend-read-usage> + +Thresholds. + +=item B<--critical-backend-read-usage> + +Thresholds. + +=item B<--warning-backend-outstanding-io> + +Thresholds. + +=item B<--critical-backend-outstanding-io> + +Thresholds. + +=item B<--warning-backend-congestions> -Search in following datacenter(s) (can be a regexp). +Thresholds. + +=item B<--critical-backend-congestions> + +Thresholds. -=item B<--warning-*> B<--critical-*> +=item B<--warning-backend-throughput-read> Thresholds. -Can be: 'backend-write-usage', 'backend-read-usage', -'backend-outstanding-io', 'backend-congestions', -'backend-throughput-read', 'backend-throughput-write' -. + +=item B<--critical-backend-throughput-read> + +Thresholds. + +=item B<--warning-backend-throughput-write> + +Thresholds. + +=item B<--critical-backend-throughput-write> + +Thresholds. + +=item B<--warning-backend-latency-read> + +Thresholds in microseconds. + +=item B<--critical-backend-latency-read> + +Thresholds in microseconds. + +=item B<--warning-backend-latency-write> + +Thresholds in microseconds. + +=item B<--critical-backend-latency-write> + +Thresholds in microseconds. =back diff --git a/src/centreon/common/cisco/standard/snmp/mode/interfaces.pm b/src/centreon/common/cisco/standard/snmp/mode/interfaces.pm index 8fddf4a3f4..34bb9d8348 100644 --- a/src/centreon/common/cisco/standard/snmp/mode/interfaces.pm +++ b/src/centreon/common/cisco/standard/snmp/mode/interfaces.pm @@ -136,6 +136,14 @@ sub set_counters_errors { closure_custom_perfdata => $self->can('custom_errors_perfdata'), closure_custom_threshold_check => $self->can('custom_errors_threshold') } + }, + { label => 'out-fc-wait', filter => 'add_fc_fe_errors', nlabel => 'interface.wait.out.count', set => { + key_values => [ { name => 'fcTxWait', diff => 1 }, { name => 'display' } ], + output_template => 'Fc Out Wait : %s', + perfdatas => [ + { label => 'fcTxWait', template => '%s', label_extra_instance => 1, instance_use => 'display' } + ] + } } ; } @@ -146,8 +154,9 @@ sub new { bless $self, $class; $options{options}->add_options(arguments => { - 'add-qos-limit' => { name => 'add_qos_limit' }, - 'add-err-disable' => { name => 'add_err_disable' } + 'add-qos-limit' => { name => 'add_qos_limit' }, + 'add-err-disable' => { name => 'add_err_disable' }, + 'add-fc-fe-errors' => { name => 'add_fc_fe_errors' } }); return $self; @@ -158,14 +167,14 @@ sub check_options { $self->SUPER::check_options(%options); $self->{checking} = ''; - foreach (('add_global', 'add_status', 'add_errors', 'add_traffic', 'add_cast', 'add_speed', 'add_volume', 'add_qos_limit')) { + foreach (('add_global', 'add_status', 'add_errors', 'add_traffic', 'add_cast', 'add_speed', 'add_volume', 'add_qos_limit', 'add_fc_fe_errors')) { if (defined($self->{option_results}->{$_})) { $self->{checking} .= $_; } } } -sub reload_cache_custom { +sub reload_cache_qos_limit { my ($self, %options) = @_; return if (!defined($self->{option_results}->{add_qos_limit})); @@ -207,7 +216,29 @@ sub reload_cache_custom { } } -sub custom_load { +sub reload_cache_fc_fe_errors { + my ($self, %options) = @_; + + return if (!defined($self->{option_results}->{add_fc_fe_errors})); + + my $oid_fcIfWwn = '.1.3.6.1.4.1.9.9.289.1.1.2.1.1'; + my $snmp_result = $self->{snmp}->get_table(oid => $oid_fcIfWwn); + + $options{datas}->{fc_fe} = {}; + foreach (keys %$snmp_result) { + next if ($_ !~ /^$oid_fcIfWwn\.(.*)$/); + $options{datas}->{fc_fe}->{$1} = { wwn => $snmp_result->{$_} }; + } +} + +sub reload_cache_custom { + my ($self, %options) = @_; + + $self->reload_cache_fc_fe_errors(%options); + $self->reload_cache_qos_limit(%options); +} + +sub custom_load_qos_limit { my ($self, %options) = @_; return if (!defined($self->{option_results}->{add_qos_limit})); @@ -230,6 +261,32 @@ sub custom_load { ); } +sub custom_load_fc_fe_errors { + my ($self, %options) = @_; + + return if (!defined($self->{option_results}->{add_fc_fe_errors})); + + my $oid_fcIfTxWaitCount = '.1.3.6.1.4.1.9.9.289.1.2.1.1.15'; + + my $entries = $self->{statefile_cache}->get(name => 'fc_fe'); + my @instances = keys %$entries; + + return if (scalar(@instances) <= 0); + + $self->{snmp}->load( + oids => [ $oid_fcIfTxWaitCount ], + instances => [@instances], + instance_regexp => '^(.*)$' + ); +} + +sub custom_load { + my ($self, %options) = @_; + + $self->custom_load_fc_fe_errors(%options); + $self->custom_load_qos_limit(%options); +} + sub load_errors { my ($self, %options) = @_; @@ -250,12 +307,12 @@ sub load_status { $self->SUPER::load_status(%options); if (defined($self->{option_results}->{add_err_disable})) { $self->{snmp_errdisable_result} = $self->{snmp}->get_table(oid => $self->{oid_cErrDisableIfStatusCause}); - } + } } sub add_result_errors { my ($self, %options) = @_; - + $self->{int}->{$options{instance}}->{indiscard} = $self->{results}->{$self->{oid_ifInDiscards} . '.' . $options{instance}}; $self->{int}->{$options{instance}}->{inerror} = $self->{results}->{$self->{oid_ifInErrors} . '.' . $options{instance}}; $self->{int}->{$options{instance}}->{outdiscard} = $self->{results}->{$self->{oid_ifOutDiscards} . '.' . $options{instance}}; @@ -279,7 +336,7 @@ sub add_result_status { $self->{int}->{$options{instance}}->{errdisable} = $self->{oid_cErrDisableIfStatusCause_mapping}->{ $self->{snmp_errdisable_result}->{$_} }; last; } - + $self->{int}->{$options{instance}}->{errdisable} .= $append . 'vlan' . $1 . ':' . $self->{oid_cErrDisableIfStatusCause_mapping}->{ $self->{snmp_errdisable_result}->{$_} }; $append = ','; } @@ -289,7 +346,7 @@ sub add_result_status { if ($self->{int}->{$options{instance}}->{errdisable} eq ''); } -sub custom_add_result { +sub custom_add_result_qos_limit { my ($self, %options) = @_; return if (!defined($self->{option_results}->{add_qos_limit})); @@ -304,7 +361,7 @@ sub custom_add_result { defined($self->{results}->{$oid_cbQosPoliceCfgRate64 . '.' . $qos->{ $options{instance} }->{input}}) && $self->{results}->{$oid_cbQosPoliceCfgRate64 . '.' . $qos->{ $options{instance} }->{input}} =~ /(\d+)/) { $self->{int}->{ $options{instance} }->{traffic_in_limit} = $self->{results}->{$oid_cbQosPoliceCfgRate64 . '.' . $qos->{ $options{instance} }->{input}}; - + $self->{int}->{ $options{instance} }->{speed_in} = $self->{results}->{$oid_cbQosPoliceCfgRate64 . '.' . $qos->{ $options{instance} }->{input}} if (!defined($self->{option_results}->{speed_in}) || $self->{option_results}->{speed_in} eq ''); } @@ -319,6 +376,30 @@ sub custom_add_result { } } +sub custom_add_result_fc_fe_errors { + my ($self, %options) = @_; + + return if (!defined($self->{option_results}->{add_fc_fe_errors})); + + my $entries = $self->{statefile_cache}->get(name => 'fc_fe'); + + return if (!defined($entries->{ $options{instance} })); + + my $oid_fcIfTxWaitCount = '.1.3.6.1.4.1.9.9.289.1.2.1.1.15'; + + if (defined($self->{results}->{ $oid_fcIfTxWaitCount . '.' . $options{instance} }) && + $self->{results}->{ $oid_fcIfTxWaitCount . '.' . $options{instance} } =~ /(\d+)/) { + $self->{int}->{ $options{instance} }->{fcTxWait} = $self->{results}->{ $oid_fcIfTxWaitCount . '.' . $options{instance} }; + } +} + +sub custom_add_result { + my ($self, %options) = @_; + + $self->custom_add_result_fc_fe_errors(%options); + $self->custom_add_result_qos_limit(%options); +} + 1; __END__ @@ -353,6 +434,10 @@ Check interface traffic. Check interface errors. +=item B<--add-fc-fe-errors> + +Check interface fiber channel fiber element errors. + =item B<--add-cast> Check interface cast. @@ -388,7 +473,7 @@ You can use the following variables: %{admstatus}, %{opstatus}, %{duplexstatus}, Thresholds. Can be: 'total-port', 'total-admin-up', 'total-admin-down', 'total-oper-up', 'total-oper-down', 'in-traffic', 'out-traffic', 'in-traffic-limit', 'out-traffic-limit', -'in-crc', 'in-fcserror', 'in-error', 'in-discard', 'out-error', 'out-discard', +'in-crc', 'in-fcserror', 'out-fc-wait', 'in-error', 'in-discard', 'out-error', 'out-discard', 'in-ucast', 'in-bcast', 'in-mcast', 'out-ucast', 'out-bcast', 'out-mcast', 'speed' (b/s). @@ -406,7 +491,7 @@ Units of thresholds for communication types (default: 'percent_delta') ('percent =item B<--nagvis-perfdata> -Display traffic perfdata to be compatible with nagvis widget. +Display traffic perfdata to be compatible with NagVis widget. =item B<--interface> @@ -430,7 +515,7 @@ Set interface speed for outgoing traffic (in Mb). =item B<--force-counters32> -Force to use 32 bits counters (even in snmp v2c and v3). Should be used when 64 bits counters are buggy. +Force to use 32 bits counters (even in SNMP version 2c and version 3). Should be used when 64 bits counters are buggy. =item B<--reload-cache-time> @@ -460,4 +545,4 @@ Display cache interface data. =back -=cut +=cut \ No newline at end of file diff --git a/src/hardware/pdu/cyberpower/snmp/mode/load.pm b/src/hardware/pdu/cyberpower/snmp/mode/load.pm index 0c5c44784e..dfb4790d78 100644 --- a/src/hardware/pdu/cyberpower/snmp/mode/load.pm +++ b/src/hardware/pdu/cyberpower/snmp/mode/load.pm @@ -120,6 +120,14 @@ sub set_counters { { template => '%s', unit => 'W', min => 0, label_extra_instance => 1 } ] } + }, + { label => 'phase-voltage', nlabel => 'phase.voltage.volt', set => { + key_values => [ { name => 'voltage' } ], + output_template => 'voltage : %s V', + perfdatas => [ + { template => '%s', unit => 'V', min => 0, label_extra_instance => 1 } + ] + } } ]; } @@ -197,6 +205,7 @@ sub check_pdu2 { number => { oid => '.1.3.6.1.4.1.3808.1.1.6.4.4.1.3' }, # ePDU2PhaseStatusNumber state => { oid => '.1.3.6.1.4.1.3808.1.1.6.4.4.1.4', map => $map_pdu_status }, # ePDU2PhaseStatusLoadState current => { oid => '.1.3.6.1.4.1.3808.1.1.6.4.4.1.5' }, # ePDU2PhaseStatusLoad + voltage => { oid => '.1.3.6.1.4.1.3808.1.1.6.4.4.1.6' }, # ePDU2PhaseStatusVoltage power => { oid => '.1.3.6.1.4.1.3808.1.1.6.4.4.1.7' } # ePDU2PhaseStatusPower }; my $mapping_bank = { @@ -230,7 +239,8 @@ sub check_pdu2 { display => $result->{number}, state => $result->{state}, current => $result->{current} / 10, - power => $result->{power} * 10 # hundreth of kW. So * 10 for watt + voltage => $result->{voltage}/10, + power => $result->{power} } } @@ -317,7 +327,7 @@ You can use the following variables: %{state}, %{display} =item B<--warning-*> B<--critical-*> Thresholds. -Can be: 'phase-current', 'phase-power', 'bank-current'. +Can be: 'phase-current', 'phase-power', 'phase-voltage', 'bank-current'. =back diff --git a/src/network/3com/snmp/mode/hardware.pm b/src/network/3com/snmp/mode/hardware.pm index 599d93742f..7272eb88b4 100644 --- a/src/network/3com/snmp/mode/hardware.pm +++ b/src/network/3com/snmp/mode/hardware.pm @@ -32,7 +32,7 @@ sub set_system { $self->{thresholds} = { default => [ - ['active', 'OK'], + ['^active$', 'OK'], ['deactive', 'CRITICAL'], ['not-install', 'OK'], ['unsupport', 'WARNING'] diff --git a/src/network/cisco/meraki/cloudcontroller/restapi/custom/api.pm b/src/network/cisco/meraki/cloudcontroller/restapi/custom/api.pm index 2d1cf92f56..dd267e9706 100644 --- a/src/network/cisco/meraki/cloudcontroller/restapi/custom/api.pm +++ b/src/network/cisco/meraki/cloudcontroller/restapi/custom/api.pm @@ -143,6 +143,7 @@ sub build_options_for_httplib { $self->{option_results}->{port} = $self->{port}; $self->{option_results}->{proto} = $self->{proto}; $self->{http}->add_header(key => 'X-Cisco-Meraki-API-Key', value => $self->{api_token}); + $self->{http}->add_header(key => 'User-Agent', value => 'CentreonPlugin/1.0 Centreon'); } sub settings { diff --git a/src/network/stormshield/snmp/mode/components/temperature.pm b/src/network/stormshield/snmp/mode/components/temperature.pm index 7f3544a0ea..22aa4ad3f9 100644 --- a/src/network/stormshield/snmp/mode/components/temperature.pm +++ b/src/network/stormshield/snmp/mode/components/temperature.pm @@ -58,7 +58,7 @@ sub check { ) ); - my ($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{tempValue}); + my ($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{cpuTemp}); if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add( severity => $exit, diff --git a/src/os/linux/local/mode/systemdjournal.pm b/src/os/linux/local/mode/systemdjournal.pm index c19b936a8b..c8ede8a620 100644 --- a/src/os/linux/local/mode/systemdjournal.pm +++ b/src/os/linux/local/mode/systemdjournal.pm @@ -69,7 +69,18 @@ sub manage_selection { (defined($self->{option_results}->{filter_message}) ? md5_hex($self->{option_results}->{filter_message}) : md5_hex('all')) . '_' . (defined($self->{option_results}->{since}) ? md5_hex($self->{option_results}->{since}) : md5_hex('all')); - my $command_options = '--output json --output-fields MESSAGE --no-pager'; + my ($stdout_version) = $options{custom}->execute_command( + command => '/usr/bin/journalctl', + command_options => '--version' + ); + $stdout_version =~ /^systemd\s(\d+)\s/; + my $journalctl_version = $1; + + my $command_options = '--output json --no-pager'; + # --output-field option has been added in version 236 + if ($journalctl_version >= 236) { + $command_options .= ' --output-fields MESSAGE'; + }; if (defined($self->{option_results}->{unit}) && $self->{option_results}->{unit} ne '') { $command_options .= ' --unit ' . $self->{option_results}->{unit}; @@ -152,7 +163,7 @@ OK: Centreon Engine reloads over the last hour: 0 | 'centreon.engine.reload.coun =item B<--unit> -Only look for messages of the specified unit, ie the +Only look for messages from the specified unit, i.e. the name of the systemd service who created the message. =item B<--filter-message> @@ -162,18 +173,23 @@ Filter on message content (can be a regexp). =item B<--since> Defines the amount of time to look back at messages. -Can be minutes (ie 5 "minutes ago") or 'cache' to use the -timestamp from last execution. (default: 'cache') +Can be minutes (example: 5 "minutes ago") or 'cache' to use the +timestamp from last execution. Default: 'cache'. =item B<--timezone> -Defines the timezone to convert date/time to the host -timezone when using timestamp from cache. (default: 'local') +Defines the timezone to use for date/time conversion when using a timestamp from the cache. +Default: 'local'. + +=item B<--warning-entries> + +Thresholds to apply to the number of journal entries +found with the specified parameters. -=item B<--warning-entries> B<--critical-entries> +=item B<--critical-entries> -Thresholds on the number of entries found -in the journal for the specified parameters. +Thresholds to apply to the number of journal entries +found with the specified parameters. =back diff --git a/src/snmp_standard/mode/memory.pm b/src/snmp_standard/mode/memory.pm index 9767e46195..44c767eeae 100644 --- a/src/snmp_standard/mode/memory.pm +++ b/src/snmp_standard/mode/memory.pm @@ -146,13 +146,14 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => { - 'units:s' => { name => 'units', default => '%' }, - 'free' => { name => 'free' }, - 'swap' => { name => 'check_swap' }, - 'patch-redhat' => { name => 'patch_redhat' }, - 'redhat' => { name => 'redhat' }, # for legacy (do nothing) - 'autodetect-redhat' => { name => 'autodetect_redhat' } # for legacy (do nothing) + $options{options}->add_options(arguments => { + 'units:s' => { name => 'units', default => '%' }, + 'force-64bits-counters' => { name => 'force_64bits_counters' }, + 'free' => { name => 'free' }, + 'swap' => { name => 'check_swap' }, + 'patch-redhat' => { name => 'patch_redhat' }, + 'redhat' => { name => 'redhat' }, # for legacy (do nothing) + 'autodetect-redhat' => { name => 'autodetect_redhat' } # for legacy (do nothing) }); return $self; @@ -177,7 +178,8 @@ sub check_options { $self->SUPER::check_options(%options); } -my $mapping = { +# legacy counters +my $mapping_32 = { memTotalSwap => { oid => '.1.3.6.1.4.1.2021.4.3' }, memAvailSwap => { oid => '.1.3.6.1.4.1.2021.4.4' }, memTotalReal => { oid => '.1.3.6.1.4.1.2021.4.5' }, @@ -188,29 +190,41 @@ my $mapping = { memCached => { oid => '.1.3.6.1.4.1.2021.4.15' } }; +my $mapping_64 = { + memTotalSwap => { oid => '.1.3.6.1.4.1.2021.4.18' }, + memAvailSwap => { oid => '.1.3.6.1.4.1.2021.4.19' }, + memTotalReal => { oid => '.1.3.6.1.4.1.2021.4.20' }, + memAvailReal => { oid => '.1.3.6.1.4.1.2021.4.21' }, + memTotalFree => { oid => '.1.3.6.1.4.1.2021.4.23' }, + memShared => { oid => '.1.3.6.1.4.1.2021.4.24' }, + memBuffer => { oid => '.1.3.6.1.4.1.2021.4.25' }, + memCached => { oid => '.1.3.6.1.4.1.2021.4.26' } +}; + sub memory_calc { my ($self, %options) = @_; my $available = ($options{result}->{memAvailReal}) ? $options{result}->{memAvailReal} * 1024 : 0; - my $total = ($options{result}->{memTotalReal}) ? $options{result}->{memTotalReal} * 1024 : 0; - my $buffer = ($options{result}->{memBuffer}) ? $options{result}->{memBuffer} * 1024 : 0; - my $cached = ($options{result}->{memCached}) ? $options{result}->{memCached} * 1024 : 0; + my $total = ($options{result}->{memTotalReal}) ? $options{result}->{memTotalReal} * 1024 : 0; + my $buffer = ($options{result}->{memBuffer}) ? $options{result}->{memBuffer} * 1024 : 0; + my $cached = ($options{result}->{memCached}) ? $options{result}->{memCached} * 1024 : 0; + my ($used, $free, $prct_used, $prct_free) = (0, 0, 0, 0); # rhel patch introduced: net-snmp-5.7.2-43.el7 (https://bugzilla.redhat.com/show_bug.cgi?id=1250060) # rhel patch reverted: net-snmp-5.7.2-47.el7 (https://bugzilla.redhat.com/show_bug.cgi?id=1779609) if ($total != 0) { - $used = (defined($self->{option_results}->{patch_redhat})) ? $total - $available : $total - $available - $buffer - $cached; - $free = (defined($self->{option_results}->{patch_redhat})) ? $available : $total - $used; + $used = (defined($self->{option_results}->{patch_redhat})) ? $total - $available : $total - $available - $buffer - $cached; + $free = (defined($self->{option_results}->{patch_redhat})) ? $available : $total - $used; $prct_used = $used * 100 / $total; $prct_free = 100 - $prct_used; } $self->{ram} = { - total => $total, - used => $used, - free => $free, + total => $total, + used => $used, + free => $free, prct_used => $prct_used, prct_free => $prct_free, memShared => ($options{result}->{memShared}) ? $options{result}->{memShared} * 1024 : 0, @@ -222,20 +236,21 @@ sub memory_calc { sub swap_calc { my ($self, %options) = @_; - my $free = ($options{result}->{memAvailSwap}) ? $options{result}->{memAvailSwap} * 1024 : 0; + my $free = ($options{result}->{memAvailSwap}) ? $options{result}->{memAvailSwap} * 1024 : 0; my $total = ($options{result}->{memTotalSwap}) ? $options{result}->{memTotalSwap} * 1024 : 0; + my ($used, $prct_used, $prct_free) = (0, 0, 0, 0); if ($total != 0) { - $used = $total - $free; + $used = $total - $free; $prct_used = $used * 100 / $total; $prct_free = 100 - $prct_used; } $self->{swap} = { - total => $total, - used => $used, - free => $free, + total => $total, + used => $used, + free => $free, prct_used => $prct_used, prct_free => $prct_free }; @@ -244,8 +259,17 @@ sub swap_calc { sub manage_selection { my ($self, %options) = @_; + my $mapping = $mapping_32; + # If asked to use 64bits counters AND if using v2c or v3 (v1 does not support 64bits counters) + if (defined($self->{option_results}->{force_64bits_counters}) + && defined($self->{option_results}->{snmp_version}) + && !$options{snmp}->is_snmpv1()) { + $mapping = $mapping_64; + } + my @oids = sort map($_->{oid} . '.0', values(%$mapping)); + my $results = $options{snmp}->get_leef( - oids => [ map($_->{oid} . '.0', values(%$mapping)) ], + oids => \@oids, nothing_quit => 1 ); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $results, instance => 0); @@ -287,12 +311,18 @@ Can be: 'usage' (B), 'usage-free' (B), 'usage-prct' (%), =item B<--patch-redhat> -If using RedHat distribution with net-snmp >= 5.7.2-43 and net-snmp < 5.7.2-47. But you should update net-snmp!!!! +If using Red Hat distribution with net-snmp >= 5.7.2-43 and net-snmp < 5.7.2-47. But you should update net-snmp!!!! This version: used = memTotalReal - memAvailReal // free = memAvailReal Others versions: used = memTotalReal - memAvailReal - memBuffer - memCached // free = total - used +=item B<--force-64bits-counters> + +Use this option to monitor a server/device that has more than 2 TB of RAM, the maximum size of a signed 32 bits integer. +If you omit it you'll get the remainder of the Euclidean division of the actual value by 2 TB. +NB: it cannot work with version 1 of SNMP protocol. 64 bits counters are supported starting version 2c. + =back =cut diff --git a/src/storage/hp/primera/restapi/custom/api.pm b/src/storage/hp/primera/restapi/custom/api.pm index 0f22f34b99..1cdef45557 100644 --- a/src/storage/hp/primera/restapi/custom/api.pm +++ b/src/storage/hp/primera/restapi/custom/api.pm @@ -169,7 +169,7 @@ sub request_api { my ($content) = $self->{http}->request( url_path => $options{endpoint}, get_param => $get_param, - header => [ 'Authorization: Bearer ' . $token ], + header => [ 'X-HP3PAR-WSAPI-SessionKey: ' . $token ], unknown_status => '', warning_status => '', critical_status => '' diff --git a/src/storage/wd/nas/snmp/mode/hardware.pm b/src/storage/wd/nas/snmp/mode/hardware.pm index 3bc8907515..443f8ac878 100644 --- a/src/storage/wd/nas/snmp/mode/hardware.pm +++ b/src/storage/wd/nas/snmp/mode/hardware.pm @@ -134,6 +134,17 @@ sub manage_selection { }, driveTable => '.1.3.6.1.4.1.5127.1.1.1.8.1.10.1' }, + ex4100 => { + system => { + temperature => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.7' }, + fanStatus => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.8' } + }, + drive => { + serial => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.4' }, + temperature => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5' } + }, + driveTable => '.1.3.6.1.4.1.5127.1.1.1.6.1.10.1' + }, pr2100 => { system => { temperature => { oid => '.1.3.6.1.4.1.5127.1.1.1.9.1.7' }, diff --git a/src/storage/wd/nas/snmp/mode/listvolumes.pm b/src/storage/wd/nas/snmp/mode/listvolumes.pm index 8b4b070cde..be6230e4ea 100644 --- a/src/storage/wd/nas/snmp/mode/listvolumes.pm +++ b/src/storage/wd/nas/snmp/mode/listvolumes.pm @@ -59,6 +59,13 @@ sub manage_selection { type => { oid => '.1.3.6.1.4.1.5127.1.1.1.8.1.9.1.3' } } }, + ex4100 => { + volumeTable => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1', + volume => { + name => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.2' }, + type => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.3' } + } + }, pr2100 => { volumeTable => '.1.3.6.1.4.1.5127.1.1.1.9.1.9.1', volume => { @@ -79,6 +86,7 @@ sub manage_selection { oids => [ { oid => $nas->{ex2}->{volumeTable} }, { oid => $nas->{ex2ultra}->{volumeTable} }, + { oid => $nas->{ex4100}->{volumeTable} }, { oid => $nas->{pr2100}->{volumeTable} }, { oid => $nas->{pr4100}->{volumeTable} } ] diff --git a/src/storage/wd/nas/snmp/mode/volumes.pm b/src/storage/wd/nas/snmp/mode/volumes.pm index 6e1844e226..104b99644f 100644 --- a/src/storage/wd/nas/snmp/mode/volumes.pm +++ b/src/storage/wd/nas/snmp/mode/volumes.pm @@ -116,6 +116,14 @@ sub manage_selection { free => { oid => '.1.3.6.1.4.1.5127.1.1.1.8.1.9.1.6' } } }, + ex4100 => { + volumeTable => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1', + volume => { + name => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.2' }, + total => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.5' }, + free => { oid => '.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.6' } + } + }, pr2100 => { volumeTable => '.1.3.6.1.4.1.5127.1.1.1.9.1.9.1', volume => { @@ -138,6 +146,7 @@ sub manage_selection { oids => [ { oid => $nas->{ex2}->{volumeTable} }, { oid => $nas->{ex2ultra}->{volumeTable} }, + { oid => $nas->{ex4100}->{volumeTable} }, { oid => $nas->{pr2100}->{volumeTable} }, { oid => $nas->{pr4100}->{volumeTable} } ], diff --git a/tests/apps/automation/ansible/tower/ansible_tower.json b/tests/apps/automation/ansible/tower/ansible_tower.json index 016173f648..cec399f079 100644 --- a/tests/apps/automation/ansible/tower/ansible_tower.json +++ b/tests/apps/automation/ansible/tower/ansible_tower.json @@ -46,7 +46,7 @@ "responses": [ { "uuid": "158d9bce-bc86-4411-8977-afac4a1eaedd", - "body": "{\n \"count\": 1,\n \"next\": {{#if (lt (queryParam 'page') 2)}}\"/api/v2/unified_jobs\"{{else}}null{{/if}},\n \"previous\": {{#if (gte (queryParam 'page') 2)}}\"/api/v2/unified_jobs\"{{else}}null{{/if}},\n \"results\": [\n {\n \"allow_simultaneous\": false,\n \"artifacts\": {},\n \"canceled_on\": null,\n \"controller_node\": \"\",\n \"created\": \"2018-02-01T08:00:00.000000Z\",\n \"description\": \"\",\n \"diff_mode\": false,\n \"elapsed\": 0,\n \"execution_node\": \"\",\n \"extra_vars\": \"{}\",\n \"failed\": false,\n \"finished\": null,\n \"force_handlers\": false,\n \"forks\": 0,\n \"id\": 1,\n \"instance_group\": null,\n \"inventory\": null,\n \"job_explanation\": \"\",\n \"job_slice_count\": 1,\n \"job_slice_number\": 0,\n \"job_tags\": \"\",\n \"job_template\": 1,\n \"job_type\": \"run\",\n \"launch_type\": \"manual\",\n \"limit\": \"\",\n \"modified\": \"2018-02-01T08:00:00.000000Z\",\n \"name\": \"\",\n \"organization\": null,\n \"passwords_needed_to_start\": [],\n \"playbook\": \"\",\n \"project\": null,\n \"related\": {\n \"activity_stream\": \"/api/v2/jobs/1/activity_stream/\",\n \"cancel\": \"/api/v2/jobs/1/cancel/\",\n \"create_schedule\": \"/api/v2/jobs/1/create_schedule/\",\n \"credentials\": \"/api/v2/jobs/1/credentials/\",\n \"job_events\": \"/api/v2/jobs/1/job_events/\",\n \"job_host_summaries\": \"/api/v2/jobs/1/job_host_summaries/\",\n \"job_template\": \"/api/v2/job_templates/1/\",\n \"labels\": \"/api/v2/jobs/1/labels/\",\n \"notifications\": \"/api/v2/jobs/1/notifications/\",\n \"relaunch\": \"/api/v2/jobs/1/relaunch/\",\n \"stdout\": \"/api/v2/jobs/1/stdout/\",\n \"unified_job_template\": \"/api/v2/job_templates/1/\"\n },\n \"scm_branch\": \"\",\n \"scm_revision\": \"\",\n \"skip_tags\": \"\",\n \"start_at_task\": \"\",\n \"started\": null,\n \"status\": \"new\",\n \"summary_fields\": {\n \"credentials\": [],\n \"job_template\": {\n \"description\": \"\",\n \"id\": 1,\n \"name\": \"\"\n },\n \"labels\": {\n \"count\": 0,\n \"results\": []\n },\n \"unified_job_template\": {\n \"description\": \"\",\n \"id\": 1,\n \"name\": \"\",\n \"unified_job_type\": \"job\"\n },\n \"user_capabilities\": {\n \"delete\": true,\n \"start\": false\n }\n },\n \"timeout\": 0,\n \"type\": \"job\",\n \"unified_job_template\": 1,\n \"url\": \"/api/v2/jobs/1/\",\n \"use_fact_cache\": false,\n \"verbosity\": 0,\n \"webhook_credential\": null,\n \"webhook_guid\": \"\",\n \"webhook_service\": \"\"\n }\n ]\n}", + "body": "{{setVar 'datejob1' (dateTimeShift date=(now) format='yyyy-MM-dd\\'T\\'HH:mm:ss.SSSSSS\\'Z' days=-1 hours=1)}}\n{{setVar 'datejob2' (dateTimeShift date=(now) format='yyyy-MM-dd\\'T\\'HH:mm:ss.SSSSSS\\'Z' days=-2 hours=1)}}\n{\n \"count\": 2,\n \"next\": {{#if (lt (queryParam 'page') 2)}}\"/api/v2/unified_jobs\"{{else}}null{{/if}},\n \"previous\": {{#if (gte (queryParam 'page') 2)}}\"/api/v2/unified_jobs\"{{else}}null{{/if}},\n \"results\": [\n {\n \"allow_simultaneous\": false,\n \"artifacts\": {},\n \"canceled_on\": null,\n \"controller_node\": \"\",\n \"created\": \"{{getVar 'datejob1'}}\",\n \"description\": \"\",\n \"diff_mode\": false,\n \"elapsed\": 0,\n \"execution_node\": \"\",\n \"extra_vars\": \"{}\",\n \"failed\": false,\n \"finished\": \"{{getVar 'datejob1'}}\",\n \"force_handlers\": false,\n \"forks\": 0,\n \"id\": 1,\n \"instance_group\": null,\n \"inventory\": null,\n \"job_explanation\": \"\",\n \"job_slice_count\": 1,\n \"job_slice_number\": 0,\n \"job_tags\": \"\",\n \"job_template\": 1,\n \"job_type\": \"run\",\n \"launch_type\": \"manual\",\n \"limit\": \"\",\n \"modified\": \"{{getVar 'datejob1'}}\",\n \"name\": \"First job\",\n \"organization\": null,\n \"passwords_needed_to_start\": [],\n \"playbook\": \"\",\n \"project\": null,\n \"related\": {\n \"activity_stream\": \"/api/v2/jobs/1/activity_stream/\",\n \"cancel\": \"/api/v2/jobs/1/cancel/\",\n \"create_schedule\": \"/api/v2/jobs/1/create_schedule/\",\n \"credentials\": \"/api/v2/jobs/1/credentials/\",\n \"job_events\": \"/api/v2/jobs/1/job_events/\",\n \"job_host_summaries\": \"/api/v2/jobs/1/job_host_summaries/\",\n \"job_template\": \"/api/v2/job_templates/1/\",\n \"labels\": \"/api/v2/jobs/1/labels/\",\n \"notifications\": \"/api/v2/jobs/1/notifications/\",\n \"relaunch\": \"/api/v2/jobs/1/relaunch/\",\n \"stdout\": \"/api/v2/jobs/1/stdout/\",\n \"unified_job_template\": \"/api/v2/job_templates/1/\"\n },\n \"scm_branch\": \"\",\n \"scm_revision\": \"\",\n \"skip_tags\": \"\",\n \"start_at_task\": \"\",\n \"started\": null,\n \"status\": \"new\",\n \"summary_fields\": {\n \"credentials\": [],\n \"job_template\": {\n \"description\": \"\",\n \"id\": 1,\n \"name\": \"\"\n },\n \"labels\": {\n \"count\": 0,\n \"results\": []\n },\n \"unified_job_template\": {\n \"description\": \"\",\n \"id\": 1,\n \"name\": \"\",\n \"unified_job_type\": \"job\"\n },\n \"user_capabilities\": {\n \"delete\": true,\n \"start\": false\n }\n },\n \"timeout\": 0,\n \"type\": \"job\",\n \"unified_job_template\": 1,\n \"url\": \"/api/v2/jobs/1/\",\n \"use_fact_cache\": false,\n \"verbosity\": 0,\n \"webhook_credential\": null,\n \"webhook_guid\": \"\",\n \"webhook_service\": \"\"\n },\n {\n \"allow_simultaneous\": false,\n \"artifacts\": {},\n \"canceled_on\": null,\n \"controller_node\": \"\",\n \"created\": \"{{getVar 'datejob2'}}\",\n \"description\": \"\",\n \"diff_mode\": false,\n \"elapsed\": 0,\n \"execution_node\": \"\",\n \"extra_vars\": \"{}\",\n \"failed\": false,\n \"finished\": \"{{getVar 'datejob2'}}\",\n \"force_handlers\": false,\n \"forks\": 0,\n \"id\": 2,\n \"instance_group\": null,\n \"inventory\": null,\n \"job_explanation\": \"\",\n \"job_slice_count\": 1,\n \"job_slice_number\": 0,\n \"job_tags\": \"\",\n \"job_template\": 2,\n \"job_type\": \"run\",\n \"launch_type\": \"manual\",\n \"limit\": \"\",\n \"modified\": \"{{getVar 'datejob2'}}\",\n \"name\": \"Second job\",\n \"organization\": null,\n \"passwords_needed_to_start\": [],\n \"playbook\": \"\",\n \"project\": null,\n \"related\": {\n \"activity_stream\": \"/api/v2/jobs/2/activity_stream/\",\n \"cancel\": \"/api/v2/jobs/2/cancel/\",\n \"create_schedule\": \"/api/v2/jobs/2/create_schedule/\",\n \"credentials\": \"/api/v2/jobs/2/credentials/\",\n \"job_events\": \"/api/v2/jobs/2/job_events/\",\n \"job_host_summaries\": \"/api/v2/jobs/2/job_host_summaries/\",\n \"job_template\": \"/api/v2/job_templates/2/\",\n \"labels\": \"/api/v2/jobs/2/labels/\",\n \"notifications\": \"/api/v2/jobs/2/notifications/\",\n \"relaunch\": \"/api/v2/jobs/2/relaunch/\",\n \"stdout\": \"/api/v2/jobs/2/stdout/\",\n \"unified_job_template\": \"/api/v2/job_templates/2/\"\n },\n \"scm_branch\": \"\",\n \"scm_revision\": \"\",\n \"skip_tags\": \"\",\n \"start_at_task\": \"\",\n \"started\": null,\n \"status\": \"new\",\n \"summary_fields\": {\n \"credentials\": [],\n \"job_template\": {\n \"description\": \"\",\n \"id\": 2,\n \"name\": \"\"\n },\n \"labels\": {\n \"count\": 0,\n \"results\": []\n },\n \"unified_job_template\": {\n \"description\": \"\",\n \"id\": 2,\n \"name\": \"\",\n \"unified_job_type\": \"job\"\n },\n \"user_capabilities\": {\n \"delete\": true,\n \"start\": false\n }\n },\n \"timeout\": 0,\n \"type\": \"job\",\n \"unified_job_template\": 2,\n \"url\": \"/api/v2/jobs/2/\",\n \"use_fact_cache\": false,\n \"verbosity\": 0,\n \"webhook_credential\": null,\n \"webhook_guid\": \"\",\n \"webhook_service\": \"\"\n }\n ]\n}", "latency": 0, "statusCode": 200, "label": "", diff --git a/tests/apps/automation/ansible/tower/discovery.robot b/tests/apps/automation/ansible/tower/discovery.robot new file mode 100644 index 0000000000..1ea58f5437 --- /dev/null +++ b/tests/apps/automation/ansible/tower/discovery.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Check the discovery mode with api custom mode + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Suite Setup Start Mockoon ${MOCKOON_JSON} +Suite Teardown Stop Mockoon +Test Timeout 120s + + +*** Variables *** +${MOCKOON_JSON} ${CURDIR}${/}ansible_tower.json + +${CMD} ${CENTREON_PLUGINS} +... --plugin=apps::automation::ansible::tower::plugin +... --custommode=api +... --hostname=${HOSTNAME} +... --username=username +... --password=password +... --port=${APIPORT} +... --mode=discovery + +*** Test Cases *** +Discovery ${tc} + [Tags] apps automation ansible api + + ${command} Catenate + ... ${CMD} + ... ${extraoptions} + + ${output} Run ${command} + + ${output} Strip String ${output} + Should Be Equal As Strings + ... ${output} + ... ${expected_result} + ... Wrong output result for command:\n${CMD}\n\nObtained:\n${output}\n\nExpected:\n${expected_result}\n + ... values=False + ... collapse_spaces=True + + Examples: tc extraoptions expected_result -- + ... 1 | jq '.results | length' 10 + ... 2 | jq -r '.results | map(select(.ansible_host != "" and (.ansible_host | test("^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$") | not))) | .[].ansible_host' ${EMPTY} diff --git a/tests/apps/automation/ansible/tower/jobs.robot b/tests/apps/automation/ansible/tower/jobs.robot index f99c2ab700..c9b44b0963 100644 --- a/tests/apps/automation/ansible/tower/jobs.robot +++ b/tests/apps/automation/ansible/tower/jobs.robot @@ -32,16 +32,18 @@ jobs ${tc} Ctn Run Command And Check Result As Strings ${command} ${expected_result} Examples: tc extraoptions expected_result -- - ... 1 --filter-name='' OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 2 --filter-name=toto OK: Jobs total: 0, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=0;;;0; 'jobs.successful.count'=0;;;0;0 'jobs.failed.count'=0;;;0;0 'jobs.running.count'=0;;;0;0 'jobs.canceled.count'=0;;;0;0 'jobs.pending.count'=0;;;0;0 'jobs.default.count'=0;;;0;0 + ... 1 --filter-name='' OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 2 --filter-name=First job OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 ... 3 --filter-name=toto --critical-total=1:1 CRITICAL: Jobs total: 0 | 'jobs.total.count'=0;;1:1;0; 'jobs.successful.count'=0;;;0;0 'jobs.failed.count'=0;;;0;0 'jobs.running.count'=0;;;0;0 'jobs.canceled.count'=0;;;0;0 'jobs.pending.count'=0;;;0;0 'jobs.default.count'=0;;;0;0 - ... 4 --filter-name='' --critical-total=1:1 CRITICAL: Jobs total: 2 | 'jobs.total.count'=2;;1:1;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 5 --filter-name='' --critical-total=2:2 OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;2:2;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 6 --critical-total=2:1 CRITICAL: Jobs total: 2 | 'jobs.total.count'=2;;2:1;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 7 --filter-name='' --display-failed-jobs OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 8 --filter-name='' --warning-total=1:1 WARNING: Jobs total: 2 | 'jobs.total.count'=2;1:1;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 9 --filter-name='' --warning-total=2:2 OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;2:2;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 + ... 4 --filter-name='' --critical-total=1:1 CRITICAL: Jobs total: 4 | 'jobs.total.count'=4;;1:1;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 5 --filter-name='' --critical-total=4:4 OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;;4:4;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 6 --critical-total=4:3 CRITICAL: Jobs total: 4 | 'jobs.total.count'=4;;4:3;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 7 --filter-name='' --display-failed-jobs OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 8 --filter-name='' --warning-total=1:1 WARNING: Jobs total: 4 | 'jobs.total.count'=4;1:1;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 9 --filter-name='' --warning-total=4:4 OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;4:4;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 ... 10 --filter-name=toto --warning-total=1:1 WARNING: Jobs total: 0 | 'jobs.total.count'=0;1:1;;0; 'jobs.successful.count'=0;;;0;0 'jobs.failed.count'=0;;;0;0 'jobs.running.count'=0;;;0;0 'jobs.canceled.count'=0;;;0;0 'jobs.pending.count'=0;;;0;0 'jobs.default.count'=0;;;0;0 - ... 11 --warning-total=1:2 OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;1:2;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 12 --warning-total=2:1 WARNING: Jobs total: 2 | 'jobs.total.count'=2;2:1;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 - ... 13 --critical-total=1:2 OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;1:2;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 + ... 11 --warning-total=3:4 OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;3:4;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 12 --warning-total=4:3 WARNING: Jobs total: 4 | 'jobs.total.count'=4;4:3;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 13 --critical-total=3:4 OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;;3:4;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 + ... 14 --filter-time=24 OK: Jobs total: 2, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=2;;;0; 'jobs.successful.count'=0;;;0;2 'jobs.failed.count'=0;;;0;2 'jobs.running.count'=0;;;0;2 'jobs.canceled.count'=0;;;0;2 'jobs.pending.count'=0;;;0;2 'jobs.default.count'=0;;;0;2 + ... 15 --filter-time=48 OK: Jobs total: 4, successful: 0, failed: 0, running: 0 | 'jobs.total.count'=4;;;0; 'jobs.successful.count'=0;;;0;4 'jobs.failed.count'=0;;;0;4 'jobs.running.count'=0;;;0;4 'jobs.canceled.count'=0;;;0;4 'jobs.pending.count'=0;;;0;4 'jobs.default.count'=0;;;0;4 diff --git a/tests/apps/backup/rubrik/restapi/applications-rubrik-restapi.json b/tests/apps/backup/rubrik/restapi/applications-rubrik-restapi.json new file mode 100644 index 0000000000..9b155d3f82 --- /dev/null +++ b/tests/apps/backup/rubrik/restapi/applications-rubrik-restapi.json @@ -0,0 +1,92 @@ +{ + "uuid": "c8fba1bd-af32-4acd-83a2-5b26a0152183", + "lastMigration": 32, + "name": "Rubrik2", + "endpointPrefix": "api/v1", + "latency": 0, + "port": 3000, + "hostname": "", + "folders": [], + "routes": [ + { + "uuid": "b9fdb329-671b-48d0-a906-d58e45a70527", + "type": "http", + "documentation": "", + "method": "get", + "endpoint": "job_monitoring", + "responses": [ + { + "uuid": "4aac7b2c-2947-4e6b-83a4-094da73ecc5a", + "body": "{\r\n \"jobMonitoringInfoList\": [\r\n {\r\n \"jobMonitoringState\": \"Success\",\r\n \"jobStatus\": \"Success\",\r\n \"jobType\": \"Backup\",\r\n \"objectId\": \"VolumeGroup:::123a456-123a-456b-789c-123456789\",\r\n \"objectType\": \"WindowsVolumeGroup\",\r\n \"objectName\": \"centreon.groupe.active volumes\",\r\n \"locationId\": \"Host:::123c456-a123-b456-c789-123a456\",\r\n \"locationName\": \"centreon.groupe.active\",\r\n \"slaDomainId\": \"1234a456-123a-456b-aaaa-12345\",\r\n \"slaDomainName\": \"CENTREON-DOMAIN\",\r\n \"startTime\": \"2024-07-18T20:00:01.382Z\",\r\n \"endTime\": \"2024-07-19T06:42:16.355Z\",\r\n \"lastSuccessfulJobTime\": \"2024-07-16T20:00:01.382Z\",\r\n \"nextJobTime\": \"2023-11-07T20:00:00.000Z\",\r\n \"isFirstFullSnapshot\": false,\r\n \"sourceClusterName\": \"LOCAL\",\r\n \"sourceClusterId\": \"aaaaaa-123a-456b-aaaa-12345\",\r\n \"retryCount\": 0,\r\n \"maximumAttemptsForJob\": 3,\r\n \"dataTransferred\": 571231961088,\r\n \"objectLogicalSize\": 193955119497216,\r\n \"eventSeriesId\": \"Zaaaaaa-123a-456b-123a-12345abcd\",\r\n \"duration\": 38534973,\r\n \"nodeId\": \"AAAABBBBCCCCDDD\",\r\n \"warningCount\": 0,\r\n \"lastUpdatedTime\": \"2024-07-19T06:42:16.721Z\",\r\n \"isLogTask\": false,\r\n \"isOnDemand\": false,\r\n \"retryStatus\": \"NotRetried\"\r\n },\r\n {\r\n \"jobMonitoringState\": \"Scheduled\",\r\n \"jobStatus\": \"Scheduled\",\r\n \"jobType\": \"Backup\",\r\n \"objectId\": \"VolumeGroup:::123a456-123a-456b-789c-123456789\",\r\n \"objectType\": \"WindowsVolumeGroup\",\r\n \"objectName\": \"centreon.groupe.active volumes\",\r\n \"locationId\": \"Host:::123c456-a123-b456-c789-123a456\",\r\n \"locationName\": \"centreon.groupe.active\",\r\n \"slaDomainId\": \"1234a456-123a-456b-aaaa-12345\",\r\n \"slaDomainName\": \"CENTREON-DOMAIN\",\r\n \"startTime\": \"2024-07-18T20:00:00.000Z\",\r\n \"lastSuccessfulJobTime\": \"2024-07-18T20:00:01.382Z\",\r\n \"isFirstFullSnapshot\": false,\r\n \"sourceClusterName\": \"LOCAL\",\r\n \"sourceClusterId\": \"aaaaaa-123a-456b-aaaa-12345\",\r\n \"retryCount\": 0,\r\n \"maximumAttemptsForJob\": 3,\r\n \"objectLogicalSize\": 193955119497216,\r\n \"eventSeriesId\": \"afba57d8-efb3-452e-892b-157acc6b6069\",\r\n \"nodeId\": \"AAAABBBBCCCCDDD\",\r\n \"warningCount\": 0,\r\n \"lastUpdatedTime\": \"2024-07-18T06:42:16.894Z\",\r\n \"isLogTask\": false,\r\n \"isOnDemand\": false,\r\n \"retryStatus\": \"NotRetried\"\r\n }\r\n ],\r\n \"jobType\": \"Backup\",\r\n \"shouldIncludeLogRelatedJob\": false,\r\n \"objectName\": \"CENTREON\",\r\n \"hasMore\": false\r\n}", + "latency": 0, + "statusCode": 200, + "label": "", + "headers": [], + "bodyType": "INLINE", + "filePath": "", + "databucketID": "", + "sendFileAsBody": false, + "rules": [], + "rulesOperator": "OR", + "disableTemplating": false, + "fallbackTo404": false, + "default": true, + "crudKey": "id", + "callbacks": [] + } + ], + "responseMode": null + } + ], + "rootChildren": [ + { + "type": "route", + "uuid": "b9fdb329-671b-48d0-a906-d58e45a70527" + } + ], + "proxyMode": false, + "proxyHost": "", + "proxyRemovePrefix": false, + "tlsOptions": { + "enabled": false, + "type": "CERT", + "pfxPath": "", + "certPath": "", + "keyPath": "", + "caPath": "", + "passphrase": "" + }, + "cors": true, + "headers": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "Access-Control-Allow-Methods", + "value": "GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS" + }, + { + "key": "Access-Control-Allow-Headers", + "value": "Content-Type, Origin, Accept, Authorization, Content-Length, X-Requested-With" + } + ], + "proxyReqHeaders": [ + { + "key": "", + "value": "" + } + ], + "proxyResHeaders": [ + { + "key": "", + "value": "" + } + ], + "data": [], + "callbacks": [] +} \ No newline at end of file diff --git a/tests/apps/backup/rubrik/restapi/cache.robot b/tests/apps/backup/rubrik/restapi/cache.robot new file mode 100644 index 0000000000..7816ebdc4c --- /dev/null +++ b/tests/apps/backup/rubrik/restapi/cache.robot @@ -0,0 +1,39 @@ +*** Settings *** +Documentation Check Rubrik REST API jobs cache file creation + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Suite Setup Start Mockoon ${MOCKOON_JSON} +Suite Teardown Stop Mockoon +Test Timeout 120s + + +*** Variables *** +${MOCKOON_JSON} ${CURDIR}${/}applications-rubrik-restapi.json +${cmd} ${CENTREON_PLUGINS} +... --plugin=apps::backup::rubrik::restapi::plugin +... --hostname=${HOSTNAME} +... --api-username='username' +... --api-password='password' +... --proto='http' +... --port=${APIPORT} + + +*** Test Cases *** +cache ${tc}/1 + [Tags] apps backup rubrik restapi cache + + ${command} Catenate + ... ${cmd} + ... --mode=cache + + ${output} Run ${command} + ${output} Strip String ${output} + Should Be Equal As Strings + ... ${output} + ... ${expected_result} + ... \nWrong output result for command:\n${command}\n\nExpected:\n${expected_result}\nCommand output:\n${output}\n + + Examples: tc extra_options expected_result -- + ... 1 ${EMPTY} OK: Cache files created successfully + \ No newline at end of file diff --git a/tests/apps/backup/rubrik/restapi/jobs.robot b/tests/apps/backup/rubrik/restapi/jobs.robot new file mode 100644 index 0000000000..e1052c8e1c --- /dev/null +++ b/tests/apps/backup/rubrik/restapi/jobs.robot @@ -0,0 +1,47 @@ +*** Settings *** +Documentation Check Rubrik REST API jobs + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Suite Setup Start Mockoon ${MOCKOON_JSON} +Suite Teardown Stop Mockoon +Test Timeout 120s + + +*** Variables *** +${MOCKOON_JSON} ${CURDIR}${/}applications-rubrik-restapi.json +${cmd} ${CENTREON_PLUGINS} +... --plugin=apps::backup::rubrik::restapi::plugin +... --hostname=${HOSTNAME} +... --api-username='username' +... --api-password='password' +... --proto='http' +... --port=${APIPORT} + +*** Test Cases *** +jobs ${tc}/11 + [Tags] apps backup rubrik restapi jobs + + ${command} Catenate + ... ${cmd} + ... --mode=jobs + ... ${extraoptions} + + Log ${command} + + ${output} Run ${command} + + Should Match Regexp ${output} ${expected_result} + + Examples: tc extraoptions expected_result -- + ... 1 ${EMPTY} OK: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % - last execution .* - last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*s;;;0; + ... 2 --unknown-execution-status='\\%\{status\} eq "Success"' UNKNOWN: job 'centreon.groupe.active volumes' \[type: backup\] last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*s;;;0; + ... 3 --warning-execution-status='\\%\{status\} eq "Success"' WARNING: job 'centreon.groupe.active volumes' \[type: backup\] last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*s;;;0; + ... 4 --critical-execution-status='\\%\{status\} eq "Success"' CRITICAL: job 'centreon.groupe.active volumes' \[type: backup\] last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*s;;;0; + ... 5 --warning-jobs-executions-detected=1 --critical-jobs-executions-detected=3 WARNING: Number of jobs executions detected: 2 \| 'jobs.executions.detected.count'=2;0:2;0:5;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;;;0; + ... 6 --warning-jobs-executions-detected=1 --critical-jobs-executions-detected=1 CRITICAL: Number of jobs executions detected: 2 \| 'jobs.executions.detected.count'=2;0:2;0:3;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;;;0; + ... 7 --warning-job-executions-failed-prct=1:1 --critical-job-executions-failed-prct=1 WARNING: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;1:1;0:1;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;;;0; + ... 8 --warning-job-executions-failed-prct=1 --critical-job-executions-failed-prct=1:1 CRITICAL: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;0:1;1:1;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;;;0; + ... 9 --warning-job-execution-last=315360000 --critical-job-execution-last=315360000 OK: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % - last execution .* - last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;0:315360000;0:315360000;0; + ... 10 --warning-job-execution-last=1 --critical-job-execution-last=315360000 WARNING: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % - last execution .* - last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;0:1;0:315360000;0; + ... 11 --warning-job-execution-last=315360000 --critical-job-execution-last=315360000 CRITICAL: job 'centreon.groupe.active volumes' \[type: backup\] number of failed executions: 0.00 % - last execution .* - last execution started: 2024-07-18T20:00:01.382Z status: Success \| 'jobs.executions.detected.count'=2;;;0; 'centreon.groupe.active volumes~backup#job.executions.failed.percentage'=0.00%;;;0;100 'centreon.groupe.active volumes~backup#job.execution.last.seconds'=.*;0:315360000;0:315360000;0; \ No newline at end of file diff --git a/tests/cloud/aws/cloudtrail/checktrailstatus.robot b/tests/cloud/aws/cloudtrail/checktrailstatus.robot new file mode 100644 index 0000000000..4c785abf2a --- /dev/null +++ b/tests/cloud/aws/cloudtrail/checktrailstatus.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation AWS CloudTrail plugin + +Resource ${CURDIR}${/}..${/}..${/}..${/}resources/import.resource + +Suite Setup Start Mockoon ${MOCKOON_JSON} +Suite Teardown Stop Mockoon +Test Timeout 120s + + +*** Variables *** +${MOCKOON_JSON} ${CURDIR}${/}cloud-aws-cloudtrail.json + +${CMD} ${CENTREON_PLUGINS} --plugin=cloud::aws::cloudtrail::plugin --custommode=paws --region=eu-west --aws-secret-key=secret --aws-access-key=key + + +*** Test Cases *** +AWS CloudTrail check trail status + [Documentation] Check AWS CloudTrail trail status + [Tags] cloud aws cloudtrail + + ${command} Catenate + ... ${CMD} + ... --mode=checktrailstatus + ... --endpoint=http://${HOSTNAME}:${APIPORT}/cloudtrail/gettrailstatus/${trailstatus} + ... --trail-name=trailname + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc trailstatus expected_result -- + ... 1 true OK: Trail is logging: 1 | 'trail_is_logging'=1;;;0; + ... 2 false CRITICAL: Trail is logging: 0 | 'trail_is_logging'=0;;;0; diff --git a/tests/cloud/aws/cloudtrail/cloud-aws-cloudtrail.json b/tests/cloud/aws/cloudtrail/cloud-aws-cloudtrail.json new file mode 100644 index 0000000000..fc680bb463 --- /dev/null +++ b/tests/cloud/aws/cloudtrail/cloud-aws-cloudtrail.json @@ -0,0 +1,133 @@ +{ + "uuid": "e59ad81e-2050-480d-bbae-0e71c607c927", + "lastMigration": 32, + "name": "Aws cloudtrail", + "endpointPrefix": "", + "latency": 0, + "port": 3000, + "hostname": "", + "folders": [], + "routes": [ + { + "uuid": "b5e25f3a-a8e3-4128-9e45-f2654c5a599d", + "type": "http", + "documentation": "", + "method": "post", + "endpoint": "cloudtrail/gettrailstatus/:islogging", + "responses": [ + { + "uuid": "76483999-2022-4610-8e8c-9c0bd535e4c5", + "body": "{\r\n \"IsLogging\": {{ urlParam 'islogging' 'true' }},\r\n \"LatestCloudWatchLogsDeliveryError\": \"error\",\r\n \"LatestCloudWatchLogsDeliveryTime\": 1683298944.125,\r\n \"LatestDeliveryAttemptSucceeded\": \"2023-05-05T15:02:24Z\",\r\n \"LatestDeliveryAttemptTime\": \"2023-05-05T15:02:24Z\",\r\n \"LatestDeliveryError\": \"error\",\r\n \"LatestDeliveryTime\": 1683298944.125,\r\n \"LatestDigestDeliveryError\": \"error\",\r\n \"LatestDigestDeliveryTime\": 1683298944.125,\r\n \"LatestNotificationAttemptSucceeded\": \"2023-05-05T15:02:24Z\",\r\n \"LatestNotificationAttemptTime\": \"2023-05-05T15:02:24Z\",\r\n \"LatestNotificationError\": \"error\",\r\n \"LatestNotificationTime\": 1683298944.125,\r\n \"StartLoggingTime\": 1683298944.125,\r\n \"StopLoggingTime\": 1683298477.918,\r\n \"TimeLoggingStarted\": \"2023-05-05T15:02:24Z\",\r\n \"TimeLoggingStopped\": \"2023-05-05T14:54:37Z\"\r\n}", + "latency": 0, + "statusCode": 200, + "label": "", + "headers": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "bodyType": "INLINE", + "filePath": "", + "databucketID": "", + "sendFileAsBody": false, + "rules": [], + "rulesOperator": "OR", + "disableTemplating": false, + "fallbackTo404": false, + "default": true, + "crudKey": "id", + "callbacks": [] + } + ], + "responseMode": null + }, + { + "uuid": "77f82f1c-b06e-478a-8366-ab325830f00e", + "type": "http", + "documentation": "", + "method": "post", + "endpoint": "cloudtrail/events/AwsApiCall/:AwsApiCall/AwsServiceEvent/:AwsServiceEvent/AwsConsoleAction/:AwsConsoleAction/AwsConsoleSignIn/:AwsConsoleSignIn/NextToken/:NextToken", + "responses": [ + { + "uuid": "7dd41177-8d63-458a-abcc-b3af3ea8c9cd", + "body": "{\r\n\t\"Events\": [\r\n\t\t{{#each (dataRaw 'EventsData')}}\r\n\t\t {{#if (gt @index 0)}}\r\n\t\t ,\r\n\t\t {{/if}}\r\n \t\t{\r\n \t\t\t\"AccessKeyId\": \"{{AccessKeyId}}\",\r\n \t\t\t\"CloudTrailEvent\": \"{\\\"awsRegion\\\": \\\"eu-west-1\\\", {{#if Error}}\\\"errorCode\\\": \\\"{{ErrorCode}}\\\", \\\"errorMessage\\\": \\\"{{ErrorMessage}}\\\",{{/if}} \\\"eventCategory\\\": \\\"Management\\\", \\\"eventID\\\": \\\"{{EventId}}\\\", \\\"eventName\\\": \\\"{{EventName}}\\\", \\\"eventSource\\\": \\\"{{EventSource}}\\\", \\\"eventTime\\\": \\\"{{EventTime}}\\\", \\\"eventType\\\": \\\"{{EventType}}\\\", \\\"eventVersion\\\": \\\"1.08\\\", \\\"managementEvent\\\": true, \\\"readOnly\\\": true, \\\"recipientAccountId\\\": \\\"{{AccountId}}\\\", \\\"requestID\\\": \\\"{{ faker 'string.uuid' }}\\\", \\\"requestParameters\\\": null, \\\"responseElements\\\": null, \\\"sourceIPAddress\\\": \\\"{{ faker 'internet.ip' }}\\\", \\\"tlsDetails\\\": {\\\"cipherSuite\\\": \\\"ECDHE-RSA-AES128-GCM-SHA256\\\", \\\"clientProvidedHostHeader\\\": \\\"cloudtrail.eu-west-1.amazonaws.com\\\", \\\"tlsVersion\\\": \\\"TLSv1.2\\\"}, \\\"userAgent\\\": \\\"aws-cli/2.11.0 Python/3.11.2 Darwin/22.2.0 source/x86_64 prompt/off command/cloudtrail.lookup-events\\\", \\\"userIdentity\\\": {\\\"accessKeyId\\\": \\\"{{AccessKeyId}}\\\", \\\"accountId\\\": \\\"{{AccountId}}\\\", \\\"arn\\\": \\\"arn:aws:sts::{{AccountId}}:assumed-role/{{UserRole}}/{{UserName}}\\\", \\\"principalId\\\": \\\"{{PrincipalId}}:{{UserName}}\\\", \\\"sessionContext\\\": {\\\"attributes\\\": {\\\"creationDate\\\": \\\"{{ faker 'date.past' EventTime }}\\\", \\\"mfaAuthenticated\\\": \\\"false\\\"}, \\\"sessionIssuer\\\": {\\\"accountId\\\": \\\"{{AccountId}}\\\", \\\"arn\\\": \\\"arn:aws:iam::{{AccountId}}:role/{{UserRole}}\\\", \\\"principalId\\\": \\\"{{PrincipalId}}\\\", \\\"type\\\": \\\"Role\\\", \\\"userName\\\": \\\"{{UserRole}}\\\"}, \\\"webIdFederationData\\\": {}}, \\\"type\\\": \\\"{{ faker 'person.jobArea' }}\\\"}}\",\r\n \t\t\t\"EventId\": \"{{EventId}}\",\r\n \t\t\t\"EventName\": \"{{EventName}}\",\r\n \t\t\t\"EventSource\": \"{{EventSource}}\",\r\n \t\t\t\"EventTime\": \"{{EventTime}}\",\r\n \t\t\t\"ReadOnly\": \"true\",\r\n \t\t\t\"Resources\": [\r\n \t\t\t],\r\n \t\t\t\"Username\": \"{{UserName}}\"\r\n \t\t}\r\n\t\t{{/each}}\r\n\t]\r\n\t{{#if (gte (indexOf (urlParam 'NextToken') 'true' 0) 0)}}\r\n\t {{#unless (includes (stringify (body)) 'NextToken')}}\r\n\t\t ,\"NextToken\": \"{{ faker 'string.alphanumeric' 64 casing='upper' }}\"\r\n\t\t{{/unless}}\r\n\t{{/if}}\r\n}", + "latency": 0, + "statusCode": 200, + "label": "", + "headers": [], + "bodyType": "INLINE", + "filePath": "", + "databucketID": "c5kh", + "sendFileAsBody": false, + "rules": [], + "rulesOperator": "OR", + "disableTemplating": false, + "fallbackTo404": false, + "default": true, + "crudKey": "id", + "callbacks": [] + } + ], + "responseMode": null + } + ], + "rootChildren": [ + { + "type": "route", + "uuid": "b5e25f3a-a8e3-4128-9e45-f2654c5a599d" + }, + { + "type": "route", + "uuid": "77f82f1c-b06e-478a-8366-ab325830f00e" + } + ], + "proxyMode": false, + "proxyHost": "", + "proxyRemovePrefix": false, + "tlsOptions": { + "enabled": false, + "type": "CERT", + "pfxPath": "", + "certPath": "", + "keyPath": "", + "caPath": "", + "passphrase": "" + }, + "cors": true, + "headers": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "proxyReqHeaders": [ + { + "key": "", + "value": "" + } + ], + "proxyResHeaders": [ + { + "key": "", + "value": "" + } + ], + "data": [ + { + "uuid": "5dce6340-bade-4336-8041-50fd22570055", + "id": "nu28", + "name": "EventsTypeData", + "documentation": "", + "value": "[\n {\n \"name\": \"AwsApiCall\",\n \"error\": false\n },\n {\n \"name\": \"AwsServiceEvent\",\n \"error\": false\n },\n {\n \"name\": \"AwsConsoleAction\",\n \"error\": true,\n \t\"errorCode\": \"ThrottlingException\",\n \t\"errorMessage\": \"Rate exceeded error\"\n },\n {\n \"name\": \"AwsConsoleSignIn\",\n \"error\": true,\n \"errorCode\": \"LoginErrorException\",\n \"errorMessage\": \"Login error\"\n }\n]" + }, + { + "uuid": "76dec2a5-ff63-4e81-9611-94b900ab16e1", + "id": "c5kh", + "name": "EventsData", + "documentation": "", + "value": "[\n {{#each (dataRaw 'EventsTypeData')}}\n {{#if (gte @isEvent 1)}}\n ,\n {{/if}}\n {{setVar 'isEvent' (add (urlParam name) @isEvent)}}\n {{#repeat (urlParam name comma=true)}}\n {\n \"AccessKeyId\": \"{{ faker 'string.alphanumeric' 20 casing='upper' }}\",\n \"AccountId\": \"{{ faker 'string.numeric' 12 }}\",\n \"Error\": {{error}},\n {{#if error}}\n \"ErrorCode\": \"{{errorCode}}\",\n\t \"ErrorMessage\": \"{{errorMessage}}\",\n {{/if}}\n \"EventId\": \"{{ faker 'string.uuid' }}\",\n \"EventName\": \"{{oneOf (array 'LookupEvents' 'ListInstanceAssociations' 'AssumeRoleWithWebIdentity')}}\",\n \"EventSource\": \"{{oneOf (array 'cloudtrail.amazonaws.com' 'ssm.amazonaws.com' 'sts.amazonaws.com')}}\",\n \"EventTime\": \"{{ faker 'date.recent' }}\",\n \"EventType\": \"{{name}}\",\n \"PrincipalId\": \"{{ faker 'string.alphanumeric' 20 casing='upper' }}\",\n \"UserName\": \"{{ faker 'internet.userName' }}\",\n \"UserRole\": \"{{ faker 'person.jobType' }}\"\n }\n {{/repeat}}\n {{/each}}\n]" + } + ], + "callbacks": [] +} \ No newline at end of file diff --git a/tests/cloud/aws/cloudtrail/countevents.robot b/tests/cloud/aws/cloudtrail/countevents.robot new file mode 100644 index 0000000000..e47a2ddc12 --- /dev/null +++ b/tests/cloud/aws/cloudtrail/countevents.robot @@ -0,0 +1,38 @@ +*** Settings *** +Documentation AWS CloudTrail plugin + +Resource ${CURDIR}${/}..${/}..${/}..${/}resources/import.resource + +Suite Setup Start Mockoon ${MOCKOON_JSON} +Suite Teardown Stop Mockoon +Test Timeout 120s + + +*** Variables *** +${MOCKOON_JSON} ${CURDIR}${/}cloud-aws-cloudtrail.json + +${CMD} ${CENTREON_PLUGINS} --plugin=cloud::aws::cloudtrail::plugin --custommode=paws --region=eu-west --aws-secret-key=secret --aws-access-key=key + + +*** Test Cases *** +AWS CloudTrail count events + [Documentation] Check AWS CloudTrail count events + [Tags] cloud aws cloudtrail + + ${command} Catenate + ... ${CMD} + ... --mode=countevents + ... --endpoint=http://localhost:3000/cloudtrail/events/AwsApiCall/${AwsApiCall}/AwsServiceEvent/${AwsServiceEvent}/AwsConsoleAction/${AwsConsoleAction}/AwsConsoleSignIn/${AwsConsoleSignIn}/NextToken/${NextToken} + ... ${extraoptions} + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc AwsApiCall AwsServiceEvent AwsConsoleAction AwsConsoleSignIn NextToken extraoptions expected_result -- + ... 1 4 2 1 3 false ${EMPTY} OK: Number of events: 10.00 | 'events_count'=10.00;;;0; + ... 2 4 2 1 3 true ${EMPTY} OK: Number of events: 20.00 | 'events_count'=20.00;;;0; + ... 3 4 2 1 3 false --event-type=AwsApiCall OK: Number of events: 4.00 | 'events_count'=4.00;;;0; + ... 4 4 2 1 3 false --event-type=AwsServiceEvent OK: Number of events: 2.00 | 'events_count'=2.00;;;0; + ... 5 4 2 1 3 false --delta=10 OK: Number of events: 10.00 | 'events_count'=10.00;;;0; + ... 6 4 2 1 3 false --error-message='Login error' OK: Number of events: 3.00 | 'events_count'=3.00;;;0; + ... 7 4 2 1 3 false --error-message='.*error' OK: Number of events: 4.00 | 'events_count'=4.00;;;0; + ... 8 4 2 1 3 false --warning-count=3 WARNING: Number of events: 10.00 | 'events_count'=10.00;;;0; + ... 9 4 2 1 3 false --critical-count=5 CRITICAL: Number of events: 10.00 | 'events_count'=10.00;;;0; diff --git a/tests/cloud/azure/policyinsights/policystates/cloud-azure-policyinsights-policystates.robot b/tests/cloud/azure/policyinsights/policystates/cloud-azure-policyinsights-policystates.robot index 0bbf1a9741..8b7c3d58d1 100644 --- a/tests/cloud/azure/policyinsights/policystates/cloud-azure-policyinsights-policystates.robot +++ b/tests/cloud/azure/policyinsights/policystates/cloud-azure-policyinsights-policystates.robot @@ -15,54 +15,20 @@ ${BASE_URL} http://${HOSTNAME}:${APIPORT} ${LOGIN_ENDPOINT} ${BASE_URL}/login ${CMD} ${CENTREON_PLUGINS} --plugin=cloud::azure::policyinsights::policystates::plugin --subscription=subscription --tenant=tenant --client-id=client_id --client-secret=secret --statefile-dir=/dev/shm/ --login-endpoint=${LOGIN_ENDPOINT} -&{compliance_value1} -... endpoint=${BASE_URL}/ok -... policyname= -... resourcelocation= -... resourcetype= -... result=OK: Number of non compliant policies: 0 - All compliances states are ok | 'policies.non_compliant.count'=0;;;0; -&{compliance_value2} -... endpoint=${BASE_URL}/oknextlink -... policyname=9daedab3-fb2d-461e-b861-71790eead4f6 -... resourcelocation= -... resourcetype= -... result=OK: Number of non compliant policies: 0 - All compliances states are ok | 'policies.non_compliant.count'=0;;;0; -&{compliance_value3} -... endpoint=${BASE_URL}/nok1 -... policyname=9daedab3-fb2d-461e-b861-71790eead4f6 -... resourcelocation=fr -... resourcetype= -... result=CRITICAL: Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip1' is 'NonCompliant' | 'policies.non_compliant.count'=1;;;0; -&{compliance_value4} -... endpoint=${BASE_URL}/nok2 -... policyname=9daedab3-fb2d-461e-b861-71790eead4f6 -... resourcelocation=fr -... resourcetype=ip -... result=CRITICAL: Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip1' is 'NonCompliant' - Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip2' is 'NonCompliant' | 'policies.non_compliant.count'=2;;;0; -@{compliance_values} &{compliance_value1} &{compliance_value2} &{compliance_value3} &{compliance_value4} - *** Test Cases *** -Azure PolicyInsights PolicyStates compliance +Azure PolicyInsights PolicyStates compliance ${tc} [Documentation] Check Azure PolicyInsights PolicyStates compliance [Tags] cloud azure policyinsights policystates - FOR ${compliance_value} IN @{compliance_values} - ${command} Catenate - ... ${CMD} - ... --mode=compliance - ... --management-endpoint=${compliance_value.endpoint} - ${length} Get Length ${compliance_value.policyname} - IF ${length} > 0 - ${command} Catenate ${command} --policy-name=${compliance_value.policyname} - END - ${length} Get Length ${compliance_value.resourcelocation} - IF ${length} > 0 - ${command} Catenate ${command} --resource-location=${compliance_value.resourcelocation} - END - ${length} Get Length ${compliance_value.resourcetype} - IF ${length} > 0 - ${command} Catenate ${command} --resource-type=${compliance_value.resourcetype} - END + ${command} Catenate + ... ${CMD} + ... --mode=compliance + ... --management-endpoint=${endpoint} - Ctn Run Command And Check Result As Strings ${command} ${compliance_value.result} - END + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc endpoint policyname resourcelocation resourcetype expected_result -- + ... 1 ${BASE_URL}/ok ${EMPTY} ${EMPTY} ${EMPTY} OK: Number of non compliant policies: 0 - All compliances states are ok | 'policies.non_compliant.count'=0;;;0; + ... 2 ${BASE_URL}/oknextlink 9daedab3-fb2d-461e-b861-71790eead4f6 ${EMPTY} ${EMPTY} OK: Number of non compliant policies: 0 - All compliances states are ok | 'policies.non_compliant.count'=0;;;0; + ... 3 ${BASE_URL}/nok1 9daedab3-fb2d-461e-b861-71790eead4f6 fr ${EMPTY} CRITICAL: Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip1' is 'NonCompliant' | 'policies.non_compliant.count'=1;;;0; + ... 4 ${BASE_URL}/nok2 9daedab3-fb2d-461e-b861-71790eead4f6 fr ip CRITICAL: Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip1' is 'NonCompliant' - Compliance state for policy '9daedab3-fb2d-461e-b861-71790eead4f6' on resource 'mypubip2' is 'NonCompliant' | 'policies.non_compliant.count'=2;;;0; \ No newline at end of file diff --git a/tests/database/database-mysql.robot b/tests/database/database-mysql.robot index 83f933fedc..91a196fc67 100644 --- a/tests/database/database-mysql.robot +++ b/tests/database/database-mysql.robot @@ -9,24 +9,15 @@ Test Timeout 120s *** Variables *** ${CMD} ${CENTREON_PLUGINS} --plugin=database::mysql::plugin -&{sql_string_test1} -... result=UNKNOWN: Need to specify data_source arguments. -@{sql_string_tests} -... &{sql_string_test1} - - *** Test Cases *** -Database Mysql sql string mode +Database Mysql sql string mode ${tc} [Documentation] Mode sql string (common protocol database) [Tags] database mysql sql-string - FOR ${sql_string_test} IN @{sql_string_tests} - ${command} Catenate - ... ${CMD} - ... --mode=sql-string - ${output} Run ${command} - ${output} Strip String ${output} - Should Be Equal As Strings - ... ${output} - ... ${sql_string_test.result} - ... Wrong output result for compliance of ${sql_string_test.result}{\n}Command output:{\n}${output}{\n}{\n}{\n} - END + ${command} Catenate + ... ${CMD} + ... --mode=sql-string + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc expected_result -- + ... 1 UNKNOWN: Need to specify data_source arguments. diff --git a/tests/hardware/pdu/cyberpower/snmp/CyberPower.snmpwalk b/tests/hardware/pdu/cyberpower/snmp/CyberPower.snmpwalk new file mode 100644 index 0000000000..80c4aed5eb --- /dev/null +++ b/tests/hardware/pdu/cyberpower/snmp/CyberPower.snmpwalk @@ -0,0 +1,1148 @@ +.1.3.6.1.2.1.1.1.0 = STRING: "CPS Power Distributed Unit" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.3808.1.1.6 +.1.3.6.1.2.1.1.3.0 = 161500 +.1.3.6.1.2.1.1.4.0 = STRING: "...cut..." +.1.3.6.1.2.1.1.5.0 = STRING: "ATS011" +.1.3.6.1.2.1.1.6.0 = STRING: "...cut..." +.1.3.6.1.2.1.1.7.0 = INTEGER: 72 +.1.3.6.1.2.1.2.1.0 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "cps agent" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 0 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 00 0C 15 41 7C 5D +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.9.1 = 1300 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.3.1.1.1.1.10.3.2.1 = INTEGER: 1 +.1.3.6.1.2.1.3.1.1.2.1.10.3.2.1 = Hex-STRING: BC 4A 56 91 63 80 +.1.3.6.1.2.1.3.1.1.3.1.10.3.2.1 = IpAddress: 10.3.2.1 +.1.3.6.1.2.1.4.1.0 = INTEGER: 2 +.1.3.6.1.2.1.4.2.0 = INTEGER: 255 +.1.3.6.1.2.1.4.3.0 = Counter32: 4441 +.1.3.6.1.2.1.4.4.0 = Counter32: 0 +.1.3.6.1.2.1.4.5.0 = Counter32: 41 +.1.3.6.1.2.1.4.6.0 = Counter32: 0 +.1.3.6.1.2.1.4.7.0 = Counter32: 0 +.1.3.6.1.2.1.4.8.0 = Counter32: 41 +.1.3.6.1.2.1.4.9.0 = Counter32: 4406 +.1.3.6.1.2.1.4.10.0 = Counter32: 4638 +.1.3.6.1.2.1.4.11.0 = Counter32: 0 +.1.3.6.1.2.1.4.12.0 = Counter32: 0 +.1.3.6.1.2.1.4.13.0 = INTEGER: 0 +.1.3.6.1.2.1.4.14.0 = Counter32: 0 +.1.3.6.1.2.1.4.15.0 = Counter32: 0 +.1.3.6.1.2.1.4.16.0 = Counter32: 0 +.1.3.6.1.2.1.4.17.0 = Counter32: 0 +.1.3.6.1.2.1.4.18.0 = Counter32: 0 +.1.3.6.1.2.1.4.19.0 = Counter32: 0 +.1.3.6.1.2.1.4.20.1.1.10.3.2.100 = IpAddress: 10.3.2.100 +.1.3.6.1.2.1.4.20.1.2.10.3.2.100 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.3.10.3.2.100 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.20.1.4.10.3.2.100 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.5.10.3.2.100 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.1.10.3.2.0 = IpAddress: 10.3.2.0 +.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.2.10.3.2.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.10.3.2.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.4.10.3.2.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.10.3.2.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.10.3.2.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 10.3.2.1 +.1.3.6.1.2.1.4.21.1.7.10.3.2.0 = IpAddress: 10.3.2.100 +.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4 +.1.3.6.1.2.1.4.21.1.8.10.3.2.0 = INTEGER: 3 +.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.9.10.3.2.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.10.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.10.10.3.2.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.11.10.3.2.0 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.21.1.12.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.12.10.3.2.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.21.1.13.10.3.2.0 = OID: .0.0 +.1.3.6.1.2.1.4.22.1.1.1.10.3.2.1 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.2.1.10.3.2.1 = Hex-STRING: BC 4A 56 91 63 80 +.1.3.6.1.2.1.4.22.1.3.1.10.3.2.1 = IpAddress: 10.3.2.1 +.1.3.6.1.2.1.4.22.1.4.1.10.3.2.1 = INTEGER: 3 +.1.3.6.1.2.1.4.23.0 = Counter32: 0 +.1.3.6.1.2.1.5.1.0 = Counter32: 130 +.1.3.6.1.2.1.5.2.0 = Counter32: 0 +.1.3.6.1.2.1.5.3.0 = Counter32: 0 +.1.3.6.1.2.1.5.4.0 = Counter32: 0 +.1.3.6.1.2.1.5.5.0 = Counter32: 0 +.1.3.6.1.2.1.5.6.0 = Counter32: 0 +.1.3.6.1.2.1.5.7.0 = Counter32: 0 +.1.3.6.1.2.1.5.8.0 = Counter32: 0 +.1.3.6.1.2.1.5.9.0 = Counter32: 0 +.1.3.6.1.2.1.5.10.0 = Counter32: 0 +.1.3.6.1.2.1.5.11.0 = Counter32: 0 +.1.3.6.1.2.1.5.12.0 = Counter32: 0 +.1.3.6.1.2.1.5.13.0 = Counter32: 0 +.1.3.6.1.2.1.5.14.0 = Counter32: 130 +.1.3.6.1.2.1.5.15.0 = Counter32: 0 +.1.3.6.1.2.1.5.16.0 = Counter32: 0 +.1.3.6.1.2.1.5.17.0 = Counter32: 0 +.1.3.6.1.2.1.5.18.0 = Counter32: 0 +.1.3.6.1.2.1.5.19.0 = Counter32: 0 +.1.3.6.1.2.1.5.20.0 = Counter32: 0 +.1.3.6.1.2.1.5.21.0 = Counter32: 0 +.1.3.6.1.2.1.5.22.0 = Counter32: 130 +.1.3.6.1.2.1.5.23.0 = Counter32: 0 +.1.3.6.1.2.1.5.24.0 = Counter32: 0 +.1.3.6.1.2.1.5.25.0 = Counter32: 0 +.1.3.6.1.2.1.5.26.0 = Counter32: 0 +.1.3.6.1.2.1.6.1.0 = INTEGER: 4 +.1.3.6.1.2.1.6.2.0 = INTEGER: 1000 +.1.3.6.1.2.1.6.3.0 = INTEGER: 60000 +.1.3.6.1.2.1.6.4.0 = INTEGER: 60 +.1.3.6.1.2.1.6.5.0 = Counter32: 0 +.1.3.6.1.2.1.6.6.0 = Counter32: 212 +.1.3.6.1.2.1.6.7.0 = Counter32: 0 +.1.3.6.1.2.1.6.8.0 = Counter32: 210 +.1.3.6.1.2.1.6.9.0 = Gauge32: 0 +.1.3.6.1.2.1.6.10.0 = Counter32: 2860 +.1.3.6.1.2.1.6.11.0 = Counter32: 2793 +.1.3.6.1.2.1.6.12.0 = Counter32: 0 +.1.3.6.1.2.1.6.13.7.1.0 = Counter32: 1341 +.1.3.6.1.2.1.6.14.0 = Counter32: 0 +.1.3.6.1.2.1.6.15.0 = Counter32: 418 +.1.3.6.1.2.1.7.1.0 = Counter32: 1344 +.1.3.6.1.2.1.7.2.0 = Counter32: 0 +.1.3.6.1.2.1.7.3.0 = Counter32: 0 +.1.3.6.1.2.1.7.4.0 = Counter32: 1349 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.53 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.161 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.53566 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.53 = INTEGER: 53 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.161 = INTEGER: 161 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.53566 = INTEGER: 53566 +.1.3.6.1.2.1.11.1.0 = Counter32: 1353 +.1.3.6.1.2.1.11.2.0 = Counter32: 1356 +.1.3.6.1.2.1.11.3.0 = Counter32: 0 +.1.3.6.1.2.1.11.4.0 = Counter32: 0 +.1.3.6.1.2.1.11.5.0 = Counter32: 0 +.1.3.6.1.2.1.11.6.0 = Counter32: 0 +.1.3.6.1.2.1.11.8.0 = Counter32: 0 +.1.3.6.1.2.1.11.9.0 = Counter32: 0 +.1.3.6.1.2.1.11.10.0 = Counter32: 0 +.1.3.6.1.2.1.11.11.0 = Counter32: 0 +.1.3.6.1.2.1.11.12.0 = Counter32: 0 +.1.3.6.1.2.1.11.13.0 = Counter32: 1479 +.1.3.6.1.2.1.11.14.0 = Counter32: 0 +.1.3.6.1.2.1.11.15.0 = Counter32: 10 +.1.3.6.1.2.1.11.16.0 = Counter32: 1357 +.1.3.6.1.2.1.11.17.0 = Counter32: 0 +.1.3.6.1.2.1.11.18.0 = Counter32: 0 +.1.3.6.1.2.1.11.19.0 = Counter32: 0 +.1.3.6.1.2.1.11.20.0 = Counter32: 0 +.1.3.6.1.2.1.11.21.0 = Counter32: 5 +.1.3.6.1.2.1.11.22.0 = Counter32: 0 +.1.3.6.1.2.1.11.24.0 = Counter32: 0 +.1.3.6.1.2.1.11.25.0 = Counter32: 0 +.1.3.6.1.2.1.11.26.0 = Counter32: 0 +.1.3.6.1.2.1.11.27.0 = Counter32: 0 +.1.3.6.1.2.1.11.28.0 = Counter32: 1377 +.1.3.6.1.2.1.11.29.0 = Counter32: 3 +.1.3.6.1.2.1.11.30.0 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.1.1.0 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.3.1.2.0 = STRING: "1.1" +.1.3.6.1.4.1.3808.1.1.3.1.3.0 = STRING: "1.3.2" +.1.3.6.1.4.1.3808.1.1.3.1.4.0 = STRING: "232524" +.1.3.6.1.4.1.3808.1.1.3.1.5.0 = STRING: "PDU44005" +.1.3.6.1.4.1.3808.1.1.3.1.6.0 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.3.1.7.0 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.3.1.8.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.1.9.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.1.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.1.11.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.1.12.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.1.13.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.1.14.0 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.1.15.0 = INTEGER: 230 +.1.3.6.1.4.1.3808.1.1.3.1.16.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.1.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.2.1.2.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.3.0 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.3.2.1.4.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.5.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.6.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.6.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.6.1.3.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.3.2.1.7.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.2.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.1 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.2 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.3 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.4 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.5 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.6 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.7 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.8 = INTEGER: 120 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.9 = INTEGER: 160 +.1.3.6.1.4.1.3808.1.1.3.2.1.8.1.3.10 = INTEGER: 160 +.1.3.6.1.4.1.3808.1.1.3.2.2.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.2.1.1.2.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.2.2.1.1.3.1 = INTEGER: 12 +.1.3.6.1.4.1.3808.1.1.3.2.2.1.1.4.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.3.2.2.1.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.2.1 = Gauge32: 10 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.2.2 = Gauge32: 10 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.3.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.4.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.5.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.6.1 = INTEGER: 2179 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.6.2 = INTEGER: 2179 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.7.1 = INTEGER: 219 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.7.2 = INTEGER: 219 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.8.1 = INTEGER: 224 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.8.2 = NULL +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.9.1 = INTEGER: 97 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.9.2 = NULL +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.10.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.10.2 = NULL +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.11.1 = STRING: "05/24/2023 10:08:33" +.1.3.6.1.4.1.3808.1.1.3.2.3.1.1.11.2 = NULL +.1.3.6.1.4.1.3808.1.1.3.2.4.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.2.4.1.1.2.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.2.4.1.1.3.1 = INTEGER: 12 +.1.3.6.1.4.1.3808.1.1.3.2.4.1.1.4.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.3.2.4.1.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.1.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.1.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.1.3.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.1.4.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.1.5.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.1.6.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.2.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.3.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.3.1.1.5.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.2.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.3.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.1 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.2 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.4 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.5 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.6 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.7 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.8 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.9 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.4.10 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.1 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.2 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.4 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.5 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.6 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.7 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.8 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.9 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.5.10 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.2 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.3 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.4 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.6 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.7 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.8 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.9 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.6.10 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.1.1.7.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.2.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.2.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.3.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.2 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.3 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.4 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.5 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.6 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.7 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.8 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.9 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.4.10 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.2 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.3 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.4 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.5 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.6 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.7 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.8 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.9 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.5.10 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.2 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.3 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.4 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.5 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.6 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.7 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.8 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.9 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.6.10 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.7.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.4.3.1.8.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.2.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.3.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.4.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.3 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.4 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.5 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.6 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.7 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.8 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.9 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.5.10 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.6.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.1 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.2 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.3 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.4 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.5 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.6 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.7 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.8 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.9 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.7.10 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.1 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.2 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.3 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.4 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.5 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.6 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.7 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.8 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.9 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.8.10 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.9.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.2 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.3 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.4 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.5 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.6 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.7 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.8 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.9 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.10.10 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.1 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.2 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.3 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.4 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.5 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.6 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.7 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.8 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.9 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.11.10 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.1 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.2 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.3 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.4 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.5 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.6 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.7 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.8 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.9 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.12.10 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.2 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.3 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.4 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.5 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.6 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.7 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.8 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.9 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.13.10 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.1 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.2 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.3 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.4 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.5 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.6 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.7 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.8 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.9 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.5.1.1.14.10 = STRING: "00/00/2000 00:00:00" +.1.3.6.1.4.1.3808.1.1.3.3.6.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.3.6.1.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.4.1.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.4.1.2.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.4.1.3.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.3.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.4.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.3.5.7.0 = INTEGER: 2179 +.1.3.6.1.4.1.3808.1.1.3.5.8.0 = INTEGER: 500 +.1.3.6.1.4.1.3808.1.1.4.1.1.0 = STRING: "EnvSensor" +.1.3.6.1.4.1.3808.1.1.4.1.2.0 = STRING: "Server Room" +.1.3.6.1.4.1.3808.1.1.4.2.1.0 = NULL +.1.3.6.1.4.1.3808.1.1.4.2.2.0 = INTEGER: 90 +.1.3.6.1.4.1.3808.1.1.4.2.3.0 = INTEGER: 59 +.1.3.6.1.4.1.3808.1.1.4.2.4.0 = INTEGER: 18 +.1.3.6.1.4.1.3808.1.1.4.2.5.0 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.4.2.6.0 = NULL +.1.3.6.1.4.1.3808.1.1.4.2.7.0 = INTEGER: 32 +.1.3.6.1.4.1.3808.1.1.4.2.8.0 = INTEGER: 15 +.1.3.6.1.4.1.3808.1.1.4.2.9.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.4.2.10.0 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.4.3.1.0 = NULL +.1.3.6.1.4.1.3808.1.1.4.3.2.0 = INTEGER: 80 +.1.3.6.1.4.1.3808.1.1.4.3.3.0 = INTEGER: 20 +.1.3.6.1.4.1.3808.1.1.4.3.4.0 = INTEGER: 20 +.1.3.6.1.4.1.3808.1.1.4.3.5.0 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.4.4.1.0 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.2.1 = STRING: "Contact#1" +.1.3.6.1.4.1.3808.1.1.4.4.2.1.2.2 = STRING: "Contact#2" +.1.3.6.1.4.1.3808.1.1.4.4.2.1.2.3 = STRING: "Contact#3" +.1.3.6.1.4.1.3808.1.1.4.4.2.1.2.4 = STRING: "Contact#4" +.1.3.6.1.4.1.3808.1.1.4.4.2.1.3.1 = NULL +.1.3.6.1.4.1.3808.1.1.4.4.2.1.3.2 = NULL +.1.3.6.1.4.1.3808.1.1.4.4.2.1.3.3 = NULL +.1.3.6.1.4.1.3808.1.1.4.4.2.1.3.4 = NULL +.1.3.6.1.4.1.3808.1.1.4.4.2.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.4.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.4.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.4.4.2.1.4.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.2.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.2.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.2.2.1.3.1 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.6.2.2.1.4.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.6.2.2.1.5.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.6.2.2.1.6.1 = STRING: "1.1" +.1.3.6.1.4.1.3808.1.1.6.2.2.1.7.1 = STRING: "1.3.2" +.1.3.6.1.4.1.3808.1.1.6.2.2.1.8.1 = STRING: "232524" +.1.3.6.1.4.1.3808.1.1.6.2.2.1.9.1 = STRING: "PDU44005" +.1.3.6.1.4.1.3808.1.1.6.2.2.1.10.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.6.2.2.1.11.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.3.1 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.6.3.2.1.4.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.6.3.2.1.5.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.6.3.2.1.6.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.7.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.8.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.9.1 = INTEGER: 12 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.10.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.11.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.2.1.12.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.3.1 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.6.3.3.1.4.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.5.1 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.6.1 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.7.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.8.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.9.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.10.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.11.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.12.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.3.1.13.1 = INTEGER: 3680 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.3.1 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.6.3.4.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.5.1 = Gauge32: 10 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.6.1 = Gauge32: 12 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.7.1 = STRING: "09/03/2024 11:20:41" +.1.3.6.1.4.1.3808.1.1.6.3.4.1.8.1 = STRING: "05/24/2023 10:08:33" +.1.3.6.1.4.1.3808.1.1.6.3.4.1.9.1 = Gauge32: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.10.1 = STRING: "05/24/2023 10:08:33" +.1.3.6.1.4.1.3808.1.1.6.3.4.1.11.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.12.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.13.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.14.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.15.1 = Gauge32: 224 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.16.1 = Gauge32: 97 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.17.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.4.1.18.1 = Gauge32: 219 +.1.3.6.1.4.1.3808.1.1.6.3.5.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.5.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.3.5.1.3.1 = STRING: "ATS011" +.1.3.6.1.4.1.3808.1.1.6.3.5.1.4.1 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.4.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.5.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.6.1 = INTEGER: 12 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.7.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.6.4.2.1.8.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.3.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.5.1 = Gauge32: 10 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.6.1 = Gauge32: 2178 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.7.1 = Gauge32: 219 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.8.1 = Gauge32: 224 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.9.1 = Gauge32: 97 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.10.1 = Gauge32: 12 +.1.3.6.1.4.1.3808.1.1.6.4.4.1.11.1 = STRING: "09/03/2024 11:20:41" +.1.3.6.1.4.1.3808.1.1.6.4.4.1.12.1 = STRING: "05/24/2023 10:08:33" +.1.3.6.1.4.1.3808.1.1.6.5.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.5.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.6.1 = INTEGER: 12 +.1.3.6.1.4.1.3808.1.1.6.5.2.1.7.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.6.5.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.3.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.4.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.4.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.5.4.1.5.1 = Gauge32: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.1.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.2.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.3.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.4.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.1 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.2 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.4 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.5 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.6 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.7 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.8 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.9 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.5.10 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.1 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.2 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.4 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.5 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.6 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.7 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.8 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.9 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.6.10 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.2 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.3 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.4 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.6 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.7 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.8 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.9 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.2.1.7.10 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.2.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.3.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.4.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.5.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.3.1.6.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.2.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.3.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.4.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.5.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.3 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.4 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.5 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.6 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.7 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.8 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.9 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.4.1.6.10 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.2.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.3.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.1 = STRING: "Outlet1" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.2 = STRING: "Outlet2" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.3 = STRING: "Outlet3" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.4 = STRING: "Outlet4" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.5 = STRING: "Outlet5" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.6 = STRING: "Outlet6" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.7 = STRING: "Outlet7" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.8 = STRING: "Outlet8" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.9 = STRING: "Outlet9" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.4.10 = STRING: "Outlet10" +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.1.5.1.5.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.6.2.1.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.6.3.1.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.8.1.0 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.8.2.0 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.6.8.3.0 = Gauge32: 0 +.1.3.6.1.4.1.3808.1.1.6.8.4.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.8.5.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.6.1 = INTEGER: 220 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.7.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.8.1 = INTEGER: 16 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.9.1 = INTEGER: 23 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.10.1 = INTEGER: 30 +.1.3.6.1.4.1.3808.1.1.6.9.2.1.11.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.3.1 = INTEGER: 9 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.4.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.5.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.6.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.7.1 = INTEGER: 0 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.8.1 = INTEGER: -1 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.9.1 = INTEGER: -1 +.1.3.6.1.4.1.3808.1.1.6.9.3.1.10.1 = INTEGER: -1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.4.1 = INTEGER: 500 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.5.1 = INTEGER: 217 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.6.1 = INTEGER: 222 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.7.1 = INTEGER: 500 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.8.1 = INTEGER: 500 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.9.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.10.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.11.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.12.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.13.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.14.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.15.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.6.9.4.1.16.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.8.1.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.1.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.1.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.1.2.1.3.1 = STRING: "EnvSensor" +.1.3.6.1.4.1.3808.1.1.8.1.2.1.4.1 = STRING: "Server Room" +.1.3.6.1.4.1.3808.1.1.8.1.2.1.5.1 = STRING: "...cut..." +.1.3.6.1.4.1.3808.1.1.8.2.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.2.2.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.3.1 = INTEGER: 2070 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.4.1 = INTEGER: 32 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.5.1 = INTEGER: 15 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.6.1 = INTEGER: 10 +.1.3.6.1.4.1.3808.1.1.8.2.3.1.7.1 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.8.3.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.3.1 = INTEGER: 4536 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.4.1 = INTEGER: 80 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.5.1 = INTEGER: 20 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.6.1 = INTEGER: 20 +.1.3.6.1.4.1.3808.1.1.8.3.2.1.7.1 = INTEGER: 5 +.1.3.6.1.4.1.3808.1.1.8.4.1.0 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.2.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.2.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.2.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.2.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.3.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.3.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.3.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.3.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.4.1 = STRING: "ENV_Contact#1-1" +.1.3.6.1.4.1.3808.1.1.8.4.2.1.4.2 = STRING: "ENV_Contact#1-2" +.1.3.6.1.4.1.3808.1.1.8.4.2.1.4.3 = STRING: "ENV_Contact#1-3" +.1.3.6.1.4.1.3808.1.1.8.4.2.1.4.4 = STRING: "ENV_Contact#1-4" +.1.3.6.1.4.1.3808.1.1.8.4.2.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.5.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.5.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.5.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.6.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.6.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.6.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.1.1.8.4.2.1.6.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.1.0 = INTEGER: 10 +.1.3.6.1.4.1.3808.2.1.2.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.3808.2.1.2.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.3808.2.1.2.1.1.5 = INTEGER: 5 +.1.3.6.1.4.1.3808.2.1.2.1.1.6 = INTEGER: 6 +.1.3.6.1.4.1.3808.2.1.2.1.1.7 = INTEGER: 7 +.1.3.6.1.4.1.3808.2.1.2.1.1.8 = INTEGER: 8 +.1.3.6.1.4.1.3808.2.1.2.1.1.9 = INTEGER: 9 +.1.3.6.1.4.1.3808.2.1.2.1.1.10 = INTEGER: 10 +.1.3.6.1.4.1.3808.2.1.2.1.2.1 = IpAddress: 10.160.1.10 +.1.3.6.1.4.1.3808.2.1.2.1.2.2 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.3 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.4 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.5 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.6 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.7 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.8 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.9 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.2.10 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.3808.2.1.2.1.3.1 = STRING: "it" +.1.3.6.1.4.1.3808.2.1.2.1.3.2 = STRING: "public" +.1.3.6.1.4.1.3808.2.1.2.1.3.3 = STRING: "public" +.1.3.6.1.4.1.3808.2.1.2.1.3.4 = STRING: "private" +.1.3.6.1.4.1.3808.2.1.2.1.3.5 = STRING: "private" +.1.3.6.1.4.1.3808.2.1.2.1.3.6 = STRING: "public" +.1.3.6.1.4.1.3808.2.1.2.1.3.7 = STRING: "public" +.1.3.6.1.4.1.3808.2.1.2.1.3.8 = STRING: "public" +.1.3.6.1.4.1.3808.2.1.2.1.3.9 = STRING: "private" +.1.3.6.1.4.1.3808.2.1.2.1.3.10 = STRING: "private" +.1.3.6.1.4.1.3808.2.1.2.1.4.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.2 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.3 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.4 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.5 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.6 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.7 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.8 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.9 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.4.10 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.5.1 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.1.2.1.5.2 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.3 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.4 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.5 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.6 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.7 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.8 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.9 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.2.1.5.10 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.3.0 = INTEGER: 2 +.1.3.6.1.4.1.3808.2.1.4.0 = IpAddress: 10.3.2.100 +.1.3.6.1.4.1.3808.2.1.5.1.0 = STRING: "2024/09/03" +.1.3.6.1.4.1.3808.2.1.5.2.0 = STRING: "11:37:48" +.1.3.6.1.4.1.3808.2.3.1.0 = INTEGER: 1 +.1.3.6.1.4.1.3808.2.3.2.0 = INTEGER: 1 +.1.3.6.1.6.3.15.1.1.1.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.2.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.3.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.4.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.5.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.6.0 = Counter32: 0 End of MIB diff --git a/tests/hardware/pdu/cyberpower/snmp/load.robot b/tests/hardware/pdu/cyberpower/snmp/load.robot new file mode 100644 index 0000000000..6f5a1eec67 --- /dev/null +++ b/tests/hardware/pdu/cyberpower/snmp/load.robot @@ -0,0 +1,38 @@ +***Settings*** +Documentation Hardware Camera Avigilon memory + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} +... --plugin=hardware::pdu::cyberpower::snmp::plugin + +*** Test Cases *** +load ${tc} + [Documentation] Hardware Camera Avigilon Memory + [Tags] hardware cyberpower load + ${command} Catenate + ... ${CMD} + ... --mode=load + ... --hostname=${HOSTNAME} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=hardware/pdu/cyberpower/snmp/CyberPower + ... ${extraoptions} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extraoptions expected_result -- + ... 1 --warning-phase-status='\\\%{state} =~ /low|nearOverload/i' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 2 --critical-phase-status='\\\%{state} =~ /^overload/i' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 4 --warning-phase-power='0' WARNING: Device 'ATS011' phase '1' power : 219 W | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;0:0;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 5 --warning-phase-voltage='0' WARNING: Device 'ATS011' phase '1' voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;0:0;;0; + ... 6 --warning-bank-current='' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 7 --critical-phase-current='0' CRITICAL: Device 'ATS011' phase '1' current : 1 A | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;0:0;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 8 --critical-phase-power='0' CRITICAL: Device 'ATS011' phase '1' power : 219 W | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;0:0;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 9 --critical-phase-voltage='300' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;0:300;0; + ... 10 --critical-bank-current='' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 11 --warning-phase-status='\\\%{display} =~ /low|nearOverload/i' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; + ... 12 --critical-phase-status='\\\%{display} =~ /^overload/i' OK: Device 'ATS011' bank '1' current : 1 A - phase '1' state: normal, current : 1 A, power : 219 W, voltage : 217.8 V | 'ATS011~1#bank.current.ampere'=1A;;;0; 'ATS011~1#phase.current.ampere'=1A;;;0; 'ATS011~1#phase.power.watt'=219W;;;0; 'ATS011~1#phase.voltage.volt'=217.8V;;;0; diff --git a/tests/hardware/pdu/cyberpower/snmp/outlets.robot b/tests/hardware/pdu/cyberpower/snmp/outlets.robot new file mode 100644 index 0000000000..2f872bd1d4 --- /dev/null +++ b/tests/hardware/pdu/cyberpower/snmp/outlets.robot @@ -0,0 +1,42 @@ +***Settings*** +Documentation Hardware Camera Avigilon memory + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} +... --plugin=hardware::pdu::cyberpower::snmp::plugin + +*** Test Cases *** +outlets ${tc} + [Documentation] Hardware Camera Avigilon Memory + [Tags] hardware cyberpower outlets + ${command} Catenate + ... ${CMD} + ... --mode=outlets + ... --hostname=${HOSTNAME} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=hardware/pdu/cyberpower/snmp/CyberPower + ... ${extraoptions} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extraoptions expected_result -- + ... 1 --unknown-status='\\\%{state} =~ /on/' UNKNOWN: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 2 --unknown-status OK: Device 'ATS011' outlets are ok + ... 3 --warning-status='\\\%{state} =~ /on/' WARNING: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 4 --critical-status='\\\%{state} =~ /on/' CRITICAL: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 5 --warning-current='' OK: Device 'ATS011' outlets are ok + ... 6 --critical-current='' OK: Device 'ATS011' outlets are ok + ... 7 --unknown-status='\\\%{phase} =~ /-/' UNKNOWN: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 8 --unknown-status='\\\%{bank} =~ /1/' UNKNOWN: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 9 --critical-status='\\\%{phase} =~ /-/' CRITICAL: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 10 --critical-status='\\\%{bank} =~ /1/' CRITICAL: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 11 --critical-status='\\\%{display} =~ /off/' OK: Device 'ATS011' outlets are ok + ... 12 --warning-status='\\\%{bank} =~ /1/' WARNING: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + ... 13 --warning-status='\\\%{display} =~ /off/' OK: Device 'ATS011' outlets are ok + ... 14 --warning-status='\\\%{phase} =~ /-/' WARNING: Device 'ATS011' outlet 'Outlet1 bank 1' state: 'on' [phase: -] - outlet 'Outlet10 bank 1' state: 'on' [phase: -] - outlet 'Outlet2 bank 1' state: 'on' [phase: -] - outlet 'Outlet3 bank 1' state: 'on' [phase: -] - outlet 'Outlet4 bank 1' state: 'on' [phase: -] - outlet 'Outlet5 bank 1' state: 'on' [phase: -] - outlet 'Outlet6 bank 1' state: 'on' [phase: -] - outlet 'Outlet7 bank 1' state: 'on' [phase: -] - outlet 'Outlet8 bank 1' state: 'on' [phase: -] - outlet 'Outlet9 bank 1' state: 'on' [phase: -] + diff --git a/tests/hardware/ups/standard/snmp/hardware-ups-standard-snmp.robot b/tests/hardware/ups/standard/snmp/hardware-ups-standard-snmp.robot index 5f0c766268..90647bf964 100644 --- a/tests/hardware/ups/standard/snmp/hardware-ups-standard-snmp.robot +++ b/tests/hardware/ups/standard/snmp/hardware-ups-standard-snmp.robot @@ -9,90 +9,27 @@ Test Timeout 120s *** Variables *** ${CMD} ${CENTREON_PLUGINS} --plugin=hardware::ups::standard::rfc1628::snmp::plugin -&{ups_standard_test_with_values} -... snmpcommunity=hardware/ups/standard/snmp/ups-standard -... warningpower= -... criticalcurrent= -... warningvoltage= -... warningfrequence= -... excludeid= -... result=OK: All input lines are ok | '1#line.input.frequence.hertz'=49.9Hz;;;; '1#line.input.voltage.volt'=233V;;;; '1#line.input.current.ampere'=0A;;;; '1#line.input.power.watt'=0W;;;; '2#line.input.frequence.hertz'=49.9Hz;;;; '2#line.input.voltage.volt'=234V;;;; '2#line.input.current.ampere'=0A;;;; '2#line.input.power.watt'=0W;;;; '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; -&{ups_standard_test_critical_with_null_values} -... snmpcommunity=hardware/ups/standard/snmp/ups-standard-null-val -... warningpower='215:' -... criticalcurrent='@0:214' -... warningvoltage='@0:214' -... warningfrequence='@0:214' -... excludeid= -... result=CRITICAL: Input Line '1' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W - Input Line '2' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W - Input Line '3' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W | '1#line.input.frequence.hertz'=0Hz;@0:214;;; '1#line.input.voltage.volt'=0V;@0:214;;; '1#line.input.current.ampere'=0A;;@0:214;; '1#line.input.power.watt'=0W;215:;;; '2#line.input.frequence.hertz'=0Hz;@0:214;;; '2#line.input.voltage.volt'=0V;@0:214;;; '2#line.input.current.ampere'=0A;;@0:214;; '2#line.input.power.watt'=0W;215:;;; '3#line.input.frequence.hertz'=0Hz;@0:214;;; '3#line.input.voltage.volt'=0V;@0:214;;; '3#line.input.current.ampere'=0A;;@0:214;; '3#line.input.power.watt'=0W;215:;;; -&{ups_standard_test_with_exclude_option_1} -... snmpcommunity=hardware/ups/standard/snmp/ups-standard -... warningpower= -... criticalcurrent= -... warningvoltage= -... warningfrequence= -... excludeid='1,2' -... result=OK: Input Line '3' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; -&{ups_standard_test_with_exclude_option_2} -... snmpcommunity=hardware/ups/standard/snmp/ups-standard -... warningpower= -... criticalcurrent= -... warningvoltage= -... warningfrequence= -... excludeid='1, 2' -... result=OK: Input Line '3' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; -&{ups_standard_test_with_exclude_option_3} -... snmpcommunity=hardware/ups/standard/snmp/ups-standard -... warningpower= -... criticalcurrent= -... warningvoltage= -... warningfrequence= -... excludeid='1 ,3' -... result=OK: Input Line '2' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '2#line.input.frequence.hertz'=49.9Hz;;;; '2#line.input.voltage.volt'=234V;;;; '2#line.input.current.ampere'=0A;;;; '2#line.input.power.watt'=0W;;;; -@{ups_standard_tests} -... &{ups_standard_test_with_values} -... &{ups_standard_test_critical_with_null_values} -... &{ups_standard_test_with_exclude_option_1} -... &{ups_standard_test_with_exclude_option_2} -... &{ups_standard_test_with_exclude_option_3} - - *** Test Cases *** -Hardware UPS Standard SNMP input lines - [Documentation] Hardware UPS standard SNMP input lines +Hardware UPS Standard SNMP input lines ${tc} [Tags] hardware ups snmp - FOR ${ups_standard_test} IN @{ups_standard_tests} - ${command} Catenate - ... ${CMD} - ... --mode=input-lines - ... --hostname=${HOSTNAME} - ... --snmp-version=${SNMPVERSION} - ... --snmp-port=${SNMPPORT} - ... --snmp-community=${ups_standard_test.snmpcommunity} - ${length} Get Length ${ups_standard_test.warningpower} - IF ${length} > 0 - ${command} Catenate ${command} --warning-power=${ups_standard_test.warningpower} - END - ${length} Get Length ${ups_standard_test.criticalcurrent} - IF ${length} > 0 - ${command} Catenate ${command} --critical-current=${ups_standard_test.criticalcurrent} - END - ${length} Get Length ${ups_standard_test.warningvoltage} - IF ${length} > 0 - ${command} Catenate ${command} --warning-voltage=${ups_standard_test.warningvoltage} - END - ${length} Get Length ${ups_standard_test.warningfrequence} - IF ${length} > 0 - ${command} Catenate ${command} --warning-frequence=${ups_standard_test.warningfrequence} - END - ${length} Get Length ${ups_standard_test.excludeid} - IF ${length} > 0 - ${command} Catenate ${command} --exclude-id=${ups_standard_test.excludeid} - END - ${output} Run ${command} - ${output} Strip String ${output} - Should Be Equal As Strings - ... ${output} - ... ${ups_standard_test.result} - ... Wrong output result for compliance of ${ups_standard_test.result}{\n}Command output:{\n}${output}{\n}{\n}{\n} - END + ${command} Catenate + ... ${CMD} + ... --mode=input-lines + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=${snmpcommunity} + ... --warning-power=${warningpower} + ... --critical-current=${criticalcurrent} + ... --warning-voltage=${warningvoltage} + ... --warning-frequence=${warningfrequence} + ... --exclude-id=${excludeid} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc snmpcommunity warningpower criticalcurrent warningvoltage warningfrequence excludeid expected_result -- + ... 1 hardware/ups/standard/snmp/ups-standard ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: All input lines are ok | '1#line.input.frequence.hertz'=49.9Hz;;;; '1#line.input.voltage.volt'=233V;;;; '1#line.input.current.ampere'=0A;;;; '1#line.input.power.watt'=0W;;;; '2#line.input.frequence.hertz'=49.9Hz;;;; '2#line.input.voltage.volt'=234V;;;; '2#line.input.current.ampere'=0A;;;; '2#line.input.power.watt'=0W;;;; '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; + ... 2 hardware/ups/standard/snmp/ups-standard-null-val '215:' '@0:214' '@0:214' '@0:214' ${EMPTY} CRITICAL: Input Line '1' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W - Input Line '2' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W - Input Line '3' Frequence : 0.00 Hz, Voltage : 0.00 V, Current : 0.00 A, Power : 0.00 W | '1#line.input.frequence.hertz'=0Hz;@0:214;;; '1#line.input.voltage.volt'=0V;@0:214;;; '1#line.input.current.ampere'=0A;;@0:214;; '1#line.input.power.watt'=0W;215:;;; '2#line.input.frequence.hertz'=0Hz;@0:214;;; '2#line.input.voltage.volt'=0V;@0:214;;; '2#line.input.current.ampere'=0A;;@0:214;; '2#line.input.power.watt'=0W;215:;;; '3#line.input.frequence.hertz'=0Hz;@0:214;;; '3#line.input.voltage.volt'=0V;@0:214;;; '3#line.input.current.ampere'=0A;;@0:214;; '3#line.input.power.watt'=0W;215:;;; + ... 3 hardware/ups/standard/snmp/ups-standard ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '1,2' OK: Input Line '3' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; + ... 4 hardware/ups/standard/snmp/ups-standard ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '1, 2' OK: Input Line '3' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '3#line.input.frequence.hertz'=49.9Hz;;;; '3#line.input.voltage.volt'=234V;;;; '3#line.input.current.ampere'=0A;;;; '3#line.input.power.watt'=0W;;;; + ... 5 hardware/ups/standard/snmp/ups-standard ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '1 ,3' OK: Input Line '2' Frequence : 49.90 Hz, Voltage : 234.00 V, Current : 0.00 A, Power : 0.00 W | '2#line.input.frequence.hertz'=49.9Hz;;;; '2#line.input.voltage.volt'=234V;;;; '2#line.input.current.ampere'=0A;;;; '2#line.input.power.watt'=0W;;;; \ No newline at end of file diff --git a/tests/network/aruba/instant/snmp/aruba-instant-ap-usage.robot b/tests/network/aruba/instant/snmp/aruba-instant-ap-usage.robot index 45d0c083b8..80bb70e4dd 100644 --- a/tests/network/aruba/instant/snmp/aruba-instant-ap-usage.robot +++ b/tests/network/aruba/instant/snmp/aruba-instant-ap-usage.robot @@ -9,62 +9,20 @@ Test Timeout 120s *** Variables *** ${CMD} ${CENTREON_PLUGINS} --plugin=network::aruba::instant::snmp::plugin --mode=ap-usage --hostname=${HOSTNAME} --snmp-version=${SNMPVERSION} --snmp-port=${SNMPPORT} -&{ap_usage_test_1} -... documentation=Test AP usage without filters -... snmpcommunity=network/aruba/instant/snmp/ap-usage -... filtercounters= -... filtername= -... warningclients= -... criticalclients= -... result=OK: total access points: 5 - All access points are ok | 'accesspoints.total.count'=5;;;0; 'AP Piso 1#clients.current.count'=4;;;0; 'AP Piso 1#cpu.utilization.percentage'=3.00%;;;0;100 'AP Piso 1#memory.usage.bytes'=215711744B;;;0;527028224 'AP Piso 1#memory.free.bytes'=311316480B;;;0;527028224 'AP Piso 1#memory.usage.percentage'=40.93%;;;0;100 'AP Piso 2#clients.current.count'=17;;;0; 'AP Piso 2#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 2#memory.usage.bytes'=219455488B;;;0;527028224 'AP Piso 2#memory.free.bytes'=307572736B;;;0;527028224 'AP Piso 2#memory.usage.percentage'=41.64%;;;0;100 'AP Piso 3#clients.current.count'=14;;;0; 'AP Piso 3#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 3#memory.usage.bytes'=219185152B;;;0;527028224 'AP Piso 3#memory.free.bytes'=307843072B;;;0;527028224 'AP Piso 3#memory.usage.percentage'=41.59%;;;0;100 'AP Piso 4#clients.current.count'=11;;;0; 'AP Piso 4#cpu.utilization.percentage'=11.00%;;;0;100 'AP Piso 4#memory.usage.bytes'=221700096B;;;0;527028224 'AP Piso 4#memory.free.bytes'=305328128B;;;0;527028224 'AP Piso 4#memory.usage.percentage'=42.07%;;;0;100 'AP Sotano#clients.current.count'=4;;;0; 'AP Sotano#cpu.utilization.percentage'=4.00%;;;0;100 'AP Sotano#memory.usage.bytes'=217473024B;;;0;527028224 'AP Sotano#memory.free.bytes'=309555200B;;;0;527028224 'AP Sotano#memory.usage.percentage'=41.26%;;;0;100 - -&{ap_usage_test_2} -... documentation=Test AP usage with filter on clients -... snmpcommunity=network/aruba/instant/snmp/ap-usage -... filtercounters=clients -... filtername= -... warningclients= -... criticalclients= -... result=OK: All access points are ok | 'AP Piso 1#clients.current.count'=4;;;0; 'AP Piso 2#clients.current.count'=17;;;0; 'AP Piso 3#clients.current.count'=14;;;0; 'AP Piso 4#clients.current.count'=11;;;0; 'AP Sotano#clients.current.count'=4;;;0; - -&{ap_usage_test_3} -... documentation=Test AP usage with filter on clients and filter on name -... snmpcommunity=network/aruba/instant/snmp/ap-usage -... filtercounters=clients -... filtername=Piso 4 -... warningclients= -... criticalclients= -... result=OK: Access Point 'AP Piso 4' Current Clients: 11 | 'AP Piso 4#clients.current.count'=11;;;0; - -&{ap_usage_test_4} -... documentation=Test AP usage without filters with warning when less than 20 clients -... snmpcommunity=network/aruba/instant/snmp/ap-usage -... filtercounters= -... filtername= -... warningclients=20: -... criticalclients= -... result=WARNING: Access Point 'AP Piso 1' Current Clients: 4 - Access Point 'AP Piso 2' Current Clients: 17 - Access Point 'AP Piso 3' Current Clients: 14 - Access Point 'AP Piso 4' Current Clients: 11 - Access Point 'AP Sotano' Current Clients: 4 | 'accesspoints.total.count'=5;;;0; 'AP Piso 1#clients.current.count'=4;20:;;0; 'AP Piso 1#cpu.utilization.percentage'=3.00%;;;0;100 'AP Piso 1#memory.usage.bytes'=215711744B;;;0;527028224 'AP Piso 1#memory.free.bytes'=311316480B;;;0;527028224 'AP Piso 1#memory.usage.percentage'=40.93%;;;0;100 'AP Piso 2#clients.current.count'=17;20:;;0; 'AP Piso 2#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 2#memory.usage.bytes'=219455488B;;;0;527028224 'AP Piso 2#memory.free.bytes'=307572736B;;;0;527028224 'AP Piso 2#memory.usage.percentage'=41.64%;;;0;100 'AP Piso 3#clients.current.count'=14;20:;;0; 'AP Piso 3#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 3#memory.usage.bytes'=219185152B;;;0;527028224 'AP Piso 3#memory.free.bytes'=307843072B;;;0;527028224 'AP Piso 3#memory.usage.percentage'=41.59%;;;0;100 'AP Piso 4#clients.current.count'=11;20:;;0; 'AP Piso 4#cpu.utilization.percentage'=11.00%;;;0;100 'AP Piso 4#memory.usage.bytes'=221700096B;;;0;527028224 'AP Piso 4#memory.free.bytes'=305328128B;;;0;527028224 'AP Piso 4#memory.usage.percentage'=42.07%;;;0;100 'AP Sotano#clients.current.count'=4;20:;;0; 'AP Sotano#cpu.utilization.percentage'=4.00%;;;0;100 'AP Sotano#memory.usage.bytes'=217473024B;;;0;527028224 'AP Sotano#memory.free.bytes'=309555200B;;;0;527028224 'AP Sotano#memory.usage.percentage'=41.26%;;;0;100 - -@{ap_usage_tests} -... &{ap_usage_test_1} -... &{ap_usage_test_2} -... &{ap_usage_test_3} -... &{ap_usage_test_4} - - *** Test Cases *** -Network Aruba Instant SNMP plugin - [Documentation] AP Usage +Test AP usage ${documentation} ${tc} [Tags] network aruba snmp - FOR ${ap_usage_tc} IN @{ap_usage_tests} - ${command} Catenate - ... ${CMD} - ... --filter-counters='${ap_usage_tc.filtercounters}' - ... --filter-name='${ap_usage_tc.filtername}' - ... --warning-clients='${ap_usage_tc.warningclients}' - ... --critical-clients='${ap_usage_tc.criticalclients}' - ... --snmp-community=${ap_usage_tc.snmpcommunity} - - Log To Console ${command} - Ctn Run Command And Check Result As Strings ${command} ${ap_usage_tc.result} - END + ${command} Catenate + ... ${CMD} + ... --filter-counters='${filtercounters}' + ... --filter-name='${filtername}' + ... --warning-clients='${warningclients}' + ... --snmp-community=${snmpcommunity} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc documentation snmpcommunity filtercounters filtername warningclients expected_result -- + ... 1 without filters network/aruba/instant/snmp/ap-usage ${EMPTY} ${EMPTY} ${EMPTY} OK: total access points: 5 - All access points are ok | 'accesspoints.total.count'=5;;;0; 'AP Piso 1#clients.current.count'=4;;;0; 'AP Piso 1#cpu.utilization.percentage'=3.00%;;;0;100 'AP Piso 1#memory.usage.bytes'=215711744B;;;0;527028224 'AP Piso 1#memory.free.bytes'=311316480B;;;0;527028224 'AP Piso 1#memory.usage.percentage'=40.93%;;;0;100 'AP Piso 2#clients.current.count'=17;;;0; 'AP Piso 2#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 2#memory.usage.bytes'=219455488B;;;0;527028224 'AP Piso 2#memory.free.bytes'=307572736B;;;0;527028224 'AP Piso 2#memory.usage.percentage'=41.64%;;;0;100 'AP Piso 3#clients.current.count'=14;;;0; 'AP Piso 3#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 3#memory.usage.bytes'=219185152B;;;0;527028224 'AP Piso 3#memory.free.bytes'=307843072B;;;0;527028224 'AP Piso 3#memory.usage.percentage'=41.59%;;;0;100 'AP Piso 4#clients.current.count'=11;;;0; 'AP Piso 4#cpu.utilization.percentage'=11.00%;;;0;100 'AP Piso 4#memory.usage.bytes'=221700096B;;;0;527028224 'AP Piso 4#memory.free.bytes'=305328128B;;;0;527028224 'AP Piso 4#memory.usage.percentage'=42.07%;;;0;100 'AP Sotano#clients.current.count'=4;;;0; 'AP Sotano#cpu.utilization.percentage'=4.00%;;;0;100 'AP Sotano#memory.usage.bytes'=217473024B;;;0;527028224 'AP Sotano#memory.free.bytes'=309555200B;;;0;527028224 'AP Sotano#memory.usage.percentage'=41.26%;;;0;100 + ... 2 with filter on clients network/aruba/instant/snmp/ap-usage clients ${EMPTY} ${EMPTY} OK: All access points are ok | 'AP Piso 1#clients.current.count'=4;;;0; 'AP Piso 2#clients.current.count'=17;;;0; 'AP Piso 3#clients.current.count'=14;;;0; 'AP Piso 4#clients.current.count'=11;;;0; 'AP Sotano#clients.current.count'=4;;;0; + ... 4 with filter on clients and filter on name network/aruba/instant/snmp/ap-usage clients Piso 4 ${EMPTY} OK: Access Point 'AP Piso 4' Current Clients: 11 | 'AP Piso 4#clients.current.count'=11;;;0; + ... 5 without filters with warning when less than 20 clients network/aruba/instant/snmp/ap-usage ${EMPTY} ${EMPTY} 20: WARNING: Access Point 'AP Piso 1' Current Clients: 4 - Access Point 'AP Piso 2' Current Clients: 17 - Access Point 'AP Piso 3' Current Clients: 14 - Access Point 'AP Piso 4' Current Clients: 11 - Access Point 'AP Sotano' Current Clients: 4 | 'accesspoints.total.count'=5;;;0; 'AP Piso 1#clients.current.count'=4;20:;;0; 'AP Piso 1#cpu.utilization.percentage'=3.00%;;;0;100 'AP Piso 1#memory.usage.bytes'=215711744B;;;0;527028224 'AP Piso 1#memory.free.bytes'=311316480B;;;0;527028224 'AP Piso 1#memory.usage.percentage'=40.93%;;;0;100 'AP Piso 2#clients.current.count'=17;20:;;0; 'AP Piso 2#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 2#memory.usage.bytes'=219455488B;;;0;527028224 'AP Piso 2#memory.free.bytes'=307572736B;;;0;527028224 'AP Piso 2#memory.usage.percentage'=41.64%;;;0;100 'AP Piso 3#clients.current.count'=14;20:;;0; 'AP Piso 3#cpu.utilization.percentage'=18.00%;;;0;100 'AP Piso 3#memory.usage.bytes'=219185152B;;;0;527028224 'AP Piso 3#memory.free.bytes'=307843072B;;;0;527028224 'AP Piso 3#memory.usage.percentage'=41.59%;;;0;100 'AP Piso 4#clients.current.count'=11;20:;;0; 'AP Piso 4#cpu.utilization.percentage'=11.00%;;;0;100 'AP Piso 4#memory.usage.bytes'=221700096B;;;0;527028224 'AP Piso 4#memory.free.bytes'=305328128B;;;0;527028224 'AP Piso 4#memory.usage.percentage'=42.07%;;;0;100 'AP Sotano#clients.current.count'=4;20:;;0; 'AP Sotano#cpu.utilization.percentage'=4.00%;;;0;100 'AP Sotano#memory.usage.bytes'=217473024B;;;0;527028224 'AP Sotano#memory.free.bytes'=309555200B;;;0;527028224 'AP Sotano#memory.usage.percentage'=41.26%;;;0;100 \ No newline at end of file diff --git a/tests/network/cisco/standard/snmp/interfaces.robot b/tests/network/cisco/standard/snmp/interfaces.robot new file mode 100644 index 0000000000..3698478c44 --- /dev/null +++ b/tests/network/cisco/standard/snmp/interfaces.robot @@ -0,0 +1,32 @@ +*** Settings *** +Documentation Network citrix netscaler health + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=network::cisco::standard::snmp::plugin + + +*** Test Cases *** +interfaces ${tc} + [Tags] network citrix snmp + ${command} Catenate + ... ${CMD} + ... --mode=interfaces + ... --hostname=${HOSTNAME} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=network/cisco/standard/snmp/slim_cisco_fc_fe + ... ${extra_options} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extra_options expected_result -- + ... 1 --oid-display='ifName' UNKNOWN: Can't construct cache... + ... 2 --oid-extra-display='ifdesc' UNKNOWN: Can't construct cache... + ... 3 --verbose UNKNOWN: Can't construct cache... + ... 4 --show-cache $VAR1 = {}; + ... 5 --display-transform-dst='ens' UNKNOWN: Can't construct cache... + ... 6 --display-transform-src='eth' UNKNOWN: Can't construct cache... diff --git a/tests/network/cisco/standard/snmp/slim_cisco_fc_fe.snmpwalk b/tests/network/cisco/standard/snmp/slim_cisco_fc_fe.snmpwalk new file mode 100644 index 0000000000..04799a7f20 --- /dev/null +++ b/tests/network/cisco/standard/snmp/slim_cisco_fc_fe.snmpwalk @@ -0,0 +1,588 @@ +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16777216 = Hex-STRING: 20 01 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16781312 = Hex-STRING: 20 02 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16785408 = Hex-STRING: 20 03 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16789504 = Hex-STRING: 20 04 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16793600 = Hex-STRING: 20 05 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16797696 = Hex-STRING: 20 06 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16801792 = Hex-STRING: 20 07 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16805888 = Hex-STRING: 20 08 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16809984 = Hex-STRING: 20 09 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16814080 = Hex-STRING: 20 0A 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16818176 = Hex-STRING: 20 0B 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16822272 = Hex-STRING: 20 0C 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16826368 = Hex-STRING: 20 0D 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16830464 = Hex-STRING: 20 0E 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16834560 = Hex-STRING: 20 0F 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16838656 = Hex-STRING: 20 10 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16842752 = Hex-STRING: 20 11 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16846848 = Hex-STRING: 20 12 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16850944 = Hex-STRING: 20 13 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16855040 = Hex-STRING: 20 14 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16859136 = Hex-STRING: 20 15 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16863232 = Hex-STRING: 20 16 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16867328 = Hex-STRING: 20 17 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16871424 = Hex-STRING: 20 18 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16875520 = Hex-STRING: 20 19 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16879616 = Hex-STRING: 20 1A 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16883712 = Hex-STRING: 20 1B 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16887808 = Hex-STRING: 20 1C 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16891904 = Hex-STRING: 20 1D 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16896000 = Hex-STRING: 20 1E 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16900096 = Hex-STRING: 20 1F 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16904192 = Hex-STRING: 20 20 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16908288 = Hex-STRING: 20 21 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16912384 = Hex-STRING: 20 22 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16916480 = Hex-STRING: 20 23 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16920576 = Hex-STRING: 20 24 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16924672 = Hex-STRING: 20 25 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16928768 = Hex-STRING: 20 26 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16932864 = Hex-STRING: 20 27 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16936960 = Hex-STRING: 20 28 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16941056 = Hex-STRING: 20 29 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16945152 = Hex-STRING: 20 2A 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16949248 = Hex-STRING: 20 2B 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16953344 = Hex-STRING: 20 2C 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16957440 = Hex-STRING: 20 2D 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16961536 = Hex-STRING: 20 2E 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16965632 = Hex-STRING: 20 2F 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.16969728 = Hex-STRING: 20 30 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.1.67108864 = Hex-STRING: 24 01 00 08 31 47 C2 F0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16777216 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16781312 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16785408 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16789504 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16793600 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16797696 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16801792 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16805888 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16809984 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16814080 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16818176 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16822272 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16826368 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16830464 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16834560 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16838656 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16842752 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16846848 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16850944 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16855040 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16859136 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16863232 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16867328 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16871424 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16875520 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16879616 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16883712 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16887808 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16891904 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16896000 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16900096 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16904192 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16908288 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16912384 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16916480 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16920576 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16924672 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16928768 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16932864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16936960 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16941056 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16945152 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16949248 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16953344 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16957440 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16961536 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16965632 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.16969728 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.10.67108864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16777216 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16781312 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16785408 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16789504 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16793600 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16797696 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16801792 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16805888 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16809984 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16814080 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16818176 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16822272 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16826368 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16830464 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16834560 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16838656 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16842752 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16846848 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16850944 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16855040 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16859136 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16863232 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16867328 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16871424 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16875520 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16879616 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16883712 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16887808 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16891904 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16896000 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16900096 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16904192 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16908288 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16912384 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16916480 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16920576 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16924672 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16928768 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16932864 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16936960 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16941056 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16945152 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16949248 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16953344 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16957440 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16961536 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16965632 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.16969728 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.11.67108864 = Hex-STRING: 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16777216 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16781312 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16785408 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16789504 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16793600 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16797696 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16801792 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16805888 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16809984 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16814080 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16818176 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16822272 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16826368 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16830464 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16834560 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16838656 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16842752 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16846848 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16850944 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16855040 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16859136 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16863232 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16867328 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16871424 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16875520 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16879616 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16883712 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16887808 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16891904 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16896000 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16900096 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16904192 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16908288 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16912384 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16916480 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16920576 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16924672 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16928768 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16932864 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16936960 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16941056 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16945152 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16949248 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16953344 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16957440 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16961536 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16965632 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.16969728 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.12.67108864 = Hex-STRING: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FC +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16777216 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16781312 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16785408 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16789504 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16793600 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16797696 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16801792 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16805888 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16809984 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16814080 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16818176 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16822272 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16826368 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16830464 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16834560 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16838656 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16842752 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16846848 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16850944 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16855040 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16859136 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16863232 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16867328 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16871424 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16875520 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16879616 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16883712 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16887808 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16891904 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16896000 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16900096 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16904192 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16908288 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16912384 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16916480 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16920576 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16924672 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16928768 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16932864 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16936960 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16941056 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16945152 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16949248 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16953344 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16957440 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16961536 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16965632 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.16969728 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.13.67108864 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16777216 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16781312 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16785408 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16789504 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16793600 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16797696 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16801792 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16805888 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16809984 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16814080 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16818176 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16822272 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16826368 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16830464 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16834560 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16838656 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16842752 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16846848 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16850944 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16855040 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16859136 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16863232 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16867328 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16871424 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16875520 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16879616 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16883712 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16887808 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16891904 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16896000 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16900096 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16904192 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16908288 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16912384 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16916480 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16920576 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16924672 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16928768 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16932864 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16936960 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16941056 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16945152 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16949248 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16953344 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16957440 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16961536 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16965632 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.16969728 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.14.67108864 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16777216 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16781312 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16785408 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16789504 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16793600 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16797696 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16801792 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16805888 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16809984 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16814080 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16818176 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16822272 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16826368 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16830464 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16834560 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16838656 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16842752 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16846848 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16850944 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16855040 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16859136 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16863232 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16867328 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16871424 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16875520 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16879616 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16883712 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16887808 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16891904 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16896000 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16900096 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16904192 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16908288 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16912384 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16916480 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16920576 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16924672 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16928768 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16932864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16936960 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16941056 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16945152 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16949248 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16953344 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16957440 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16961536 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16965632 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.16969728 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.15.67108864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16777216 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16781312 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16785408 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16789504 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16793600 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16797696 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16801792 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16805888 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16809984 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16814080 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16818176 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16822272 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16826368 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16830464 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16834560 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16838656 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16842752 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16846848 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16850944 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16855040 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16859136 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16863232 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16867328 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16871424 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16875520 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16879616 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16883712 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16887808 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16891904 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16896000 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16900096 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16904192 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16908288 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16912384 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16916480 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16920576 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16924672 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16928768 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16932864 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16936960 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16941056 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16945152 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16949248 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16953344 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16957440 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16961536 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16965632 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.16969728 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.16.67108864 = Gauge32: 0 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16777216 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16781312 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16785408 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16789504 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16793600 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16797696 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16801792 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16805888 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16809984 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16814080 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16818176 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16822272 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16826368 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16830464 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16834560 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16838656 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16842752 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16846848 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16850944 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16855040 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16859136 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16863232 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16867328 = INTEGER: 4 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16871424 = INTEGER: 4 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16875520 = INTEGER: 3 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16879616 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16883712 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16887808 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16891904 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16896000 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16900096 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16904192 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16908288 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16912384 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16916480 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16920576 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16924672 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16928768 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16932864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16936960 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16941056 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16945152 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16949248 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16953344 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16957440 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16961536 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16965632 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.16969728 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.17.67108864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16777216 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16781312 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16785408 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16789504 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16793600 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16797696 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16801792 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16805888 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16809984 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16814080 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16818176 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16822272 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16826368 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16830464 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16834560 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16838656 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16842752 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16846848 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16850944 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16855040 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16859136 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16863232 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16867328 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16871424 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16875520 = INTEGER: 8 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16879616 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16883712 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16887808 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16891904 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16896000 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16900096 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16904192 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16908288 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16912384 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16916480 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16920576 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16924672 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16928768 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16932864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16936960 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16941056 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16945152 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16949248 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16953344 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16957440 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16961536 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16965632 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.16969728 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.18.67108864 = INTEGER: 1 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16777216 = STRING: Anonymized 150 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16781312 = STRING: Anonymized 250 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16785408 = STRING: Anonymized 234 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16789504 = STRING: Anonymized 081 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16793600 = STRING: Anonymized 167 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16797696 = STRING: Anonymized 182 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16801792 = STRING: Anonymized 072 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16805888 = STRING: Anonymized 007 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16809984 = STRING: Anonymized 006 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16814080 = STRING: Anonymized 145 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16818176 = STRING: Anonymized 204 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16822272 = STRING: Anonymized 122 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16826368 = STRING: Anonymized 242 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16830464 = STRING: Anonymized 154 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16834560 = STRING: Anonymized 186 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16838656 = STRING: Anonymized 204 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16842752 = STRING: Anonymized 134 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16846848 = STRING: Anonymized 199 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16850944 = STRING: Anonymized 128 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16855040 = STRING: Anonymized 138 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16859136 = STRING: Anonymized 211 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16863232 = STRING: Anonymized 104 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16867328 = STRING: Anonymized 131 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16871424 = STRING: Anonymized 244 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16875520 = STRING: Anonymized 033 +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16879616 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16883712 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16887808 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16891904 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16896000 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16900096 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16904192 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16908288 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16912384 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16916480 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16920576 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16924672 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16928768 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16932864 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16936960 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16941056 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16945152 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16949248 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16953344 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16957440 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16961536 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16965632 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.16969728 = "" +.1.3.6.1.4.1.9.9.289.1.1.2.1.19.67108864 = "" +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16777216 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16781312 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16785408 = Counter32: 1262 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16789504 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16793600 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16797696 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16801792 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16805888 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16809984 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16814080 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16818176 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16822272 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16826368 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16830464 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16834560 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16838656 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16842752 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16846848 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16850944 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16855040 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16859136 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16863232 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16867328 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16871424 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16875520 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16879616 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16883712 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16887808 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16891904 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16896000 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16900096 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16904192 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16908288 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16912384 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16916480 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16920576 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16924672 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16928768 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16932864 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16936960 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16941056 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16945152 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16949248 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16953344 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16957440 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16961536 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16965632 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.16969728 = Counter32: 0 +.1.3.6.1.4.1.9.9.289.1.2.1.1.15.67108864 = Counter32: 0 \ No newline at end of file diff --git a/tests/network/fortinet/fortigate/snmp/link-monitor.robot b/tests/network/fortinet/fortigate/snmp/link-monitor.robot new file mode 100644 index 0000000000..854474e2ff --- /dev/null +++ b/tests/network/fortinet/fortigate/snmp/link-monitor.robot @@ -0,0 +1,53 @@ +*** Settings *** +Documentation Network Fortinet Fortigate SNMP plugin + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=network::fortinet::fortigate::snmp::plugin + +*** Test Cases *** +Network Fortinet Fortigate SNMP link monitor ${tc} + [Documentation] Network Fortinet Fortigate SNMP link-monitor + [Tags] network fortinet fortigate snmp + ${command} Catenate + ... ${CMD} + ... --mode=link-monitor + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=network/fortinet/fortigate/snmp/linkmonitor + ... --filter-id=${filterid} + ... --filter-name=${filtername} + ... --filter-vdom=${filtervdom} + ... --custom-perfdata-instances=${customperfdatainstances} + ... --unknown-status=${unknownstatus} + ... --warning-status=${warningstatus} + ... --critical-status=${criticalstatus} + ... --warning-latency=${warninglatency} + ... --critical-latency=${criticallatency} + ... --warning-jitter=${warningjitter} + ... --critical-jitter=${criticaljitter} + ... --warning-packet-loss=${warningpacketloss} + ... --critical-packet-loss=${criticalpacketloss} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc filterid filtername filtervdom customperfdatainstances unknownstatus warningstatus criticalstatus warninglatency criticallatency warningjitter criticaljitter warningpacketloss criticalpacketloss expected_result -- + ... 1 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: All link monitors are ok | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 2 3 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead, latency: 0.000ms, jitter: 0.000ms, packet loss: 100.000% | 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 3 ${EMPTY} 'MonitorWAN1' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive, latency: 39.739ms, jitter: 0.096ms, packet loss: 0.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; + ... 4 ${EMPTY} ${EMPTY} 'root' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: All link monitors are ok | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 5 ${EMPTY} ${EMPTY} ${EMPTY} '\\\%(name) %(id)' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} OK: All link monitors are ok | 'MonitorWAN1~1#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~1#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~1#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~2#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~2#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~2#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~3#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~3#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~3#linkmonitor.packet.loss.percentage'=100;;;0; + ... 6 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '\\\%{state} =~ /alive/' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} UNKNOWN: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 7 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '\\\%{state} =~ /alive/' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} WARNING: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 8 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} '\\\%{state} =~ /alive/' ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} CRITICAL: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 9 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 40 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] latency: 46.446ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;0:40;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;0:40;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;0:40;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 10 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 40 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] latency: 46.446ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;0:40;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;0:40;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;0:40;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 11 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 1 ${EMPTY} ${EMPTY} ${EMPTY} WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] jitter: 1.868ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;0:1;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;0:1;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;0:1;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 12 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 1 ${EMPTY} ${EMPTY} CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] jitter: 1.868ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;0:1;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;0:1;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;0:1;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; + ... 13 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 0.5 ${EMPTY} WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] packet loss: 1.000% - Link monitor 'MonitorWAN3' [vdom: root] [id: 3] packet loss: 100.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;0:0.5;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;0:0.5;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;0:0.5;;0; + ... 14 ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} 0.5 CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] packet loss: 1.000% - Link monitor 'MonitorWAN3' [vdom: root] [id: 3] packet loss: 100.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;0:0.5;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;0:0.5;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;0:0.5;0; \ No newline at end of file diff --git a/tests/network/fortinet/fortigate/snmp/list-link-monitor.robot b/tests/network/fortinet/fortigate/snmp/list-link-monitor.robot new file mode 100644 index 0000000000..53ddfd3618 --- /dev/null +++ b/tests/network/fortinet/fortigate/snmp/list-link-monitor.robot @@ -0,0 +1,33 @@ +*** Settings *** +Documentation Network Fortinet Fortigate SNMP plugin + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=network::fortinet::fortigate::snmp::plugin + +*** Test Cases *** +Network Fortinet Fortigate SNMP list link monitor ${tc} + [Documentation] Network Fortinet Fortigate SNMP list-linkmonitors + [Tags] network fortinet fortigate snmp + ${command} Catenate + ... ${CMD} + ... --mode=list-link-monitors + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=network/fortinet/fortigate/snmp/linkmonitor + ... --filter-state=${filterstate} + ... --filter-name=${filtername} + ... --filter-vdom=${filtervdom} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc filterstate filtername filtervdom expected_result -- + ... 1 ${EMPTY} ${EMPTY} ${EMPTY} List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive]\n[Name = MonitorWAN3] [Vdom = root] [State = dead] + ... 2 ${EMPTY} 'MonitorWAN1' ${EMPTY} List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive] + ... 3 'alive' ${EMPTY} ${EMPTY} List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive] + ... 4 ${EMPTY} ${EMPTY} 'root' List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive]\n[Name = MonitorWAN3] [Vdom = root] [State = dead] diff --git a/tests/network/fortinet/fortigate/snmp/network-fortinet-fortigate-snmp.robot b/tests/network/fortinet/fortigate/snmp/network-fortinet-fortigate-snmp.robot deleted file mode 100644 index c3d253df4f..0000000000 --- a/tests/network/fortinet/fortigate/snmp/network-fortinet-fortigate-snmp.robot +++ /dev/null @@ -1,420 +0,0 @@ -*** Settings *** -Documentation Network Fortinet Fortigate SNMP plugin - -Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource - -Test Timeout 120s - - -*** Variables *** -${CMD} ${CENTREON_PLUGINS} --plugin=network::fortinet::fortigate::snmp::plugin - -# Test simple usage of the linkmonitor mode -&{fortinet_fortigate_linkmonitor_test1} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with filter-id option set to 3 -&{fortinet_fortigate_linkmonitor_test2} -... filterid=3 -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with filter-name option set to MonitorWAN1 -&{fortinet_fortigate_linkmonitor_test3} -... filterid= -... filtername='MonitorWAN1' -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=OK: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive, latency: 39.739ms, jitter: 0.096ms, packet loss: 0.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; - -# Test linkmonitor mode with filter-vdom option set to 'root' -&{fortinet_fortigate_linkmonitor_test4} -... filterid= -... filtername= -... filtervdom='root' -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with custom-perf-data-instances option set to '%(name) %(id)' -&{fortinet_fortigate_linkmonitor_test5} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances='%(name) %(id)' -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN1~1#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~1#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~1#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~2#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~2#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~2#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~3#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~3#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~3#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with unknown-status option set to '%{state} eq "alive"' -&{fortinet_fortigate_linkmonitor_test6} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus='\%{state} eq "alive"' -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead UNKNOWN: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with warning-status option set to '%{state} eq "alive"' -&{fortinet_fortigate_linkmonitor_test7} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus='\%{state} eq "alive"' -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead WARNING: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with critical-status option set to '%{state} eq "alive"' -&{fortinet_fortigate_linkmonitor_test8} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus='\%{state} eq "alive"' -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN1' [vdom: root] [id: 1] state: alive - Link monitor 'MonitorWAN2' [vdom: root] [id: 2] state: alive | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with warning-latency option set to 40 -&{fortinet_fortigate_linkmonitor_test9} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency=40 -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] latency: 46.446ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;0:40;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;0:40;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;0:40;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with critical-latency option set to 40 -&{fortinet_fortigate_linkmonitor_test10} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency=40 -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] latency: 46.446ms - Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;0:40;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;0:40;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;0:40;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with warning-jitter option set to 1 -&{fortinet_fortigate_linkmonitor_test11} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter=1 -... criticaljitter= -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] jitter: 1.868ms | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;0:1;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;0:1;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;0:1;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with critical-jitter option set to 1 -&{fortinet_fortigate_linkmonitor_test12} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter=1 -... warningpacketloss= -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] jitter: 1.868ms - Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;0:1;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;0:1;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;0:1;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;;0; - -# Test linkmonitor mode with warning-packetloss option set to 0.5 -&{fortinet_fortigate_linkmonitor_test13} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss=0.5 -... criticalpacketloss= -... result=CRITICAL: Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead, packet loss: 100.000% WARNING: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] packet loss: 1.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;0:0.5;;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;0:0.5;;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;0:0.5;;0; - -# Test linkmonitor mode with critical-packetloss option set to 0.5 -&{fortinet_fortigate_linkmonitor_test14} -... filterid= -... filtername= -... filtervdom= -... customperfdatainstances= -... unknownstatus= -... warningstatus= -... criticalstatus= -... warninglatency= -... criticallatency= -... warningjitter= -... criticaljitter= -... warningpacketloss= -... criticalpacketloss=0.5 -... result=CRITICAL: Link monitor 'MonitorWAN2' [vdom: root] [id: 2] packet loss: 1.000% - Link monitor 'MonitorWAN3' [vdom: root] [id: 3] state: dead, packet loss: 100.000% | 'MonitorWAN1~root#linkmonitor.latency.milliseconds'=39.739;;;0; 'MonitorWAN1~root#linkmonitor.jitter.milliseconds'=0.096;;;0; 'MonitorWAN1~root#linkmonitor.packet.loss.percentage'=0;;0:0.5;0; 'MonitorWAN2~root#linkmonitor.latency.milliseconds'=46.446;;;0; 'MonitorWAN2~root#linkmonitor.jitter.milliseconds'=1.868;;;0; 'MonitorWAN2~root#linkmonitor.packet.loss.percentage'=1;;0:0.5;0; 'MonitorWAN3~root#linkmonitor.latency.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.jitter.milliseconds'=0.000;;;0; 'MonitorWAN3~root#linkmonitor.packet.loss.percentage'=100;;0:0.5;0; - -@{fortinet_fortigate_linkmonitor_tests} -... &{fortinet_fortigate_linkmonitor_test1} -... &{fortinet_fortigate_linkmonitor_test2} -... &{fortinet_fortigate_linkmonitor_test3} -... &{fortinet_fortigate_linkmonitor_test4} -... &{fortinet_fortigate_linkmonitor_test5} -... &{fortinet_fortigate_linkmonitor_test6} -... &{fortinet_fortigate_linkmonitor_test7} -... &{fortinet_fortigate_linkmonitor_test8} -... &{fortinet_fortigate_linkmonitor_test9} -... &{fortinet_fortigate_linkmonitor_test10} -... &{fortinet_fortigate_linkmonitor_test11} -... &{fortinet_fortigate_linkmonitor_test12} -... &{fortinet_fortigate_linkmonitor_test13} -... &{fortinet_fortigate_linkmonitor_test14} - -# Test simple usage of the list-linkmonitors mode -&{fortinet_fortigate_listlinkmonitors_test1} -... filterstate= -... filtername= -... filtervdom= -... result=List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive]\n[Name = MonitorWAN3] [Vdom = root] [State = dead] - -# Test list-linkmonitors mode with filter-name option set to MonitorWAN1 -&{fortinet_fortigate_listlinkmonitors_test2} -... filterstate= -... filtername='MonitorWAN1' -... filtervdom= -... result=List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive] - -# Test list-linkmonitors mode with filter-state option set to alive -&{fortinet_fortigate_listlinkmonitors_test3} -... filterstate='alive' -... filtername= -... filtervdom= -... result=List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive] - -# Test list-linkmonitors mode with filter-vdom option set to root -&{fortinet_fortigate_listlinkmonitors_test4} -... filterstate= -... filtername= -... filtervdom='root' -... result=List link monitors: \n[Name = MonitorWAN1] [Vdom = root] [State = alive]\n[Name = MonitorWAN2] [Vdom = root] [State = alive]\n[Name = MonitorWAN3] [Vdom = root] [State = dead] - -@{fortinet_fortigate_listlinkmonitors_tests} -... &{fortinet_fortigate_listlinkmonitors_test1} -... &{fortinet_fortigate_listlinkmonitors_test2} -... &{fortinet_fortigate_listlinkmonitors_test3} -... &{fortinet_fortigate_listlinkmonitors_test4} - - -*** Test Cases *** -Network Fortinet Fortigate SNMP link monitor - [Documentation] Network Fortinet Fortigate SNMP link-monitor - [Tags] network fortinet fortigate snmp - FOR ${fortinet_fortigate_linkmonitor_test} IN @{fortinet_fortigate_linkmonitor_tests} - ${command} Catenate - ... ${CMD} - ... --mode=link-monitor - ... --hostname=${HOSTNAME} - ... --snmp-version=${SNMPVERSION} - ... --snmp-port=${SNMPPORT} - ... --snmp-community=network/fortinet/fortigate/snmp/linkmonitor - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.filterid} - IF ${length} > 0 - ${command} Catenate ${command} --filter-id=${fortinet_fortigate_linkmonitor_test.filterid} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.filtername} - IF ${length} > 0 - ${command} Catenate ${command} --filter-name=${fortinet_fortigate_linkmonitor_test.filtername} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.filtervdom} - IF ${length} > 0 - ${command} Catenate ${command} --filter-vdom=${fortinet_fortigate_linkmonitor_test.filtervdom} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.customperfdatainstances} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --custom-perfdata-instances=${fortinet_fortigate_linkmonitor_test.customperfdatainstances} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.unknownstatus} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --unknown-status=${fortinet_fortigate_linkmonitor_test.unknownstatus} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.warningstatus} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --warning-status=${fortinet_fortigate_linkmonitor_test.warningstatus} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.criticalstatus} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --critical-status=${fortinet_fortigate_linkmonitor_test.criticalstatus} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.warninglatency} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --warning-latency=${fortinet_fortigate_linkmonitor_test.warninglatency} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.criticallatency} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --critical-latency=${fortinet_fortigate_linkmonitor_test.criticallatency} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.warningjitter} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --warning-jitter=${fortinet_fortigate_linkmonitor_test.warningjitter} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.criticaljitter} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --critical-jitter=${fortinet_fortigate_linkmonitor_test.criticaljitter} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.warningpacketloss} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --warning-packet-loss=${fortinet_fortigate_linkmonitor_test.warningpacketloss} - END - ${length} Get Length ${fortinet_fortigate_linkmonitor_test.criticalpacketloss} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --critical-packet-loss=${fortinet_fortigate_linkmonitor_test.criticalpacketloss} - END - - Log To Console . no_newline=true - Ctn Run Command And Check Result As Strings ${command} ${fortinet_fortigate_linkmonitor_test.result} - END - -Network Fortinet Fortigate SNMP list link monitor - [Documentation] Network Fortinet Fortigate SNMP list-linkmonitors - [Tags] network fortinet fortigate snmp - FOR ${fortinet_fortigate_listlinkmonitors_test} IN @{fortinet_fortigate_listlinkmonitors_tests} - ${command} Catenate - ... ${CMD} - ... --mode=list-link-monitors - ... --hostname=${HOSTNAME} - ... --snmp-version=${SNMPVERSION} - ... --snmp-port=${SNMPPORT} - ... --snmp-community=network/fortinet/fortigate/snmp/linkmonitor - ${length} Get Length ${fortinet_fortigate_listlinkmonitors_test.filterstate} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --filter-state=${fortinet_fortigate_listlinkmonitors_test.filterstate} - END - ${length} Get Length ${fortinet_fortigate_listlinkmonitors_test.filtername} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --filter-name=${fortinet_fortigate_listlinkmonitors_test.filtername} - END - ${length} Get Length ${fortinet_fortigate_listlinkmonitors_test.filtervdom} - IF ${length} > 0 - ${command} Catenate - ... ${command} - ... --filter-vdom=${fortinet_fortigate_listlinkmonitors_test.filtervdom} - END - Ctn Run Command And Check Result As Strings ${command} ${fortinet_fortigate_listlinkmonitors_test.result} - END diff --git a/tests/network/stormshield/snmp/hardware.robot b/tests/network/stormshield/snmp/hardware.robot new file mode 100644 index 0000000000..93ded48bea --- /dev/null +++ b/tests/network/stormshield/snmp/hardware.robot @@ -0,0 +1,34 @@ +*** Settings *** +Documentation Check Stormshield equipment + +Resource ${CURDIR}${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=network::stormshield::snmp::plugin + + +*** Test Cases *** +hardware ${tc} + [Tags] network Stormshield + ${command} Catenate + ... ${CMD} + ... --mode=hardware + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=network/stormshield/snmp/stormshield-fake + ... --snmp-timeout=1 + ... ${extra_options} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extra_options expected_result -- + ... 1 --critical='temperature,.*,50' CRITICAL: temperature 'cpu1' is 70 celsius | 'cpu1#hardware.temperature.celsius'=70C;;0:50;0; 'cpu2#hardware.temperature.celsius'=30C;;0:50;0; 'cpu3#hardware.temperature.celsius'=0C;;0:50;0; 'hardware.temperature.count'=3;;;; + ... 2 --threshold-overload='disk,WARNING,missing' OK: All 3 components are ok [3/3 temperatures]. | 'cpu1#hardware.temperature.celsius'=70C;;;0; 'cpu2#hardware.temperature.celsius'=30C;;;0; 'cpu3#hardware.temperature.celsius'=0C;;;0; 'hardware.temperature.count'=3;;;; + ... 3 --warning='temperature,.*,40' WARNING: temperature 'cpu1' is 70 celsius | 'cpu1#hardware.temperature.celsius'=70C;0:40;;0; 'cpu2#hardware.temperature.celsius'=30C;0:40;;0; 'cpu3#hardware.temperature.celsius'=0C;0:40;;0; 'hardware.temperature.count'=3;;;; + ... 4 --warning='temperature,cpu1,60' WARNING: temperature 'cpu1' is 70 celsius | 'cpu1#hardware.temperature.celsius'=70C;0:60;;0; 'cpu2#hardware.temperature.celsius'=30C;;;0; 'cpu3#hardware.temperature.celsius'=0C;;;0; 'hardware.temperature.count'=3;;;; + ... 5 --critical='temperature,cpu1,75' OK: All 3 components are ok [3/3 temperatures]. | 'cpu1#hardware.temperature.celsius'=70C;;0:75;0; 'cpu2#hardware.temperature.celsius'=30C;;;0; 'cpu3#hardware.temperature.celsius'=0C;;;0; 'hardware.temperature.count'=3;;;; + ... 6 --warning='temperature,cpu1,300' --critical='temperature,cpu1,17' CRITICAL: temperature 'cpu1' is 70 celsius | 'cpu1#hardware.temperature.celsius'=70C;0:300;0:17;0; 'cpu2#hardware.temperature.celsius'=30C;;;0; 'cpu3#hardware.temperature.celsius'=0C;;;0; 'hardware.temperature.count'=3;;;; diff --git a/tests/network/stormshield/snmp/stormshield-fake.snmpwalk b/tests/network/stormshield/snmp/stormshield-fake.snmpwalk new file mode 100644 index 0000000000..1a44d6947c --- /dev/null +++ b/tests/network/stormshield/snmp/stormshield-fake.snmpwalk @@ -0,0 +1,3 @@ +.1.3.6.1.4.1.11256.1.10.7.1.2.1 = INTEGER: 70 +.1.3.6.1.4.1.11256.1.10.7.1.2.2 = INTEGER: 30 +.1.3.6.1.4.1.11256.1.10.7.1.2.3 = INTEGER: 0 \ No newline at end of file diff --git a/tests/os/linux/snmp/linux.snmpwalk b/tests/os/linux/snmp/linux.snmpwalk index 7013392c11..0a53344144 100644 --- a/tests/os/linux/snmp/linux.snmpwalk +++ b/tests/os/linux/snmp/linux.snmpwalk @@ -11041,15 +11041,15 @@ .1.3.6.1.4.1.2021.4.13.0 = INTEGER: 29600 .1.3.6.1.4.1.2021.4.14.0 = INTEGER: 36720 .1.3.6.1.4.1.2021.4.15.0 = INTEGER: 510772 -.1.3.6.1.4.1.2021.4.18.0 = Counter64: 0 -.1.3.6.1.4.1.2021.4.19.0 = Counter64: 0 -.1.3.6.1.4.1.2021.4.20.0 = Counter64: 2014256 -.1.3.6.1.4.1.2021.4.21.0 = Counter64: 747712 -.1.3.6.1.4.1.2021.4.22.0 = Counter64: 747712 +.1.3.6.1.4.1.2021.4.18.0 = Counter64: 17825788 +.1.3.6.1.4.1.2021.4.19.0 = Counter64: 13283452 +.1.3.6.1.4.1.2021.4.20.0 = Counter64: 6341032700 +.1.3.6.1.4.1.2021.4.21.0 = Counter64: 20050780 +.1.3.6.1.4.1.2021.4.22.0 = Counter64: 33334232 .1.3.6.1.4.1.2021.4.23.0 = Counter64: 16000 -.1.3.6.1.4.1.2021.4.24.0 = Counter64: 29600 -.1.3.6.1.4.1.2021.4.25.0 = Counter64: 36720 -.1.3.6.1.4.1.2021.4.26.0 = Counter64: 510772 +.1.3.6.1.4.1.2021.4.24.0 = Counter64: 9763096 +.1.3.6.1.4.1.2021.4.25.0 = Counter64: 711208 +.1.3.6.1.4.1.2021.4.26.0 = Counter64: 230069704 .1.3.6.1.4.1.2021.4.27.0 = Counter64: 1117168 .1.3.6.1.4.1.2021.4.100.0 = INTEGER: 1 .1.3.6.1.4.1.2021.4.101.0 = STRING: "Running out of swap space (0)" diff --git a/tests/os/linux/snmp/memory.robot b/tests/os/linux/snmp/memory.robot index 1e98abd4e9..0131cf61c5 100644 --- a/tests/os/linux/snmp/memory.robot +++ b/tests/os/linux/snmp/memory.robot @@ -21,29 +21,52 @@ memory ${tc} ... --snmp-port=${SNMPPORT} ... --snmp-community=os/linux/snmp/linux ... --snmp-timeout=1 + ... --snmp-version=${snmpver} + ... --force-64bits-counters ... ${extra_options} Ctn Run Command And Check Result As Strings ${command} ${expected_result} - Examples: tc extra_options expected_result -- - ... 1 --verbose OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 2 --warning-usage='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;0:1;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 3 --warning-usage-free='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;0:1;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 4 --warning-usage-prct='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;0:1;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 5 --warning-swap='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 6 --warning-swap-free='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 7 --warning-swap-prct='0' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 8 --warning-buffer='40' WARNING: Buffer: 35.86 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;0:40;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 9 --warning-cached='1' WARNING: Cached: 498.80 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;0:1;;0; 'shared'=30310400B;;;0; - ... 10 --warning-shared='1' WARNING: Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;0:1;;0; - ... 11 --patch-redhat='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 1.21 GB (62.88%) Free: 730.19 MB (37.12%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=1296941056B;;;0;2062598144 'free'=765657088B;;;0;2062598144 'used_prct'=62.88%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 12 --critical-usage='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;0:1;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 13 --critical-usage-free='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;0:1;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 14 --critical-usage-prct='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;0:1;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 15 --critical-swap='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 16 --critical-swap-free='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 17 --critical-swap-prct='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 18 --critical-buffer='1' CRITICAL: Buffer: 35.86 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;0:1;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; - ... 19 --critical-cached='1' CRITICAL: Cached: 498.80 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;0:1;0; 'shared'=30310400B;;;0; - ... 20 --critical-shared='1' CRITICAL: Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;0:1;0; - ... 21 --patch-redhat='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 1.21 GB (62.88%) Free: 730.19 MB (37.12%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=1296941056B;;;0;2062598144 'free'=765657088B;;;0;2062598144 'used_prct'=62.88%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; \ No newline at end of file + Examples: tc snmpver extra_options expected_result -- + ... 1 1 --verbose OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 2 1 --warning-usage='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;0:1;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 3 1 --warning-usage-free='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;0:1;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 4 1 --warning-usage-prct='1' WARNING: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;0:1;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 5 1 --warning-swap='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 6 1 --warning-swap-free='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 7 1 --warning-swap-prct='0' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 8 1 --warning-buffer='40' WARNING: Buffer: 35.86 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;0:40;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 9 1 --warning-cached='1' WARNING: Cached: 498.80 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;0:1;;0; 'shared'=30310400B;;;0; + ... 10 1 --warning-shared='1' WARNING: Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;0:1;;0; + ... 11 1 --patch-redhat='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 1.21 GB (62.88%) Free: 730.19 MB (37.12%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=1296941056B;;;0;2062598144 'free'=765657088B;;;0;2062598144 'used_prct'=62.88%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 12 1 --critical-usage='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;0:1;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 13 1 --critical-usage-free='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;0:1;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 14 1 --critical-usage-prct='1' CRITICAL: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%) | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;0:1;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 15 1 --critical-swap='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 16 1 --critical-swap-free='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 17 1 --critical-swap-prct='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 702.20 MB (35.70%) Free: 1.24 GB (64.30%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 18 1 --critical-buffer='1' CRITICAL: Buffer: 35.86 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;0:1;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 19 1 --critical-cached='1' CRITICAL: Cached: 498.80 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;0:1;0; 'shared'=30310400B;;;0; + ... 20 1 --critical-shared='1' CRITICAL: Shared: 28.91 MB | 'used'=736309248B;;;0;2062598144 'free'=1326288896B;;;0;2062598144 'used_prct'=35.70%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;0:1;0; + ... 21 1 --patch-redhat='1' OK: Ram Total: 1.92 GB Used (-buffers/cache): 1.21 GB (62.88%) Free: 730.19 MB (37.12%), Buffer: 35.86 MB, Cached: 498.80 MB, Shared: 28.91 MB | 'used'=1296941056B;;;0;2062598144 'free'=765657088B;;;0;2062598144 'used_prct'=62.88%;;;0;100 'buffer'=37601280B;;;0; 'cached'=523030528B;;;0; 'shared'=30310400B;;;0; + ... 22 2c --warning-usage='1' WARNING: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;0:1;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 23 2c --warning-usage-free='1' WARNING: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;0:1;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 24 2c --warning-usage-prct='1' WARNING: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;0:1;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 25 2c --warning-swap='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 26 2c --warning-swap-free='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 27 2c --warning-swap-prct='0' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 28 2c --warning-buffer='40' WARNING: Buffer: 694.54 MB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;0:40;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 29 2c --warning-cached='1' WARNING: Cached: 219.41 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;0:1;;0; 'shared'=9997410304B;;;0; + ... 30 2c --warning-shared='1' WARNING: Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;0:1;;0; + ... 31 2c --patch-redhat='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.89 TB (99.68%) Free: 19.12 GB (0.32%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6472685486080B;;;0;6493217484800 'free'=20531998720B;;;0;6493217484800 'used_prct'=99.68%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 32 2c --critical-usage='1' CRITICAL: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;0:1;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 33 2c --critical-usage-free='1' CRITICAL: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;0:1;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 34 2c --critical-usage-prct='1' CRITICAL: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%) | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;0:1;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 35 2c --critical-swap='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 36 2c --critical-swap-free='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 37 2c --critical-swap-prct='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.67 TB (96.04%) Free: 239.21 GB (3.96%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 38 2c --critical-buffer='1' CRITICAL: Buffer: 694.54 MB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;0:1;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + ... 39 2c --critical-cached='1' CRITICAL: Cached: 219.41 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;0:1;0; 'shared'=9997410304B;;;0; + ... 40 2c --critical-shared='1' CRITICAL: Shared: 9.31 GB | 'used'=6236365832192B;;;0;6493217484800 'free'=256851652608B;;;0;6493217484800 'used_prct'=96.04%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;0:1;0; + ... 41 2c --patch-redhat='1' OK: Ram Total: 5.91 TB Used (-buffers/cache): 5.89 TB (99.68%) Free: 19.12 GB (0.32%), Buffer: 694.54 MB, Cached: 219.41 GB, Shared: 9.31 GB | 'used'=6472685486080B;;;0;6493217484800 'free'=20531998720B;;;0;6493217484800 'used_prct'=99.68%;;;0;100 'buffer'=728276992B;;;0; 'cached'=235591376896B;;;0; 'shared'=9997410304B;;;0; + diff --git a/tests/resources/spellcheck/stopwords.txt b/tests/resources/spellcheck/stopwords.txt index 9bdc043bab..3014e2de6e 100644 --- a/tests/resources/spellcheck/stopwords.txt +++ b/tests/resources/spellcheck/stopwords.txt @@ -1,36 +1,116 @@ +2c +3CX --3cx-version +--add-fc-fe-errors +--add-qos-limit --add-sysdesc +ADSL +Alcatel +allCapacity +Ansible --api-filter-orgs ---api-password +api.meraki.com --api-password --api-path --api-token --api-username --api-version +ASAM +Avigilon +Backbox --cacert-file +cardtemperature +Centreon --cert-pkcs12 --cert-pwd +connections-dhcp +connections-dns +cpu-utilization-1m +cpu-utilization-5m +cpu-utilization-5s +--critical-backend-congestions +--critical-backend-outstanding-io --critical-bytesallocatedpercentage --critical-na +Datacore +datasource +DC4 +dcdiag +deduplication +deltaps +df --dfsr +dfsrevent --display-transform-dst --display-transform-src --dyn-mode +-EncodedCommand +eth --exclude-fs +fanspeed +FCCapacity --filter-fs --filter-imei --filter-vdom --filter-vm +--force-64bits-counters --force-counters32 --force-counters64 --force-oid +Fortigate +Fortinet +frsevent --get-param +HashiCorp +hashicorpvault +HPE +ifAlias +ifDesc +ifName --ignore-orgs-api-disabled +IMEI +in-bcast +in-crc +in-fcserror +in-mcast +-InputFormat +interface-dsl-name +in-ucast +IpAddr +ipv4 +ipv6 +ISAM +Iwsva --jobq +JOBQ +jobqueue +jobqueues +journalctl +kccevent +keepass +Kubernetes +ldap --legacy-api-beta +license-instances-usage-prct +Loggly --lookup-perfdatas-nagios +machineaccount --map-speed-dsl +MBean +memAvailReal +memBuffer +memTotalReal +Meraki +MIB +module-cellradio-csq +module-cellradio-rscp +module-cellradio-rsrp +module-cellradio-rsrq +module-cellradio-snr +modules-cellradio-detected +Mosquitto --mqtt +MQTT --mqtt-allow-insecure --mqtt-ca-certificate --mqtt-password @@ -40,136 +120,59 @@ --mqtt-ssl-key --mqtt-timeout --mqtt-username +multiple +nagios +Nagios +NagVis --nagvis-perfdata +Netscaler +net-snmp +NLCapacity --noeventlog +-NoLogo --nomachineaccount --ntlmv2 +NTLMv2 +NTP --oid +OID --oid-display --oid-extra-display --oid-filter ---sql-errors-exit ---urlpath ---use-ucd ---warning-bytesallocatedpercentage ---warning-na --EncodedCommand --InputFormat --NoLogo -2c -3CX -ADSL -ASAM -Alcatel -Ansible -Avigilon -Backbox -Centreon -cpu-utilization-1m -cpu-utilization-5m -cpu-utilization-5s -Datacore -DC4 -dcdiag -dfsrevent -FCCapacity -Fortigate -Fortinet -frsevent -HPE -HashiCorp -ISAM -IMEI -IpAddr -ISAM -Iwsva -JOBQ -kccevent -Loggly -MBean -MIB -MQTT -machineaccount -Meraki -module-cellradio-rscp -module-cellradio-csq -module-cellradio-rsrp -module-cellradio-rsrq -module-cellradio-snr -modules-cellradio-detected -Mosquitto -NLCapacity -NTLMv2 -NagVis -Nagios -Netscaler -OID -PKCS1 -Primera -QoS -RestAPI -RFC1628 -RRDCached -Sansymphony -SNMP -SSDCapacity -SSH -SureBackup -SysVol -TCP -TrendMicro -UCD -VDSL2 -VM -VPN -Veeam -WSMAN -XPath -allCapacity -api.meraki.com -cardtemperature -connections-dhcp -connections-dns -deduplication -datasource -deltaps -df -eth -fanspeed -hashicorpvault -ifAlias -ifDesc -ifName -in-bcast -in-mcast -in-ucast -interface-dsl-name -ipv4 -ipv6 -jobqueue -jobqueues -keepass -Kubernetes -ldap -license-instances-usage-prct -multiple -NTP -nagios okta oneaccess-sys-mib out-bcast +out-fc-wait out-mcast out-ucast overprovisioning +--patch-redhat perfdata +physicaldrive +PKCS1 powershell powershell.exe prct +Primera proto psu +QoS queue-messages-inflighted +RestAPI +RFC1628 +RRDCached +Sansymphony +--scope-datacenter sfp.temperature +SNMP space-usage-prct +--sql-errors-exit +SSDCapacity +SSH +SureBackup +systemd +SysVol +TCP teampass Teldat timeframe @@ -179,15 +182,26 @@ total-online-prct total-oper-down total-oper-up tower-cli +TrendMicro +UCD UDP uptime +--urlpath usage-prct userpass +--use-ucd v1 v2 VDSL2 Veeam VeloCloud +VM VMware +VPN +vSAN +--warning-backend-congestions +--warning-backend-outstanding-io +--warning-bytesallocatedpercentage +--warning-na WSMAN - +XPath diff --git a/tests/storage/wd/nas/snmp/hardware.robot b/tests/storage/wd/nas/snmp/hardware.robot new file mode 100644 index 0000000000..85e5c8fbbf --- /dev/null +++ b/tests/storage/wd/nas/snmp/hardware.robot @@ -0,0 +1,36 @@ +*** Settings *** +Documentation Check WD (Western Digital) NAS in SNMP + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=storage::wd::nas::snmp::plugin + +*** Test Cases *** +Hardware${tc} + [Tags] hardware storage snmp + ${command} Catenate + ... ${CMD} + ... --mode=hardware + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=storage/wd/nas/snmp/nas-wd + ... ${extra_option} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extra_option expected_result -- + ... 1 --warning-fan-status='\\\%{status} =~ "running"' WARNING: fan '0' status: running | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 2 --critical-fan-status='\\\%{status} =~ "running"' CRITICAL: fan '0' status: running | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 3 --warning-system-temperature='0' WARNING: system temperature: 34 C | 'system#hardware.temperature.celsius'=34C;0:0;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 4 --warning-system-temperature='36' OK: system temperature: 34 C - fan '0' status: running | 'system#hardware.temperature.celsius'=34C;0:36;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 5 --warning-drive-temperature='0' WARNING: drive 'WD-WCC130163701' temperature: 40 C - drive 'WD-WCC4E0HRX2TN' temperature: 36 C - drive 'WD-WCC4E6KA8V1T' temperature: 37 C - drive 'WD-WCC4E7ZHA6A7' temperature: 36 C | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;0:0;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;0:0;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;0:0;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;0:0;;; + ... 6 --warning-drive-temperature='70' OK: system temperature: 34 C - fan '0' status: running | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;0:70;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;0:70;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;0:70;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;0:70;;; + ... 7 --critical-system-temperature='0' CRITICAL: system temperature: 34 C | 'system#hardware.temperature.celsius'=34C;;0:0;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 8 --critical-system-temperature='70' OK: system temperature: 34 C - fan '0' status: running | 'system#hardware.temperature.celsius'=34C;;0:70;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;;; + ... 9 --critical-drive-temperature='0' CRITICAL: drive 'WD-WCC130163701' temperature: 40 C - drive 'WD-WCC4E0HRX2TN' temperature: 36 C - drive 'WD-WCC4E6KA8V1T' temperature: 37 C - drive 'WD-WCC4E7ZHA6A7' temperature: 36 C | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;0:0;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;0:0;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;0:0;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;0:0;; + ... 10 --critical-drive-temperature='36' CRITICAL: drive 'WD-WCC130163701' temperature: 40 C - drive 'WD-WCC4E6KA8V1T' temperature: 37 C | 'system#hardware.temperature.celsius'=34C;;;; 'drive:WD-WCC130163701#hardware.temperature.celsius'=40C;;0:36;; 'drive:WD-WCC4E0HRX2TN#hardware.temperature.celsius'=36C;;0:36;; 'drive:WD-WCC4E6KA8V1T#hardware.temperature.celsius'=37C;;0:36;; 'drive:WD-WCC4E7ZHA6A7#hardware.temperature.celsius'=36C;;0:36;; \ No newline at end of file diff --git a/tests/storage/wd/nas/snmp/listvolumes.robot b/tests/storage/wd/nas/snmp/listvolumes.robot new file mode 100644 index 0000000000..9dab15d8fc --- /dev/null +++ b/tests/storage/wd/nas/snmp/listvolumes.robot @@ -0,0 +1,29 @@ +*** Settings *** +Documentation Check WD (Western Digital) NAS in SNMP + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=storage::wd::nas::snmp::plugin + +*** Test Cases *** +listvolumes${tc} + [Tags] listvolumes storage snmp + ${command} Catenate + ... ${CMD} + ... --mode=list-volumes + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=storage/wd/nas/snmp/nas-wd + ... ${extra_option} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extra_option expected_result -- + ... 1 --snmp-tls-their-identity List volumes: [name: Volume_1] [type: ext4] + ... 2 --snmp-tls-their-hostname List volumes: [name: Volume_1] [type: ext4] + ... 3 --snmp-tls-trust-cert List volumes: [name: Volume_1] [type: ext4] \ No newline at end of file diff --git a/tests/storage/wd/nas/snmp/nas-wd.snmpwalk b/tests/storage/wd/nas/snmp/nas-wd.snmpwalk new file mode 100644 index 0000000000..55b0f62b27 --- /dev/null +++ b/tests/storage/wd/nas/snmp/nas-wd.snmpwalk @@ -0,0 +1,3819 @@ +.1.3.6.1.2.1.1.1.0 = STRING: Linux NAS4100-bck 4.14.22-armada-18.09.3 #1 SMP Thu Oct 27 08:09:13 UTC 2022 ga-18.09.3 Build-29 armv7l +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.5127.1.1.1.6 +.1.3.6.1.2.1.1.3.0 = Timeticks: (43943539) 5 days, 2:03:55.39 +.1.3.6.1.2.1.1.4.0 = STRING: support@wdc.com +.1.3.6.1.2.1.1.5.0 = STRING: NAS4100-bck +.1.3.6.1.2.1.1.6.0 = STRING: Magazzino Via Bixio +.1.3.6.1.2.1.1.8.0 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.6.3.11.3.1.1 +.1.3.6.1.2.1.1.9.1.2.2 = OID: .1.3.6.1.6.3.15.2.1.1 +.1.3.6.1.2.1.1.9.1.2.3 = OID: .1.3.6.1.6.3.10.3.1.1 +.1.3.6.1.2.1.1.9.1.2.4 = OID: .1.3.6.1.6.3.1 +.1.3.6.1.2.1.1.9.1.2.5 = OID: .1.3.6.1.6.3.16.2.2.1 +.1.3.6.1.2.1.1.9.1.2.6 = OID: .1.3.6.1.2.1.49 +.1.3.6.1.2.1.1.9.1.2.7 = OID: .1.3.6.1.2.1.4 +.1.3.6.1.2.1.1.9.1.2.8 = OID: .1.3.6.1.2.1.50 +.1.3.6.1.2.1.1.9.1.2.9 = OID: .1.3.6.1.6.3.13.3.1.3 +.1.3.6.1.2.1.1.9.1.2.10 = OID: .1.3.6.1.2.1.92 +.1.3.6.1.2.1.1.9.1.3.1 = STRING: The MIB for Message Processing and Dispatching. +.1.3.6.1.2.1.1.9.1.3.2 = STRING: The management information definitions for the SNMP User-based Security Model. +.1.3.6.1.2.1.1.9.1.3.3 = STRING: The SNMP Management Architecture MIB. +.1.3.6.1.2.1.1.9.1.3.4 = STRING: The MIB module for SNMPv2 entities +.1.3.6.1.2.1.1.9.1.3.5 = STRING: View-based Access Control Model for SNMP. +.1.3.6.1.2.1.1.9.1.3.6 = STRING: The MIB module for managing TCP implementations +.1.3.6.1.2.1.1.9.1.3.7 = STRING: The MIB module for managing IP and ICMP implementations +.1.3.6.1.2.1.1.9.1.3.8 = STRING: The MIB module for managing UDP implementations +.1.3.6.1.2.1.1.9.1.3.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering. +.1.3.6.1.2.1.1.9.1.3.10 = STRING: The MIB module for logging SNMP Notifications. +.1.3.6.1.2.1.1.9.1.4.1 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.2 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.3 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.4 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.5 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.6 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.7 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.8 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.9 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.1.9.1.4.10 = Timeticks: (34) 0:00:00.34 +.1.3.6.1.2.1.2.1.0 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4 +.1.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5 +.1.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: lo +.1.3.6.1.2.1.2.2.1.2.2 = STRING: egiga1 +.1.3.6.1.2.1.2.2.1.2.3 = STRING: egiga0 +.1.3.6.1.2.1.2.2.1.2.4 = STRING: sit0 +.1.3.6.1.2.1.2.2.1.2.5 = STRING: ip6tnl0 +.1.3.6.1.2.1.2.2.1.2.6 = STRING: bond0 +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: softwareLoopback(24) +.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: ethernetCsmacd(6) +.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: ethernetCsmacd(6) +.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: tunnel(131) +.1.3.6.1.2.1.2.2.1.3.5 = INTEGER: tunnel(131) +.1.3.6.1.2.1.2.2.1.3.6 = INTEGER: ethernetCsmacd(6) +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 65536 +.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.4 = INTEGER: 1480 +.1.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1452 +.1.3.6.1.2.1.2.2.1.4.6 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000 +.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.5 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.6 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.6.1 = STRING: +.1.3.6.1.2.1.2.2.1.6.2 = STRING: 0:90:a9:e1:6d:f4 +.1.3.6.1.2.1.2.2.1.6.3 = STRING: 0:90:a9:e1:6d:f4 +.1.3.6.1.2.1.2.2.1.6.4 = STRING: +.1.3.6.1.2.1.2.2.1.6.5 = STRING: +.1.3.6.1.2.1.2.2.1.6.6 = STRING: 0:90:a9:e1:6d:f4 +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.7.4 = INTEGER: down(2) +.1.3.6.1.2.1.2.2.1.7.5 = INTEGER: down(2) +.1.3.6.1.2.1.2.2.1.7.6 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: down(2) +.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: down(2) +.1.3.6.1.2.1.2.2.1.8.5 = INTEGER: down(2) +.1.3.6.1.2.1.2.2.1.8.6 = INTEGER: up(1) +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.4 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.5 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 81761702 +.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 1586053320 +.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.6 = Counter32: 1586053320 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 455712 +.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 13491447 +.1.3.6.1.2.1.2.2.1.11.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.6 = Counter32: 13491447 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 7330 +.1.3.6.1.2.1.2.2.1.13.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.6 = Counter32: 150796 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 81761702 +.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 99788986 +.1.3.6.1.2.1.2.2.1.16.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.6 = Counter32: 99788986 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 455712 +.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 256179 +.1.3.6.1.2.1.2.2.1.17.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.6 = Counter32: 256179 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.3 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.4 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.5 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.6 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.3 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.4 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.5 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.6 = OID: .0.0 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.1.5 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.1.77 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.61.78 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.61.106 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.61.113 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.61.225 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.61.243 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.62.129 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.254.1 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.1.6.1.10.1.254.248 = INTEGER: 6 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.1.5 = Hex-STRING: 00 50 56 BC 22 41 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.1.77 = Hex-STRING: 00 50 56 BC 85 9F +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.61.78 = Hex-STRING: 48 65 EE 13 74 C4 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.61.106 = Hex-STRING: 44 AF 28 06 BB CF +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.61.113 = Hex-STRING: 2C 6D C1 ED FA 5D +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.61.225 = Hex-STRING: 94 E2 3C C7 BB A4 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.61.243 = Hex-STRING: 08 C5 E1 26 82 3B +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.62.129 = Hex-STRING: F4 4E E3 D9 30 37 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.254.1 = Hex-STRING: 5C 5E AB 6D 40 01 +.1.3.6.1.2.1.3.1.1.2.6.1.10.1.254.248 = Hex-STRING: 00 09 0F 09 00 0E +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.1.5 = IpAddress: 10.1.1.5 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.1.77 = IpAddress: 10.1.1.77 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.61.78 = IpAddress: 10.1.61.78 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.61.106 = IpAddress: 10.1.61.106 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.61.113 = IpAddress: 10.1.61.113 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.61.225 = IpAddress: 10.1.61.225 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.61.243 = IpAddress: 10.1.61.243 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.62.129 = IpAddress: 10.1.62.129 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.254.1 = IpAddress: 10.1.254.1 +.1.3.6.1.2.1.3.1.1.3.6.1.10.1.254.248 = IpAddress: 10.1.254.248 +.1.3.6.1.2.1.4.1.0 = INTEGER: notForwarding(2) +.1.3.6.1.2.1.4.2.0 = INTEGER: 64 +.1.3.6.1.2.1.4.3.0 = Counter32: 5357563 +.1.3.6.1.2.1.4.4.0 = Counter32: 0 +.1.3.6.1.2.1.4.5.0 = Counter32: 487 +.1.3.6.1.2.1.4.6.0 = Counter32: 0 +.1.3.6.1.2.1.4.7.0 = Counter32: 6 +.1.3.6.1.2.1.4.8.0 = Counter32: 0 +.1.3.6.1.2.1.4.9.0 = Counter32: 5357070 +.1.3.6.1.2.1.4.10.0 = Counter32: 697309 +.1.3.6.1.2.1.4.11.0 = Counter32: 0 +.1.3.6.1.2.1.4.12.0 = Counter32: 18 +.1.3.6.1.2.1.4.13.0 = INTEGER: 0 seconds +.1.3.6.1.2.1.4.14.0 = Counter32: 0 +.1.3.6.1.2.1.4.15.0 = Counter32: 0 +.1.3.6.1.2.1.4.16.0 = Counter32: 0 +.1.3.6.1.2.1.4.17.0 = Counter32: 1447 +.1.3.6.1.2.1.4.18.0 = Counter32: 0 +.1.3.6.1.2.1.4.19.0 = Counter32: 2894 +.1.3.6.1.2.1.4.20.1.1.10.1.100.6 = IpAddress: 10.1.100.6 +.1.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.4.20.1.2.10.1.100.6 = INTEGER: 6 +.1.3.6.1.2.1.4.20.1.2.127.0.0.1 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.3.10.1.100.6 = IpAddress: 255.255.0.0 +.1.3.6.1.2.1.4.20.1.3.127.0.0.1 = IpAddress: 255.0.0.0 +.1.3.6.1.2.1.4.20.1.4.10.1.100.6 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.4.127.0.0.1 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.1.10.1.0.0 = IpAddress: 10.1.0.0 +.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 6 +.1.3.6.1.2.1.4.21.1.2.10.1.0.0 = INTEGER: 6 +.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.10.1.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 10.1.254.1 +.1.3.6.1.2.1.4.21.1.7.10.1.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4 +.1.3.6.1.2.1.4.21.1.8.10.1.0.0 = INTEGER: 3 +.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.9.10.1.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.11.10.1.0.0 = IpAddress: 255.255.0.0 +.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.21.1.13.10.1.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.22.1.1.6.10.1.1.5 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.1.77 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.61.78 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.61.106 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.61.113 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.61.225 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.61.243 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.62.129 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.254.1 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.1.6.10.1.254.248 = INTEGER: 6 +.1.3.6.1.2.1.4.22.1.2.6.10.1.1.5 = STRING: 0:50:56:bc:22:41 +.1.3.6.1.2.1.4.22.1.2.6.10.1.1.77 = STRING: 0:50:56:bc:85:9f +.1.3.6.1.2.1.4.22.1.2.6.10.1.61.78 = STRING: 48:65:ee:13:74:c4 +.1.3.6.1.2.1.4.22.1.2.6.10.1.61.106 = STRING: 44:af:28:6:bb:cf +.1.3.6.1.2.1.4.22.1.2.6.10.1.61.113 = STRING: 2c:6d:c1:ed:fa:5d +.1.3.6.1.2.1.4.22.1.2.6.10.1.61.225 = STRING: 94:e2:3c:c7:bb:a4 +.1.3.6.1.2.1.4.22.1.2.6.10.1.61.243 = STRING: 8:c5:e1:26:82:3b +.1.3.6.1.2.1.4.22.1.2.6.10.1.62.129 = STRING: f4:4e:e3:d9:30:37 +.1.3.6.1.2.1.4.22.1.2.6.10.1.254.1 = STRING: 5c:5e:ab:6d:40:1 +.1.3.6.1.2.1.4.22.1.2.6.10.1.254.248 = STRING: 0:9:f:9:0:e +.1.3.6.1.2.1.4.22.1.3.6.10.1.1.5 = IpAddress: 10.1.1.5 +.1.3.6.1.2.1.4.22.1.3.6.10.1.1.77 = IpAddress: 10.1.1.77 +.1.3.6.1.2.1.4.22.1.3.6.10.1.61.78 = IpAddress: 10.1.61.78 +.1.3.6.1.2.1.4.22.1.3.6.10.1.61.106 = IpAddress: 10.1.61.106 +.1.3.6.1.2.1.4.22.1.3.6.10.1.61.113 = IpAddress: 10.1.61.113 +.1.3.6.1.2.1.4.22.1.3.6.10.1.61.225 = IpAddress: 10.1.61.225 +.1.3.6.1.2.1.4.22.1.3.6.10.1.61.243 = IpAddress: 10.1.61.243 +.1.3.6.1.2.1.4.22.1.3.6.10.1.62.129 = IpAddress: 10.1.62.129 +.1.3.6.1.2.1.4.22.1.3.6.10.1.254.1 = IpAddress: 10.1.254.1 +.1.3.6.1.2.1.4.22.1.3.6.10.1.254.248 = IpAddress: 10.1.254.248 +.1.3.6.1.2.1.4.22.1.4.6.10.1.1.5 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.1.77 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.61.78 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.61.106 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.61.113 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.61.225 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.61.243 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.62.129 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.254.1 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.22.1.4.6.10.1.254.248 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.23.0 = Counter32: 0 +.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.10.1.254.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.1.10.1.0.0.255.255.0.0.0.0.0.0.0 = IpAddress: 10.1.0.0 +.1.3.6.1.2.1.4.24.4.1.2.0.0.0.0.0.0.0.0.0.10.1.254.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.2.10.1.0.0.255.255.0.0.0.0.0.0.0 = IpAddress: 255.255.0.0 +.1.3.6.1.2.1.4.24.4.1.3.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.3.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.4.0.0.0.0.0.0.0.0.0.10.1.254.1 = IpAddress: 10.1.254.1 +.1.3.6.1.2.1.4.24.4.1.4.10.1.0.0.255.255.0.0.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.5.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: 6 +.1.3.6.1.2.1.4.24.4.1.5.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: 6 +.1.3.6.1.2.1.4.24.4.1.6.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: remote(4) +.1.3.6.1.2.1.4.24.4.1.6.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: local(3) +.1.3.6.1.2.1.4.24.4.1.7.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: local(2) +.1.3.6.1.2.1.4.24.4.1.7.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: local(2) +.1.3.6.1.2.1.4.24.4.1.9.0.0.0.0.0.0.0.0.0.10.1.254.1 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.9.10.1.0.0.255.255.0.0.0.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.10.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.10.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.11.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.11.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.12.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.12.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.10.1.254.1 = INTEGER: active(1) +.1.3.6.1.2.1.4.24.4.1.16.10.1.0.0.255.255.0.0.0.0.0.0.0 = INTEGER: active(1) +.1.3.6.1.2.1.4.24.6.0 = Gauge32: 2 +.1.3.6.1.2.1.4.24.7.1.7.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: 6 +.1.3.6.1.2.1.4.24.7.1.7.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: 6 +.1.3.6.1.2.1.4.24.7.1.8.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: remote(4) +.1.3.6.1.2.1.4.24.7.1.8.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: local(3) +.1.3.6.1.2.1.4.24.7.1.9.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: local(2) +.1.3.6.1.2.1.4.24.7.1.9.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: local(2) +.1.3.6.1.2.1.4.24.7.1.10.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = Gauge32: 0 +.1.3.6.1.2.1.4.24.7.1.10.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = Gauge32: 0 +.1.3.6.1.2.1.4.24.7.1.11.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = Gauge32: 0 +.1.3.6.1.2.1.4.24.7.1.11.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = Gauge32: 0 +.1.3.6.1.2.1.4.24.7.1.12.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.7.1.12.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.24.7.1.13.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.13.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.14.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.14.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.15.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.15.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.16.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.16.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.24.7.1.17.1.4.0.0.0.0.0.2.0.0.1.4.10.1.254.1 = INTEGER: active(1) +.1.3.6.1.2.1.4.24.7.1.17.1.4.10.1.0.0.16.3.0.0.6.1.4.0.0.0.0 = INTEGER: active(1) +.1.3.6.1.2.1.4.25.0 = INTEGER: notForwarding(2) +.1.3.6.1.2.1.4.26.0 = INTEGER: 64 +.1.3.6.1.2.1.4.31.1.1.3.1 = Counter32: 5356581 +.1.3.6.1.2.1.4.31.1.1.3.2 = Counter32: 17010 +.1.3.6.1.2.1.4.31.1.1.4.1 = Counter64: 5356581 +.1.3.6.1.2.1.4.31.1.1.4.2 = Counter64: 17010 +.1.3.6.1.2.1.4.31.1.1.5.1 = Counter32: 1147286919 +.1.3.6.1.2.1.4.31.1.1.5.2 = Counter32: 1246508 +.1.3.6.1.2.1.4.31.1.1.6.1 = Counter64: 1147286919 +.1.3.6.1.2.1.4.31.1.1.6.2 = Counter64: 1246508 +.1.3.6.1.2.1.4.31.1.1.7.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.7.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.8.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.8.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.9.1 = Counter32: 487 +.1.3.6.1.2.1.4.31.1.1.9.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.10.1 = Counter32: 6 +.1.3.6.1.2.1.4.31.1.1.10.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.11.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.11.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.12.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.13.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.16.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.16.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.17.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.17.2 = Counter32: 17010 +.1.3.6.1.2.1.4.31.1.1.18.1 = Counter32: 5356088 +.1.3.6.1.2.1.4.31.1.1.18.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.19.1 = Counter64: 5356088 +.1.3.6.1.2.1.4.31.1.1.19.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.20.1 = Counter32: 697037 +.1.3.6.1.2.1.4.31.1.1.20.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.21.1 = Counter64: 697037 +.1.3.6.1.2.1.4.31.1.1.21.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.22.1 = Counter32: 18 +.1.3.6.1.2.1.4.31.1.1.22.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.23.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.23.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.24.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.24.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.25.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.25.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.26.1 = Counter32: 1446 +.1.3.6.1.2.1.4.31.1.1.26.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.27.1 = Counter32: 1446 +.1.3.6.1.2.1.4.31.1.1.27.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.28.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.28.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.29.1 = Counter32: 2892 +.1.3.6.1.2.1.4.31.1.1.29.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.30.1 = Counter32: 698465 +.1.3.6.1.2.1.4.31.1.1.30.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.31.1 = Counter64: 698465 +.1.3.6.1.2.1.4.31.1.1.31.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.32.1 = Counter32: 177546388 +.1.3.6.1.2.1.4.31.1.1.32.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.33.1 = Counter64: 177546388 +.1.3.6.1.2.1.4.31.1.1.33.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.34.1 = Counter32: 1728435 +.1.3.6.1.2.1.4.31.1.1.34.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.35.1 = Counter64: 1728435 +.1.3.6.1.2.1.4.31.1.1.35.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.36.1 = Counter32: 613685926 +.1.3.6.1.2.1.4.31.1.1.36.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.37.1 = Counter64: 613685926 +.1.3.6.1.2.1.4.31.1.1.37.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.38.1 = Counter32: 175967 +.1.3.6.1.2.1.4.31.1.1.38.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.39.1 = Counter64: 175967 +.1.3.6.1.2.1.4.31.1.1.39.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.40.1 = Counter32: 86764914 +.1.3.6.1.2.1.4.31.1.1.40.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.1.1.41.1 = Counter64: 86764914 +.1.3.6.1.2.1.4.31.1.1.41.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.1.1.42.1 = Counter32: 3114609 +.1.3.6.1.2.1.4.31.1.1.43.1 = Counter64: 3114609 +.1.3.6.1.2.1.4.31.1.1.44.1 = Counter32: 7901 +.1.3.6.1.2.1.4.31.1.1.45.1 = Counter64: 7901 +.1.3.6.1.2.1.4.31.1.1.46.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.1.1.46.2 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.1.1.47.1 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.1.1.47.2 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.2.0 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.3.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.3.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.3.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.3.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.3.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.3.2.6 = Counter32: 17010 +.1.3.6.1.2.1.4.31.3.1.4.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.4.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.4.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.4.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.4.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.4.2.6 = Counter64: 17010 +.1.3.6.1.2.1.4.31.3.1.5.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.5.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.5.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.5.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.5.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.5.2.6 = Counter32: 1246508 +.1.3.6.1.2.1.4.31.3.1.6.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.6.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.6.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.6.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.6.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.6.2.6 = Counter64: 1246508 +.1.3.6.1.2.1.4.31.3.1.7.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.7.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.7.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.7.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.7.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.7.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.8.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.9.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.10.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.11.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.12.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.13.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.14.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.15.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.16.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.17.2.6 = Counter32: 17010 +.1.3.6.1.2.1.4.31.3.1.18.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.18.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.18.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.18.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.18.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.18.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.19.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.20.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.21.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.23.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.24.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.25.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.26.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.27.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.28.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.29.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.30.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.31.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.32.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.33.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.34.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.35.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.36.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.37.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.38.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.39.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.1 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.2 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.3 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.4 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.5 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.40.2.6 = Counter32: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.1 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.2 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.3 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.4 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.5 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.41.2.6 = Counter64: 0 +.1.3.6.1.2.1.4.31.3.1.46.2.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.46.2.2 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.46.2.3 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.46.2.4 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.46.2.5 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.46.2.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.31.3.1.47.2.1 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.3.1.47.2.2 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.3.1.47.2.3 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.3.1.47.2.4 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.3.1.47.2.5 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.31.3.1.47.2.6 = Gauge32: 60000 milli-seconds +.1.3.6.1.2.1.4.32.1.5.1.1.4.127.0.0.0.8 = INTEGER: manual(2) +.1.3.6.1.2.1.4.32.1.5.6.1.4.10.1.0.0.16 = INTEGER: manual(2) +.1.3.6.1.2.1.4.32.1.6.1.1.4.127.0.0.0.8 = INTEGER: true(1) +.1.3.6.1.2.1.4.32.1.6.6.1.4.10.1.0.0.16 = INTEGER: true(1) +.1.3.6.1.2.1.4.32.1.7.1.1.4.127.0.0.0.8 = INTEGER: false(2) +.1.3.6.1.2.1.4.32.1.7.6.1.4.10.1.0.0.16 = INTEGER: false(2) +.1.3.6.1.2.1.4.32.1.8.1.1.4.127.0.0.0.8 = Gauge32: 4294967295 seconds +.1.3.6.1.2.1.4.32.1.8.6.1.4.10.1.0.0.16 = Gauge32: 4294967295 seconds +.1.3.6.1.2.1.4.32.1.9.1.1.4.127.0.0.0.8 = Gauge32: 4294967295 seconds +.1.3.6.1.2.1.4.32.1.9.6.1.4.10.1.0.0.16 = Gauge32: 4294967295 seconds +.1.3.6.1.2.1.4.33.0 = INTEGER: 1912258139 +.1.3.6.1.2.1.4.34.1.3.1.4.10.1.100.6 = INTEGER: 6 +.1.3.6.1.2.1.4.34.1.3.1.4.10.1.255.255 = INTEGER: 6 +.1.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1 = INTEGER: 1 +.1.3.6.1.2.1.4.34.1.4.1.4.10.1.100.6 = INTEGER: unicast(1) +.1.3.6.1.2.1.4.34.1.4.1.4.10.1.255.255 = INTEGER: broadcast(3) +.1.3.6.1.2.1.4.34.1.4.1.4.127.0.0.1 = INTEGER: unicast(1) +.1.3.6.1.2.1.4.34.1.5.1.4.10.1.100.6 = OID: .1.3.6.1.2.1.4.32.1.5.6.1.4.10.1.0.0.16 +.1.3.6.1.2.1.4.34.1.5.1.4.10.1.255.255 = OID: .1.3.6.1.2.1.4.32.1.5.6.1.4.10.1.0.0.16 +.1.3.6.1.2.1.4.34.1.5.1.4.127.0.0.1 = OID: .1.3.6.1.2.1.4.32.1.5.1.1.4.127.0.0.0.8 +.1.3.6.1.2.1.4.34.1.6.1.4.10.1.100.6 = INTEGER: manual(2) +.1.3.6.1.2.1.4.34.1.6.1.4.10.1.255.255 = INTEGER: manual(2) +.1.3.6.1.2.1.4.34.1.6.1.4.127.0.0.1 = INTEGER: manual(2) +.1.3.6.1.2.1.4.34.1.7.1.4.10.1.100.6 = INTEGER: preferred(1) +.1.3.6.1.2.1.4.34.1.7.1.4.10.1.255.255 = INTEGER: preferred(1) +.1.3.6.1.2.1.4.34.1.7.1.4.127.0.0.1 = INTEGER: preferred(1) +.1.3.6.1.2.1.4.34.1.8.1.4.10.1.100.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.8.1.4.10.1.255.255 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.8.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.9.1.4.10.1.100.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.9.1.4.10.1.255.255 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.9.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.4.34.1.10.1.4.10.1.100.6 = INTEGER: active(1) +.1.3.6.1.2.1.4.34.1.10.1.4.10.1.255.255 = INTEGER: active(1) +.1.3.6.1.2.1.4.34.1.10.1.4.127.0.0.1 = INTEGER: active(1) +.1.3.6.1.2.1.4.34.1.11.1.4.10.1.100.6 = INTEGER: volatile(2) +.1.3.6.1.2.1.4.34.1.11.1.4.10.1.255.255 = INTEGER: volatile(2) +.1.3.6.1.2.1.4.34.1.11.1.4.127.0.0.1 = INTEGER: volatile(2) +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.1.5 = STRING: 0:50:56:bc:22:41 +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.1.77 = STRING: 0:50:56:bc:85:9f +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.61.78 = STRING: 48:65:ee:13:74:c4 +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.61.106 = STRING: 44:af:28:6:bb:cf +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.61.113 = STRING: 2c:6d:c1:ed:fa:5d +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.61.225 = STRING: 94:e2:3c:c7:bb:a4 +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.61.243 = STRING: 8:c5:e1:26:82:3b +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.62.129 = STRING: f4:4e:e3:d9:30:37 +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.254.1 = STRING: 5c:5e:ab:6d:40:1 +.1.3.6.1.2.1.4.35.1.4.6.1.4.10.1.254.248 = STRING: 0:9:f:9:0:e +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.1.5 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.1.77 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.61.78 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.61.106 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.61.113 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.61.225 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.61.243 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.62.129 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.254.1 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.5.6.1.4.10.1.254.248 = Timeticks: (43943563) 5 days, 2:03:55.63 +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.1.5 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.1.77 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.61.78 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.61.106 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.61.113 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.61.225 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.61.243 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.62.129 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.254.1 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.6.6.1.4.10.1.254.248 = INTEGER: dynamic(3) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.1.5 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.1.77 = INTEGER: reachable(1) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.61.78 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.61.106 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.61.113 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.61.225 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.61.243 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.62.129 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.254.1 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.7.6.1.4.10.1.254.248 = INTEGER: stale(2) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.1.5 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.1.77 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.61.78 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.61.106 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.61.113 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.61.225 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.61.243 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.62.129 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.254.1 = INTEGER: active(1) +.1.3.6.1.2.1.4.35.1.8.6.1.4.10.1.254.248 = INTEGER: active(1) +.1.3.6.1.2.1.4.37.1.4.1.4.10.1.254.1.6 = Gauge32: 4294967295 seconds +.1.3.6.1.2.1.4.37.1.5.1.4.10.1.254.1.6 = INTEGER: medium(0) +.1.3.6.1.2.1.5.1.0 = Counter32: 43992 +.1.3.6.1.2.1.5.2.0 = Counter32: 1 +.1.3.6.1.2.1.5.3.0 = Counter32: 0 +.1.3.6.1.2.1.5.4.0 = Counter32: 10 +.1.3.6.1.2.1.5.5.0 = Counter32: 0 +.1.3.6.1.2.1.5.6.0 = Counter32: 0 +.1.3.6.1.2.1.5.7.0 = Counter32: 0 +.1.3.6.1.2.1.5.8.0 = Counter32: 25 +.1.3.6.1.2.1.5.9.0 = Counter32: 43957 +.1.3.6.1.2.1.5.10.0 = Counter32: 0 +.1.3.6.1.2.1.5.11.0 = Counter32: 0 +.1.3.6.1.2.1.5.12.0 = Counter32: 0 +.1.3.6.1.2.1.5.13.0 = Counter32: 0 +.1.3.6.1.2.1.5.14.0 = Counter32: 0 +.1.3.6.1.2.1.5.15.0 = Counter32: 43960 +.1.3.6.1.2.1.5.16.0 = Counter32: 0 +.1.3.6.1.2.1.5.17.0 = Counter32: 3 +.1.3.6.1.2.1.5.18.0 = Counter32: 0 +.1.3.6.1.2.1.5.19.0 = Counter32: 0 +.1.3.6.1.2.1.5.20.0 = Counter32: 0 +.1.3.6.1.2.1.5.21.0 = Counter32: 0 +.1.3.6.1.2.1.5.22.0 = Counter32: 0 +.1.3.6.1.2.1.5.23.0 = Counter32: 43957 +.1.3.6.1.2.1.5.24.0 = Counter32: 0 +.1.3.6.1.2.1.5.25.0 = Counter32: 0 +.1.3.6.1.2.1.5.26.0 = Counter32: 0 +.1.3.6.1.2.1.5.29.1.2.1 = Counter32: 43992 +.1.3.6.1.2.1.5.29.1.2.2 = Counter32: 0 +.1.3.6.1.2.1.5.29.1.3.1 = Counter32: 1 +.1.3.6.1.2.1.5.29.1.3.2 = Counter32: 0 +.1.3.6.1.2.1.5.29.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.5.29.1.4.2 = Counter32: 0 +.1.3.6.1.2.1.5.29.1.5.1 = Counter32: 43960 +.1.3.6.1.2.1.5.29.1.5.2 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.1.3 = Counter32: 10 +.1.3.6.1.2.1.5.30.1.3.1.5 = Counter32: 25 +.1.3.6.1.2.1.5.30.1.3.1.8 = Counter32: 43957 +.1.3.6.1.2.1.5.30.1.3.2.1 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.2 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.3 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.4 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.128 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.129 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.130 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.131 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.132 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.133 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.134 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.135 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.136 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.3.2.137 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.1.0 = Counter32: 43957 +.1.3.6.1.2.1.5.30.1.4.1.3 = Counter32: 3 +.1.3.6.1.2.1.5.30.1.4.2.1 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.2 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.3 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.4 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.128 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.129 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.131 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.132 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.133 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.135 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.136 = Counter32: 0 +.1.3.6.1.2.1.5.30.1.4.2.137 = Counter32: 0 +.1.3.6.1.2.1.6.1.0 = INTEGER: other(1) +.1.3.6.1.2.1.6.2.0 = INTEGER: 200 milliseconds +.1.3.6.1.2.1.6.3.0 = INTEGER: 120000 milliseconds +.1.3.6.1.2.1.6.4.0 = INTEGER: -1 +.1.3.6.1.2.1.6.5.0 = Counter32: 293 +.1.3.6.1.2.1.6.6.0 = Counter32: 187 +.1.3.6.1.2.1.6.7.0 = Counter32: 17 +.1.3.6.1.2.1.6.8.0 = Counter32: 4 +.1.3.6.1.2.1.6.9.0 = Gauge32: 0 +.1.3.6.1.2.1.6.10.0 = Counter32: 4257 +.1.3.6.1.2.1.6.11.0 = Counter32: 4400 +.1.3.6.1.2.1.6.12.0 = Counter32: 0 +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.21.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.22.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.111.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.139.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.445.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.2049.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.33077.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.43217.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.47297.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.50597.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.0.0.0.0.58549.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.10.1.100.6.5357.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.10.1.100.6.49152.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.127.0.0.1.2812.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.1.127.0.0.1.8000.0.0.0.0.0 = INTEGER: listen(2) +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.21.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.22.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.111.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.139.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.445.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.2049.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.33077.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.43217.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.47297.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.50597.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.0.0.0.0.58549.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.2.10.1.100.6.5357.0.0.0.0.0 = IpAddress: 10.1.100.6 +.1.3.6.1.2.1.6.13.1.2.10.1.100.6.49152.0.0.0.0.0 = IpAddress: 10.1.100.6 +.1.3.6.1.2.1.6.13.1.2.127.0.0.1.2812.0.0.0.0.0 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.6.13.1.2.127.0.0.1.8000.0.0.0.0.0 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.21.0.0.0.0.0 = INTEGER: 21 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.22.0.0.0.0.0 = INTEGER: 22 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.111.0.0.0.0.0 = INTEGER: 111 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.139.0.0.0.0.0 = INTEGER: 139 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.445.0.0.0.0.0 = INTEGER: 445 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.2049.0.0.0.0.0 = INTEGER: 2049 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.33077.0.0.0.0.0 = INTEGER: 33077 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.43217.0.0.0.0.0 = INTEGER: 43217 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.47297.0.0.0.0.0 = INTEGER: 47297 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.50597.0.0.0.0.0 = INTEGER: 50597 +.1.3.6.1.2.1.6.13.1.3.0.0.0.0.58549.0.0.0.0.0 = INTEGER: 58549 +.1.3.6.1.2.1.6.13.1.3.10.1.100.6.5357.0.0.0.0.0 = INTEGER: 5357 +.1.3.6.1.2.1.6.13.1.3.10.1.100.6.49152.0.0.0.0.0 = INTEGER: 49152 +.1.3.6.1.2.1.6.13.1.3.127.0.0.1.2812.0.0.0.0.0 = INTEGER: 2812 +.1.3.6.1.2.1.6.13.1.3.127.0.0.1.8000.0.0.0.0.0 = INTEGER: 8000 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.21.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.22.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.111.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.139.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.445.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.2049.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.33077.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.43217.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.47297.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.50597.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.0.0.0.0.58549.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.10.1.100.6.5357.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.10.1.100.6.49152.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.127.0.0.1.2812.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.4.127.0.0.1.8000.0.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.21.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.22.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.111.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.139.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.445.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.2049.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.33077.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.43217.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.47297.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.50597.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.0.0.0.0.58549.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.10.1.100.6.5357.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.10.1.100.6.49152.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.127.0.0.1.2812.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.13.1.5.127.0.0.1.8000.0.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.6.14.0 = Counter32: 0 +.1.3.6.1.2.1.6.15.0 = Counter32: 40 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.21 = Gauge32: 8190 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.22 = Gauge32: 4688 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.111 = Gauge32: 8278 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.139 = Gauge32: 8163 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.445 = Gauge32: 8163 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.2049 = Gauge32: 0 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.33077 = Gauge32: 8291 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.43217 = Gauge32: 0 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.47297 = Gauge32: 8291 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.50597 = Gauge32: 8291 +.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.58549 = Gauge32: 8293 +.1.3.6.1.2.1.6.20.1.4.1.4.10.1.100.6.5357 = Gauge32: 4742 +.1.3.6.1.2.1.6.20.1.4.1.4.10.1.100.6.49152 = Gauge32: 8065 +.1.3.6.1.2.1.6.20.1.4.1.4.127.0.0.1.2812 = Gauge32: 5390 +.1.3.6.1.2.1.6.20.1.4.1.4.127.0.0.1.8000 = Gauge32: 5327 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.21 = Gauge32: 8190 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.22 = Gauge32: 4688 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.80 = Gauge32: 5240 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.111 = Gauge32: 8278 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.139 = Gauge32: 8163 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.445 = Gauge32: 8163 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4430 = Gauge32: 8484 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8001 = Gauge32: 8484 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8002 = Gauge32: 9096 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8003 = Gauge32: 8484 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8543 = Gauge32: 5240 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.39665 = Gauge32: 0 +.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.49152 = Gauge32: 8065 +.1.3.6.1.2.1.7.1.0 = Counter32: 2773652 +.1.3.6.1.2.1.7.2.0 = Counter32: 2 +.1.3.6.1.2.1.7.3.0 = Counter32: 1 +.1.3.6.1.2.1.7.4.0 = Counter32: 649687 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.111 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.137 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.138 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.161 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.1900 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.2049 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.5353 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.24629 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.35207 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.35421 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.37415 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.40261 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.41812 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.54290 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.0.0.0.0.59108 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.7.5.1.1.10.1.100.6.137 = IpAddress: 10.1.100.6 +.1.3.6.1.2.1.7.5.1.1.10.1.100.6.138 = IpAddress: 10.1.100.6 +.1.3.6.1.2.1.7.5.1.1.10.1.255.255.137 = IpAddress: 10.1.255.255 +.1.3.6.1.2.1.7.5.1.1.10.1.255.255.138 = IpAddress: 10.1.255.255 +.1.3.6.1.2.1.7.5.1.1.127.0.0.1.837 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.7.5.1.1.127.0.0.1.30958 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.7.5.1.1.127.0.0.1.59818 = IpAddress: 127.0.0.1 +.1.3.6.1.2.1.7.5.1.1.239.255.255.250.3702 = IpAddress: 239.255.255.250 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.111 = INTEGER: 111 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.137 = INTEGER: 137 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.138 = INTEGER: 138 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.161 = INTEGER: 161 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.1900 = INTEGER: 1900 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.2049 = INTEGER: 2049 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.5353 = INTEGER: 5353 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.24629 = INTEGER: 24629 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.35207 = INTEGER: 35207 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.35421 = INTEGER: 35421 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.37415 = INTEGER: 37415 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.40261 = INTEGER: 40261 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.41812 = INTEGER: 41812 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.54290 = INTEGER: 54290 +.1.3.6.1.2.1.7.5.1.2.0.0.0.0.59108 = INTEGER: 59108 +.1.3.6.1.2.1.7.5.1.2.10.1.100.6.137 = INTEGER: 137 +.1.3.6.1.2.1.7.5.1.2.10.1.100.6.138 = INTEGER: 138 +.1.3.6.1.2.1.7.5.1.2.10.1.255.255.137 = INTEGER: 137 +.1.3.6.1.2.1.7.5.1.2.10.1.255.255.138 = INTEGER: 138 +.1.3.6.1.2.1.7.5.1.2.127.0.0.1.837 = INTEGER: 837 +.1.3.6.1.2.1.7.5.1.2.127.0.0.1.30958 = INTEGER: 30958 +.1.3.6.1.2.1.7.5.1.2.127.0.0.1.59818 = INTEGER: 59818 +.1.3.6.1.2.1.7.5.1.2.239.255.255.250.3702 = INTEGER: 3702 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.111.1.4.0.0.0.0.0.24588 = Gauge32: 8278 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.137.1.4.0.0.0.0.0.14907 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.138.1.4.0.0.0.0.0.14908 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.161.1.4.0.0.0.0.0.23532 = Gauge32: 8255 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.1900.1.4.0.0.0.0.0.23890 = Gauge32: 8065 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.2049.1.4.0.0.0.0.0.24596 = Gauge32: 0 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.5353.1.4.0.0.0.0.0.13969 = Gauge32: 4388 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.24629.1.4.0.0.0.0.0.12404 = Gauge32: 3816 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.35207.1.4.0.0.0.0.0.24604 = Gauge32: 0 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.35421.1.4.0.0.0.0.0.16917 = Gauge32: 4742 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.37415.1.4.0.0.0.0.0.24630 = Gauge32: 8291 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.40261.1.4.0.0.0.0.0.13970 = Gauge32: 4388 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.41812.1.4.0.0.0.0.0.24620 = Gauge32: 8291 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.54290.1.4.0.0.0.0.0.24625 = Gauge32: 8291 +.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.59108.1.4.0.0.0.0.0.25603 = Gauge32: 8293 +.1.3.6.1.2.1.7.7.1.8.1.4.10.1.100.6.137.1.4.0.0.0.0.0.14916 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.10.1.100.6.138.1.4.0.0.0.0.0.14918 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.10.1.255.255.137.1.4.0.0.0.0.0.14917 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.10.1.255.255.138.1.4.0.0.0.0.0.14919 = Gauge32: 4717 +.1.3.6.1.2.1.7.7.1.8.1.4.127.0.0.1.837.1.4.0.0.0.0.0.24575 = Gauge32: 8293 +.1.3.6.1.2.1.7.7.1.8.1.4.127.0.0.1.30958.1.4.0.0.0.0.0.25438 = Gauge32: 8347 +.1.3.6.1.2.1.7.7.1.8.1.4.127.0.0.1.59818.1.4.0.0.0.0.0.23888 = Gauge32: 8065 +.1.3.6.1.2.1.7.7.1.8.1.4.239.255.255.250.3702.1.4.0.0.0.0.0.16916 = Gauge32: 4742 +.1.3.6.1.2.1.7.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.111.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.24590 = Gauge32: 8278 +.1.3.6.1.2.1.7.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.161.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.23533 = Gauge32: 8255 +.1.3.6.1.2.1.7.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.40929.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.24606 = Gauge32: 0 +.1.3.6.1.2.1.11.1.0 = Counter32: 13003 +.1.3.6.1.2.1.11.2.0 = Counter32: 12737 +.1.3.6.1.2.1.11.3.0 = Counter32: 0 +.1.3.6.1.2.1.11.4.0 = Counter32: 266 +.1.3.6.1.2.1.11.5.0 = Counter32: 0 +.1.3.6.1.2.1.11.6.0 = Counter32: 0 +.1.3.6.1.2.1.11.8.0 = Counter32: 0 +.1.3.6.1.2.1.11.9.0 = Counter32: 0 +.1.3.6.1.2.1.11.10.0 = Counter32: 0 +.1.3.6.1.2.1.11.11.0 = Counter32: 0 +.1.3.6.1.2.1.11.12.0 = Counter32: 0 +.1.3.6.1.2.1.11.13.0 = Counter32: 93935 +.1.3.6.1.2.1.11.14.0 = Counter32: 0 +.1.3.6.1.2.1.11.15.0 = Counter32: 10256 +.1.3.6.1.2.1.11.16.0 = Counter32: 1029 +.1.3.6.1.2.1.11.17.0 = Counter32: 0 +.1.3.6.1.2.1.11.18.0 = Counter32: 0 +.1.3.6.1.2.1.11.19.0 = Counter32: 0 +.1.3.6.1.2.1.11.20.0 = Counter32: 0 +.1.3.6.1.2.1.11.21.0 = Counter32: 0 +.1.3.6.1.2.1.11.22.0 = Counter32: 0 +.1.3.6.1.2.1.11.24.0 = Counter32: 19 +.1.3.6.1.2.1.11.25.0 = Counter32: 0 +.1.3.6.1.2.1.11.26.0 = Counter32: 0 +.1.3.6.1.2.1.11.27.0 = Counter32: 0 +.1.3.6.1.2.1.11.28.0 = Counter32: 12761 +.1.3.6.1.2.1.11.29.0 = Counter32: 0 +.1.3.6.1.2.1.11.30.0 = INTEGER: disabled(2) +.1.3.6.1.2.1.11.31.0 = Counter32: 0 +.1.3.6.1.2.1.11.32.0 = Counter32: 0 +.1.3.6.1.2.1.25.1.1.0 = Timeticks: (43969835) 5 days, 2:08:18.35 +.1.3.6.1.2.1.25.1.2.0 = STRING: 2023-9-13,16:32:51.0,+2:0 +.1.3.6.1.2.1.25.1.3.0 = INTEGER: 393216 +.1.3.6.1.2.1.25.1.4.0 = STRING: "root=/dev/ram console=ttyS0,115200 " +.1.3.6.1.2.1.25.1.5.0 = Gauge32: 0 +.1.3.6.1.2.1.25.1.6.0 = Gauge32: 142 +.1.3.6.1.2.1.25.1.7.0 = INTEGER: 0 +.1.3.6.1.2.1.25.2.2.0 = INTEGER: 2084096 KBytes +.1.3.6.1.2.1.25.2.3.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.2.3.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.25.2.3.1.1.6 = INTEGER: 6 +.1.3.6.1.2.1.25.2.3.1.1.7 = INTEGER: 7 +.1.3.6.1.2.1.25.2.3.1.1.8 = INTEGER: 8 +.1.3.6.1.2.1.25.2.3.1.1.10 = INTEGER: 10 +.1.3.6.1.2.1.25.2.3.1.1.31 = INTEGER: 31 +.1.3.6.1.2.1.25.2.3.1.1.32 = INTEGER: 32 +.1.3.6.1.2.1.25.2.3.1.1.40 = INTEGER: 40 +.1.3.6.1.2.1.25.2.3.1.1.41 = INTEGER: 41 +.1.3.6.1.2.1.25.2.3.1.1.42 = INTEGER: 42 +.1.3.6.1.2.1.25.2.3.1.1.43 = INTEGER: 43 +.1.3.6.1.2.1.25.2.3.1.1.44 = INTEGER: 44 +.1.3.6.1.2.1.25.2.3.1.1.45 = INTEGER: 45 +.1.3.6.1.2.1.25.2.3.1.1.46 = INTEGER: 46 +.1.3.6.1.2.1.25.2.3.1.1.47 = INTEGER: 47 +.1.3.6.1.2.1.25.2.3.1.1.48 = INTEGER: 48 +.1.3.6.1.2.1.25.2.3.1.2.1 = OID: .1.3.6.1.2.1.25.2.1.2 +.1.3.6.1.2.1.25.2.3.1.2.3 = OID: .1.3.6.1.2.1.25.2.1.3 +.1.3.6.1.2.1.25.2.3.1.2.6 = OID: .1.3.6.1.2.1.25.2.1.1 +.1.3.6.1.2.1.25.2.3.1.2.7 = OID: .1.3.6.1.2.1.25.2.1.1 +.1.3.6.1.2.1.25.2.3.1.2.8 = OID: .1.3.6.1.2.1.25.2.1.1 +.1.3.6.1.2.1.25.2.3.1.2.10 = OID: .1.3.6.1.2.1.25.2.1.3 +.1.3.6.1.2.1.25.2.3.1.2.31 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.32 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.40 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.41 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.42 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.43 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.44 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.45 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.46 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.47 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.2.48 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.3.1 = STRING: Physical memory +.1.3.6.1.2.1.25.2.3.1.3.3 = STRING: Virtual memory +.1.3.6.1.2.1.25.2.3.1.3.6 = STRING: Memory buffers +.1.3.6.1.2.1.25.2.3.1.3.7 = STRING: Cached memory +.1.3.6.1.2.1.25.2.3.1.3.8 = STRING: Shared memory +.1.3.6.1.2.1.25.2.3.1.3.10 = STRING: Swap space +.1.3.6.1.2.1.25.2.3.1.3.31 = STRING: / +.1.3.6.1.2.1.25.2.3.1.3.32 = STRING: /dev +.1.3.6.1.2.1.25.2.3.1.3.40 = STRING: /mnt +.1.3.6.1.2.1.25.2.3.1.3.41 = STRING: /var/log +.1.3.6.1.2.1.25.2.3.1.3.42 = STRING: /tmp +.1.3.6.1.2.1.25.2.3.1.3.43 = STRING: /usr/local/upload +.1.3.6.1.2.1.25.2.3.1.3.44 = STRING: /mnt/HD_c4 +.1.3.6.1.2.1.25.2.3.1.3.45 = STRING: /mnt/HD_d4 +.1.3.6.1.2.1.25.2.3.1.3.46 = STRING: /mnt/HD_b4 +.1.3.6.1.2.1.25.2.3.1.3.47 = STRING: /mnt/HD_a4 +.1.3.6.1.2.1.25.2.3.1.3.48 = STRING: /mnt/HD/HD_a2 +.1.3.6.1.2.1.25.2.3.1.4.1 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.3 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.6 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.7 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.8 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.10 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.31 = INTEGER: 1024 Bytes +.1.3.6.1.2.1.25.2.3.1.4.32 = INTEGER: 32768 Bytes +.1.3.6.1.2.1.25.2.3.1.4.40 = INTEGER: 32768 Bytes +.1.3.6.1.2.1.25.2.3.1.4.41 = INTEGER: 32768 Bytes +.1.3.6.1.2.1.25.2.3.1.4.42 = INTEGER: 32768 Bytes +.1.3.6.1.2.1.25.2.3.1.4.43 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.4.44 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.4.45 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.4.46 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.4.47 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.4.48 = INTEGER: 4096 Bytes +.1.3.6.1.2.1.25.2.3.1.5.1 = INTEGER: 2084096 +.1.3.6.1.2.1.25.2.3.1.5.3 = INTEGER: 3613888 +.1.3.6.1.2.1.25.2.3.1.5.6 = INTEGER: 2084096 +.1.3.6.1.2.1.25.2.3.1.5.7 = INTEGER: 467584 +.1.3.6.1.2.1.25.2.3.1.5.8 = INTEGER: 18112 +.1.3.6.1.2.1.25.2.3.1.5.10 = INTEGER: 1529792 +.1.3.6.1.2.1.25.2.3.1.5.31 = INTEGER: 55529 +.1.3.6.1.2.1.25.2.3.1.5.32 = INTEGER: 32564 +.1.3.6.1.2.1.25.2.3.1.5.40 = INTEGER: 32 +.1.3.6.1.2.1.25.2.3.1.5.41 = INTEGER: 1280 +.1.3.6.1.2.1.25.2.3.1.5.42 = INTEGER: 3200 +.1.3.6.1.2.1.25.2.3.1.5.43 = INTEGER: 134489 +.1.3.6.1.2.1.25.2.3.1.5.44 = INTEGER: 237801 +.1.3.6.1.2.1.25.2.3.1.5.45 = INTEGER: 237801 +.1.3.6.1.2.1.25.2.3.1.5.46 = INTEGER: 237801 +.1.3.6.1.2.1.25.2.3.1.5.47 = INTEGER: 237801 +.1.3.6.1.2.1.25.2.3.1.5.48 = INTEGER: 1936006591 +.1.3.6.1.2.1.25.2.3.1.6.1 = INTEGER: 1155808 +.1.3.6.1.2.1.25.2.3.1.6.3 = INTEGER: 1155808 +.1.3.6.1.2.1.25.2.3.1.6.6 = INTEGER: 112672 +.1.3.6.1.2.1.25.2.3.1.6.7 = INTEGER: 467584 +.1.3.6.1.2.1.25.2.3.1.6.8 = INTEGER: 18112 +.1.3.6.1.2.1.25.2.3.1.6.10 = INTEGER: 0 +.1.3.6.1.2.1.25.2.3.1.6.31 = INTEGER: 20174 +.1.3.6.1.2.1.25.2.3.1.6.32 = INTEGER: 2 +.1.3.6.1.2.1.25.2.3.1.6.40 = INTEGER: 0 +.1.3.6.1.2.1.25.2.3.1.6.41 = INTEGER: 262 +.1.3.6.1.2.1.25.2.3.1.6.42 = INTEGER: 292 +.1.3.6.1.2.1.25.2.3.1.6.43 = INTEGER: 1 +.1.3.6.1.2.1.25.2.3.1.6.44 = INTEGER: 28017 +.1.3.6.1.2.1.25.2.3.1.6.45 = INTEGER: 15 +.1.3.6.1.2.1.25.2.3.1.6.46 = INTEGER: 17 +.1.3.6.1.2.1.25.2.3.1.6.47 = INTEGER: 107 +.1.3.6.1.2.1.25.2.3.1.6.48 = INTEGER: 1398168580 +.1.3.6.1.2.1.25.3.2.1.1.196608 = INTEGER: 196608 +.1.3.6.1.2.1.25.3.2.1.1.196609 = INTEGER: 196609 +.1.3.6.1.2.1.25.3.2.1.1.262145 = INTEGER: 262145 +.1.3.6.1.2.1.25.3.2.1.1.262146 = INTEGER: 262146 +.1.3.6.1.2.1.25.3.2.1.1.262147 = INTEGER: 262147 +.1.3.6.1.2.1.25.3.2.1.1.262148 = INTEGER: 262148 +.1.3.6.1.2.1.25.3.2.1.1.262149 = INTEGER: 262149 +.1.3.6.1.2.1.25.3.2.1.1.262150 = INTEGER: 262150 +.1.3.6.1.2.1.25.3.2.1.1.393248 = INTEGER: 393248 +.1.3.6.1.2.1.25.3.2.1.1.786432 = INTEGER: 786432 +.1.3.6.1.2.1.25.3.2.1.2.196608 = OID: .1.3.6.1.2.1.25.3.1.3 +.1.3.6.1.2.1.25.3.2.1.2.196609 = OID: .1.3.6.1.2.1.25.3.1.3 +.1.3.6.1.2.1.25.3.2.1.2.262145 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.262146 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.262147 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.262148 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.262149 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.262150 = OID: .1.3.6.1.2.1.25.3.1.4 +.1.3.6.1.2.1.25.3.2.1.2.393248 = OID: .1.3.6.1.2.1.25.3.1.6 +.1.3.6.1.2.1.25.3.2.1.2.786432 = OID: .1.3.6.1.2.1.25.3.1.12 +.1.3.6.1.2.1.25.3.2.1.3.196608 = STRING: +.1.3.6.1.2.1.25.3.2.1.3.196609 = STRING: +.1.3.6.1.2.1.25.3.2.1.3.262145 = STRING: network interface lo +.1.3.6.1.2.1.25.3.2.1.3.262146 = STRING: network interface egiga1 +.1.3.6.1.2.1.25.3.2.1.3.262147 = STRING: network interface egiga0 +.1.3.6.1.2.1.25.3.2.1.3.262148 = STRING: network interface sit0 +.1.3.6.1.2.1.25.3.2.1.3.262149 = STRING: network interface ip6tnl0 +.1.3.6.1.2.1.25.3.2.1.3.262150 = STRING: network interface bond0 +.1.3.6.1.2.1.25.3.2.1.3.393248 = STRING: RAID disk (/dev/md0) +.1.3.6.1.2.1.25.3.2.1.3.786432 = STRING: Guessing that there's a floating point co-processor +.1.3.6.1.2.1.25.3.2.1.4.196608 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.196609 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262145 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262146 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262147 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262148 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262149 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.262150 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.393248 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.4.786432 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.5.196608 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.5.196609 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.5.262145 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.5.262146 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.5.262147 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.5.262148 = INTEGER: down(5) +.1.3.6.1.2.1.25.3.2.1.5.262149 = INTEGER: down(5) +.1.3.6.1.2.1.25.3.2.1.5.262150 = INTEGER: running(2) +.1.3.6.1.2.1.25.3.2.1.6.262145 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.6.262146 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.6.262147 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.6.262148 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.6.262149 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.6.262150 = Counter32: 0 +.1.3.6.1.2.1.25.3.3.1.1.196608 = OID: .0.0 +.1.3.6.1.2.1.25.3.3.1.1.196609 = OID: .0.0 +.1.3.6.1.2.1.25.3.3.1.2.196608 = INTEGER: 4 +.1.3.6.1.2.1.25.3.3.1.2.196609 = INTEGER: 4 +.1.3.6.1.2.1.25.3.4.1.1.262145 = INTEGER: 1 +.1.3.6.1.2.1.25.3.4.1.1.262146 = INTEGER: 2 +.1.3.6.1.2.1.25.3.4.1.1.262147 = INTEGER: 3 +.1.3.6.1.2.1.25.3.4.1.1.262148 = INTEGER: 4 +.1.3.6.1.2.1.25.3.4.1.1.262149 = INTEGER: 5 +.1.3.6.1.2.1.25.3.4.1.1.262150 = INTEGER: 6 +.1.3.6.1.2.1.25.3.6.1.1.393248 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.6.1.2.393248 = INTEGER: unknown(2) +.1.3.6.1.2.1.25.3.6.1.3.393248 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.6.1.4.393248 = INTEGER: 2094080 KBytes +.1.3.6.1.2.1.25.3.7.1.1.393248.1 = INTEGER: 1 +.1.3.6.1.2.1.25.3.7.1.2.393248.1 = STRING: "/dev/md0" +.1.3.6.1.2.1.25.3.7.1.3.393248.1 = STRING: "0x900" +.1.3.6.1.2.1.25.3.7.1.4.393248.1 = INTEGER: -1 KBytes +.1.3.6.1.2.1.25.3.7.1.5.393248.1 = INTEGER: -1 +.1.3.6.1.2.1.25.3.8.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.3.8.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.25.3.8.1.1.10 = INTEGER: 10 +.1.3.6.1.2.1.25.3.8.1.1.11 = INTEGER: 11 +.1.3.6.1.2.1.25.3.8.1.1.12 = INTEGER: 12 +.1.3.6.1.2.1.25.3.8.1.1.13 = INTEGER: 13 +.1.3.6.1.2.1.25.3.8.1.1.14 = INTEGER: 14 +.1.3.6.1.2.1.25.3.8.1.1.15 = INTEGER: 15 +.1.3.6.1.2.1.25.3.8.1.1.16 = INTEGER: 16 +.1.3.6.1.2.1.25.3.8.1.1.17 = INTEGER: 17 +.1.3.6.1.2.1.25.3.8.1.1.18 = INTEGER: 18 +.1.3.6.1.2.1.25.3.8.1.2.1 = STRING: "/" +.1.3.6.1.2.1.25.3.8.1.2.2 = STRING: "/dev" +.1.3.6.1.2.1.25.3.8.1.2.10 = STRING: "/mnt" +.1.3.6.1.2.1.25.3.8.1.2.11 = STRING: "/var/log" +.1.3.6.1.2.1.25.3.8.1.2.12 = STRING: "/tmp" +.1.3.6.1.2.1.25.3.8.1.2.13 = STRING: "/usr/local/upload" +.1.3.6.1.2.1.25.3.8.1.2.14 = STRING: "/mnt/HD_c4" +.1.3.6.1.2.1.25.3.8.1.2.15 = STRING: "/mnt/HD_d4" +.1.3.6.1.2.1.25.3.8.1.2.16 = STRING: "/mnt/HD_b4" +.1.3.6.1.2.1.25.3.8.1.2.17 = STRING: "/mnt/HD_a4" +.1.3.6.1.2.1.25.3.8.1.2.18 = STRING: "/mnt/HD/HD_a2" +.1.3.6.1.2.1.25.3.8.1.3.1 = "" +.1.3.6.1.2.1.25.3.8.1.3.2 = "" +.1.3.6.1.2.1.25.3.8.1.3.10 = "" +.1.3.6.1.2.1.25.3.8.1.3.11 = "" +.1.3.6.1.2.1.25.3.8.1.3.12 = "" +.1.3.6.1.2.1.25.3.8.1.3.13 = "" +.1.3.6.1.2.1.25.3.8.1.3.14 = "" +.1.3.6.1.2.1.25.3.8.1.3.15 = "" +.1.3.6.1.2.1.25.3.8.1.3.16 = "" +.1.3.6.1.2.1.25.3.8.1.3.17 = "" +.1.3.6.1.2.1.25.3.8.1.3.18 = "" +.1.3.6.1.2.1.25.3.8.1.4.1 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.2 = OID: .1.3.6.1.2.1.25.3.9.1 +.1.3.6.1.2.1.25.3.8.1.4.10 = OID: .1.3.6.1.2.1.25.3.9.1 +.1.3.6.1.2.1.25.3.8.1.4.11 = OID: .1.3.6.1.2.1.25.3.9.1 +.1.3.6.1.2.1.25.3.8.1.4.12 = OID: .1.3.6.1.2.1.25.3.9.1 +.1.3.6.1.2.1.25.3.8.1.4.13 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.14 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.15 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.16 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.17 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.4.18 = OID: .1.3.6.1.2.1.25.3.9.23 +.1.3.6.1.2.1.25.3.8.1.5.1 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.2 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.10 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.11 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.12 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.13 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.14 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.15 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.16 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.17 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.5.18 = INTEGER: readWrite(1) +.1.3.6.1.2.1.25.3.8.1.6.1 = INTEGER: true(1) +.1.3.6.1.2.1.25.3.8.1.6.2 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.10 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.11 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.12 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.13 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.14 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.15 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.16 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.17 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.6.18 = INTEGER: false(2) +.1.3.6.1.2.1.25.3.8.1.7.1 = INTEGER: 31 +.1.3.6.1.2.1.25.3.8.1.7.2 = INTEGER: 32 +.1.3.6.1.2.1.25.3.8.1.7.10 = INTEGER: 40 +.1.3.6.1.2.1.25.3.8.1.7.11 = INTEGER: 41 +.1.3.6.1.2.1.25.3.8.1.7.12 = INTEGER: 42 +.1.3.6.1.2.1.25.3.8.1.7.13 = INTEGER: 43 +.1.3.6.1.2.1.25.3.8.1.7.14 = INTEGER: 44 +.1.3.6.1.2.1.25.3.8.1.7.15 = INTEGER: 45 +.1.3.6.1.2.1.25.3.8.1.7.16 = INTEGER: 46 +.1.3.6.1.2.1.25.3.8.1.7.17 = INTEGER: 47 +.1.3.6.1.2.1.25.3.8.1.7.18 = INTEGER: 48 +.1.3.6.1.2.1.25.3.8.1.8.1 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.2 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.10 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.11 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.12 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.13 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.14 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.15 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.16 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.17 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.8.18 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.1 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.2 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.10 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.11 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.12 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.13 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.14 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.15 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.16 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.17 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.3.8.1.9.18 = STRING: 0-1-1,0:0:0.0 +.1.3.6.1.2.1.25.4.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.4.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.25.4.2.1.1.4 = INTEGER: 4 +.1.3.6.1.2.1.25.4.2.1.1.6 = INTEGER: 6 +.1.3.6.1.2.1.25.4.2.1.1.7 = INTEGER: 7 +.1.3.6.1.2.1.25.4.2.1.1.8 = INTEGER: 8 +.1.3.6.1.2.1.25.4.2.1.1.9 = INTEGER: 9 +.1.3.6.1.2.1.25.4.2.1.1.10 = INTEGER: 10 +.1.3.6.1.2.1.25.4.2.1.1.11 = INTEGER: 11 +.1.3.6.1.2.1.25.4.2.1.1.12 = INTEGER: 12 +.1.3.6.1.2.1.25.4.2.1.1.13 = INTEGER: 13 +.1.3.6.1.2.1.25.4.2.1.1.14 = INTEGER: 14 +.1.3.6.1.2.1.25.4.2.1.1.16 = INTEGER: 16 +.1.3.6.1.2.1.25.4.2.1.1.17 = INTEGER: 17 +.1.3.6.1.2.1.25.4.2.1.1.18 = INTEGER: 18 +.1.3.6.1.2.1.25.4.2.1.1.258 = INTEGER: 258 +.1.3.6.1.2.1.25.4.2.1.1.259 = INTEGER: 259 +.1.3.6.1.2.1.25.4.2.1.1.261 = INTEGER: 261 +.1.3.6.1.2.1.25.4.2.1.1.262 = INTEGER: 262 +.1.3.6.1.2.1.25.4.2.1.1.264 = INTEGER: 264 +.1.3.6.1.2.1.25.4.2.1.1.288 = INTEGER: 288 +.1.3.6.1.2.1.25.4.2.1.1.307 = INTEGER: 307 +.1.3.6.1.2.1.25.4.2.1.1.313 = INTEGER: 313 +.1.3.6.1.2.1.25.4.2.1.1.412 = INTEGER: 412 +.1.3.6.1.2.1.25.4.2.1.1.1150 = INTEGER: 1150 +.1.3.6.1.2.1.25.4.2.1.1.1151 = INTEGER: 1151 +.1.3.6.1.2.1.25.4.2.1.1.1154 = INTEGER: 1154 +.1.3.6.1.2.1.25.4.2.1.1.1155 = INTEGER: 1155 +.1.3.6.1.2.1.25.4.2.1.1.1169 = INTEGER: 1169 +.1.3.6.1.2.1.25.4.2.1.1.1170 = INTEGER: 1170 +.1.3.6.1.2.1.25.4.2.1.1.1173 = INTEGER: 1173 +.1.3.6.1.2.1.25.4.2.1.1.1174 = INTEGER: 1174 +.1.3.6.1.2.1.25.4.2.1.1.1312 = INTEGER: 1312 +.1.3.6.1.2.1.25.4.2.1.1.1313 = INTEGER: 1313 +.1.3.6.1.2.1.25.4.2.1.1.1426 = INTEGER: 1426 +.1.3.6.1.2.1.25.4.2.1.1.1449 = INTEGER: 1449 +.1.3.6.1.2.1.25.4.2.1.1.1454 = INTEGER: 1454 +.1.3.6.1.2.1.25.4.2.1.1.1661 = INTEGER: 1661 +.1.3.6.1.2.1.25.4.2.1.1.1662 = INTEGER: 1662 +.1.3.6.1.2.1.25.4.2.1.1.2774 = INTEGER: 2774 +.1.3.6.1.2.1.25.4.2.1.1.2956 = INTEGER: 2956 +.1.3.6.1.2.1.25.4.2.1.1.2957 = INTEGER: 2957 +.1.3.6.1.2.1.25.4.2.1.1.2969 = INTEGER: 2969 +.1.3.6.1.2.1.25.4.2.1.1.2988 = INTEGER: 2988 +.1.3.6.1.2.1.25.4.2.1.1.3008 = INTEGER: 3008 +.1.3.6.1.2.1.25.4.2.1.1.3027 = INTEGER: 3027 +.1.3.6.1.2.1.25.4.2.1.1.3028 = INTEGER: 3028 +.1.3.6.1.2.1.25.4.2.1.1.3087 = INTEGER: 3087 +.1.3.6.1.2.1.25.4.2.1.1.3229 = INTEGER: 3229 +.1.3.6.1.2.1.25.4.2.1.1.3234 = INTEGER: 3234 +.1.3.6.1.2.1.25.4.2.1.1.3254 = INTEGER: 3254 +.1.3.6.1.2.1.25.4.2.1.1.3292 = INTEGER: 3292 +.1.3.6.1.2.1.25.4.2.1.1.3310 = INTEGER: 3310 +.1.3.6.1.2.1.25.4.2.1.1.3413 = INTEGER: 3413 +.1.3.6.1.2.1.25.4.2.1.1.3414 = INTEGER: 3414 +.1.3.6.1.2.1.25.4.2.1.1.3487 = INTEGER: 3487 +.1.3.6.1.2.1.25.4.2.1.1.3541 = INTEGER: 3541 +.1.3.6.1.2.1.25.4.2.1.1.3803 = INTEGER: 3803 +.1.3.6.1.2.1.25.4.2.1.1.3816 = INTEGER: 3816 +.1.3.6.1.2.1.25.4.2.1.1.3833 = INTEGER: 3833 +.1.3.6.1.2.1.25.4.2.1.1.3922 = INTEGER: 3922 +.1.3.6.1.2.1.25.4.2.1.1.3944 = INTEGER: 3944 +.1.3.6.1.2.1.25.4.2.1.1.3945 = INTEGER: 3945 +.1.3.6.1.2.1.25.4.2.1.1.3959 = INTEGER: 3959 +.1.3.6.1.2.1.25.4.2.1.1.3960 = INTEGER: 3960 +.1.3.6.1.2.1.25.4.2.1.1.3964 = INTEGER: 3964 +.1.3.6.1.2.1.25.4.2.1.1.3965 = INTEGER: 3965 +.1.3.6.1.2.1.25.4.2.1.1.3969 = INTEGER: 3969 +.1.3.6.1.2.1.25.4.2.1.1.3970 = INTEGER: 3970 +.1.3.6.1.2.1.25.4.2.1.1.3974 = INTEGER: 3974 +.1.3.6.1.2.1.25.4.2.1.1.3975 = INTEGER: 3975 +.1.3.6.1.2.1.25.4.2.1.1.3987 = INTEGER: 3987 +.1.3.6.1.2.1.25.4.2.1.1.4007 = INTEGER: 4007 +.1.3.6.1.2.1.25.4.2.1.1.4008 = INTEGER: 4008 +.1.3.6.1.2.1.25.4.2.1.1.4079 = INTEGER: 4079 +.1.3.6.1.2.1.25.4.2.1.1.4082 = INTEGER: 4082 +.1.3.6.1.2.1.25.4.2.1.1.4382 = INTEGER: 4382 +.1.3.6.1.2.1.25.4.2.1.1.4383 = INTEGER: 4383 +.1.3.6.1.2.1.25.4.2.1.1.4388 = INTEGER: 4388 +.1.3.6.1.2.1.25.4.2.1.1.4616 = INTEGER: 4616 +.1.3.6.1.2.1.25.4.2.1.1.4688 = INTEGER: 4688 +.1.3.6.1.2.1.25.4.2.1.1.4693 = INTEGER: 4693 +.1.3.6.1.2.1.25.4.2.1.1.4706 = INTEGER: 4706 +.1.3.6.1.2.1.25.4.2.1.1.4717 = INTEGER: 4717 +.1.3.6.1.2.1.25.4.2.1.1.4742 = INTEGER: 4742 +.1.3.6.1.2.1.25.4.2.1.1.4796 = INTEGER: 4796 +.1.3.6.1.2.1.25.4.2.1.1.4879 = INTEGER: 4879 +.1.3.6.1.2.1.25.4.2.1.1.5099 = INTEGER: 5099 +.1.3.6.1.2.1.25.4.2.1.1.5101 = INTEGER: 5101 +.1.3.6.1.2.1.25.4.2.1.1.5102 = INTEGER: 5102 +.1.3.6.1.2.1.25.4.2.1.1.5103 = INTEGER: 5103 +.1.3.6.1.2.1.25.4.2.1.1.5164 = INTEGER: 5164 +.1.3.6.1.2.1.25.4.2.1.1.5233 = INTEGER: 5233 +.1.3.6.1.2.1.25.4.2.1.1.5240 = INTEGER: 5240 +.1.3.6.1.2.1.25.4.2.1.1.5245 = INTEGER: 5245 +.1.3.6.1.2.1.25.4.2.1.1.5304 = INTEGER: 5304 +.1.3.6.1.2.1.25.4.2.1.1.5312 = INTEGER: 5312 +.1.3.6.1.2.1.25.4.2.1.1.5317 = INTEGER: 5317 +.1.3.6.1.2.1.25.4.2.1.1.5321 = INTEGER: 5321 +.1.3.6.1.2.1.25.4.2.1.1.5325 = INTEGER: 5325 +.1.3.6.1.2.1.25.4.2.1.1.5327 = INTEGER: 5327 +.1.3.6.1.2.1.25.4.2.1.1.5365 = INTEGER: 5365 +.1.3.6.1.2.1.25.4.2.1.1.5390 = INTEGER: 5390 +.1.3.6.1.2.1.25.4.2.1.1.5409 = INTEGER: 5409 +.1.3.6.1.2.1.25.4.2.1.1.5467 = INTEGER: 5467 +.1.3.6.1.2.1.25.4.2.1.1.7890 = INTEGER: 7890 +.1.3.6.1.2.1.25.4.2.1.1.7891 = INTEGER: 7891 +.1.3.6.1.2.1.25.4.2.1.1.8065 = INTEGER: 8065 +.1.3.6.1.2.1.25.4.2.1.1.8090 = INTEGER: 8090 +.1.3.6.1.2.1.25.4.2.1.1.8163 = INTEGER: 8163 +.1.3.6.1.2.1.25.4.2.1.1.8184 = INTEGER: 8184 +.1.3.6.1.2.1.25.4.2.1.1.8190 = INTEGER: 8190 +.1.3.6.1.2.1.25.4.2.1.1.8255 = INTEGER: 8255 +.1.3.6.1.2.1.25.4.2.1.1.8278 = INTEGER: 8278 +.1.3.6.1.2.1.25.4.2.1.1.8281 = INTEGER: 8281 +.1.3.6.1.2.1.25.4.2.1.1.8282 = INTEGER: 8282 +.1.3.6.1.2.1.25.4.2.1.1.8283 = INTEGER: 8283 +.1.3.6.1.2.1.25.4.2.1.1.8284 = INTEGER: 8284 +.1.3.6.1.2.1.25.4.2.1.1.8285 = INTEGER: 8285 +.1.3.6.1.2.1.25.4.2.1.1.8286 = INTEGER: 8286 +.1.3.6.1.2.1.25.4.2.1.1.8287 = INTEGER: 8287 +.1.3.6.1.2.1.25.4.2.1.1.8288 = INTEGER: 8288 +.1.3.6.1.2.1.25.4.2.1.1.8289 = INTEGER: 8289 +.1.3.6.1.2.1.25.4.2.1.1.8291 = INTEGER: 8291 +.1.3.6.1.2.1.25.4.2.1.1.8293 = INTEGER: 8293 +.1.3.6.1.2.1.25.4.2.1.1.8347 = INTEGER: 8347 +.1.3.6.1.2.1.25.4.2.1.1.8478 = INTEGER: 8478 +.1.3.6.1.2.1.25.4.2.1.1.8484 = INTEGER: 8484 +.1.3.6.1.2.1.25.4.2.1.1.8764 = INTEGER: 8764 +.1.3.6.1.2.1.25.4.2.1.1.9086 = INTEGER: 9086 +.1.3.6.1.2.1.25.4.2.1.1.9096 = INTEGER: 9096 +.1.3.6.1.2.1.25.4.2.1.1.9220 = INTEGER: 9220 +.1.3.6.1.2.1.25.4.2.1.1.9278 = INTEGER: 9278 +.1.3.6.1.2.1.25.4.2.1.1.12569 = INTEGER: 12569 +.1.3.6.1.2.1.25.4.2.1.1.14858 = INTEGER: 14858 +.1.3.6.1.2.1.25.4.2.1.1.23728 = INTEGER: 23728 +.1.3.6.1.2.1.25.4.2.1.1.24846 = INTEGER: 24846 +.1.3.6.1.2.1.25.4.2.1.1.28769 = INTEGER: 28769 +.1.3.6.1.2.1.25.4.2.1.1.31640 = INTEGER: 31640 +.1.3.6.1.2.1.25.4.2.1.1.31658 = INTEGER: 31658 +.1.3.6.1.2.1.25.4.2.1.1.31817 = INTEGER: 31817 +.1.3.6.1.2.1.25.4.2.1.1.32134 = INTEGER: 32134 +.1.3.6.1.2.1.25.4.2.1.2.1 = STRING: "init" +.1.3.6.1.2.1.25.4.2.1.2.2 = STRING: "kthreadd" +.1.3.6.1.2.1.25.4.2.1.2.4 = STRING: "kworker/0:0H" +.1.3.6.1.2.1.25.4.2.1.2.6 = STRING: "mm_percpu_wq" +.1.3.6.1.2.1.25.4.2.1.2.7 = STRING: "ksoftirqd/0" +.1.3.6.1.2.1.25.4.2.1.2.8 = STRING: "rcu_sched" +.1.3.6.1.2.1.25.4.2.1.2.9 = STRING: "rcu_bh" +.1.3.6.1.2.1.25.4.2.1.2.10 = STRING: "migration/0" +.1.3.6.1.2.1.25.4.2.1.2.11 = STRING: "cpuhp/0" +.1.3.6.1.2.1.25.4.2.1.2.12 = STRING: "cpuhp/1" +.1.3.6.1.2.1.25.4.2.1.2.13 = STRING: "migration/1" +.1.3.6.1.2.1.25.4.2.1.2.14 = STRING: "ksoftirqd/1" +.1.3.6.1.2.1.25.4.2.1.2.16 = STRING: "kworker/1:0H" +.1.3.6.1.2.1.25.4.2.1.2.17 = STRING: "kdevtmpfs" +.1.3.6.1.2.1.25.4.2.1.2.18 = STRING: "netns" +.1.3.6.1.2.1.25.4.2.1.2.258 = STRING: "oom_reaper" +.1.3.6.1.2.1.25.4.2.1.2.259 = STRING: "writeback" +.1.3.6.1.2.1.25.4.2.1.2.261 = STRING: "crypto" +.1.3.6.1.2.1.25.4.2.1.2.262 = STRING: "kintegrityd" +.1.3.6.1.2.1.25.4.2.1.2.264 = STRING: "kblockd" +.1.3.6.1.2.1.25.4.2.1.2.288 = STRING: "ata_sff" +.1.3.6.1.2.1.25.4.2.1.2.307 = STRING: "md" +.1.3.6.1.2.1.25.4.2.1.2.313 = STRING: "watchdogd" +.1.3.6.1.2.1.25.4.2.1.2.412 = STRING: "kswapd0" +.1.3.6.1.2.1.25.4.2.1.2.1150 = STRING: "scsi_eh_0" +.1.3.6.1.2.1.25.4.2.1.2.1151 = STRING: "scsi_tmf_0" +.1.3.6.1.2.1.25.4.2.1.2.1154 = STRING: "scsi_eh_1" +.1.3.6.1.2.1.25.4.2.1.2.1155 = STRING: "scsi_tmf_1" +.1.3.6.1.2.1.25.4.2.1.2.1169 = STRING: "scsi_eh_2" +.1.3.6.1.2.1.25.4.2.1.2.1170 = STRING: "scsi_tmf_2" +.1.3.6.1.2.1.25.4.2.1.2.1173 = STRING: "scsi_eh_3" +.1.3.6.1.2.1.25.4.2.1.2.1174 = STRING: "scsi_tmf_3" +.1.3.6.1.2.1.25.4.2.1.2.1312 = STRING: "irq/40-f1090000" +.1.3.6.1.2.1.25.4.2.1.2.1313 = STRING: "irq/41-f1090000" +.1.3.6.1.2.1.25.4.2.1.2.1426 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.1449 = STRING: "ubi_bgt0d" +.1.3.6.1.2.1.25.4.2.1.2.1454 = STRING: "ubifs_bgt0_0" +.1.3.6.1.2.1.25.4.2.1.2.1661 = STRING: "kworker/1:1H" +.1.3.6.1.2.1.25.4.2.1.2.1662 = STRING: "kworker/0:1H" +.1.3.6.1.2.1.25.4.2.1.2.2774 = STRING: "loop0" +.1.3.6.1.2.1.25.4.2.1.2.2956 = STRING: "rpciod" +.1.3.6.1.2.1.25.4.2.1.2.2957 = STRING: "xprtiod" +.1.3.6.1.2.1.25.4.2.1.2.2969 = STRING: "dm_bufio_cache" +.1.3.6.1.2.1.25.4.2.1.2.2988 = STRING: "raid5wq" +.1.3.6.1.2.1.25.4.2.1.2.3008 = STRING: "nfsiod" +.1.3.6.1.2.1.25.4.2.1.2.3027 = STRING: "cifsiod" +.1.3.6.1.2.1.25.4.2.1.2.3028 = STRING: "cifsoplockd" +.1.3.6.1.2.1.25.4.2.1.2.3087 = STRING: "chk_usb_hub_los" +.1.3.6.1.2.1.25.4.2.1.2.3229 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.3234 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.3254 = STRING: "kworker/u4:2" +.1.3.6.1.2.1.25.4.2.1.2.3292 = STRING: "ubi_bgt1d" +.1.3.6.1.2.1.25.4.2.1.2.3310 = STRING: "ubi_bgt2d" +.1.3.6.1.2.1.25.4.2.1.2.3413 = STRING: "up_read_daemon" +.1.3.6.1.2.1.25.4.2.1.2.3414 = STRING: "up_send_daemon" +.1.3.6.1.2.1.25.4.2.1.2.3487 = STRING: "ipv6_addrconf" +.1.3.6.1.2.1.25.4.2.1.2.3541 = STRING: "bond0" +.1.3.6.1.2.1.25.4.2.1.2.3803 = STRING: "rsyslogd" +.1.3.6.1.2.1.25.4.2.1.2.3816 = STRING: "mserver" +.1.3.6.1.2.1.25.4.2.1.2.3833 = STRING: "mail_daemon" +.1.3.6.1.2.1.25.4.2.1.2.3922 = STRING: "md0_raid1" +.1.3.6.1.2.1.25.4.2.1.2.3944 = STRING: "jbd2/md0p1-8" +.1.3.6.1.2.1.25.4.2.1.2.3945 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.3959 = STRING: "jbd2/sdc4-8" +.1.3.6.1.2.1.25.4.2.1.2.3960 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.3964 = STRING: "jbd2/sdd4-8" +.1.3.6.1.2.1.25.4.2.1.2.3965 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.3969 = STRING: "jbd2/sdb4-8" +.1.3.6.1.2.1.25.4.2.1.2.3970 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.3974 = STRING: "jbd2/sda4-8" +.1.3.6.1.2.1.25.4.2.1.2.3975 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.3987 = STRING: "md1_raid10" +.1.3.6.1.2.1.25.4.2.1.2.4007 = STRING: "zcip" +.1.3.6.1.2.1.25.4.2.1.2.4008 = STRING: "udhcpc" +.1.3.6.1.2.1.25.4.2.1.2.4079 = STRING: "sysinfod" +.1.3.6.1.2.1.25.4.2.1.2.4082 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.4382 = STRING: "wdtms" +.1.3.6.1.2.1.25.4.2.1.2.4383 = STRING: "dbus-daemon" +.1.3.6.1.2.1.25.4.2.1.2.4388 = STRING: "avahi-daemon" +.1.3.6.1.2.1.25.4.2.1.2.4616 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.2.4688 = STRING: "sshd" +.1.3.6.1.2.1.25.4.2.1.2.4693 = STRING: "smbd" +.1.3.6.1.2.1.25.4.2.1.2.4706 = STRING: "smbd-notifyd" +.1.3.6.1.2.1.25.4.2.1.2.4717 = STRING: "nmbd" +.1.3.6.1.2.1.25.4.2.1.2.4742 = STRING: "python3" +.1.3.6.1.2.1.25.4.2.1.2.4796 = STRING: "lld2d" +.1.3.6.1.2.1.25.4.2.1.2.4879 = STRING: "fan_control" +.1.3.6.1.2.1.25.4.2.1.2.5099 = STRING: "php-fpm" +.1.3.6.1.2.1.25.4.2.1.2.5101 = STRING: "php-fpm" +.1.3.6.1.2.1.25.4.2.1.2.5102 = STRING: "php-fpm" +.1.3.6.1.2.1.25.4.2.1.2.5103 = STRING: "php-fpm" +.1.3.6.1.2.1.25.4.2.1.2.5164 = STRING: "chk_io" +.1.3.6.1.2.1.25.4.2.1.2.5233 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.5240 = STRING: "nasAdmin" +.1.3.6.1.2.1.25.4.2.1.2.5245 = STRING: "system_daemon" +.1.3.6.1.2.1.25.4.2.1.2.5304 = STRING: "iscsi_eh" +.1.3.6.1.2.1.25.4.2.1.2.5312 = STRING: "fireAlert" +.1.3.6.1.2.1.25.4.2.1.2.5317 = STRING: "rotatelogs" +.1.3.6.1.2.1.25.4.2.1.2.5321 = STRING: "rotatelogs" +.1.3.6.1.2.1.25.4.2.1.2.5325 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.2.5327 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.2.5365 = STRING: "iscsid" +.1.3.6.1.2.1.25.4.2.1.2.5390 = STRING: "monit" +.1.3.6.1.2.1.25.4.2.1.2.5409 = STRING: "init" +.1.3.6.1.2.1.25.4.2.1.2.5467 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.7890 = STRING: "jbd2/md1-8" +.1.3.6.1.2.1.25.4.2.1.2.7891 = STRING: "ext4-rsv-conver" +.1.3.6.1.2.1.25.4.2.1.2.8065 = STRING: "upnp_nas_device" +.1.3.6.1.2.1.25.4.2.1.2.8090 = STRING: "knetatop" +.1.3.6.1.2.1.25.4.2.1.2.8163 = STRING: "cleanupd" +.1.3.6.1.2.1.25.4.2.1.2.8184 = STRING: "chk_blockip" +.1.3.6.1.2.1.25.4.2.1.2.8190 = STRING: "pure-ftpd" +.1.3.6.1.2.1.25.4.2.1.2.8255 = STRING: "snmpd" +.1.3.6.1.2.1.25.4.2.1.2.8278 = STRING: "rpcbind" +.1.3.6.1.2.1.25.4.2.1.2.8281 = STRING: "lockd" +.1.3.6.1.2.1.25.4.2.1.2.8282 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8283 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8284 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8285 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8286 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8287 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8288 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8289 = STRING: "nfsd" +.1.3.6.1.2.1.25.4.2.1.2.8291 = STRING: "rpc.mountd" +.1.3.6.1.2.1.25.4.2.1.2.8293 = STRING: "rpc.statd" +.1.3.6.1.2.1.25.4.2.1.2.8347 = STRING: "apkg" +.1.3.6.1.2.1.25.4.2.1.2.8478 = STRING: "restsdk-serverd" +.1.3.6.1.2.1.25.4.2.1.2.8484 = STRING: "restsdk-server" +.1.3.6.1.2.1.25.4.2.1.2.8764 = STRING: "crond" +.1.3.6.1.2.1.25.4.2.1.2.9086 = STRING: "otaclientd" +.1.3.6.1.2.1.25.4.2.1.2.9096 = STRING: "otaclient" +.1.3.6.1.2.1.25.4.2.1.2.9220 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.2.9278 = STRING: "chk_hotplug" +.1.3.6.1.2.1.25.4.2.1.2.12569 = STRING: "kworker/1:1" +.1.3.6.1.2.1.25.4.2.1.2.14858 = STRING: "atop" +.1.3.6.1.2.1.25.4.2.1.2.23728 = STRING: "kworker/0:1" +.1.3.6.1.2.1.25.4.2.1.2.24846 = STRING: "kworker/1:0" +.1.3.6.1.2.1.25.4.2.1.2.28769 = STRING: "kworker/0:2" +.1.3.6.1.2.1.25.4.2.1.2.31640 = STRING: "kworker/0:0" +.1.3.6.1.2.1.25.4.2.1.2.31658 = STRING: "kworker/1:2" +.1.3.6.1.2.1.25.4.2.1.2.31817 = STRING: "sleep" +.1.3.6.1.2.1.25.4.2.1.2.32134 = STRING: "kworker/u4:0" +.1.3.6.1.2.1.25.4.2.1.3.1 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.6 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.7 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.9 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.10 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.11 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.12 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.13 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.14 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.16 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.17 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.18 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.258 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.259 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.261 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.262 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.264 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.288 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.307 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.313 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.412 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1150 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1151 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1154 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1155 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1169 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1170 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1173 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1174 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1312 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1313 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1426 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1449 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1454 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1661 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.1662 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2774 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2956 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2957 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2969 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.2988 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3008 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3027 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3028 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3087 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3229 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3234 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3254 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3292 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3310 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3413 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3414 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3487 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3541 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3803 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3816 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3833 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3922 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3944 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3945 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3959 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3960 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3964 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3965 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3969 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3970 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3974 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3975 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.3987 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4007 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4008 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4079 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4082 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4382 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4383 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4388 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4616 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4688 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4693 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4706 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4717 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4742 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4796 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.4879 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5099 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5101 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5102 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5103 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5164 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5233 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5240 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5245 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5304 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5312 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5317 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5321 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5325 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5327 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5365 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5390 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5409 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.5467 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.7890 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.7891 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8065 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8090 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8163 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8184 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8190 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8255 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8278 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8281 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8282 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8283 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8284 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8285 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8286 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8287 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8288 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8289 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8291 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8293 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8347 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8478 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8484 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.8764 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.9086 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.9096 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.9220 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.9278 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.12569 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.14858 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.23728 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.24846 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.28769 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.31640 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.31658 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.31817 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.3.32134 = OID: .0.0 +.1.3.6.1.2.1.25.4.2.1.4.1 = STRING: "init" +.1.3.6.1.2.1.25.4.2.1.4.2 = "" +.1.3.6.1.2.1.25.4.2.1.4.4 = "" +.1.3.6.1.2.1.25.4.2.1.4.6 = "" +.1.3.6.1.2.1.25.4.2.1.4.7 = "" +.1.3.6.1.2.1.25.4.2.1.4.8 = "" +.1.3.6.1.2.1.25.4.2.1.4.9 = "" +.1.3.6.1.2.1.25.4.2.1.4.10 = "" +.1.3.6.1.2.1.25.4.2.1.4.11 = "" +.1.3.6.1.2.1.25.4.2.1.4.12 = "" +.1.3.6.1.2.1.25.4.2.1.4.13 = "" +.1.3.6.1.2.1.25.4.2.1.4.14 = "" +.1.3.6.1.2.1.25.4.2.1.4.16 = "" +.1.3.6.1.2.1.25.4.2.1.4.17 = "" +.1.3.6.1.2.1.25.4.2.1.4.18 = "" +.1.3.6.1.2.1.25.4.2.1.4.258 = "" +.1.3.6.1.2.1.25.4.2.1.4.259 = "" +.1.3.6.1.2.1.25.4.2.1.4.261 = "" +.1.3.6.1.2.1.25.4.2.1.4.262 = "" +.1.3.6.1.2.1.25.4.2.1.4.264 = "" +.1.3.6.1.2.1.25.4.2.1.4.288 = "" +.1.3.6.1.2.1.25.4.2.1.4.307 = "" +.1.3.6.1.2.1.25.4.2.1.4.313 = "" +.1.3.6.1.2.1.25.4.2.1.4.412 = "" +.1.3.6.1.2.1.25.4.2.1.4.1150 = "" +.1.3.6.1.2.1.25.4.2.1.4.1151 = "" +.1.3.6.1.2.1.25.4.2.1.4.1154 = "" +.1.3.6.1.2.1.25.4.2.1.4.1155 = "" +.1.3.6.1.2.1.25.4.2.1.4.1169 = "" +.1.3.6.1.2.1.25.4.2.1.4.1170 = "" +.1.3.6.1.2.1.25.4.2.1.4.1173 = "" +.1.3.6.1.2.1.25.4.2.1.4.1174 = "" +.1.3.6.1.2.1.25.4.2.1.4.1312 = "" +.1.3.6.1.2.1.25.4.2.1.4.1313 = "" +.1.3.6.1.2.1.25.4.2.1.4.1426 = "" +.1.3.6.1.2.1.25.4.2.1.4.1449 = "" +.1.3.6.1.2.1.25.4.2.1.4.1454 = "" +.1.3.6.1.2.1.25.4.2.1.4.1661 = "" +.1.3.6.1.2.1.25.4.2.1.4.1662 = "" +.1.3.6.1.2.1.25.4.2.1.4.2774 = "" +.1.3.6.1.2.1.25.4.2.1.4.2956 = "" +.1.3.6.1.2.1.25.4.2.1.4.2957 = "" +.1.3.6.1.2.1.25.4.2.1.4.2969 = "" +.1.3.6.1.2.1.25.4.2.1.4.2988 = "" +.1.3.6.1.2.1.25.4.2.1.4.3008 = "" +.1.3.6.1.2.1.25.4.2.1.4.3027 = "" +.1.3.6.1.2.1.25.4.2.1.4.3028 = "" +.1.3.6.1.2.1.25.4.2.1.4.3087 = STRING: "/bin/sh" +.1.3.6.1.2.1.25.4.2.1.4.3229 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.3234 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.3254 = "" +.1.3.6.1.2.1.25.4.2.1.4.3292 = "" +.1.3.6.1.2.1.25.4.2.1.4.3310 = "" +.1.3.6.1.2.1.25.4.2.1.4.3413 = STRING: "up_read_daemon" +.1.3.6.1.2.1.25.4.2.1.4.3414 = STRING: "up_send_daemon" +.1.3.6.1.2.1.25.4.2.1.4.3487 = "" +.1.3.6.1.2.1.25.4.2.1.4.3541 = "" +.1.3.6.1.2.1.25.4.2.1.4.3803 = STRING: "/usr/sbin/rsyslogd" +.1.3.6.1.2.1.25.4.2.1.4.3816 = STRING: "mserver" +.1.3.6.1.2.1.25.4.2.1.4.3833 = STRING: "mail_daemon" +.1.3.6.1.2.1.25.4.2.1.4.3922 = "" +.1.3.6.1.2.1.25.4.2.1.4.3944 = "" +.1.3.6.1.2.1.25.4.2.1.4.3945 = "" +.1.3.6.1.2.1.25.4.2.1.4.3959 = "" +.1.3.6.1.2.1.25.4.2.1.4.3960 = "" +.1.3.6.1.2.1.25.4.2.1.4.3964 = "" +.1.3.6.1.2.1.25.4.2.1.4.3965 = "" +.1.3.6.1.2.1.25.4.2.1.4.3969 = "" +.1.3.6.1.2.1.25.4.2.1.4.3970 = "" +.1.3.6.1.2.1.25.4.2.1.4.3974 = "" +.1.3.6.1.2.1.25.4.2.1.4.3975 = "" +.1.3.6.1.2.1.25.4.2.1.4.3987 = "" +.1.3.6.1.2.1.25.4.2.1.4.4007 = STRING: "zcip" +.1.3.6.1.2.1.25.4.2.1.4.4008 = STRING: "/sbin/udhcpc" +.1.3.6.1.2.1.25.4.2.1.4.4079 = STRING: "sysinfod" +.1.3.6.1.2.1.25.4.2.1.4.4082 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.4382 = STRING: "/opt/wd/bin/wdtms" +.1.3.6.1.2.1.25.4.2.1.4.4383 = STRING: "/usr/bin/dbus-daemon" +.1.3.6.1.2.1.25.4.2.1.4.4388 = STRING: "avahi-daemon: running [NAS4100-bck.local]" +.1.3.6.1.2.1.25.4.2.1.4.4616 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.4.4688 = STRING: "sshd: /usr/sbin/sshd -E /var/log/sshd.log -f /etc/ssh/sshd_config [listener] 0 of 10-100 startups" +.1.3.6.1.2.1.25.4.2.1.4.4693 = STRING: "smbd" +.1.3.6.1.2.1.25.4.2.1.4.4706 = STRING: "smbd" +.1.3.6.1.2.1.25.4.2.1.4.4717 = STRING: "nmbd" +.1.3.6.1.2.1.25.4.2.1.4.4742 = STRING: "python3" +.1.3.6.1.2.1.25.4.2.1.4.4796 = STRING: "lld2d" +.1.3.6.1.2.1.25.4.2.1.4.4879 = STRING: "fan_control" +.1.3.6.1.2.1.25.4.2.1.4.5099 = STRING: "php-fpm: master process (/etc/php/php-fpm.conf)" +.1.3.6.1.2.1.25.4.2.1.4.5101 = STRING: "php-fpm: pool www" +.1.3.6.1.2.1.25.4.2.1.4.5102 = STRING: "php-fpm: pool www" +.1.3.6.1.2.1.25.4.2.1.4.5103 = STRING: "php-fpm: pool www" +.1.3.6.1.2.1.25.4.2.1.4.5164 = STRING: "chk_io" +.1.3.6.1.2.1.25.4.2.1.4.5233 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.5240 = STRING: "nasAdmin" +.1.3.6.1.2.1.25.4.2.1.4.5245 = STRING: "system_daemon" +.1.3.6.1.2.1.25.4.2.1.4.5304 = "" +.1.3.6.1.2.1.25.4.2.1.4.5312 = STRING: "fireAlert" +.1.3.6.1.2.1.25.4.2.1.4.5317 = STRING: "/usr/bin/rotatelogs" +.1.3.6.1.2.1.25.4.2.1.4.5321 = STRING: "/usr/bin/rotatelogs" +.1.3.6.1.2.1.25.4.2.1.4.5325 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.4.5327 = STRING: "httpd" +.1.3.6.1.2.1.25.4.2.1.4.5365 = STRING: "iscsid" +.1.3.6.1.2.1.25.4.2.1.4.5390 = STRING: "monit" +.1.3.6.1.2.1.25.4.2.1.4.5409 = STRING: "init" +.1.3.6.1.2.1.25.4.2.1.4.5467 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.7890 = "" +.1.3.6.1.2.1.25.4.2.1.4.7891 = "" +.1.3.6.1.2.1.25.4.2.1.4.8065 = STRING: "upnp_nas_device" +.1.3.6.1.2.1.25.4.2.1.4.8090 = "" +.1.3.6.1.2.1.25.4.2.1.4.8163 = STRING: "smbd" +.1.3.6.1.2.1.25.4.2.1.4.8184 = STRING: "chk_blockip" +.1.3.6.1.2.1.25.4.2.1.4.8190 = STRING: "pure-ftpd (SERVER)" +.1.3.6.1.2.1.25.4.2.1.4.8255 = STRING: "snmpd" +.1.3.6.1.2.1.25.4.2.1.4.8278 = STRING: "/usr/sbin/rpcbind" +.1.3.6.1.2.1.25.4.2.1.4.8281 = "" +.1.3.6.1.2.1.25.4.2.1.4.8282 = "" +.1.3.6.1.2.1.25.4.2.1.4.8283 = "" +.1.3.6.1.2.1.25.4.2.1.4.8284 = "" +.1.3.6.1.2.1.25.4.2.1.4.8285 = "" +.1.3.6.1.2.1.25.4.2.1.4.8286 = "" +.1.3.6.1.2.1.25.4.2.1.4.8287 = "" +.1.3.6.1.2.1.25.4.2.1.4.8288 = "" +.1.3.6.1.2.1.25.4.2.1.4.8289 = "" +.1.3.6.1.2.1.25.4.2.1.4.8291 = STRING: "/usr/sbin/rpc.mountd" +.1.3.6.1.2.1.25.4.2.1.4.8293 = STRING: "/usr/sbin/rpc.statd" +.1.3.6.1.2.1.25.4.2.1.4.8347 = STRING: "apkg" +.1.3.6.1.2.1.25.4.2.1.4.8478 = STRING: "restsdk-serverd" +.1.3.6.1.2.1.25.4.2.1.4.8484 = STRING: "restsdk-server" +.1.3.6.1.2.1.25.4.2.1.4.8764 = STRING: "crond" +.1.3.6.1.2.1.25.4.2.1.4.9086 = STRING: "otaclientd" +.1.3.6.1.2.1.25.4.2.1.4.9096 = STRING: "otaclient" +.1.3.6.1.2.1.25.4.2.1.4.9220 = STRING: "xmldb" +.1.3.6.1.2.1.25.4.2.1.4.9278 = STRING: "chk_hotplug" +.1.3.6.1.2.1.25.4.2.1.4.12569 = "" +.1.3.6.1.2.1.25.4.2.1.4.14858 = STRING: "/usr/bin/atop" +.1.3.6.1.2.1.25.4.2.1.4.23728 = "" +.1.3.6.1.2.1.25.4.2.1.4.24846 = "" +.1.3.6.1.2.1.25.4.2.1.4.28769 = "" +.1.3.6.1.2.1.25.4.2.1.4.31640 = "" +.1.3.6.1.2.1.25.4.2.1.4.31658 = "" +.1.3.6.1.2.1.25.4.2.1.4.31817 = STRING: "sleep" +.1.3.6.1.2.1.25.4.2.1.4.32134 = "" +.1.3.6.1.2.1.25.4.2.1.5.1 = "" +.1.3.6.1.2.1.25.4.2.1.5.2 = "" +.1.3.6.1.2.1.25.4.2.1.5.4 = "" +.1.3.6.1.2.1.25.4.2.1.5.6 = "" +.1.3.6.1.2.1.25.4.2.1.5.7 = "" +.1.3.6.1.2.1.25.4.2.1.5.8 = "" +.1.3.6.1.2.1.25.4.2.1.5.9 = "" +.1.3.6.1.2.1.25.4.2.1.5.10 = "" +.1.3.6.1.2.1.25.4.2.1.5.11 = "" +.1.3.6.1.2.1.25.4.2.1.5.12 = "" +.1.3.6.1.2.1.25.4.2.1.5.13 = "" +.1.3.6.1.2.1.25.4.2.1.5.14 = "" +.1.3.6.1.2.1.25.4.2.1.5.16 = "" +.1.3.6.1.2.1.25.4.2.1.5.17 = "" +.1.3.6.1.2.1.25.4.2.1.5.18 = "" +.1.3.6.1.2.1.25.4.2.1.5.258 = "" +.1.3.6.1.2.1.25.4.2.1.5.259 = "" +.1.3.6.1.2.1.25.4.2.1.5.261 = "" +.1.3.6.1.2.1.25.4.2.1.5.262 = "" +.1.3.6.1.2.1.25.4.2.1.5.264 = "" +.1.3.6.1.2.1.25.4.2.1.5.288 = "" +.1.3.6.1.2.1.25.4.2.1.5.307 = "" +.1.3.6.1.2.1.25.4.2.1.5.313 = "" +.1.3.6.1.2.1.25.4.2.1.5.412 = "" +.1.3.6.1.2.1.25.4.2.1.5.1150 = "" +.1.3.6.1.2.1.25.4.2.1.5.1151 = "" +.1.3.6.1.2.1.25.4.2.1.5.1154 = "" +.1.3.6.1.2.1.25.4.2.1.5.1155 = "" +.1.3.6.1.2.1.25.4.2.1.5.1169 = "" +.1.3.6.1.2.1.25.4.2.1.5.1170 = "" +.1.3.6.1.2.1.25.4.2.1.5.1173 = "" +.1.3.6.1.2.1.25.4.2.1.5.1174 = "" +.1.3.6.1.2.1.25.4.2.1.5.1312 = "" +.1.3.6.1.2.1.25.4.2.1.5.1313 = "" +.1.3.6.1.2.1.25.4.2.1.5.1426 = "" +.1.3.6.1.2.1.25.4.2.1.5.1449 = "" +.1.3.6.1.2.1.25.4.2.1.5.1454 = "" +.1.3.6.1.2.1.25.4.2.1.5.1661 = "" +.1.3.6.1.2.1.25.4.2.1.5.1662 = "" +.1.3.6.1.2.1.25.4.2.1.5.2774 = "" +.1.3.6.1.2.1.25.4.2.1.5.2956 = "" +.1.3.6.1.2.1.25.4.2.1.5.2957 = "" +.1.3.6.1.2.1.25.4.2.1.5.2969 = "" +.1.3.6.1.2.1.25.4.2.1.5.2988 = "" +.1.3.6.1.2.1.25.4.2.1.5.3008 = "" +.1.3.6.1.2.1.25.4.2.1.5.3027 = "" +.1.3.6.1.2.1.25.4.2.1.5.3028 = "" +.1.3.6.1.2.1.25.4.2.1.5.3087 = STRING: "/usr/sbin/chk_usb_hub_lost.sh" +.1.3.6.1.2.1.25.4.2.1.5.3229 = STRING: "-n config" +.1.3.6.1.2.1.25.4.2.1.5.3234 = STRING: "-n config -s /var/run/xmldb_sock_wto" +.1.3.6.1.2.1.25.4.2.1.5.3254 = "" +.1.3.6.1.2.1.25.4.2.1.5.3292 = "" +.1.3.6.1.2.1.25.4.2.1.5.3310 = "" +.1.3.6.1.2.1.25.4.2.1.5.3413 = "" +.1.3.6.1.2.1.25.4.2.1.5.3414 = "" +.1.3.6.1.2.1.25.4.2.1.5.3487 = "" +.1.3.6.1.2.1.25.4.2.1.5.3541 = "" +.1.3.6.1.2.1.25.4.2.1.5.3803 = "" +.1.3.6.1.2.1.25.4.2.1.5.3816 = "" +.1.3.6.1.2.1.25.4.2.1.5.3833 = "" +.1.3.6.1.2.1.25.4.2.1.5.3922 = "" +.1.3.6.1.2.1.25.4.2.1.5.3944 = "" +.1.3.6.1.2.1.25.4.2.1.5.3945 = "" +.1.3.6.1.2.1.25.4.2.1.5.3959 = "" +.1.3.6.1.2.1.25.4.2.1.5.3960 = "" +.1.3.6.1.2.1.25.4.2.1.5.3964 = "" +.1.3.6.1.2.1.25.4.2.1.5.3965 = "" +.1.3.6.1.2.1.25.4.2.1.5.3969 = "" +.1.3.6.1.2.1.25.4.2.1.5.3970 = "" +.1.3.6.1.2.1.25.4.2.1.5.3974 = "" +.1.3.6.1.2.1.25.4.2.1.5.3975 = "" +.1.3.6.1.2.1.25.4.2.1.5.3987 = "" +.1.3.6.1.2.1.25.4.2.1.5.4007 = STRING: "-v bond0 /usr/share/udhcpc/zcip.script" +.1.3.6.1.2.1.25.4.2.1.5.4008 = STRING: "-R -r 10.1.100.6 -i bond0 -x hostname:NAS4100-bck -p /var/run/udhcpc0.pid -s /usr/share/udhcpc/default.script -b" +.1.3.6.1.2.1.25.4.2.1.5.4079 = "" +.1.3.6.1.2.1.25.4.2.1.5.4082 = STRING: "-n config -s /var/run/xmldb_sock_sysinfo -p /var/run/xmldb_sock_sysinfo_config.pid" +.1.3.6.1.2.1.25.4.2.1.5.4382 = STRING: "-config=/etc/wd/BWZE-thermal.xml" +.1.3.6.1.2.1.25.4.2.1.5.4383 = STRING: "--config-file=/etc/dbus-1/system.conf" +.1.3.6.1.2.1.25.4.2.1.5.4388 = "" +.1.3.6.1.2.1.25.4.2.1.5.4616 = STRING: "-f /usr/local/apache2/conf/httpd.conf -k graceful" +.1.3.6.1.2.1.25.4.2.1.5.4688 = "" +.1.3.6.1.2.1.25.4.2.1.5.4693 = STRING: "-D" +.1.3.6.1.2.1.25.4.2.1.5.4706 = STRING: "-D" +.1.3.6.1.2.1.25.4.2.1.5.4717 = STRING: "-D" +.1.3.6.1.2.1.25.4.2.1.5.4742 = STRING: "/usr/bin/wsdd -w WGCC" +.1.3.6.1.2.1.25.4.2.1.5.4796 = STRING: "bond0" +.1.3.6.1.2.1.25.4.2.1.5.4879 = STRING: "0 c" +.1.3.6.1.2.1.25.4.2.1.5.5099 = "" +.1.3.6.1.2.1.25.4.2.1.5.5101 = "" +.1.3.6.1.2.1.25.4.2.1.5.5102 = "" +.1.3.6.1.2.1.25.4.2.1.5.5103 = "" +.1.3.6.1.2.1.25.4.2.1.5.5164 = "" +.1.3.6.1.2.1.25.4.2.1.5.5233 = STRING: "-n config -s /var/run/xmldb_sock_vv" +.1.3.6.1.2.1.25.4.2.1.5.5240 = STRING: "-configPath /etc/nasAdmin.toml" +.1.3.6.1.2.1.25.4.2.1.5.5245 = "" +.1.3.6.1.2.1.25.4.2.1.5.5304 = "" +.1.3.6.1.2.1.25.4.2.1.5.5312 = STRING: "-S" +.1.3.6.1.2.1.25.4.2.1.5.5317 = STRING: "-n 2 /var/log/apache2/web_error.log 256K" +.1.3.6.1.2.1.25.4.2.1.5.5321 = STRING: "-p /usr/local/sbin/rotateApache.sh -n 2 /var/log/apache2/access.log 200K" +.1.3.6.1.2.1.25.4.2.1.5.5325 = STRING: "-f /usr/local/apache2/conf/httpd.conf -k graceful" +.1.3.6.1.2.1.25.4.2.1.5.5327 = STRING: "-f /usr/local/apache2/conf/httpd.conf -k graceful" +.1.3.6.1.2.1.25.4.2.1.5.5365 = STRING: "-f" +.1.3.6.1.2.1.25.4.2.1.5.5390 = "" +.1.3.6.1.2.1.25.4.2.1.5.5409 = "" +.1.3.6.1.2.1.25.4.2.1.5.5467 = STRING: "-n config -s /var/run/xmldb_sock_iscsi -p /var/run/xmldb_sock_iscsi_config.pid" +.1.3.6.1.2.1.25.4.2.1.5.7890 = "" +.1.3.6.1.2.1.25.4.2.1.5.7891 = "" +.1.3.6.1.2.1.25.4.2.1.5.8065 = STRING: "-webdir /etc/upnp" +.1.3.6.1.2.1.25.4.2.1.5.8090 = "" +.1.3.6.1.2.1.25.4.2.1.5.8163 = STRING: "-D" +.1.3.6.1.2.1.25.4.2.1.5.8184 = "" +.1.3.6.1.2.1.25.4.2.1.5.8190 = "" +.1.3.6.1.2.1.25.4.2.1.5.8255 = STRING: "-C -c /etc/snmpd.conf" +.1.3.6.1.2.1.25.4.2.1.5.8278 = "" +.1.3.6.1.2.1.25.4.2.1.5.8281 = "" +.1.3.6.1.2.1.25.4.2.1.5.8282 = "" +.1.3.6.1.2.1.25.4.2.1.5.8283 = "" +.1.3.6.1.2.1.25.4.2.1.5.8284 = "" +.1.3.6.1.2.1.25.4.2.1.5.8285 = "" +.1.3.6.1.2.1.25.4.2.1.5.8286 = "" +.1.3.6.1.2.1.25.4.2.1.5.8287 = "" +.1.3.6.1.2.1.25.4.2.1.5.8288 = "" +.1.3.6.1.2.1.25.4.2.1.5.8289 = "" +.1.3.6.1.2.1.25.4.2.1.5.8291 = "" +.1.3.6.1.2.1.25.4.2.1.5.8293 = "" +.1.3.6.1.2.1.25.4.2.1.5.8347 = "" +.1.3.6.1.2.1.25.4.2.1.5.8478 = STRING: "-outputLog /var/log/restsdk-server-output.log -crashLog /var/log/restsdk-server-crash.log restsdk-server -minimal -configPath /u" +.1.3.6.1.2.1.25.4.2.1.5.8484 = STRING: "-minimal -configPath /usr/local/modules/restsdk/etc/restsdk-server.toml -crashLog /var/log/restsdk-server-crash.log" +.1.3.6.1.2.1.25.4.2.1.5.8764 = "" +.1.3.6.1.2.1.25.4.2.1.5.9086 = STRING: "-outputLog /var/log/otaclient-output.log -crashLog /var/log/otaclient-crash.log otaclient -configPath /usr/local/modules/otaclie" +.1.3.6.1.2.1.25.4.2.1.5.9096 = STRING: "-configPath /usr/local/modules/otaclient/etc/otaclient.toml -crashLog /var/log/otaclient-crash.log" +.1.3.6.1.2.1.25.4.2.1.5.9220 = STRING: "-n config -s /var/run/xmldb_sock_usbdev_info" +.1.3.6.1.2.1.25.4.2.1.5.9278 = "" +.1.3.6.1.2.1.25.4.2.1.5.12569 = "" +.1.3.6.1.2.1.25.4.2.1.5.14858 = STRING: "-a -w /var/log/atop/atop_current 60" +.1.3.6.1.2.1.25.4.2.1.5.23728 = "" +.1.3.6.1.2.1.25.4.2.1.5.24846 = "" +.1.3.6.1.2.1.25.4.2.1.5.28769 = "" +.1.3.6.1.2.1.25.4.2.1.5.31640 = "" +.1.3.6.1.2.1.25.4.2.1.5.31658 = "" +.1.3.6.1.2.1.25.4.2.1.5.31817 = STRING: "5" +.1.3.6.1.2.1.25.4.2.1.5.32134 = "" +.1.3.6.1.2.1.25.4.2.1.6.1 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.2 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.4 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.6 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.7 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.9 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.10 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.11 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.12 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.13 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.14 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.16 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.17 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.18 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.258 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.259 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.261 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.262 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.264 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.288 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.307 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.313 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.412 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1150 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1151 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1154 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1155 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1169 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1170 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1173 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1174 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1312 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1313 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1426 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1449 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1454 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1661 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.1662 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.2774 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.2956 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.2957 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.2969 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.2988 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3008 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3027 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3028 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3087 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3229 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3234 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3254 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3292 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3310 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3413 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3414 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3487 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3541 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3803 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3816 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3833 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.3922 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3944 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3945 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3959 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3960 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3964 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3965 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3969 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3970 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3974 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3975 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.3987 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.4007 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4008 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4079 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4082 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4382 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4383 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4388 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4616 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4688 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4693 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4706 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4717 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4742 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4796 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.4879 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5099 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5101 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5102 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5103 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5164 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5233 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5240 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5245 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5304 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.5312 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5317 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5321 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5325 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5327 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5365 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5390 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5409 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.5467 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.7890 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.7891 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8065 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8090 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8163 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8184 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8190 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8255 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8278 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8281 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8282 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8283 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8284 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8285 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8286 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8287 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8288 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8289 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.8291 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8293 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8347 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8478 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8484 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.8764 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.9086 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.9096 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.9220 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.9278 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.12569 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.14858 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.23728 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.24846 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.28769 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.31640 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.31658 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.6.31817 = INTEGER: application(4) +.1.3.6.1.2.1.25.4.2.1.6.32134 = INTEGER: operatingSystem(2) +.1.3.6.1.2.1.25.4.2.1.7.1 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.2 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.6 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.7 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.9 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.10 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.11 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.12 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.13 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.14 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.16 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.17 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.18 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.258 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.259 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.261 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.262 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.264 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.288 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.307 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.313 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.412 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1150 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1151 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1154 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1155 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1169 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1170 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1173 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1174 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1312 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1313 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1426 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1449 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1454 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.1661 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.1662 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.2774 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.2956 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.2957 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.2969 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.2988 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3008 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3027 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3028 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3087 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3229 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3234 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3254 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3292 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3310 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3413 = INTEGER: running(1) +.1.3.6.1.2.1.25.4.2.1.7.3414 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3487 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3541 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3803 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3816 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3833 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3922 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3944 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3945 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3959 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3960 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3964 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3965 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3969 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3970 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3974 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.3975 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.3987 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4007 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4008 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4079 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4082 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4382 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4383 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4388 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4616 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4688 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4693 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4706 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4717 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4742 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4796 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.4879 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5099 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5101 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5102 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5103 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5164 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5233 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5240 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5245 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5304 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.5312 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5317 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5321 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5325 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5327 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5365 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5390 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5409 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.5467 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.7890 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.7891 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.8065 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8090 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8163 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8184 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8190 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8255 = INTEGER: running(1) +.1.3.6.1.2.1.25.4.2.1.7.8278 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8281 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8282 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8283 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8284 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8285 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8286 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8287 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8288 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8289 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8291 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8293 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8347 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8478 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8484 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.8764 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.9086 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.9096 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.9220 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.9278 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.12569 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.14858 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.23728 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.24846 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.28769 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.31640 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.31658 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.4.2.1.7.31817 = INTEGER: runnable(2) +.1.3.6.1.2.1.25.4.2.1.7.32134 = INTEGER: invalid(4) +.1.3.6.1.2.1.25.5.1.1.1.1 = INTEGER: 316 +.1.3.6.1.2.1.25.5.1.1.1.2 = INTEGER: 11 +.1.3.6.1.2.1.25.5.1.1.1.4 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.6 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.7 = INTEGER: 1658 +.1.3.6.1.2.1.25.5.1.1.1.8 = INTEGER: 11369 +.1.3.6.1.2.1.25.5.1.1.1.9 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.10 = INTEGER: 982 +.1.3.6.1.2.1.25.5.1.1.1.11 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.12 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.13 = INTEGER: 987 +.1.3.6.1.2.1.25.5.1.1.1.14 = INTEGER: 2082 +.1.3.6.1.2.1.25.5.1.1.1.16 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.17 = INTEGER: 1 +.1.3.6.1.2.1.25.5.1.1.1.18 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.258 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.259 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.261 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.262 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.264 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.288 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.307 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.313 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.412 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1150 = INTEGER: 3 +.1.3.6.1.2.1.25.5.1.1.1.1151 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1154 = INTEGER: 19 +.1.3.6.1.2.1.25.5.1.1.1.1155 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1169 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1170 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1173 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1174 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1312 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1313 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1426 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.1449 = INTEGER: 1 +.1.3.6.1.2.1.25.5.1.1.1.1454 = INTEGER: 1 +.1.3.6.1.2.1.25.5.1.1.1.1661 = INTEGER: 17 +.1.3.6.1.2.1.25.5.1.1.1.1662 = INTEGER: 73 +.1.3.6.1.2.1.25.5.1.1.1.2774 = INTEGER: 29 +.1.3.6.1.2.1.25.5.1.1.1.2956 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.2957 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.2969 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.2988 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3008 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3027 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3028 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3087 = INTEGER: 3192 +.1.3.6.1.2.1.25.5.1.1.1.3229 = INTEGER: 13758 +.1.3.6.1.2.1.25.5.1.1.1.3234 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3254 = INTEGER: 1 +.1.3.6.1.2.1.25.5.1.1.1.3292 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3310 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3413 = INTEGER: 74551 +.1.3.6.1.2.1.25.5.1.1.1.3414 = INTEGER: 4027 +.1.3.6.1.2.1.25.5.1.1.1.3487 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3541 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3803 = INTEGER: 278 +.1.3.6.1.2.1.25.5.1.1.1.3816 = INTEGER: 1150 +.1.3.6.1.2.1.25.5.1.1.1.3833 = INTEGER: 31 +.1.3.6.1.2.1.25.5.1.1.1.3922 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3944 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3945 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3959 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3960 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3964 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3965 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3969 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3970 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3974 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3975 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.3987 = INTEGER: 88 +.1.3.6.1.2.1.25.5.1.1.1.4007 = INTEGER: 9723 +.1.3.6.1.2.1.25.5.1.1.1.4008 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.4079 = INTEGER: 8701 +.1.3.6.1.2.1.25.5.1.1.1.4082 = INTEGER: 9466 +.1.3.6.1.2.1.25.5.1.1.1.4382 = INTEGER: 21536 +.1.3.6.1.2.1.25.5.1.1.1.4383 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.4388 = INTEGER: 64453 +.1.3.6.1.2.1.25.5.1.1.1.4616 = INTEGER: 1221 +.1.3.6.1.2.1.25.5.1.1.1.4688 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.4693 = INTEGER: 102 +.1.3.6.1.2.1.25.5.1.1.1.4706 = INTEGER: 29 +.1.3.6.1.2.1.25.5.1.1.1.4717 = INTEGER: 4134 +.1.3.6.1.2.1.25.5.1.1.1.4742 = INTEGER: 213 +.1.3.6.1.2.1.25.5.1.1.1.4796 = INTEGER: 35 +.1.3.6.1.2.1.25.5.1.1.1.4879 = INTEGER: 5918 +.1.3.6.1.2.1.25.5.1.1.1.5099 = INTEGER: 889 +.1.3.6.1.2.1.25.5.1.1.1.5101 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5102 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5103 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5164 = INTEGER: 5672 +.1.3.6.1.2.1.25.5.1.1.1.5233 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5240 = INTEGER: 4943 +.1.3.6.1.2.1.25.5.1.1.1.5245 = INTEGER: 334347 +.1.3.6.1.2.1.25.5.1.1.1.5304 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5312 = INTEGER: 168 +.1.3.6.1.2.1.25.5.1.1.1.5317 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5321 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5325 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5327 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5365 = INTEGER: 2 +.1.3.6.1.2.1.25.5.1.1.1.5390 = INTEGER: 33413 +.1.3.6.1.2.1.25.5.1.1.1.5409 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.5467 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.7890 = INTEGER: 19 +.1.3.6.1.2.1.25.5.1.1.1.7891 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8065 = INTEGER: 7738 +.1.3.6.1.2.1.25.5.1.1.1.8090 = INTEGER: 16443 +.1.3.6.1.2.1.25.5.1.1.1.8163 = INTEGER: 28 +.1.3.6.1.2.1.25.5.1.1.1.8184 = INTEGER: 25 +.1.3.6.1.2.1.25.5.1.1.1.8190 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8255 = INTEGER: 17575 +.1.3.6.1.2.1.25.5.1.1.1.8278 = INTEGER: 33 +.1.3.6.1.2.1.25.5.1.1.1.8281 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8282 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8283 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8284 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8285 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8286 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8287 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8288 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8289 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8291 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8293 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.8347 = INTEGER: 26 +.1.3.6.1.2.1.25.5.1.1.1.8478 = INTEGER: 27 +.1.3.6.1.2.1.25.5.1.1.1.8484 = INTEGER: 38350 +.1.3.6.1.2.1.25.5.1.1.1.8764 = INTEGER: 44 +.1.3.6.1.2.1.25.5.1.1.1.9086 = INTEGER: 24 +.1.3.6.1.2.1.25.5.1.1.1.9096 = INTEGER: 2689 +.1.3.6.1.2.1.25.5.1.1.1.9220 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.9278 = INTEGER: 15947 +.1.3.6.1.2.1.25.5.1.1.1.12569 = INTEGER: 738 +.1.3.6.1.2.1.25.5.1.1.1.14858 = INTEGER: 1698 +.1.3.6.1.2.1.25.5.1.1.1.23728 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.24846 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.28769 = INTEGER: 13 +.1.3.6.1.2.1.25.5.1.1.1.31640 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.31658 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.31817 = INTEGER: 0 +.1.3.6.1.2.1.25.5.1.1.1.32134 = INTEGER: 10 +.1.3.6.1.2.1.25.5.1.1.2.1 = INTEGER: 480 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.6 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.7 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.9 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.10 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.11 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.12 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.13 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.14 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.16 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.17 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.18 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.258 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.259 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.261 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.262 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.264 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.288 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.307 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.313 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.412 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1150 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1151 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1154 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1155 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1169 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1170 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1173 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1174 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1312 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1313 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1426 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1449 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1454 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1661 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.1662 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2774 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2956 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2957 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2969 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.2988 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3008 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3027 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3028 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3087 = INTEGER: 1664 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3229 = INTEGER: 640 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3234 = INTEGER: 608 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3254 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3292 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3310 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3413 = INTEGER: 1184 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3414 = INTEGER: 1888 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3487 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3541 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3803 = INTEGER: 704 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3816 = INTEGER: 576 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3833 = INTEGER: 1504 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3922 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3944 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3945 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3959 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3960 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3964 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3965 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3969 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3970 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3974 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3975 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.3987 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4007 = INTEGER: 704 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4008 = INTEGER: 288 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4079 = INTEGER: 3200 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4082 = INTEGER: 608 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4382 = INTEGER: 6304 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4383 = INTEGER: 1024 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4388 = INTEGER: 3744 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4616 = INTEGER: 25824 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4688 = INTEGER: 672 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4693 = INTEGER: 16320 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4706 = INTEGER: 6816 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4717 = INTEGER: 6848 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4742 = INTEGER: 14336 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4796 = INTEGER: 256 KBytes +.1.3.6.1.2.1.25.5.1.1.2.4879 = INTEGER: 2240 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5099 = INTEGER: 5728 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5101 = INTEGER: 5088 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5102 = INTEGER: 5088 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5103 = INTEGER: 5088 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5164 = INTEGER: 3456 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5233 = INTEGER: 608 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5240 = INTEGER: 21664 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5245 = INTEGER: 2240 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5304 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5312 = INTEGER: 2848 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5317 = INTEGER: 1280 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5321 = INTEGER: 1312 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5325 = INTEGER: 23808 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5327 = INTEGER: 25504 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5365 = INTEGER: 2592 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5390 = INTEGER: 3360 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5409 = INTEGER: 288 KBytes +.1.3.6.1.2.1.25.5.1.1.2.5467 = INTEGER: 608 KBytes +.1.3.6.1.2.1.25.5.1.1.2.7890 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.7891 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8065 = INTEGER: 960 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8090 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8163 = INTEGER: 6304 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8184 = INTEGER: 448 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8190 = INTEGER: 4320 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8255 = INTEGER: 7072 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8278 = INTEGER: 320 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8281 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8282 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8283 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8284 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8285 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8286 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8287 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8288 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8289 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8291 = INTEGER: 832 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8293 = INTEGER: 672 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8347 = INTEGER: 2528 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8478 = INTEGER: 928 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8484 = INTEGER: 69728 KBytes +.1.3.6.1.2.1.25.5.1.1.2.8764 = INTEGER: 2112 KBytes +.1.3.6.1.2.1.25.5.1.1.2.9086 = INTEGER: 928 KBytes +.1.3.6.1.2.1.25.5.1.1.2.9096 = INTEGER: 12640 KBytes +.1.3.6.1.2.1.25.5.1.1.2.9220 = INTEGER: 640 KBytes +.1.3.6.1.2.1.25.5.1.1.2.9278 = INTEGER: 2016 KBytes +.1.3.6.1.2.1.25.5.1.1.2.12569 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.14858 = INTEGER: 6464 KBytes +.1.3.6.1.2.1.25.5.1.1.2.23728 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.24846 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.28769 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.31640 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.31658 = INTEGER: 0 KBytes +.1.3.6.1.2.1.25.5.1.1.2.31817 = INTEGER: 736 KBytes +.1.3.6.1.2.1.25.5.1.1.2.32134 = INTEGER: 0 KBytes +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: lo +.1.3.6.1.2.1.31.1.1.1.1.2 = STRING: egiga1 +.1.3.6.1.2.1.31.1.1.1.1.3 = STRING: egiga0 +.1.3.6.1.2.1.31.1.1.1.1.4 = STRING: sit0 +.1.3.6.1.2.1.31.1.1.1.1.5 = STRING: ip6tnl0 +.1.3.6.1.2.1.31.1.1.1.1.6 = STRING: bond0 +.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.4 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.5 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.4 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.5 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.4 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.5 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.4 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.5 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 81761702 +.1.3.6.1.2.1.31.1.1.1.6.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.3 = Counter64: 1586053320 +.1.3.6.1.2.1.31.1.1.1.6.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.6 = Counter64: 1586053320 +.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 455712 +.1.3.6.1.2.1.31.1.1.1.7.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.3 = Counter64: 13491447 +.1.3.6.1.2.1.31.1.1.1.7.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.6 = Counter64: 13491447 +.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 81761702 +.1.3.6.1.2.1.31.1.1.1.10.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.3 = Counter64: 99788986 +.1.3.6.1.2.1.31.1.1.1.10.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.6 = Counter64: 99788986 +.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 455712 +.1.3.6.1.2.1.31.1.1.1.11.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.3 = Counter64: 256179 +.1.3.6.1.2.1.31.1.1.1.11.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.6 = Counter64: 256179 +.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 10 +.1.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.3 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.4 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.5 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.6 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.16.1 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.16.2 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.16.3 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.16.4 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.16.5 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.16.6 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.17.1 = INTEGER: false(2) +.1.3.6.1.2.1.31.1.1.1.17.2 = INTEGER: true(1) +.1.3.6.1.2.1.31.1.1.1.17.3 = INTEGER: true(1) +.1.3.6.1.2.1.31.1.1.1.17.4 = INTEGER: true(1) +.1.3.6.1.2.1.31.1.1.1.17.5 = INTEGER: true(1) +.1.3.6.1.2.1.31.1.1.1.17.6 = INTEGER: true(1) +.1.3.6.1.2.1.31.1.1.1.18.1 = STRING: +.1.3.6.1.2.1.31.1.1.1.18.2 = STRING: +.1.3.6.1.2.1.31.1.1.1.18.3 = STRING: +.1.3.6.1.2.1.31.1.1.1.18.4 = STRING: +.1.3.6.1.2.1.31.1.1.1.18.5 = STRING: +.1.3.6.1.2.1.31.1.1.1.18.6 = STRING: +.1.3.6.1.2.1.31.1.1.1.19.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.2 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.3 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.4 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.5 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.5.0 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.55.1.1.0 = INTEGER: notForwarding(2) +.1.3.6.1.2.1.55.1.2.0 = INTEGER: 64 +.1.3.6.1.2.1.88.1.1.1.0 = INTEGER: 1 seconds +.1.3.6.1.2.1.88.1.1.2.0 = Gauge32: 0 instances +.1.3.6.1.2.1.88.1.1.3.0 = Gauge32: 0 instances +.1.3.6.1.2.1.88.1.1.4.0 = Gauge32: 0 instances +.1.3.6.1.2.1.88.1.1.5.0 = Counter32: 0 instances +.1.3.6.1.2.1.88.1.2.1.0 = Counter32: 0 failures +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.1 = OID: .1.3.6.1.2.1.2.2.1.1 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.2 = OID: .1.3.6.1.2.1.2.2.1.7 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.3 = OID: .1.3.6.1.2.1.2.2.1.8 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.1 = OID: .1.3.6.1.2.1.88.2.1.1 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.2 = OID: .1.3.6.1.2.1.88.2.1.2 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.3 = OID: .1.3.6.1.2.1.88.2.1.3 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.4 = OID: .1.3.6.1.2.1.88.2.1.4 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.5 = OID: .1.3.6.1.2.1.88.2.1.6 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.1 = OID: .1.3.6.1.2.1.88.2.1.1 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.2 = OID: .1.3.6.1.2.1.88.2.1.2 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.3 = OID: .1.3.6.1.2.1.88.2.1.3 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.4 = OID: .1.3.6.1.2.1.88.2.1.4 +.1.3.6.1.2.1.88.1.3.1.1.3.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.5 = OID: .1.3.6.1.2.1.88.2.1.5 +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.1 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.2 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.3 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.1 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.2 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.3 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.4 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.5 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.1 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.2 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.3 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.4 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.4.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.5 = INTEGER: false(2) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.1 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.2 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.11.95.108.105.110.107.85.112.68.111.119.110.3 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.1 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.2 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.3 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.4 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.97.105.108.5 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.1 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.2 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.3 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.4 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.3.1.1.5.6.95.115.110.109.112.100.12.95.116.114.105.103.103.101.114.70.105.114.101.5 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = STRING: +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.4.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = INTEGER: true(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.2.1.5.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = INTEGER: active(1) +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = OID: .1.3.6.1.6.3.1.1.5.3 +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = OID: .1.3.6.1.6.3.1.1.5.4 +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = OID: .1.3.6.1.2.1.88.2.0.4 +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = OID: .1.3.6.1.2.1.88.2.0.3 +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = OID: .1.3.6.1.2.1.88.2.0.1 +.1.3.6.1.2.1.88.1.4.3.1.1.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = OID: .1.3.6.1.2.1.88.2.0.2 +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.2.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = STRING: _snmpd +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.108.105.110.107.68.111.119.110 = STRING: _linkUpDown +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.108.105.110.107.85.112 = STRING: _linkUpDown +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.105.108.117.114.101 = STRING: _triggerFail +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.97.108.108.105.110.103 = STRING: _triggerFire +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.70.105.114.101.100 = STRING: _triggerFire +.1.3.6.1.2.1.88.1.4.3.1.3.6.95.115.110.109.112.100.95.109.116.101.84.114.105.103.103.101.114.82.105.115.105.110.103 = STRING: _triggerFire +.1.3.6.1.2.1.92.1.1.1.0 = Gauge32: 1000 +.1.3.6.1.2.1.92.1.1.2.0 = Gauge32: 1440 minutes +.1.3.6.1.2.1.92.1.2.1.0 = Counter32: 0 notifications +.1.3.6.1.2.1.92.1.2.2.0 = Counter32: 0 notifications +.1.3.6.1.4.1.2021.4.1.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.4.2.0 = STRING: swap +.1.3.6.1.4.1.2021.4.3.0 = INTEGER: 1529792 kB +.1.3.6.1.4.1.2021.4.4.0 = INTEGER: 1529792 kB +.1.3.6.1.4.1.2021.4.5.0 = INTEGER: 2084096 kB +.1.3.6.1.4.1.2021.4.6.0 = INTEGER: 928288 kB +.1.3.6.1.4.1.2021.4.11.0 = INTEGER: 2458080 kB +.1.3.6.1.4.1.2021.4.12.0 = INTEGER: 16000 kB +.1.3.6.1.4.1.2021.4.13.0 = INTEGER: 18112 kB +.1.3.6.1.4.1.2021.4.14.0 = INTEGER: 112672 kB +.1.3.6.1.4.1.2021.4.15.0 = INTEGER: 467584 kB +.1.3.6.1.4.1.2021.4.100.0 = INTEGER: noError(0) +.1.3.6.1.4.1.2021.4.101.0 = STRING: +.1.3.6.1.4.1.2021.10.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.2021.10.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.2021.10.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.2021.10.1.2.1 = STRING: Load-1 +.1.3.6.1.4.1.2021.10.1.2.2 = STRING: Load-5 +.1.3.6.1.4.1.2021.10.1.2.3 = STRING: Load-15 +.1.3.6.1.4.1.2021.10.1.3.1 = STRING: 0.16 +.1.3.6.1.4.1.2021.10.1.3.2 = STRING: 0.14 +.1.3.6.1.4.1.2021.10.1.3.3 = STRING: 0.05 +.1.3.6.1.4.1.2021.10.1.4.1 = STRING: 12.00 +.1.3.6.1.4.1.2021.10.1.4.2 = STRING: 12.00 +.1.3.6.1.4.1.2021.10.1.4.3 = STRING: 12.00 +.1.3.6.1.4.1.2021.10.1.5.1 = INTEGER: 16 +.1.3.6.1.4.1.2021.10.1.5.2 = INTEGER: 14 +.1.3.6.1.4.1.2021.10.1.5.3 = INTEGER: 5 +.1.3.6.1.4.1.2021.10.1.6.1 = Opaque: Float: 0.160000 +.1.3.6.1.4.1.2021.10.1.6.2 = Opaque: Float: 0.140000 +.1.3.6.1.4.1.2021.10.1.6.3 = Opaque: Float: 0.050000 +.1.3.6.1.4.1.2021.10.1.100.1 = INTEGER: noError(0) +.1.3.6.1.4.1.2021.10.1.100.2 = INTEGER: noError(0) +.1.3.6.1.4.1.2021.10.1.100.3 = INTEGER: noError(0) +.1.3.6.1.4.1.2021.10.1.101.1 = STRING: +.1.3.6.1.4.1.2021.10.1.101.2 = STRING: +.1.3.6.1.4.1.2021.10.1.101.3 = STRING: +.1.3.6.1.4.1.2021.11.1.0 = INTEGER: 1 +.1.3.6.1.4.1.2021.11.2.0 = STRING: systemStats +.1.3.6.1.4.1.2021.11.3.0 = INTEGER: 0 kB +.1.3.6.1.4.1.2021.11.4.0 = INTEGER: 0 kB +.1.3.6.1.4.1.2021.11.5.0 = INTEGER: 0 blocks/s +.1.3.6.1.4.1.2021.11.6.0 = INTEGER: 0 blocks/s +.1.3.6.1.4.1.2021.11.7.0 = INTEGER: 609 interrupts/s +.1.3.6.1.4.1.2021.11.8.0 = INTEGER: 946 switches/s +.1.3.6.1.4.1.2021.11.9.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.11.10.0 = INTEGER: 2 +.1.3.6.1.4.1.2021.11.11.0 = INTEGER: 96 +.1.3.6.1.4.1.2021.11.50.0 = Counter32: 885359 +.1.3.6.1.4.1.2021.11.51.0 = Counter32: 620 +.1.3.6.1.4.1.2021.11.52.0 = Counter32: 2201429 +.1.3.6.1.4.1.2021.11.53.0 = Counter32: 84799525 +.1.3.6.1.4.1.2021.11.54.0 = Counter32: 31419 +.1.3.6.1.4.1.2021.11.55.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.56.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.57.0 = Counter32: 1818938 +.1.3.6.1.4.1.2021.11.58.0 = Counter32: 1764848 +.1.3.6.1.4.1.2021.11.59.0 = Counter32: 287768774 +.1.3.6.1.4.1.2021.11.60.0 = Counter32: 440573996 +.1.3.6.1.4.1.2021.11.61.0 = Counter32: 21063 +.1.3.6.1.4.1.2021.11.62.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.63.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.64.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.65.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.66.0 = Counter32: 0 +.1.3.6.1.4.1.2021.11.67.0 = INTEGER: 2 +.1.3.6.1.4.1.2021.13.14.1.0 = INTEGER: 1 +.1.3.6.1.4.1.2021.16.1.0 = INTEGER: 250 +.1.3.6.1.4.1.2021.100.1.0 = INTEGER: 1 +.1.3.6.1.4.1.2021.100.2.0 = STRING: 5.7.3 +.1.3.6.1.4.1.2021.100.3.0 = STRING: $Date$ +.1.3.6.1.4.1.2021.100.4.0 = STRING: Wed Sep 13 16:32:52 2023 +.1.3.6.1.4.1.2021.100.5.0 = STRING: $Id$ +.1.3.6.1.4.1.2021.100.6.0 = STRING: '--host=arm-linux-gnueabihf' '--with-cflags=-DPROJECT_NAME=\"Yellowstone\" -DPROJECT_Yellowstone=1 -DYellowstone=1 -DALPHA_CUSTOMIZE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DPROJECT_FEATURE_UNIC=1 -DPROJECT_FEATURE_CUSTOM_WD=1 -DRFC3339_TIMESTAMP=1 -DPROJECT_FEATURE_MCU_CHIP_69P803=1 -DPROJECT_FEATURE_BAYS=4 -DPROJECT_FEATURE_BAYS_4=1 -DPROJECT_FEATURE_VOLUME_ENCRYPTION=1 -DPROJECT_FEATURE_IPV6=1 -DPROJECT_FEATURE_VLAN=1 -DPROJECT_FEATURE_BONDING=1 -DPROJECT_FEATURE_OLED=1 -DPROJECT_FEATURE_SNMP=1 -DPROJECT_FEATURE_LAN_PORT=2 -DPROJECT_FEATURE_LAN_PORTS_2=1 -DPROJECT_FEATURE_LAN_PORT_SWITCH=1 -DPROJECT_FEATURE_BURN_IN_uP=1 -DPROJECT_FEATURE_UART_CMD_AUTO_POWER_RECOVERY=1 -DPROJECT_FEATURE_SCHEDULE_POWER_ON=1 -DPROJECT_FEATURE_MYSQL=1 -DPROJECT_FEATURE_ADS=1 -DPROJECT_FEATURE_CONFIG_FILESYSTEM=\"UBIFS\" -DPROJECT_FEATURE_CHIP_MV6820=1 -DPROJECT_FEATURE_REMOVE_REBOOT=1 -DPROJECT_FEATURE_ADDONS=1 -DPROJECT_FEATURE_USBMOUNT_C_CODE=1 -DPROJECT_FEATURE_SMARTTEST_ARG_NO_MARVELL=1 -DPROJECT_F +.1.3.6.1.4.1.2021.100.10.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.100.11.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.100.12.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.100.13.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.100.20.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.101.1.0 = INTEGER: 0 +.1.3.6.1.4.1.2021.101.2.0 = STRING: snmp +.1.3.6.1.4.1.2021.101.100.0 = INTEGER: noError(0) +.1.3.6.1.4.1.2021.101.101.0 = STRING: +.1.3.6.1.4.1.5127.1.1.1.6.1.1.0 = STRING: "1.00" +.1.3.6.1.4.1.5127.1.1.1.6.1.2.0 = STRING: "5.26.300 (5.26.300.0523.2023)" +.1.3.6.1.4.1.5127.1.1.1.6.1.3.0 = STRING: "NAS4100-bck" +.1.3.6.1.4.1.5127.1.1.1.6.1.5.0 = STRING: "1" +.1.3.6.1.4.1.5127.1.1.1.6.1.6.0 = STRING: "0" +.1.3.6.1.4.1.5127.1.1.1.6.1.7.0 = STRING: "Centigrade:34 Fahrenheit:93" +.1.3.6.1.4.1.5127.1.1.1.6.1.8.0 = STRING: "fan0: running " +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.2.1 = STRING: "Volume_1" +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.3.1 = STRING: "ext4" +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.4.1 = STRING: "raid10" +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.5.1 = STRING: "7.2T" +.1.3.6.1.4.1.5127.1.1.1.6.1.9.1.6.1 = STRING: "1.9T" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.1.4 = INTEGER: 4 +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.2.1 = STRING: "WD" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.2.2 = STRING: "WD" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.2.3 = STRING: "WD" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.2.4 = STRING: "WD" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.3.1 = STRING: "WDC WD40EFRX-68WT0N0" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.3.2 = STRING: "WDC WD40EFRX-68WT0N0" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.3.3 = STRING: "WDC WD40EFRX-68WT0N0" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.3.4 = STRING: "WDC WD4001FAEX-00MJRA0" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.4.1 = STRING: "WD-WCC4E6KA8V1T" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.4.2 = STRING: "WD-WCC4E0HRX2TN" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.4.3 = STRING: "WD-WCC4E7ZHA6A7" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.4.4 = STRING: "WD-WCC130163701" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.1 = STRING: "Centigrade:37" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.2 = STRING: "Centigrade:36" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.3 = STRING: "Centigrade:36" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.4 = STRING: "Centigrade:40" +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.6.1 = STRING: "4000 GB." +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.6.2 = STRING: "4000 GB." +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.6.3 = STRING: "4000 GB." +.1.3.6.1.4.1.5127.1.1.1.6.1.10.1.6.4 = STRING: "4000 GB." +.1.3.6.1.4.1.8072.1.2.1.1.4.0.1.0.0 = STRING: +.1.3.6.1.4.1.8072.1.2.1.1.4.0.1.1.0 = STRING: +.1.3.6.1.4.1.8072.1.2.1.1.4.0.1.2.0 = STRING: +.1.3.6.1.4.1.8072.1.2.1.1.4.0.7.1.3.6.1.2.1.4.127 = STRING: ip +.1.3.6.1.4.1.8072.1.2.1.1.4.0.7.1.3.6.1.2.1.5.127 = STRING: icmp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.7.1.3.6.1.2.1.6.127 = STRING: tcp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.7.1.3.6.1.2.1.7.127 = STRING: udp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.7.1.3.6.1.2.1.11.127 = STRING: mibII/snmp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.1.127 = STRING: mibII/sysDescr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.2.127 = STRING: mibII/sysObjectID +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.3.127 = STRING: mibII/sysUpTime +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.4.127 = STRING: mibII/sysContact +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.5.127 = STRING: mibII/sysName +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.6.127 = STRING: mibII/sysLocation +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.7.127 = STRING: mibII/sysServices +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.8.127 = STRING: mibII/sysORLastChange +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.1.9.127 = STRING: mibII/sysORTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.2.1.127 = STRING: if number +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.2.2.127 = STRING: ifTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.1.127 = STRING: ipForwarding +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.2.127 = STRING: ipDefaultTTL +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.25.127 = STRING: ipv6IpForwarding +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.26.127 = STRING: ipv6IpDefaultHopLimit +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.32.127 = STRING: ipAddressPrefixTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.33.127 = STRING: ipAddressSpinLock +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.34.127 = STRING: ipAddressTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.35.127 = STRING: inetNetToMediaTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.36.127 = STRING: ipv6ScopeZoneIndexTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.4.37.127 = STRING: ipDefaultRouterTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.5.29.127 = STRING: icmpStatsTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.5.30.127 = STRING: icmpMsgStatsTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.6.13.127 = STRING: tcpTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.6.19.127 = STRING: tcpConnectionTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.6.20.127 = STRING: tcpListenerTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.7.5.127 = STRING: udpTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.2.1.7.7.127 = STRING: udpEndpointTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.4.1.2021.4.127 = STRING: memory +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.4.1.2021.11.127 = STRING: vmstat +.1.3.6.1.4.1.8072.1.2.1.1.4.0.8.1.3.6.1.6.3.12.1.127 = STRING: target_counters +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.4.24.4.127 = STRING: ipCidrRouteTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.4.24.7.127 = STRING: inetCidrRouteTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.4.31.1.127 = STRING: ipSystemStatsTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.4.31.2.127 = STRING: ipIfStatsTableLastChanged +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.4.31.3.127 = STRING: ipIfStatsTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.11.30.0.127 = STRING: mibII/snmpEnableAuthenTraps +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.1.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.2.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.3.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.4.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.5.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.6.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.1.7.127 = STRING: host/hr_system +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.2.2.127 = STRING: host/hrMemorySize +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.4.2.127 = STRING: hrSWRunTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.5.1.127 = STRING: hrSWRunPerfTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.25.6.3.127 = STRING: hrSWInstalledTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.31.1.1.127 = STRING: ifXTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.31.1.5.127 = STRING: ifTableLastChanged +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.55.1.1.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.55.1.2.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.55.1.3.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.55.1.4.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.63.1.2.127 = STRING: schedTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.2.1.88.1.1.127 = STRING: mteResource +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.4.100.127 = STRING: memSwapError +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.4.101.127 = STRING: memSwapErrMsg +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.16.1.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.1.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.2.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.3.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.4.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.5.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.6.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.10.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.11.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.12.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.13.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.100.20.127 = STRING: ucd-snmp/versioninfo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.101.1.127 = STRING: ucd-snmp/errormib +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.101.2.127 = STRING: ucd-snmp/errormib +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.101.100.127 = STRING: ucd-snmp/errormib +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.4.1.2021.101.101.127 = STRING: ucd-snmp/errormib +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.6.3.11.2.1.127 = STRING: snmpMPDStats +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.6.3.12.1.1.127 = STRING: target/snmpTargetSpinLock +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.6.3.13.1.3.127 = STRING: snmpNotifyFilterTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.6.3.15.1.1.127 = STRING: usmStats +.1.3.6.1.4.1.8072.1.2.1.1.4.0.9.1.3.6.1.6.3.16.1.1.127 = STRING: vacm_context +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.3.1.1.1.127 = STRING: mibII/at +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.3.1.1.2.127 = STRING: mibII/at +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.3.1.1.3.127 = STRING: mibII/at +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.20.1.1.127 = STRING: mibII/ipaddr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.20.1.2.127 = STRING: mibII/ipaddr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.20.1.3.127 = STRING: mibII/ipaddr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.20.1.4.127 = STRING: mibII/ipaddr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.20.1.5.127 = STRING: mibII/ipaddr +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.1.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.2.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.3.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.4.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.5.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.6.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.7.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.8.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.9.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.10.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.11.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.12.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.21.1.13.127 = STRING: mibII/iproute +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.22.1.1.127 = STRING: mibII/ipmedia +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.22.1.2.127 = STRING: mibII/ipmedia +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.22.1.3.127 = STRING: mibII/ipmedia +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.22.1.4.127 = STRING: mibII/ipmedia +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.4.24.6.0.127 = STRING: route number +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.6.16.1.6.127 = STRING: mibII/ipv6tcp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.7.6.1.3.127 = STRING: mibII/ipv6udp +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.1.127 = STRING: mteTriggerFailures +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.2.127 = STRING: mteTriggerTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.3.127 = STRING: mteTriggerDeltaTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.4.127 = STRING: mteTriggerExistenceTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.5.127 = STRING: mteTriggerBooleanTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.2.6.127 = STRING: mteTriggerThresholdTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.3.1.127 = STRING: mteObjectsTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.4.2.127 = STRING: mteEventTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.4.3.127 = STRING: mteEventNotificationTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.88.1.4.4.127 = STRING: mteEventSetTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.92.1.3.1.127 = STRING: nlmLogTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.2.1.92.1.3.2.127 = STRING: nlmLogVariableTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.1.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.2.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.3.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.4.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.5.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.100.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.101.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.102.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.2.1.103.127 = STRING: ucd-snmp/proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.1.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.2.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.3.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.100.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.101.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.102.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.8.1.103.127 = STRING: ucd-extensible +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.1.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.2.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.3.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.4.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.5.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.6.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.7.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.8.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.9.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.10.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.11.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.12.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.13.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.14.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.15.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.16.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.100.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.9.1.101.127 = STRING: ucd-snmp/disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.1.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.2.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.3.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.4.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.5.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.6.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.100.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.10.1.101.127 = STRING: ucd-snmp/loadave +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.13.14.1.127 = STRING: dlmod +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.1.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.2.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.3.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.4.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.100.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.2021.15.1.101.127 = STRING: ucd-snmp/file +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.2.1.127 = STRING: nsModuleTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.5.1.127 = STRING: nsCacheTimeout +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.5.2.127 = STRING: nsCacheEnabled +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.5.3.127 = STRING: tzCacheTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.8.1.127 = STRING: nsTransactionTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.4.1.8072.1.9.1.127 = STRING: nsVacmAccessTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.1.1.6.1.127 = STRING: snmpSetSerialNo +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.10.2.1.1.127 = STRING: snmpv3/snmpEngine +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.10.2.1.2.127 = STRING: snmpv3/snmpEngine +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.10.2.1.3.127 = STRING: snmpv3/snmpEngine +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.10.2.1.4.127 = STRING: snmpv3/snmpEngine +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.15.1.2.1.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.10.1.3.6.1.6.3.16.1.5.1.127 = STRING: mibII/vacm:view +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.1.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.2.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.3.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.4.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.5.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.6.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.2.3.1.7.127 = STRING: host/hr_storage +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.1.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.2.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.3.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.4.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.5.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.2.1.6.127 = STRING: host/hr_device +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.3.1.1.127 = STRING: host/hr_proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.3.1.2.127 = STRING: host/hr_proc +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.4.1.1.127 = STRING: host/hr_network +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.5.1.1.127 = STRING: host/hr_print +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.5.1.2.127 = STRING: host/hr_print +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.6.1.1.127 = STRING: host/hr_disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.6.1.2.127 = STRING: host/hr_disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.6.1.3.127 = STRING: host/hr_disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.6.1.4.127 = STRING: host/hr_disk +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.7.1.1.127 = STRING: host/hr_partition +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.7.1.2.127 = STRING: host/hr_partition +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.7.1.3.127 = STRING: host/hr_partition +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.7.1.4.127 = STRING: host/hr_partition +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.7.1.5.127 = STRING: host/hr_partition +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.1.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.2.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.3.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.4.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.5.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.6.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.7.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.8.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.25.3.8.1.9.127 = STRING: host/hr_filesys +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.2.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.3.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.4.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.5.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.6.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.7.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.8.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.9.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.10.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.5.1.11.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.1.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.2.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.3.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.4.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.5.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.6.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.7.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.8.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.9.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.10.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.11.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.12.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.13.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.14.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.15.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.16.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.17.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.18.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.19.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.55.1.6.1.20.127 = STRING: mibII/ipv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.1.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.2.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.3.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.4.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.5.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.6.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.7.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.8.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.9.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.10.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.11.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.12.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.13.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.14.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.15.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.16.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.17.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.18.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.19.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.20.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.21.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.22.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.23.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.24.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.25.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.26.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.27.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.28.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.29.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.30.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.31.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.32.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.33.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.56.1.1.1.34.127 = STRING: mibII/icmpv6 +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.92.1.1.1.0.127 = STRING: nlmConfigGlobalEntryLimit +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.92.1.1.2.0.127 = STRING: nlmConfigGlobalAgeOut +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.92.1.2.1.0.127 = STRING: nlmStatsGlobalNotificationsLogged +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.2.1.92.1.2.2.0.127 = STRING: nlmStatsGlobalNotificationsBumped +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.1.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.2.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.3.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.4.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.5.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.6.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.7.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.8.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.9.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.10.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.11.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.100.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.2021.16.2.1.101.127 = STRING: ucd-snmp/logmatch +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.3.2.1.127 = STRING: nsExtendNumEntries +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.3.2.2.127 = STRING: nsExtendConfigTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.3.2.3.127 = STRING: nsExtendOut1Table +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.3.2.4.127 = STRING: nsExtendOut2Table +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.7.1.1.127 = STRING: nsDebugEnabled +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.7.1.2.127 = STRING: nsDebugOutputAll +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.7.1.3.127 = STRING: nsDebugDumpPdu +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.7.1.4.127 = STRING: tzDebugTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.4.1.8072.1.7.2.1.127 = STRING: tzLoggingTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.2.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.3.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.4.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.5.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.6.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.7.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.8.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.2.1.9.127 = STRING: target/snmpTargetAddrEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.2.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.3.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.4.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.5.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.6.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.12.1.3.1.7.127 = STRING: target/snmpTargetParamsEntry +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.1.1.2.127 = STRING: snmpNotifyTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.1.1.3.127 = STRING: snmpNotifyTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.1.1.4.127 = STRING: snmpNotifyTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.1.1.5.127 = STRING: snmpNotifyTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.2.1.1.127 = STRING: snmpNotifyFilterProfileTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.2.1.2.127 = STRING: snmpNotifyFilterProfileTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.13.1.2.1.3.127 = STRING: snmpNotifyFilterProfileTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.2.1.3.127 = STRING: mibII/vacm:sec2group +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.2.1.4.127 = STRING: mibII/vacm:sec2group +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.2.1.5.127 = STRING: mibII/vacm:sec2group +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.4.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.5.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.6.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.7.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.8.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.11.1.3.6.1.6.3.16.1.4.1.9.127 = STRING: mibII/vacm:access +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.4.1.2021.13.14.2.1.2.127 = STRING: dlmod +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.4.1.2021.13.14.2.1.3.127 = STRING: dlmod +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.4.1.2021.13.14.2.1.4.127 = STRING: dlmod +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.4.1.2021.13.14.2.1.5.127 = STRING: dlmod +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.3.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.4.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.5.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.6.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.7.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.8.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.9.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.10.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.11.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.12.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.15.1.2.2.1.13.127 = STRING: snmpv3/usmUser +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.16.1.5.2.1.3.127 = STRING: mibII/vacm:view +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.16.1.5.2.1.4.127 = STRING: mibII/vacm:view +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.16.1.5.2.1.5.127 = STRING: mibII/vacm:view +.1.3.6.1.4.1.8072.1.2.1.1.4.0.12.1.3.6.1.6.3.16.1.5.2.1.6.127 = STRING: mibII/vacm:view +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.1.127 = STRING: wdmycloudex4100AgentVer +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.2.127 = STRING: wdmycloudex4100SoftwareVersion +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.3.127 = STRING: wdmycloudex4100HostName +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.5.127 = STRING: wdmycloudex4100FTPServer +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.6.127 = STRING: wdmycloudex4100NetType +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.7.127 = STRING: wdmycloudex4100Temperature +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.8.127 = STRING: wdmycloudex4100FanStatus +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.9.127 = STRING: wdmycloudex4100VolumeTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.10.127 = STRING: wdmycloudex4100DiskTable +.1.3.6.1.4.1.8072.1.2.1.1.4.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.11.127 = STRING: wdmycloudex4100UPSTable +.1.3.6.1.4.1.8072.1.2.1.1.6.0.1.0.0 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.1.1.0 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.1.2.0 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.7.1.3.6.1.2.1.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.7.1.3.6.1.2.1.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.7.1.3.6.1.2.1.6.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.7.1.3.6.1.2.1.7.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.7.1.3.6.1.2.1.11.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.6.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.7.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.8.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.1.9.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.2.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.25.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.26.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.32.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.33.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.34.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.35.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.36.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.4.37.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.5.29.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.5.30.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.6.13.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.6.19.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.6.20.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.7.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.2.1.7.7.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.4.1.2021.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.4.1.2021.11.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.8.1.3.6.1.6.3.12.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.4.24.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.4.24.7.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.4.31.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.4.31.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.4.31.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.11.30.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.2.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.4.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.5.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.25.6.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.31.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.31.1.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.55.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.55.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.55.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.55.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.63.1.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.2.1.88.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.4.100.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.4.101.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.16.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.100.20.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.101.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.101.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.101.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.4.1.2021.101.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.6.3.11.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.6.3.12.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.6.3.13.1.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.6.3.15.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.9.1.3.6.1.6.3.16.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.3.1.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.3.1.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.3.1.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.20.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.20.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.20.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.20.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.20.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.21.1.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.22.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.22.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.22.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.22.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.4.24.6.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.6.16.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.7.6.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.2.6.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.3.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.4.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.4.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.88.1.4.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.92.1.3.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.2.1.92.1.3.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.102.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.2.1.103.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.102.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.8.1.103.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.14.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.15.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.16.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.9.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.10.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.13.14.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.2021.15.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.5.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.5.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.5.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.8.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.4.1.8072.1.9.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.1.1.6.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.10.2.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.10.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.10.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.10.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.15.1.2.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.10.1.3.6.1.6.3.16.1.5.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.2.3.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.2.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.3.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.3.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.4.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.5.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.5.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.6.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.6.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.6.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.6.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.7.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.7.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.7.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.7.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.7.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.25.3.8.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.5.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.14.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.15.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.16.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.17.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.18.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.19.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.55.1.6.1.20.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.14.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.15.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.16.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.17.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.18.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.19.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.20.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.21.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.22.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.23.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.24.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.25.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.26.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.27.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.28.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.29.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.30.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.31.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.32.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.33.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.56.1.1.1.34.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.92.1.1.1.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.92.1.1.2.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.92.1.2.1.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.2.1.92.1.2.2.0.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.100.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.2021.16.2.1.101.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.3.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.3.2.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.3.2.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.3.2.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.7.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.7.1.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.7.1.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.7.1.4.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.4.1.8072.1.7.2.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.2.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.12.1.3.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.1.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.1.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.1.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.1.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.2.1.1.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.13.1.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.11.1.3.6.1.6.3.16.1.4.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.4.1.2021.13.14.2.1.2.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.4.1.2021.13.14.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.4.1.2021.13.14.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.4.1.2021.13.14.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.7.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.8.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.9.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.10.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.11.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.12.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.15.1.2.2.1.13.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.16.1.5.2.1.3.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.16.1.5.2.1.4.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.16.1.5.2.1.5.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.12.1.3.6.1.6.3.16.1.5.2.1.6.127 = INTEGER: -1 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.1.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.2.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.3.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.5.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.6.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.7.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.8.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.9.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.10.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.2.1.1.6.0.13.1.3.6.1.4.1.5127.1.1.1.6.1.11.127 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.3.2.1.0 = INTEGER: 0 +.1.3.6.1.4.1.8072.1.5.1.0 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.2.0 = INTEGER: false(2) +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.2.2 = INTEGER: 3 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.24.4 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.24.7 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.31.1 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.31.3 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.32 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.34 = INTEGER: 30 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.35 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.36 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.4.37 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.5 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.5.29 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.5.30 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.6 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.6.13 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.6.19 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.6.20 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.7 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.7.5 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.7.7 = INTEGER: 60 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.25.4.2 = INTEGER: 30 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.25.6.3 = INTEGER: 30 +.1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.4.1.8072.1.31 = INTEGER: 5 +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.2.2 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.24.4 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.24.7 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.31.1 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.31.3 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.32 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.34 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.35 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.36 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.4.37 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.5 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.5.29 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.5.30 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.6 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.6.13 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.6.19 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.6.20 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.7 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.7.5 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.7.7 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.25.4.2 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.2.1.25.6.3 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.5.3.1.3.1.3.6.1.4.1.8072.1.31 = INTEGER: cached(4) +.1.3.6.1.4.1.8072.1.7.1.1.0 = INTEGER: false(2) +.1.3.6.1.4.1.8072.1.7.1.2.0 = INTEGER: false(2) +.1.3.6.1.4.1.8072.1.7.1.3.0 = INTEGER: false(2) +.1.3.6.1.4.1.8072.1.9.1.1.2.8.103.114.112.99.111.109.109.49.0.0.1.4.114.101.97.100 = INTEGER: prefix(2) +.1.3.6.1.4.1.8072.1.9.1.1.2.8.103.114.112.99.111.109.109.49.0.0.1.5.119.114.105.116.101 = INTEGER: prefix(2) +.1.3.6.1.4.1.8072.1.9.1.1.2.8.103.114.112.99.111.109.109.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: prefix(2) +.1.3.6.1.4.1.8072.1.9.1.1.2.9.115.110.109.112.95.118.50.95.49.0.0.1.4.114.101.97.100 = INTEGER: exact(1) +.1.3.6.1.4.1.8072.1.9.1.1.2.9.115.110.109.112.95.118.50.95.49.0.0.1.5.119.114.105.116.101 = INTEGER: exact(1) +.1.3.6.1.4.1.8072.1.9.1.1.2.9.115.110.109.112.95.118.50.95.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: exact(1) +.1.3.6.1.4.1.8072.1.9.1.1.3.8.103.114.112.99.111.109.109.49.0.0.1.4.114.101.97.100 = STRING: _all_ +.1.3.6.1.4.1.8072.1.9.1.1.3.8.103.114.112.99.111.109.109.49.0.0.1.5.119.114.105.116.101 = STRING: none +.1.3.6.1.4.1.8072.1.9.1.1.3.8.103.114.112.99.111.109.109.49.0.0.1.6.110.111.116.105.102.121 = STRING: none +.1.3.6.1.4.1.8072.1.9.1.1.3.9.115.110.109.112.95.118.50.95.49.0.0.1.4.114.101.97.100 = STRING: view_r_1 +.1.3.6.1.4.1.8072.1.9.1.1.3.9.115.110.109.112.95.118.50.95.49.0.0.1.5.119.114.105.116.101 = STRING: none +.1.3.6.1.4.1.8072.1.9.1.1.3.9.115.110.109.112.95.118.50.95.49.0.0.1.6.110.111.116.105.102.121 = STRING: none +.1.3.6.1.4.1.8072.1.9.1.1.4.8.103.114.112.99.111.109.109.49.0.0.1.4.114.101.97.100 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.4.8.103.114.112.99.111.109.109.49.0.0.1.5.119.114.105.116.101 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.4.8.103.114.112.99.111.109.109.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.4.9.115.110.109.112.95.118.50.95.49.0.0.1.4.114.101.97.100 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.4.9.115.110.109.112.95.118.50.95.49.0.0.1.5.119.114.105.116.101 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.4.9.115.110.109.112.95.118.50.95.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: permanent(4) +.1.3.6.1.4.1.8072.1.9.1.1.5.8.103.114.112.99.111.109.109.49.0.0.1.4.114.101.97.100 = INTEGER: active(1) +.1.3.6.1.4.1.8072.1.9.1.1.5.8.103.114.112.99.111.109.109.49.0.0.1.5.119.114.105.116.101 = INTEGER: active(1) +.1.3.6.1.4.1.8072.1.9.1.1.5.8.103.114.112.99.111.109.109.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: active(1) +.1.3.6.1.4.1.8072.1.9.1.1.5.9.115.110.109.112.95.118.50.95.49.0.0.1.4.114.101.97.100 = INTEGER: active(1) +.1.3.6.1.4.1.8072.1.9.1.1.5.9.115.110.109.112.95.118.50.95.49.0.0.1.5.119.114.105.116.101 = INTEGER: active(1) +.1.3.6.1.4.1.8072.1.9.1.1.5.9.115.110.109.112.95.118.50.95.49.0.0.1.6.110.111.116.105.102.121 = INTEGER: active(1) +.1.3.6.1.6.3.1.1.6.1.0 = INTEGER: 1970001940 +.1.3.6.1.6.3.10.2.1.1.0 = Hex-STRING: 80 00 1F 88 80 07 6C C5 5B 80 13 FB 64 +.1.3.6.1.6.3.10.2.1.2.0 = INTEGER: 1 +.1.3.6.1.6.3.10.2.1.3.0 = INTEGER: 439438 seconds +.1.3.6.1.6.3.10.2.1.4.0 = INTEGER: 1500 +.1.3.6.1.6.3.11.2.1.1.0 = Counter32: 0 +.1.3.6.1.6.3.11.2.1.2.0 = Counter32: 0 +.1.3.6.1.6.3.11.2.1.3.0 = Counter32: 0 +.1.3.6.1.6.3.12.1.1.0 = INTEGER: 0 +.1.3.6.1.6.3.12.1.4.0 = Counter32: 0 +.1.3.6.1.6.3.12.1.5.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.1.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.2.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.3.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.4.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.5.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.1.6.0 = Counter32: 0 +.1.3.6.1.6.3.15.1.2.1.0 = INTEGER: 0 +.1.3.6.1.6.3.16.1.1.1.1.0 = STRING: +.1.3.6.1.6.3.16.1.2.1.3.1.5.99.111.109.109.49 = STRING: grpcomm1 +.1.3.6.1.6.3.16.1.2.1.3.1.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = STRING: snmp_v2_1 +.1.3.6.1.6.3.16.1.2.1.3.2.5.99.111.109.109.49 = STRING: grpcomm1 +.1.3.6.1.6.3.16.1.2.1.3.2.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = STRING: snmp_v2_1 +.1.3.6.1.6.3.16.1.2.1.4.1.5.99.111.109.109.49 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.2.1.4.1.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.2.1.4.2.5.99.111.109.109.49 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.2.1.4.2.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.2.1.5.1.5.99.111.109.109.49 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.2.1.5.1.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.2.1.5.2.5.99.111.109.109.49 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.2.1.5.2.16.94.60.62.94.118.50.95.115.101.116.116.105.110.103.95.49 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.4.1.4.8.103.114.112.99.111.109.109.49.0.0.1 = INTEGER: prefix(2) +.1.3.6.1.6.3.16.1.4.1.4.9.115.110.109.112.95.118.50.95.49.0.0.1 = INTEGER: exact(1) +.1.3.6.1.6.3.16.1.4.1.5.8.103.114.112.99.111.109.109.49.0.0.1 = STRING: _all_ +.1.3.6.1.6.3.16.1.4.1.5.9.115.110.109.112.95.118.50.95.49.0.0.1 = STRING: view_r_1 +.1.3.6.1.6.3.16.1.4.1.6.8.103.114.112.99.111.109.109.49.0.0.1 = STRING: none +.1.3.6.1.6.3.16.1.4.1.6.9.115.110.109.112.95.118.50.95.49.0.0.1 = STRING: none +.1.3.6.1.6.3.16.1.4.1.7.8.103.114.112.99.111.109.109.49.0.0.1 = STRING: none +.1.3.6.1.6.3.16.1.4.1.7.9.115.110.109.112.95.118.50.95.49.0.0.1 = STRING: none +.1.3.6.1.6.3.16.1.4.1.8.8.103.114.112.99.111.109.109.49.0.0.1 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.4.1.8.9.115.110.109.112.95.118.50.95.49.0.0.1 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.4.1.9.8.103.114.112.99.111.109.109.49.0.0.1 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.4.1.9.9.115.110.109.112.95.118.50.95.49.0.0.1 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.1.0 = INTEGER: 0 +.1.3.6.1.6.3.16.1.5.2.1.3.5.95.97.108.108.95.1.0 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.5.95.97.108.108.95.1.1 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.5.95.97.108.108.95.1.2 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.6.95.110.111.110.101.95.1.0 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.6.95.110.111.110.101.95.1.1 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.6.95.110.111.110.101.95.1.2 = "" +.1.3.6.1.6.3.16.1.5.2.1.3.8.118.105.101.119.95.114.95.49.1.1 = "" +.1.3.6.1.6.3.16.1.5.2.1.4.5.95.97.108.108.95.1.0 = INTEGER: included(1) +.1.3.6.1.6.3.16.1.5.2.1.4.5.95.97.108.108.95.1.1 = INTEGER: included(1) +.1.3.6.1.6.3.16.1.5.2.1.4.5.95.97.108.108.95.1.2 = INTEGER: included(1) +.1.3.6.1.6.3.16.1.5.2.1.4.6.95.110.111.110.101.95.1.0 = INTEGER: excluded(2) +.1.3.6.1.6.3.16.1.5.2.1.4.6.95.110.111.110.101.95.1.1 = INTEGER: excluded(2) +.1.3.6.1.6.3.16.1.5.2.1.4.6.95.110.111.110.101.95.1.2 = INTEGER: excluded(2) +.1.3.6.1.6.3.16.1.5.2.1.4.8.118.105.101.119.95.114.95.49.1.1 = INTEGER: included(1) +.1.3.6.1.6.3.16.1.5.2.1.5.5.95.97.108.108.95.1.0 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.5.95.97.108.108.95.1.1 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.5.95.97.108.108.95.1.2 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.6.95.110.111.110.101.95.1.0 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.6.95.110.111.110.101.95.1.1 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.6.95.110.111.110.101.95.1.2 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.5.8.118.105.101.119.95.114.95.49.1.1 = INTEGER: permanent(4) +.1.3.6.1.6.3.16.1.5.2.1.6.5.95.97.108.108.95.1.0 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.5.95.97.108.108.95.1.1 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.5.95.97.108.108.95.1.2 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.6.95.110.111.110.101.95.1.0 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.6.95.110.111.110.101.95.1.1 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.6.95.110.111.110.101.95.1.2 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.8.118.105.101.119.95.114.95.49.1.1 = INTEGER: active(1) +.1.3.6.1.6.3.16.1.5.2.1.6.8.118.105.101.119.95.114.95.49.1.1 = No more variables left in this MIB View (It is past the end of the MIB tree) diff --git a/tests/storage/wd/nas/snmp/volumes.robot b/tests/storage/wd/nas/snmp/volumes.robot new file mode 100644 index 0000000000..e28a8bddff --- /dev/null +++ b/tests/storage/wd/nas/snmp/volumes.robot @@ -0,0 +1,33 @@ +*** Settings *** +Documentation Check WD (Western Digital) NAS in SNMP + +Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource + +Test Timeout 120s + + +*** Variables *** +${CMD} ${CENTREON_PLUGINS} --plugin=storage::wd::nas::snmp::plugin + +*** Test Cases *** +Volumes${tc} + [Tags] volumes storage snmp + ${command} Catenate + ... ${CMD} + ... --mode=volumes + ... --hostname=${HOSTNAME} + ... --snmp-version=${SNMPVERSION} + ... --snmp-port=${SNMPPORT} + ... --snmp-community=storage/wd/nas/snmp/nas-wd + ... ${extra_option} + + Ctn Run Command And Check Result As Strings ${command} ${expected_result} + + Examples: tc extra_option expected_result -- + ... 1 --filter-name OK: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;;0;100 + ... 2 --warning-space-usage-prct='50' WARNING: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;0:50;;0;100 + ... 3 --warning-space-usage='0' WARNING: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;0:0;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;;0;100 + ... 4 --warning-space-usage-free='0' WARNING: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;0:0;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;;0;100 + ... 5 --critical-space-usage-prct='50' CRITICAL: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;0:50;0;100 + ... 6 --critical-space-usage='0' CRITICAL: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;0:0;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;;0;100 + ... 7 --critical-space-usage-free='0' CRITICAL: volume 'Volume_1' space usage total: 7.20 TB used: 5.30 TB (73.61%) free: 1.90 TB (26.39%) | 'Volume_1#volume.space.usage.bytes'=5827411627212B;;;0;7916483719987.2 'Volume_1#volume.space.free.bytes'=2089072092774B;;0:0;0;7916483719987.2 'Volume_1#volume.space.usage.percentage'=73.61%;;;0;100 \ No newline at end of file