mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-09-26 03:08:39 +02:00
Release 20250300 (#5491)
This commit is contained in:
commit
0634714531
141
.github/actions/test-cpan-libs/action.yml
vendored
Normal file
141
.github/actions/test-cpan-libs/action.yml
vendored
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
name: "test-cpan-libs"
|
||||||
|
description: "Test packaged CPAN libraries"
|
||||||
|
inputs:
|
||||||
|
package_extension:
|
||||||
|
description: "The package extension (deb or rpm)"
|
||||||
|
required: true
|
||||||
|
distrib:
|
||||||
|
description: "The distribution name"
|
||||||
|
required: true
|
||||||
|
arch:
|
||||||
|
description: "The architecture (amd64 or arm64)"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- if: ${{ inputs.package_extension == 'rpm' }}
|
||||||
|
name: Install zstd, perl and Centreon repositories
|
||||||
|
run: |
|
||||||
|
dnf install -y zstd perl epel-release 'dnf-command(config-manager)' perl-App-cpanminus
|
||||||
|
dnf config-manager --set-enabled powertools || true # alma 8
|
||||||
|
dnf config-manager --set-enabled crb || true # alma 9
|
||||||
|
# Import Centreon GPG key
|
||||||
|
GPG_KEY_URL="https://yum-gpg.centreon.com/RPM-GPG-KEY-CES"
|
||||||
|
curl -sSL $GPG_KEY_URL -o RPM-GPG-KEY-CES
|
||||||
|
rpm --import RPM-GPG-KEY-CES
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- if: ${{ inputs.package_extension == 'deb' }}
|
||||||
|
name: Install zstd, perl and Centreon repositories
|
||||||
|
run: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y zstd perl wget gpg apt-utils procps build-essential cpanminus
|
||||||
|
wget -O- https://apt-key.centreon.com | gpg --dearmor | tee /etc/apt/trusted.gpg.d/centreon.gpg > /dev/null 2>&1
|
||||||
|
# Avoid apt to clean packages cache directory
|
||||||
|
rm -f /etc/apt/apt.conf.d/docker-clean
|
||||||
|
apt-get update
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Restore packages from cache
|
||||||
|
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
|
||||||
|
with:
|
||||||
|
path: ./*.${{ inputs.package_extension }}
|
||||||
|
key: ${{ github.sha }}-${{ github.run_id }}-${{ inputs.package_extension }}-${{ inputs.distrib }}
|
||||||
|
fail-on-cache-miss: true
|
||||||
|
|
||||||
|
- if: ${{ inputs.package_extension == 'rpm' }}
|
||||||
|
name: Check packages installation / uninstallation
|
||||||
|
run: |
|
||||||
|
error_log="install_error_${{ inputs.distrib }}_${{ inputs.arch }}.log"
|
||||||
|
for package in ./*.rpm; do
|
||||||
|
echo "Installing package: $package"
|
||||||
|
# List dependencies, and remove version and comparison operators
|
||||||
|
dependencies=$(rpm -qpR $package | sed 's/ [0-9.-]*\(\s\|$\)/ /g' | sed 's/ [<>!=]*\(\s\|$\)/ /g')
|
||||||
|
for dependency in $dependencies; do
|
||||||
|
# Skip non-perl dependencies
|
||||||
|
if [[ $dependency != perl* ]]; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
echo "Check dependency: $dependency"
|
||||||
|
# Update the dependency name to match the package name
|
||||||
|
dependency=$(echo $dependency | sed 's/(/-/g' | sed 's/)//g' | sed 's/::/-/g')
|
||||||
|
fi
|
||||||
|
# If the dependency has been built in the same workflow, install it
|
||||||
|
if [[ -n $(find . -maxdepth 1 -regex "\.\/$dependency-[0-9v].*\.rpm") ]]; then
|
||||||
|
echo "Installing dependency: $dependency"
|
||||||
|
error_output=$(dnf install -y ./$dependency*.rpm 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the dependency $dependency" >> $error_log; true; }
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Install package, then uninstall it with all his dependencies
|
||||||
|
echo "Package installation..."
|
||||||
|
error_output=$(dnf install -y $package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the package $package" >> $error_log; true; }
|
||||||
|
echo "Package installation done."
|
||||||
|
script_name=$(echo $package | tr '[:upper:]' '[:lower:]' | sed 's/\.\/perl-//' | sed 's/-[0-9\.-]*.el[0-9]..*.rpm//')
|
||||||
|
if [[ -f ./tests/cpan-libraries/$script_name.pl ]]; then
|
||||||
|
echo "Testing package..."
|
||||||
|
error_output=$(perl tests/cpan-libraries/$script_name.pl 2>&1) || { echo "$error_output" >> $error_log; echo "Error during the usage test of the package $package" >> $error_log; true; }
|
||||||
|
echo "Testing done."
|
||||||
|
else
|
||||||
|
echo "No test script found for the package $package"
|
||||||
|
fi
|
||||||
|
echo "Package uninstallation..."
|
||||||
|
error_output=$(dnf autoremove --setopt=keepcache=True -y $(echo $package | sed 's/_[0-9].*\.rpm//' | sed 's/.\///') 2>&1) || { echo "$error_output" >> $error_log; echo "Error during autoremove of the package $package" >> $error_log; true; }
|
||||||
|
echo "Package uninstallation done."
|
||||||
|
done
|
||||||
|
# If the file error_log exists and is not empty, the workflow is in error
|
||||||
|
if [[ -s $error_log ]]; then
|
||||||
|
cat $error_log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- if: ${{ inputs.package_extension == 'deb' }}
|
||||||
|
name: Check packages installation / uninstallation
|
||||||
|
run: |
|
||||||
|
error_log="install_error_${{ inputs.distrib }}_${{ inputs.arch }}.log"
|
||||||
|
for package in ./*.deb; do
|
||||||
|
# If the debian package name ends with amd64 or arm64, we only install it if the tested architecture is the same, otherwise we skip it
|
||||||
|
if [[ $package == *amd64.deb && ${{ inputs.arch }} != "amd64" || $package == *arm64.deb && ${{ inputs.arch }} != "arm64" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Installing package: $package"
|
||||||
|
# List dependencies
|
||||||
|
dependencies=$(dpkg-deb -I $package | grep Depends | sed 's/Depends: //' | sed 's/,//g' | sed 's/(\(.*\)//g') || { echo "$error_output" >> $error_log; echo "Error while listing dependencies of the package $package" >> $error_log; true; }
|
||||||
|
for dependency in $dependencies; do
|
||||||
|
# If the dependency exists in the Debian repository, don't check the local dependencies
|
||||||
|
dependency_info=$(apt-cache policy $dependency)
|
||||||
|
if [[ -n $dependency_info ]]; then
|
||||||
|
echo "Dependency $dependency exists in debian repository."
|
||||||
|
else
|
||||||
|
# If the dependency has been built in the same workflow, install it
|
||||||
|
for dependency_package in $(find . -maxdepth 1 -regex "\.\/${dependency}_[0-9].*all\.deb" -o -regex "\.\/${dependency}_[0-9].*${{ inputs.arch }}\.deb"); do
|
||||||
|
echo "Installing dependency: $dependency_package"
|
||||||
|
error_output=$(apt-get install -y ./$dependency_package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the dependency $dependency" >> $error_log; true; }
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Install package, then uninstall it with all his dependencies
|
||||||
|
echo "Package installation..."
|
||||||
|
error_output=$(apt-get install -y $package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the package $package" >> $error_log; true; }
|
||||||
|
echo "Package installation done."
|
||||||
|
script_name=$(echo $package | sed 's/.\/lib//' | sed 's/-perl_[0-9\.-]*-deb.*\.deb//')
|
||||||
|
if [[ -f ./tests/cpan-libraries/$script_name.pl ]]; then
|
||||||
|
echo "Testing package..."
|
||||||
|
error_output=$(perl tests/cpan-libraries/$script_name.pl 2>&1) || { echo "$error_output" >> $error_log; echo "Error during the usage test of the package $package" >> $error_log; true; }
|
||||||
|
echo "Testing done."
|
||||||
|
else
|
||||||
|
echo "No test script found for the package $package"
|
||||||
|
fi
|
||||||
|
echo "Package uninstallation..."
|
||||||
|
error_output=$(apt-get autoremove -y --purge $(echo $package | sed 's/_[0-9].*\.deb//' | sed 's/.\///') 2>&1) || { echo "$error_output" >> $error_log; echo "Error during autoremove of the package $package" >> $error_log; true; }
|
||||||
|
echo "Package uninstallation done."
|
||||||
|
done
|
||||||
|
# If the file error_log exists and is not empty, the workflow is in error
|
||||||
|
if [[ -s $error_log ]]; then
|
||||||
|
cat $error_log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@ -4,7 +4,7 @@ updates:
|
|||||||
directory: '/'
|
directory: '/'
|
||||||
schedule:
|
schedule:
|
||||||
interval: monthly
|
interval: monthly
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 50
|
||||||
labels:
|
labels:
|
||||||
- 'dependencies'
|
- 'dependencies'
|
||||||
- 'gha'
|
- 'gha'
|
||||||
|
@ -6,9 +6,9 @@ RUN bash -e <<EOF
|
|||||||
|
|
||||||
dnf install -y \
|
dnf install -y \
|
||||||
git \
|
git \
|
||||||
|
java-17-openjdk-devel \
|
||||||
wget \
|
wget \
|
||||||
zstd \
|
zstd
|
||||||
java-17-openjdk-devel
|
|
||||||
|
|
||||||
cd /usr/local/src
|
cd /usr/local/src
|
||||||
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
||||||
|
@ -6,9 +6,9 @@ RUN bash -e <<EOF
|
|||||||
|
|
||||||
dnf install -y \
|
dnf install -y \
|
||||||
git \
|
git \
|
||||||
|
java-17-openjdk-devel \
|
||||||
wget \
|
wget \
|
||||||
zstd \
|
zstd
|
||||||
java-17-openjdk-devel
|
|
||||||
|
|
||||||
cd /usr/local/src
|
cd /usr/local/src
|
||||||
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
||||||
|
@ -8,9 +8,9 @@ apt-get update
|
|||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git \
|
git \
|
||||||
zstd \
|
|
||||||
maven=3.8.7-1 \
|
maven=3.8.7-1 \
|
||||||
openjdk-17-jdk
|
openjdk-17-jdk \
|
||||||
|
zstd
|
||||||
|
|
||||||
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list
|
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ apt-get update
|
|||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git \
|
git \
|
||||||
zstd \
|
|
||||||
maven=3.6.3-5 \
|
maven=3.6.3-5 \
|
||||||
openjdk-17-jdk
|
openjdk-17-jdk \
|
||||||
|
zstd
|
||||||
|
|
||||||
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list
|
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ apt-get update
|
|||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git \
|
git \
|
||||||
|
openjdk-17-jdk \
|
||||||
wget \
|
wget \
|
||||||
zstd \
|
zstd
|
||||||
openjdk-17-jdk
|
|
||||||
|
|
||||||
cd /usr/local/src
|
cd /usr/local/src
|
||||||
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
|
||||||
|
4
.github/workflows/actionlint.yml
vendored
4
.github/workflows/actionlint.yml
vendored
@ -29,8 +29,8 @@ jobs:
|
|||||||
- name: Check workflow files
|
- name: Check workflow files
|
||||||
run: |
|
run: |
|
||||||
${{ steps.get_actionlint.outputs.executable }} \
|
${{ steps.get_actionlint.outputs.executable }} \
|
||||||
-ignore 'label "common" is unknown' \
|
-ignore 'label "centreon-common" is unknown' \
|
||||||
-ignore 'label "veracode" is unknown' \
|
-ignore 'label "centreon-collect-arm64" is unknown' \
|
||||||
-ignore '"github.head_ref" is potentially untrusted' \
|
-ignore '"github.head_ref" is potentially untrusted' \
|
||||||
-shellcheck= \
|
-shellcheck= \
|
||||||
-pyflakes= \
|
-pyflakes= \
|
||||||
|
2
.github/workflows/as400.yml
vendored
2
.github/workflows/as400.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
|||||||
get-environment:
|
get-environment:
|
||||||
uses: ./.github/workflows/get-environment.yml
|
uses: ./.github/workflows/get-environment.yml
|
||||||
with:
|
with:
|
||||||
version_file: as400/packaging/centreon-as400-daemon.yaml
|
version_file: as400/connector.as400/pom.xml
|
||||||
|
|
||||||
package:
|
package:
|
||||||
needs: [get-environment]
|
needs: [get-environment]
|
||||||
|
@ -45,7 +45,7 @@ jobs:
|
|||||||
- runner: ubuntu-22.04
|
- runner: ubuntu-22.04
|
||||||
dockerfile: packaging-plugins-bullseye
|
dockerfile: packaging-plugins-bullseye
|
||||||
image: packaging-plugins-bullseye
|
image: packaging-plugins-bullseye
|
||||||
- runner: ["self-hosted", "collect-arm64"]
|
- runner: centreon-collect-arm64
|
||||||
dockerfile: packaging-plugins-bullseye
|
dockerfile: packaging-plugins-bullseye
|
||||||
image: packaging-plugins-bullseye-arm64
|
image: packaging-plugins-bullseye-arm64
|
||||||
- runner: ubuntu-22.04
|
- runner: ubuntu-22.04
|
||||||
@ -86,7 +86,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
||||||
|
|
||||||
- uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
|
- uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
|
||||||
with:
|
with:
|
||||||
file: .github/docker/packaging/Dockerfile.${{ matrix.dockerfile }}
|
file: .github/docker/packaging/Dockerfile.${{ matrix.dockerfile }}
|
||||||
context: .
|
context: .
|
||||||
|
@ -39,7 +39,7 @@ jobs:
|
|||||||
- runner: ubuntu-24.04
|
- runner: ubuntu-24.04
|
||||||
dockerfile: bullseye
|
dockerfile: bullseye
|
||||||
image: bullseye
|
image: bullseye
|
||||||
- runner: ["self-hosted", "collect-arm64"]
|
- runner: centreon-collect-arm64
|
||||||
dockerfile: bullseye
|
dockerfile: bullseye
|
||||||
image: bullseye-arm64
|
image: bullseye-arm64
|
||||||
- runner: ubuntu-24.04
|
- runner: ubuntu-24.04
|
||||||
@ -71,7 +71,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
||||||
|
|
||||||
- uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
|
- uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
|
||||||
with:
|
with:
|
||||||
file: .github/docker/testing/Dockerfile.testing-plugins-${{ matrix.dockerfile }}
|
file: .github/docker/testing/Dockerfile.testing-plugins-${{ matrix.dockerfile }}
|
||||||
context: .
|
context: .
|
||||||
|
@ -39,7 +39,7 @@ jobs:
|
|||||||
- runner: ubuntu-22.04
|
- runner: ubuntu-22.04
|
||||||
dockerfile: bullseye
|
dockerfile: bullseye
|
||||||
image: bullseye
|
image: bullseye
|
||||||
- runner: ["self-hosted", "collect-arm64"]
|
- runner: centreon-collect-arm64
|
||||||
dockerfile: bullseye
|
dockerfile: bullseye
|
||||||
image: bullseye-arm64
|
image: bullseye-arm64
|
||||||
- runner: ubuntu-22.04
|
- runner: ubuntu-22.04
|
||||||
@ -71,7 +71,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
|
||||||
|
|
||||||
- uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
|
- uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
|
||||||
with:
|
with:
|
||||||
file: .github/docker/unit-tests/Dockerfile.unit-tests-${{ matrix.dockerfile }}
|
file: .github/docker/unit-tests/Dockerfile.unit-tests-${{ matrix.dockerfile }}
|
||||||
context: .
|
context: .
|
||||||
|
8
.github/workflows/get-environment.yml
vendored
8
.github/workflows/get-environment.yml
vendored
@ -134,7 +134,7 @@ jobs:
|
|||||||
- if: ${{ steps.has_skip_label.outputs.result == 'true' }}
|
- if: ${{ steps.has_skip_label.outputs.result == 'true' }}
|
||||||
name: Get push changes
|
name: Get push changes
|
||||||
id: get_push_changes
|
id: get_push_changes
|
||||||
uses: tj-actions/changed-files@bab30c2299617f6615ec02a68b9a40d10bd21366 # v45.0.5
|
uses: tj-actions/changed-files@d6e91a2266cdb9d62096cebf1e8546899c6aa18f # v45.0.6
|
||||||
with:
|
with:
|
||||||
since_last_remote_commit: true
|
since_last_remote_commit: true
|
||||||
json: true
|
json: true
|
||||||
@ -249,9 +249,11 @@ jobs:
|
|||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
|
const { execSync } = require('child_process');
|
||||||
let version = '';
|
let version = '';
|
||||||
|
if ('${{ inputs.version_file }}'.match(/pom\.xml$/)) {
|
||||||
if ('${{ steps.get_stability.outputs.stability }}' === 'testing') {
|
version = execSync(`grep -m 1 "<version>.*</version>" ${{ inputs.version_file }} | sed 's/.*<version>\\(.*\\)<\\/version>.*/\\1/'`).toString().trim();
|
||||||
|
} else if ('${{ steps.get_stability.outputs.stability }}' === 'testing') {
|
||||||
const branchName = "${{ github.head_ref || github.ref_name }}";
|
const branchName = "${{ github.head_ref || github.ref_name }}";
|
||||||
const matches = branchName.match(/^(?:release|hotfix)-(\d{8})$/);
|
const matches = branchName.match(/^(?:release|hotfix)-(\d{8})$/);
|
||||||
if (matches) {
|
if (matches) {
|
||||||
|
208
.github/workflows/perl-cpan-libraries.yml
vendored
208
.github/workflows/perl-cpan-libraries.yml
vendored
@ -43,6 +43,7 @@ jobs:
|
|||||||
"Config::AWS",
|
"Config::AWS",
|
||||||
"Convert::Binary::C",
|
"Convert::Binary::C",
|
||||||
"Convert::EBCDIC",
|
"Convert::EBCDIC",
|
||||||
|
"Crypt::Argon2",
|
||||||
"Crypt::Blowfish_PP",
|
"Crypt::Blowfish_PP",
|
||||||
"Crypt::OpenSSL::AES",
|
"Crypt::OpenSSL::AES",
|
||||||
"DataStruct::Flat",
|
"DataStruct::Flat",
|
||||||
@ -52,15 +53,20 @@ jobs:
|
|||||||
"Device::Modbus::RTU::Client",
|
"Device::Modbus::RTU::Client",
|
||||||
"Device::Modbus::TCP::Client",
|
"Device::Modbus::TCP::Client",
|
||||||
"Email::Send::SMTP::Gmail",
|
"Email::Send::SMTP::Gmail",
|
||||||
|
"Exporter::Tiny", # Required by JSON::Path: the version available in the official repositories doesn't work with the last version of JSON::Path
|
||||||
"FFI::CheckLib",
|
"FFI::CheckLib",
|
||||||
"FFI::Platypus",
|
"FFI::Platypus",
|
||||||
"File::SearchPath",
|
"File::SearchPath",
|
||||||
"HTTP::ProxyPAC",
|
"HTTP::ProxyPAC",
|
||||||
"JMX::Jmx4Perl",
|
"JMX::Jmx4Perl",
|
||||||
|
"JSON::Path",
|
||||||
|
"Libssh::Session",
|
||||||
|
"LV",
|
||||||
"Mojo::IOLoop::Signal",
|
"Mojo::IOLoop::Signal",
|
||||||
"MongoDB",
|
"MongoDB",
|
||||||
"MooseX::ClassAttribute",
|
"MooseX::ClassAttribute",
|
||||||
"Net::Amazon::Signature::V4",
|
"Net::Amazon::Signature::V4",
|
||||||
|
"Net::Curl",
|
||||||
"Net::DHCP",
|
"Net::DHCP",
|
||||||
"Net::FTPSSL",
|
"Net::FTPSSL",
|
||||||
"Net::HTTPTunnel",
|
"Net::HTTPTunnel",
|
||||||
@ -93,6 +99,7 @@ jobs:
|
|||||||
- version: ""
|
- version: ""
|
||||||
- spec_file: ""
|
- spec_file: ""
|
||||||
- no-auto-depends: "false"
|
- no-auto-depends: "false"
|
||||||
|
- preinstall_cpanlibs: ""
|
||||||
- distrib: el8
|
- distrib: el8
|
||||||
package_extension: rpm
|
package_extension: rpm
|
||||||
image: packaging-plugins-alma8
|
image: packaging-plugins-alma8
|
||||||
@ -101,6 +108,8 @@ jobs:
|
|||||||
image: packaging-plugins-alma9
|
image: packaging-plugins-alma9
|
||||||
- name: "BSON"
|
- name: "BSON"
|
||||||
rpm_provides: "perl(BSON::Bytes) perl(BSON::Code) perl(BSON::DBRef) perl(BSON::OID) perl(BSON::Raw) perl(BSON::Regex) perl(BSON::Time) perl(BSON::Timestamp) perl(BSON::Types) perl(BSON)"
|
rpm_provides: "perl(BSON::Bytes) perl(BSON::Code) perl(BSON::DBRef) perl(BSON::OID) perl(BSON::Raw) perl(BSON::Regex) perl(BSON::Time) perl(BSON::Timestamp) perl(BSON::Types) perl(BSON)"
|
||||||
|
- name: "Crypt::Argon2"
|
||||||
|
preinstall_cpanlibs: "Dist::Build"
|
||||||
- name: "DateTime::Format::Duration::ISO8601"
|
- name: "DateTime::Format::Duration::ISO8601"
|
||||||
rpm_provides: "perl(DateTime-Format-Duration-ISO8601)"
|
rpm_provides: "perl(DateTime-Format-Duration-ISO8601)"
|
||||||
- name: "Device::Modbus::RTU::Client"
|
- name: "Device::Modbus::RTU::Client"
|
||||||
@ -113,10 +122,14 @@ jobs:
|
|||||||
rpm_provides: "perl(FFI::Platypus::Buffer) perl(FFI::Platypus::Memory)"
|
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)"
|
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)"
|
||||||
no-auto-depends: "true"
|
no-auto-depends: "true"
|
||||||
|
- name: "Libssh::Session"
|
||||||
|
rpm_dependencies: "libssh"
|
||||||
- name: "Mojo::IOLoop::Signal"
|
- name: "Mojo::IOLoop::Signal"
|
||||||
rpm_dependencies: "perl-Mojolicious"
|
rpm_dependencies: "perl-Mojolicious"
|
||||||
rpm_provides: "perl(Mojo::IOLoop::Signal)"
|
rpm_provides: "perl(Mojo::IOLoop::Signal)"
|
||||||
no-auto-depends: "true"
|
no-auto-depends: "true"
|
||||||
|
- name: "Net::Curl"
|
||||||
|
rpm_dependencies: "libcurl"
|
||||||
- name: "Net::DHCP"
|
- name: "Net::DHCP"
|
||||||
rpm_provides: "perl(Net::DHCP::Constants) perl(Net::DHCP::Packet)"
|
rpm_provides: "perl(Net::DHCP::Constants) perl(Net::DHCP::Packet)"
|
||||||
- name: "Net::SMTPS"
|
- name: "Net::SMTPS"
|
||||||
@ -146,7 +159,28 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- if: ${{ contains(matrix.build_distribs, matrix.distrib) }}
|
- if: ${{ contains(matrix.build_distribs, matrix.distrib) }}
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
||||||
|
|
||||||
|
- if: ${{ contains(matrix.build_distribs, matrix.distrib) }}
|
||||||
|
name: Get package infos
|
||||||
|
id: package-infos
|
||||||
|
run: |
|
||||||
|
cpan_info=$(cpanm --info ${{ matrix.name }})
|
||||||
|
if [ -z "${{ matrix.version }}" ]; then
|
||||||
|
CPAN_PACKAGE_VERSION=$(echo $cpan_info | sed 's/\.tar\.gz$//' | sed 's/.*\-//')
|
||||||
|
if [[ ! $CPAN_PACKAGE_VERSION =~ ^[v0-9]+\.[0-9]+ ]]; then
|
||||||
|
echo "::error::Invalid version number: ${CPAN_PACKAGE_VERSION}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
PACKAGE_VERSION="${CPAN_PACKAGE_VERSION}"
|
||||||
|
else
|
||||||
|
PACKAGE_VERSION="${{ matrix.version }}"
|
||||||
|
fi
|
||||||
|
echo "package_version=$(echo $PACKAGE_VERSION)" >> $GITHUB_OUTPUT
|
||||||
|
CPAN_PACKAGE_NAME=$(echo $cpan_info | sed 's/.*\///g' | sed 's/-[0-9\.]*\.tar\.gz//g')
|
||||||
|
PACKAGE_NAME="perl-$CPAN_PACKAGE_NAME"
|
||||||
|
echo "package_name=$(echo $PACKAGE_NAME)" >> $GITHUB_OUTPUT
|
||||||
|
shell: bash
|
||||||
|
|
||||||
- if: ${{ contains(matrix.build_distribs, matrix.distrib) }}
|
- if: ${{ contains(matrix.build_distribs, matrix.distrib) }}
|
||||||
name: Check if package already exists
|
name: Check if package already exists
|
||||||
@ -155,8 +189,8 @@ jobs:
|
|||||||
package_info=$(dnf provides 'perl(${{ matrix.name }})' 2>&1 | tr '[:upper:]' '[:lower:]' || true)
|
package_info=$(dnf provides 'perl(${{ matrix.name }})' 2>&1 | tr '[:upper:]' '[:lower:]' || true)
|
||||||
do_not_build="false"
|
do_not_build="false"
|
||||||
if [[ ! $package_info =~ "no matches found" ]]; then
|
if [[ ! $package_info =~ "no matches found" ]]; then
|
||||||
package_version=$(echo $package_info | grep -oP 'perl\(${{ matrix.name }}\) = \K[0-9]+\.[0-9]+')
|
package_version=$(echo $package_info | grep -oP "perl\($(echo ${{ matrix.name }} | tr '[:upper:]' '[:lower:]')\) = \K[0-9]+\.[0-9]+")
|
||||||
if [[ -z "${{ matrix.version }}" || "$package_version" == "${{ matrix.version }}" ]]; then
|
if [[ "$package_version" == "${{ steps.package-infos.outputs.package_version }}" || "v$package_version" == "${{ steps.package-infos.outputs.package_version }}" ]]; then
|
||||||
echo "::warning::Package ${{ matrix.name }} already exists in the official ${{ matrix.distrib }} repository with the same version."
|
echo "::warning::Package ${{ matrix.name }} already exists in the official ${{ matrix.distrib }} repository with the same version."
|
||||||
do_not_build="true"
|
do_not_build="true"
|
||||||
else
|
else
|
||||||
@ -169,11 +203,7 @@ jobs:
|
|||||||
|
|
||||||
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_distribs, matrix.distrib) && matrix.spec_file == '' }}
|
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_distribs, matrix.distrib) && matrix.spec_file == '' }}
|
||||||
run: |
|
run: |
|
||||||
if [ -z "${{ matrix.version }}" ]; then
|
PACKAGE_VERSION=" -v ${{ steps.package-infos.outputs.package_version }}"
|
||||||
PACKAGE_VERSION=""
|
|
||||||
else
|
|
||||||
PACKAGE_VERSION=" -v ${{ matrix.version }}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${{ matrix.rpm_dependencies }}" ]; then
|
if [ -z "${{ matrix.rpm_dependencies }}" ]; then
|
||||||
PACKAGE_DEPENDENCIES=""
|
PACKAGE_DEPENDENCIES=""
|
||||||
@ -195,9 +225,14 @@ jobs:
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for CPANLIB_PREINSTALL in `echo "${{ matrix.preinstall_cpanlibs }}"`; do
|
||||||
|
cpanm $CPANLIB_PREINSTALL
|
||||||
|
done
|
||||||
|
|
||||||
export SYBASE="/usr"
|
export SYBASE="/usr"
|
||||||
|
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
|
echo "default.local" | tee /etc/mailname
|
||||||
created_package=$(fpm -s cpan -t ${{ matrix.package_extension }} --rpm-dist ${{ matrix.distrib }} --verbose --cpan-verbose --no-cpan-test$PACKAGE_DEPENDENCIES$PACKAGE_PROVIDES$PACKAGE_VERSION ${{ matrix.name }} | tee "$temp_file" | grep "Created package" | grep -oP '(?<=:path=>").*?(?=")')
|
created_package=$(fpm -s cpan -t ${{ matrix.package_extension }} --rpm-dist ${{ matrix.distrib }} --verbose --cpan-verbose --no-cpan-test$PACKAGE_DEPENDENCIES$PACKAGE_PROVIDES$PACKAGE_VERSION ${{ matrix.name }} | tee "$temp_file" | grep "Created package" | grep -oP '(?<=:path=>").*?(?=")')
|
||||||
# Check package name
|
# Check package name
|
||||||
if [ -z "$created_package" ]; then
|
if [ -z "$created_package" ]; then
|
||||||
@ -281,7 +316,7 @@ jobs:
|
|||||||
- run: apt-get install -y zstd
|
- run: apt-get install -y zstd
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
||||||
|
|
||||||
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
||||||
with:
|
with:
|
||||||
@ -315,6 +350,7 @@ jobs:
|
|||||||
"ARGV::Struct",
|
"ARGV::Struct",
|
||||||
"Config::AWS",
|
"Config::AWS",
|
||||||
"Convert::EBCDIC",
|
"Convert::EBCDIC",
|
||||||
|
"Crypt::Argon2",
|
||||||
"Crypt::Blowfish_PP",
|
"Crypt::Blowfish_PP",
|
||||||
"Crypt::OpenSSL::AES",
|
"Crypt::OpenSSL::AES",
|
||||||
"DataStruct::Flat",
|
"DataStruct::Flat",
|
||||||
@ -327,8 +363,10 @@ jobs:
|
|||||||
"Hash::Ordered",
|
"Hash::Ordered",
|
||||||
"HTTP::ProxyPAC",
|
"HTTP::ProxyPAC",
|
||||||
"JMX::Jmx4Perl",
|
"JMX::Jmx4Perl",
|
||||||
|
"Libssh::Session",
|
||||||
"Mojo::IOLoop::Signal",
|
"Mojo::IOLoop::Signal",
|
||||||
"Net::Amazon::Signature::V4",
|
"Net::Amazon::Signature::V4",
|
||||||
|
"Net::Curl",
|
||||||
"Net::FTPSSL",
|
"Net::FTPSSL",
|
||||||
"Net::HTTPTunnel",
|
"Net::HTTPTunnel",
|
||||||
"Net::MQTT::Simple",
|
"Net::MQTT::Simple",
|
||||||
@ -346,6 +384,8 @@ jobs:
|
|||||||
- rpm_provides: ""
|
- rpm_provides: ""
|
||||||
- version: ""
|
- version: ""
|
||||||
- use_dh_make_perl: "true"
|
- use_dh_make_perl: "true"
|
||||||
|
- no-auto-depends: "false"
|
||||||
|
- preinstall_cpanlibs: ""
|
||||||
- build_name: bullseye-amd64
|
- build_name: bullseye-amd64
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
package_extension: deb
|
package_extension: deb
|
||||||
@ -363,7 +403,13 @@ jobs:
|
|||||||
package_extension: deb
|
package_extension: deb
|
||||||
image: packaging-plugins-bullseye-arm64
|
image: packaging-plugins-bullseye-arm64
|
||||||
arch: arm64
|
arch: arm64
|
||||||
runner_name: ["self-hosted", "collect-arm64"]
|
runner_name: centreon-collect-arm64
|
||||||
|
- name: "Crypt::Argon2"
|
||||||
|
build_names: "bullseye-amd64,jammy,bullseye-arm64"
|
||||||
|
preinstall_cpanlibs: "Dist::Build"
|
||||||
|
use_dh_make_perl: "false"
|
||||||
|
no-auto-depends: "true"
|
||||||
|
deb_dependencies: "libexporter-tiny-perl libtime-hires-perl libxsloader-perl"
|
||||||
- name: "Crypt::OpenSSL::AES"
|
- name: "Crypt::OpenSSL::AES"
|
||||||
use_dh_make_perl: "false"
|
use_dh_make_perl: "false"
|
||||||
deb_dependencies: "libexporter-tiny-perl libxs-install-perl"
|
deb_dependencies: "libexporter-tiny-perl libxs-install-perl"
|
||||||
@ -375,8 +421,18 @@ jobs:
|
|||||||
build_names: "bookworm"
|
build_names: "bookworm"
|
||||||
- name: "Digest::SHA1"
|
- name: "Digest::SHA1"
|
||||||
build_names: "jammy"
|
build_names: "jammy"
|
||||||
|
- name: "Libssh::Session"
|
||||||
|
use_dh_make_perl: "false"
|
||||||
|
build_names: "bullseye-amd64,bookworm,jammy,bullseye-arm64"
|
||||||
|
no-auto-depends: "true"
|
||||||
|
deb_dependencies: "libcarp-assert-perl libdynaloader-functions-perl libexporter-tiny-perl libdevel-overloadinfo-perl libssh-4 libc6"
|
||||||
- name: "Net::Amazon::Signature::V4"
|
- name: "Net::Amazon::Signature::V4"
|
||||||
build_names: ["bullseye-amd64", "jammy"]
|
build_names: ["bullseye-amd64", "jammy"]
|
||||||
|
- name: "Net::Curl"
|
||||||
|
use_dh_make_perl: "false"
|
||||||
|
build_names: "bullseye-amd64,bookworm,jammy,bullseye-arm64"
|
||||||
|
no-auto-depends: "true"
|
||||||
|
deb_dependencies: "libcarp-assert-perl libdynaloader-functions-perl libexporter-tiny-perl libdevel-overloadinfo-perl libcurl4"
|
||||||
- name: "Net::MQTT::Simple"
|
- name: "Net::MQTT::Simple"
|
||||||
version: "1.29"
|
version: "1.29"
|
||||||
- name: "Paws"
|
- name: "Paws"
|
||||||
@ -400,7 +456,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- if: ${{ contains(matrix.build_names, matrix.build_name) }}
|
- if: ${{ contains(matrix.build_names, matrix.build_name) }}
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
||||||
|
|
||||||
- if: ${{ contains(matrix.build_names, matrix.build_name) }}
|
- if: ${{ contains(matrix.build_names, matrix.build_name) }}
|
||||||
name: Parse distrib name
|
name: Parse distrib name
|
||||||
@ -416,8 +472,8 @@ jobs:
|
|||||||
apt-get update
|
apt-get update
|
||||||
cpan_info=$(cpanm --info ${{ matrix.name }})
|
cpan_info=$(cpanm --info ${{ matrix.name }})
|
||||||
if [ -z "${{ matrix.version }}" ]; then
|
if [ -z "${{ matrix.version }}" ]; then
|
||||||
CPAN_PACKAGE_VERSION=$(echo $cpan_info | sed 's/\.tar\.gz$//' | sed 's/.*\-//' | sed 's/v//')
|
CPAN_PACKAGE_VERSION=$(echo $cpan_info | sed 's/\.tar\.gz$//' | sed 's/.*\-//')
|
||||||
if [[ ! $CPAN_PACKAGE_VERSION =~ ^[0-9]+\.[0-9]+ ]]; then
|
if [[ ! $CPAN_PACKAGE_VERSION =~ ^[v0-9]+\.[0-9]+ ]]; then
|
||||||
echo "::error::Invalid version number: ${CPAN_PACKAGE_VERSION}"
|
echo "::error::Invalid version number: ${CPAN_PACKAGE_VERSION}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -442,7 +498,7 @@ jobs:
|
|||||||
do_not_build="false"
|
do_not_build="false"
|
||||||
if [[ -n $package_info ]]; then
|
if [[ -n $package_info ]]; then
|
||||||
candidate_version=$(echo "$package_info" | grep 'Candidate:' | awk '{print $2}')
|
candidate_version=$(echo "$package_info" | grep 'Candidate:' | awk '{print $2}')
|
||||||
if [[ "$candidate_version" == "${{ steps.package-infos.outputs.package_version }}"* ]]; then
|
if [[ "$candidate_version" == "${{ steps.package-infos.outputs.package_version }}"* || "v$candidate_version" == "${{ steps.package-infos.outputs.package_version }}"* ]]; then
|
||||||
echo "::warning::Package ${{ steps.package-infos.outputs.package_name }} already exists in the official ${{ matrix.distrib }} repository with the same version."
|
echo "::warning::Package ${{ steps.package-infos.outputs.package_name }} already exists in the official ${{ matrix.distrib }} repository with the same version."
|
||||||
do_not_build="true"
|
do_not_build="true"
|
||||||
else
|
else
|
||||||
@ -455,6 +511,10 @@ jobs:
|
|||||||
|
|
||||||
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_names, matrix.build_name) && matrix.use_dh_make_perl == 'false' }}
|
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_names, matrix.build_name) && matrix.use_dh_make_perl == 'false' }}
|
||||||
run: |
|
run: |
|
||||||
|
# Install needed cpan libs
|
||||||
|
for CPANLIB_PREINSTALL in `echo "${{ matrix.preinstall_cpanlibs }}"`; do
|
||||||
|
cpanm $CPANLIB_PREINSTALL
|
||||||
|
done
|
||||||
if [ -z "${{ matrix.deb_dependencies }}" ]; then
|
if [ -z "${{ matrix.deb_dependencies }}" ]; then
|
||||||
PACKAGE_DEPENDENCIES=""
|
PACKAGE_DEPENDENCIES=""
|
||||||
else
|
else
|
||||||
@ -467,6 +527,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
|
echo "default.local" | tee /etc/mailname
|
||||||
created_package=$(fpm -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-infos.outputs.package_version }} ${{ matrix.name }} | tee "$temp_file" | grep "Created package" | grep -oP '(?<=:path=>").*?(?=")') || { echo "Error: fpm command failed"; exit 1; }
|
created_package=$(fpm -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-infos.outputs.package_version }} ${{ matrix.name }} | tee "$temp_file" | grep "Created package" | grep -oP '(?<=:path=>").*?(?=")') || { echo "Error: fpm command failed"; exit 1; }
|
||||||
# Check package name
|
# Check package name
|
||||||
if [ -z "$created_package" ]; then
|
if [ -z "$created_package" ]; then
|
||||||
@ -479,11 +540,15 @@ jobs:
|
|||||||
|
|
||||||
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_names, matrix.build_name) && matrix.use_dh_make_perl == 'true' }}
|
- if: ${{ steps.check-package-existence.outputs.do_not_build == 'false' && contains(matrix.build_names, matrix.build_name) && matrix.use_dh_make_perl == 'true' }}
|
||||||
run: |
|
run: |
|
||||||
|
# Install needed cpan libs
|
||||||
|
for CPANLIB_PREINSTALL in `echo "${{ matrix.preinstall_cpanlibs }}"`; do
|
||||||
|
cpanm $CPANLIB_PREINSTALL
|
||||||
|
done
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
created_package=$(DEB_BUILD_OPTIONS="nocheck nodocs notest" dh-make-perl make --dist ${{ matrix.distrib }} --build --version ${{ steps.package-infos.outputs.package_version }}${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }} --cpan ${{ matrix.name }} | tee "$temp_file" | grep "building package" | grep -oP "(?<=in '..\/).*.deb(?=')") || { echo "Error: dh-make-perl command failed"; exit 1; }
|
created_package=$(DEB_BUILD_OPTIONS="nocheck nodocs notest" dh-make-perl make --dist ${{ matrix.distrib }} --build --version ${{ steps.package-infos.outputs.package_version }}${{ steps.parse-distrib.outputs.package_distrib_separator }}${{ steps.parse-distrib.outputs.package_distrib_name }} --cpan ${{ matrix.name }} | tee "$temp_file" | grep "building package" | grep -oP "(?<=in '..\/).*.deb(?=')") || { echo "Error: dh-make-perl command failed"; exit 1; }
|
||||||
# Check package name
|
# Check package name
|
||||||
if [ -z "$created_package" ]; then
|
if [ -z "$created_package" ]; then
|
||||||
echo "Error: fpm command failed"
|
echo "Error: dh-make-perl command failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Check deb
|
# Check deb
|
||||||
@ -587,7 +652,7 @@ jobs:
|
|||||||
image: debian:bullseye
|
image: debian:bullseye
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
arch: arm64
|
arch: arm64
|
||||||
runner_name: ["self-hosted", "collect-arm64"]
|
runner_name: centreon-collect-arm64
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner_name }}
|
runs-on: ${{ matrix.runner_name }}
|
||||||
container:
|
container:
|
||||||
@ -595,114 +660,15 @@ jobs:
|
|||||||
|
|
||||||
name: Test perl CPAN libs packages on ${{ matrix.package_extension }} ${{ matrix.distrib }} ${{ matrix.arch }}
|
name: Test perl CPAN libs packages on ${{ matrix.package_extension }} ${{ matrix.distrib }} ${{ matrix.arch }}
|
||||||
steps:
|
steps:
|
||||||
- if: ${{ matrix.package_extension == 'rpm' }}
|
|
||||||
name: Install zstd, perl and Centreon repositories
|
|
||||||
run: |
|
|
||||||
dnf install -y zstd perl epel-release 'dnf-command(config-manager)'
|
|
||||||
dnf config-manager --set-enabled powertools || true # alma 8
|
|
||||||
dnf config-manager --set-enabled crb || true # alma 9
|
|
||||||
# Import Centreon GPG key
|
|
||||||
GPG_KEY_URL="https://yum-gpg.centreon.com/RPM-GPG-KEY-CES"
|
|
||||||
curl -sSL $GPG_KEY_URL -o RPM-GPG-KEY-CES
|
|
||||||
rpm --import RPM-GPG-KEY-CES
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- if: ${{ matrix.package_extension == 'deb' }}
|
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
||||||
name: Install zstd, perl and Centreon repositories
|
|
||||||
run: |
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y zstd perl wget gpg apt-utils procps
|
|
||||||
wget -O- https://apt-key.centreon.com | gpg --dearmor | tee /etc/apt/trusted.gpg.d/centreon.gpg > /dev/null 2>&1
|
|
||||||
# Avoid apt to clean packages cache directory
|
|
||||||
rm -f /etc/apt/apt.conf.d/docker-clean
|
|
||||||
apt-get update
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Restore packages from cache
|
- name: Test packaged libs
|
||||||
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
|
uses: ./.github/actions/test-cpan-libs
|
||||||
with:
|
with:
|
||||||
path: ./*.${{ matrix.package_extension }}
|
package_extension: ${{ matrix.package_extension }}
|
||||||
key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }}
|
distrib: ${{ matrix.distrib }}
|
||||||
fail-on-cache-miss: true
|
arch: ${{ matrix.arch }}
|
||||||
|
|
||||||
- if: ${{ matrix.package_extension == 'rpm' }}
|
|
||||||
name: Install packages
|
|
||||||
run: |
|
|
||||||
error_log="install_error_${{ matrix.distrib }}_${{ matrix.arch }}.log"
|
|
||||||
for package in ./*.rpm; do
|
|
||||||
echo "Installing package: $package"
|
|
||||||
# List dependencies, and remove version and comparison operators
|
|
||||||
dependencies=$(rpm -qpR $package | sed 's/ [0-9.-]*\(\s\|$\)/ /g' | sed 's/ [<>!=]*\(\s\|$\)/ /g')
|
|
||||||
for dependency in $dependencies; do
|
|
||||||
# Skip non-perl dependencies
|
|
||||||
if [[ $dependency != perl* ]]; then
|
|
||||||
continue
|
|
||||||
else
|
|
||||||
echo "Check dependency: $dependency"
|
|
||||||
# Update the dependency name to match the package name
|
|
||||||
dependency=$(echo $dependency | sed 's/(/-/g' | sed 's/)//g' | sed 's/::/-/g')
|
|
||||||
fi
|
|
||||||
# If the dependency has been built in the same workflow, install it
|
|
||||||
if [[ -n $(find . -maxdepth 1 -regex "\.\/$dependency-[0-9v].*\.rpm") ]]; then
|
|
||||||
echo "Installing dependency: $dependency"
|
|
||||||
error_output=$(dnf install -y ./$dependency*.rpm 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the dependency $dependency" >> $error_log; true; }
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Install package, then uninstall it with all his dependencies
|
|
||||||
echo "Package installation..."
|
|
||||||
error_output=$(dnf install -y $package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the package $package" >> $error_log; true; }
|
|
||||||
echo "Package installation done."
|
|
||||||
echo "Package uninstallation..."
|
|
||||||
error_output=$(dnf autoremove --setopt=keepcache=True -y $(echo $package | sed 's/_[0-9].*\.rpm//' | sed 's/.\///') 2>&1) || { echo "$error_output" >> $error_log; echo "Error during autoremove of the package $package" >> $error_log; true; }
|
|
||||||
echo "Package uninstallation done."
|
|
||||||
done
|
|
||||||
# If the file error_log exists and is not empty, the workflow is in error
|
|
||||||
if [[ -s $error_log ]]; then
|
|
||||||
cat $error_log
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- if: ${{ matrix.package_extension == 'deb' }}
|
|
||||||
name: Install packages
|
|
||||||
run: |
|
|
||||||
error_log="install_error_${{ matrix.distrib }}_${{ matrix.arch }}.log"
|
|
||||||
for package in ./*.deb; do
|
|
||||||
# If the debian package name ends with amd64 or arm64, we only install it if the tested architecture is the same, otherwise we skip it
|
|
||||||
if [[ $package == *amd64.deb && ${{ matrix.arch }} != "amd64" || $package == *arm64.deb && ${{ matrix.arch }} != "arm64" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
echo "Installing package: $package"
|
|
||||||
# List dependencies
|
|
||||||
dependencies=$(dpkg-deb -I $package | grep Depends | sed 's/Depends: //' | sed 's/,//g' | sed 's/(\(.*\)//g') || { echo "$error_output" >> $error_log; echo "Error while listing dependencies of the package $package" >> $error_log; true; }
|
|
||||||
for dependency in $dependencies; do
|
|
||||||
# If the dependency exists in the Debian repository, don't check the local dependencies
|
|
||||||
dependency_info=$(apt-cache policy $dependency)
|
|
||||||
if [[ -n $dependency_info ]]; then
|
|
||||||
echo "Dependency $dependency exists in debian repository."
|
|
||||||
else
|
|
||||||
# If the dependency has been built in the same workflow, install it
|
|
||||||
for dependency_package in $(find . -maxdepth 1 -regex "\.\/${dependency}_[0-9].*all\.deb" -o -regex "\.\/${dependency}_[0-9].*${{ matrix.arch }}\.deb"); do
|
|
||||||
echo "Installing dependency: $dependency_package"
|
|
||||||
error_output=$(apt-get install -y ./$dependency_package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the dependency $dependency" >> $error_log; true; }
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Install package, then uninstall it with all his dependencies
|
|
||||||
echo "Package installation..."
|
|
||||||
error_output=$(apt-get install -y $package 2>&1) || { echo "$error_output" >> $error_log; echo "Error during installation of the package $package" >> $error_log; true; }
|
|
||||||
echo "Package installation done."
|
|
||||||
echo "Package uninstallation..."
|
|
||||||
error_output=$(apt-get autoremove -y --purge $(echo $package | sed 's/_[0-9].*\.deb//' | sed 's/.\///') 2>&1) || { echo "$error_output" >> $error_log; echo "Error during autoremove of the package $package" >> $error_log; true; }
|
|
||||||
echo "Package uninstallation done."
|
|
||||||
done
|
|
||||||
# If the file error_log exists and is not empty, the workflow is in error
|
|
||||||
if [[ -s $error_log ]]; then
|
|
||||||
cat $error_log
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Upload error log
|
- name: Upload error log
|
||||||
if: failure()
|
if: failure()
|
||||||
|
201
.github/workflows/perl-crypt-argon2.yml
vendored
201
.github/workflows/perl-crypt-argon2.yml
vendored
@ -1,201 +0,0 @@
|
|||||||
name: perl-crypt-argon2
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-crypt-argon2/**"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- dev-[2-9][0-9].[0-9][0-9].x
|
|
||||||
- master
|
|
||||||
- "[2-9][0-9].[0-9][0-9].x"
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-crypt-argon2/**"
|
|
||||||
tags:
|
|
||||||
- perl-crypt-argon2-*
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-environment:
|
|
||||||
uses: ./.github/workflows/get-environment.yml
|
|
||||||
|
|
||||||
package:
|
|
||||||
needs: [get-environment]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
needs.get-environment.outputs.stability != 'stable'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- image: packaging-plugins-alma8
|
|
||||||
distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-alma9
|
|
||||||
distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bookworm
|
|
||||||
distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-jammy
|
|
||||||
distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye-arm64
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ["self-hosted", "collect-arm64"]
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner }}
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
|
|
||||||
credentials:
|
|
||||||
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
|
|
||||||
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
|
|
||||||
|
|
||||||
name: package ${{ matrix.distrib }} ${{ matrix.arch }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
||||||
|
|
||||||
- name: Install locally Crypt::Argon2
|
|
||||||
run: |
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y cpanminus gcc
|
|
||||||
else
|
|
||||||
dnf install -y cpanminus gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
cpanm -v -l /tmp Crypt::Argon2@0.020
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set package name and paths according to distrib
|
|
||||||
run: |
|
|
||||||
PERL_VERSION=$(perl -E "say $^V" | sed -E "s/v([0-9]+\.[0-9]+).+/\1/g")
|
|
||||||
|
|
||||||
echo "Perl version is $PERL_VERSION"
|
|
||||||
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
NAME="libcrypt-argon2-perl"
|
|
||||||
if [ "${{ matrix.arch }}" = "amd64" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/lib/x86_64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/lib/aarch64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
NAME="perl-Crypt-Argon2"
|
|
||||||
if [ "${{ matrix.distrib }}" = "el8" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed -i "s/@NAME@/$NAME/g" dependencies/perl-crypt-argon2/perl-crypt-argon2.yaml
|
|
||||||
sed -i "s#@PERL_VENDORARCH@#$PERL_VENDORARCH#g" dependencies/perl-crypt-argon2/perl-crypt-argon2.yaml
|
|
||||||
|
|
||||||
cat dependencies/perl-crypt-argon2/perl-crypt-argon2.yaml
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
uses: ./.github/actions/package-nfpm
|
|
||||||
with:
|
|
||||||
nfpm_file_pattern: "dependencies/perl-crypt-argon2/perl-crypt-argon2.yaml"
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
package_extension: ${{ matrix.package_extension }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
release: 1
|
|
||||||
commit_hash: ${{ github.sha }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-crypt-argon2-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
# set condition to true if artifacts are needed
|
|
||||||
- if: ${{ false }}
|
|
||||||
name: Upload package artifacts
|
|
||||||
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
|
|
||||||
with:
|
|
||||||
name: packages-${{ matrix.distrib }}-${{ matrix.arch }}
|
|
||||||
path: ./*.${{ matrix.package_extension}}
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
deliver-packages:
|
|
||||||
needs: [get-environment, package]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
(contains(fromJson('["testing", "unstable"]'), needs.get-environment.outputs.stability) || ( needs.get-environment.outputs.stability == 'stable' && github.event_name != 'workflow_dispatch')) &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: arm64
|
|
||||||
- distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
name: deliver ${{ matrix.distrib }} ${{ matrix.arch }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
|
||||||
|
|
||||||
- name: Delivery
|
|
||||||
uses: ./.github/actions/package-delivery
|
|
||||||
with:
|
|
||||||
module_name: perl-crypt-argon2-${{ matrix.arch }}
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
cache_key: cache-${{ github.sha }}-rpm-perl-crypt-argon2-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
stability: ${{ needs.get-environment.outputs.stability }}
|
|
||||||
release_type: ${{ needs.get-environment.outputs.release_type }}
|
|
||||||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
|
|
||||||
|
|
||||||
set-skip-label:
|
|
||||||
needs: [get-environment, deliver-packages]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
uses: ./.github/workflows/set-pull-request-skip-label.yml
|
|
177
.github/workflows/perl-json-path.yml
vendored
177
.github/workflows/perl-json-path.yml
vendored
@ -1,177 +0,0 @@
|
|||||||
name: perl-json-path
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-json-path/**"
|
|
||||||
- ".github/workflows/perl-json-path.yml"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- dev-[2-9][0-9].[0-9][0-9].x
|
|
||||||
- master
|
|
||||||
- "[2-9][0-9].[0-9][0-9].x"
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-json-path/**"
|
|
||||||
- ".github/workflows/perl-json-path.yml"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-environment:
|
|
||||||
uses: ./.github/workflows/get-environment.yml
|
|
||||||
|
|
||||||
package:
|
|
||||||
needs: [get-environment]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
needs.get-environment.outputs.stability != 'stable'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- image: packaging-plugins-alma8
|
|
||||||
distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
- image: packaging-plugins-alma9
|
|
||||||
distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
- image: packaging-plugins-bullseye
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
- image: packaging-plugins-bookworm
|
|
||||||
distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
- image: packaging-plugins-jammy
|
|
||||||
distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
|
|
||||||
credentials:
|
|
||||||
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
|
|
||||||
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
|
|
||||||
|
|
||||||
name: package ${{ matrix.distrib }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
||||||
|
|
||||||
- name: Install locally JSON::Path
|
|
||||||
run: |
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y cpanminus gcc
|
|
||||||
else
|
|
||||||
dnf install -y cpanminus gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
cpanm -v -l /tmp JSON::Path@1.0.4
|
|
||||||
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set package name and paths according to distrib
|
|
||||||
run: |
|
|
||||||
VERSION="1.0.4"
|
|
||||||
|
|
||||||
PERL_VERSION=$(perl -E "say $^V" | sed -E "s/v([0-9]+\.[0-9]+).+/\1/g")
|
|
||||||
|
|
||||||
echo "Perl version is $PERL_VERSION"
|
|
||||||
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
NAME="libjson-path-perl"
|
|
||||||
PERL_VENDORLIB="/usr/share/perl5"
|
|
||||||
else
|
|
||||||
NAME="perl-JSON-Path"
|
|
||||||
if [ "${{ matrix.distrib }}" = "el8" ]; then
|
|
||||||
PERL_VENDORLIB="/usr/local/share/perl5"
|
|
||||||
else
|
|
||||||
PERL_VENDORLIB="/usr/local/share/perl5/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed -i "s/@NAME@/$NAME/g" dependencies/perl-json-path/perl-json-path.yaml
|
|
||||||
sed -i "s/@VERSION@/$VERSION/g" dependencies/perl-json-path/perl-json-path.yaml
|
|
||||||
sed -i "s#@PERL_VENDORLIB@#$PERL_VENDORLIB#g" dependencies/perl-json-path/perl-json-path.yaml
|
|
||||||
|
|
||||||
cat dependencies/perl-json-path/perl-json-path.yaml
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
uses: ./.github/actions/package-nfpm
|
|
||||||
with:
|
|
||||||
nfpm_file_pattern: "dependencies/perl-json-path/perl-json-path.yaml"
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
package_extension: ${{ matrix.package_extension }}
|
|
||||||
release: 3
|
|
||||||
arch: all
|
|
||||||
commit_hash: ${{ github.sha }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-json-path-${{ matrix.distrib }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
# set condition to true if artifacts are needed
|
|
||||||
- if: ${{ false }}
|
|
||||||
name: Upload package artifacts
|
|
||||||
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
|
|
||||||
with:
|
|
||||||
name: packages-${{ matrix.distrib }}
|
|
||||||
path: ./*.${{ matrix.package_extension}}
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
deliver-packages:
|
|
||||||
needs: [get-environment, package]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
(contains(fromJson('["testing", "unstable"]'), needs.get-environment.outputs.stability) || ( needs.get-environment.outputs.stability == 'stable' && github.event_name != 'workflow_dispatch')) &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
- distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
- distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
- distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
|
|
||||||
name: deliver ${{ matrix.distrib }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
|
||||||
|
|
||||||
- name: Delivery
|
|
||||||
uses: ./.github/actions/package-delivery
|
|
||||||
with:
|
|
||||||
module_name: perl-json-path
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-json-path-${{ matrix.distrib }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
stability: ${{ needs.get-environment.outputs.stability }}
|
|
||||||
release_type: ${{ needs.get-environment.outputs.release_type }}
|
|
||||||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
|
|
||||||
|
|
||||||
set-skip-label:
|
|
||||||
needs: [get-environment, deliver-packages]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
uses: ./.github/workflows/set-pull-request-skip-label.yml
|
|
199
.github/workflows/perl-libssh-session.yml
vendored
199
.github/workflows/perl-libssh-session.yml
vendored
@ -1,199 +0,0 @@
|
|||||||
name: perl-libssh-session
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-libssh-session/**"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- dev-[2-9][0-9].[0-9][0-9].x
|
|
||||||
- master
|
|
||||||
- "[2-9][0-9].[0-9][0-9].x"
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-libssh-session/**"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-environment:
|
|
||||||
uses: ./.github/workflows/get-environment.yml
|
|
||||||
|
|
||||||
package:
|
|
||||||
needs: [get-environment]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
needs.get-environment.outputs.stability != 'stable'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- image: packaging-plugins-alma8
|
|
||||||
distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-alma9
|
|
||||||
distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bookworm
|
|
||||||
distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-jammy
|
|
||||||
distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye-arm64
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ["self-hosted", "collect-arm64"]
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner }}
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
|
|
||||||
credentials:
|
|
||||||
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
|
|
||||||
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
|
|
||||||
|
|
||||||
name: package ${{ matrix.distrib }} ${{ matrix.arch }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
||||||
|
|
||||||
- name: Install locally Libssh::Session
|
|
||||||
run: |
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y cpanminus gcc libssh-dev
|
|
||||||
else
|
|
||||||
dnf install -y cpanminus gcc libssh-devel
|
|
||||||
fi
|
|
||||||
|
|
||||||
cpanm -v -l /tmp Libssh::Session@0.8
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set package name and paths according to distrib
|
|
||||||
run: |
|
|
||||||
PERL_VERSION=$(perl -E "say $^V" | sed -E "s/v([0-9]+\.[0-9]+).+/\1/g")
|
|
||||||
|
|
||||||
echo "Perl version is $PERL_VERSION"
|
|
||||||
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
NAME="libssh-session-perl"
|
|
||||||
if [ "${{ matrix.arch }}" = "amd64" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/lib/x86_64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/lib/aarch64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
NAME="perl-Libssh-Session"
|
|
||||||
if [ "${{ matrix.distrib }}" = "el8" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed -i "s/@NAME@/$NAME/g" dependencies/perl-libssh-session/perl-libssh-session.yaml
|
|
||||||
sed -i "s#@PERL_VENDORARCH@#$PERL_VENDORARCH#g" dependencies/perl-libssh-session/perl-libssh-session.yaml
|
|
||||||
|
|
||||||
cat dependencies/perl-libssh-session/perl-libssh-session.yaml
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
uses: ./.github/actions/package-nfpm
|
|
||||||
with:
|
|
||||||
nfpm_file_pattern: "dependencies/perl-libssh-session/perl-libssh-session.yaml"
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
package_extension: ${{ matrix.package_extension }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
release: 5
|
|
||||||
commit_hash: ${{ github.sha }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-libssh-session-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
# set condition to true if artifacts are needed
|
|
||||||
- if: ${{ false }}
|
|
||||||
name: Upload package artifacts
|
|
||||||
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
|
|
||||||
with:
|
|
||||||
name: packages-${{ matrix.distrib }}-${{ matrix.arch }}
|
|
||||||
path: ./*.${{ matrix.package_extension}}
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
deliver-packages:
|
|
||||||
needs: [get-environment, package]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
(contains(fromJson('["testing", "unstable"]'), needs.get-environment.outputs.stability) || ( needs.get-environment.outputs.stability == 'stable' && github.event_name != 'workflow_dispatch')) &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: arm64
|
|
||||||
- distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
name: deliver ${{ matrix.distrib }} ${{ matrix.arch }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
|
||||||
|
|
||||||
- name: Delivery
|
|
||||||
uses: ./.github/actions/package-delivery
|
|
||||||
with:
|
|
||||||
module_name: perl-libssh-session-${{ matrix.arch }}
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-libssh-session-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
stability: ${{ needs.get-environment.outputs.stability }}
|
|
||||||
release_type: ${{ needs.get-environment.outputs.release_type }}
|
|
||||||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
|
|
||||||
|
|
||||||
set-skip-label:
|
|
||||||
needs: [get-environment, deliver-packages]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
uses: ./.github/workflows/set-pull-request-skip-label.yml
|
|
199
.github/workflows/perl-net-curl.yml
vendored
199
.github/workflows/perl-net-curl.yml
vendored
@ -1,199 +0,0 @@
|
|||||||
name: perl-net-curl
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-net-curl/**"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- dev-[2-9][0-9].[0-9][0-9].x
|
|
||||||
- master
|
|
||||||
- "[2-9][0-9].[0-9][0-9].x"
|
|
||||||
paths:
|
|
||||||
- "dependencies/perl-net-curl/**"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-environment:
|
|
||||||
uses: ./.github/workflows/get-environment.yml
|
|
||||||
|
|
||||||
package:
|
|
||||||
needs: [get-environment]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
needs.get-environment.outputs.stability != 'stable'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- image: packaging-plugins-alma8
|
|
||||||
distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-alma9
|
|
||||||
distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bookworm
|
|
||||||
distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-jammy
|
|
||||||
distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
runner: ubuntu-22.04
|
|
||||||
arch: amd64
|
|
||||||
- image: packaging-plugins-bullseye-arm64
|
|
||||||
distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
runner: ["self-hosted", "collect-arm64"]
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner }}
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
|
|
||||||
credentials:
|
|
||||||
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
|
|
||||||
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
|
|
||||||
|
|
||||||
name: package ${{ matrix.distrib }} ${{ matrix.arch }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
||||||
|
|
||||||
- name: Install locally Net::Curl
|
|
||||||
run: |
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y libcurl4-openssl-dev cpanminus gcc
|
|
||||||
else
|
|
||||||
dnf install -y libcurl-devel cpanminus gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
cpanm -v -l /tmp Net::Curl@0.55
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set package name and paths according to distrib
|
|
||||||
run: |
|
|
||||||
PERL_VERSION=$(perl -E "say $^V" | sed -E "s/v([0-9]+\.[0-9]+).+/\1/g")
|
|
||||||
|
|
||||||
echo "Perl version is $PERL_VERSION"
|
|
||||||
|
|
||||||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then
|
|
||||||
NAME="libnet-curl-perl"
|
|
||||||
if [ "${{ matrix.arch }}" = "amd64" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/lib/x86_64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/lib/aarch64-linux-gnu/perl/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
NAME="perl-Net-Curl"
|
|
||||||
if [ "${{ matrix.distrib }}" = "el8" ]; then
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5"
|
|
||||||
else
|
|
||||||
PERL_VENDORARCH="/usr/local/lib64/perl5/$PERL_VERSION"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed -i "s/@NAME@/$NAME/g" dependencies/perl-net-curl/perl-net-curl.yaml
|
|
||||||
sed -i "s#@PERL_VENDORARCH@#$PERL_VENDORARCH#g" dependencies/perl-net-curl/perl-net-curl.yaml
|
|
||||||
|
|
||||||
cat dependencies/perl-net-curl/perl-net-curl.yaml
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
uses: ./.github/actions/package-nfpm
|
|
||||||
with:
|
|
||||||
nfpm_file_pattern: "dependencies/perl-net-curl/perl-net-curl.yaml"
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
package_extension: ${{ matrix.package_extension }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
commit_hash: ${{ github.sha }}
|
|
||||||
release: 1
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-net-curl-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
# set condition to true if artifacts are needed
|
|
||||||
- if: ${{ false }}
|
|
||||||
name: Upload package artifacts
|
|
||||||
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
|
|
||||||
with:
|
|
||||||
name: packages-${{ matrix.distrib }}-${{ matrix.arch }}
|
|
||||||
path: ./*.${{ matrix.package_extension }}
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
deliver-packages:
|
|
||||||
needs: [get-environment, package]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
(contains(fromJson('["testing", "unstable"]'), needs.get-environment.outputs.stability) || ( needs.get-environment.outputs.stability == 'stable' && github.event_name != 'workflow_dispatch')) &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- distrib: el8
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: el9
|
|
||||||
package_extension: rpm
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: bullseye
|
|
||||||
package_extension: deb
|
|
||||||
arch: arm64
|
|
||||||
- distrib: bookworm
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
- distrib: jammy
|
|
||||||
package_extension: deb
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
name: deliver ${{ matrix.distrib }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
|
|
||||||
|
|
||||||
- name: Delivery
|
|
||||||
uses: ./.github/actions/package-delivery
|
|
||||||
with:
|
|
||||||
module_name: perl-net-curl-${{ matrix.arch }}
|
|
||||||
distrib: ${{ matrix.distrib }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
cache_key: cache-${{ github.sha }}-${{ matrix.package_extension }}-perl-net-curl-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
|
|
||||||
stability: ${{ needs.get-environment.outputs.stability }}
|
|
||||||
release_type: ${{ needs.get-environment.outputs.release_type }}
|
|
||||||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
|
|
||||||
|
|
||||||
set-skip-label:
|
|
||||||
needs: [get-environment, deliver-packages]
|
|
||||||
if: |
|
|
||||||
needs.get-environment.outputs.skip_workflow == 'false' &&
|
|
||||||
! cancelled() &&
|
|
||||||
! contains(needs.*.result, 'failure') &&
|
|
||||||
! contains(needs.*.result, 'cancelled')
|
|
||||||
uses: ./.github/workflows/set-pull-request-skip-label.yml
|
|
2
.github/workflows/perl-openwsman.yml
vendored
2
.github/workflows/perl-openwsman.yml
vendored
@ -58,7 +58,7 @@ jobs:
|
|||||||
- image: packaging-plugins-bullseye-arm64
|
- image: packaging-plugins-bullseye-arm64
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
package_extension: deb
|
package_extension: deb
|
||||||
runner: ["self-hosted", "collect-arm64"]
|
runner: centreon-collect-arm64
|
||||||
arch: arm64
|
arch: arm64
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
|
2
.github/workflows/perl-vmware-vsphere.yml
vendored
2
.github/workflows/perl-vmware-vsphere.yml
vendored
@ -85,7 +85,7 @@ jobs:
|
|||||||
- package_extension: deb
|
- package_extension: deb
|
||||||
image: packaging-plugins-bullseye-arm64
|
image: packaging-plugins-bullseye-arm64
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
runner: ["self-hosted", "collect-arm64"]
|
runner: centreon-collect-arm64
|
||||||
arch: arm64
|
arch: arm64
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
|
10
.github/workflows/plugins.yml
vendored
10
.github/workflows/plugins.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
|
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
||||||
with:
|
with:
|
||||||
python-version: '3.9'
|
python-version: '3.9'
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ jobs:
|
|||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
- package_extension: deb
|
- package_extension: deb
|
||||||
image: unit-tests-bullseye-arm64
|
image: unit-tests-bullseye-arm64
|
||||||
runner_name: ["self-hosted", "collect-arm64"]
|
runner_name: centreon-collect-arm64
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
- package_extension: deb
|
- package_extension: deb
|
||||||
image: unit-tests-bookworm
|
image: unit-tests-bookworm
|
||||||
@ -157,7 +157,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Prepare FatPacker
|
- name: Prepare FatPacker
|
||||||
uses: shogo82148/actions-setup-perl@98dfedee230bcf1ee68d5b021931fc8d63f2016e # v1.31.4
|
uses: shogo82148/actions-setup-perl@49c14f24551d2de3bf56fb107a869c3760b1875e # v1.33.0
|
||||||
with:
|
with:
|
||||||
perl-version: '5.34'
|
perl-version: '5.34'
|
||||||
install-modules-with: cpm
|
install-modules-with: cpm
|
||||||
@ -333,7 +333,7 @@ jobs:
|
|||||||
image: testing-plugins-bullseye-arm64
|
image: testing-plugins-bullseye-arm64
|
||||||
distrib: bullseye
|
distrib: bullseye
|
||||||
arch: arm64
|
arch: arm64
|
||||||
runner_name: ["self-hosted", "collect-arm64"]
|
runner_name: centreon-collect-arm64
|
||||||
|
|
||||||
runs-on: ${{ matrix.runner_name }}
|
runs-on: ${{ matrix.runner_name }}
|
||||||
container:
|
container:
|
||||||
@ -406,7 +406,7 @@ jobs:
|
|||||||
if: |
|
if: |
|
||||||
needs.get-environment.outputs.stability == 'stable' &&
|
needs.get-environment.outputs.stability == 'stable' &&
|
||||||
github.event_name == 'push'
|
github.event_name == 'push'
|
||||||
runs-on: [self-hosted, common]
|
runs-on: centreon-common
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
|
2
.github/workflows/spellchecker.yml
vendored
2
.github/workflows/spellchecker.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
|||||||
- added|modified: 'src/**/*.pm'
|
- added|modified: 'src/**/*.pm'
|
||||||
|
|
||||||
- name: Install CPAN Libraries
|
- name: Install CPAN Libraries
|
||||||
uses: shogo82148/actions-setup-perl@98dfedee230bcf1ee68d5b021931fc8d63f2016e # v1.31.4
|
uses: shogo82148/actions-setup-perl@49c14f24551d2de3bf56fb107a869c3760b1875e # v1.33.0
|
||||||
with:
|
with:
|
||||||
perl-version: '5.34'
|
perl-version: '5.34'
|
||||||
install-modules-with: cpm
|
install-modules-with: cpm
|
||||||
|
@ -26,6 +26,7 @@ import java.text.NumberFormat;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.ibm.as400.access.AS400;
|
import com.ibm.as400.access.AS400;
|
||||||
|
import com.ibm.as400.access.SecureAS400;
|
||||||
import com.ibm.as400.access.AS400SecurityException;
|
import com.ibm.as400.access.AS400SecurityException;
|
||||||
import com.ibm.as400.access.ConnectionEvent;
|
import com.ibm.as400.access.ConnectionEvent;
|
||||||
import com.ibm.as400.access.ConnectionListener;
|
import com.ibm.as400.access.ConnectionListener;
|
||||||
@ -44,11 +45,13 @@ public abstract class AbstractHandler {
|
|||||||
protected String host = null;
|
protected String host = null;
|
||||||
protected String login = null;
|
protected String login = null;
|
||||||
protected String password = null;
|
protected String password = null;
|
||||||
|
protected Integer ssl = 0;
|
||||||
|
|
||||||
public AbstractHandler(final String host, final String login, final String password) {
|
public AbstractHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.login = login;
|
this.login = login;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
|
this.ssl = ssl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@ -77,7 +80,28 @@ public abstract class AbstractHandler {
|
|||||||
properties.setLoginTimeout(Conf.as400LoginTimeout);
|
properties.setLoginTimeout(Conf.as400LoginTimeout);
|
||||||
properties.setSoTimeout(Conf.as400ReadTimeout);
|
properties.setSoTimeout(Conf.as400ReadTimeout);
|
||||||
|
|
||||||
final AS400 system = new AS400(this.host, this.login, this.password);
|
if (this.ssl == 1) {
|
||||||
|
SecureAS400 system = new SecureAS400(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 (AS400)system;
|
||||||
|
}
|
||||||
|
|
||||||
|
AS400 system = new AS400(this.host, this.login, this.password);
|
||||||
|
|
||||||
system.setSocketProperties(properties);
|
system.setSocketProperties(properties);
|
||||||
system.addConnectionListener(new ConnectionListener() {
|
system.addConnectionListener(new ConnectionListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,8 +34,8 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
*/
|
*/
|
||||||
public class CommandHandler extends AbstractHandler implements ICommandHandler {
|
public class CommandHandler extends AbstractHandler implements ICommandHandler {
|
||||||
|
|
||||||
public CommandHandler(final String host, final String login, final String password) {
|
public CommandHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -38,10 +38,10 @@ public class DiskHandler extends AbstractHandler implements IDiskHandler {
|
|||||||
|
|
||||||
private QyaspolYasp0300PcmlHandler qyaspolPcmlHandler = null;
|
private QyaspolYasp0300PcmlHandler qyaspolPcmlHandler = null;
|
||||||
|
|
||||||
public DiskHandler(final String host, final String login, final String password)
|
public DiskHandler(final String host, final String login, final String password, final Integer ssl)
|
||||||
throws AS400SecurityException, IOException {
|
throws AS400SecurityException, IOException {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
this.qyaspolPcmlHandler = new QyaspolYasp0300PcmlHandler(host, login, password);
|
this.qyaspolPcmlHandler = new QyaspolYasp0300PcmlHandler(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -37,8 +37,8 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
public class JobHandler extends AbstractHandler implements IJobHandler {
|
public class JobHandler extends AbstractHandler implements IJobHandler {
|
||||||
private final JobCache jobCache;
|
private final JobCache jobCache;
|
||||||
|
|
||||||
public JobHandler(final String host, final String login, final String password) {
|
public JobHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
this.jobCache = new JobCache(this);
|
this.jobCache = new JobCache(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
*/
|
*/
|
||||||
public class JobQueueHandler extends AbstractHandler implements IJobQueueHandler {
|
public class JobQueueHandler extends AbstractHandler implements IJobQueueHandler {
|
||||||
|
|
||||||
public JobQueueHandler(final String host, final String login, final String password) {
|
public JobQueueHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -42,9 +42,9 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
*/
|
*/
|
||||||
public class SubSystemHandler extends AbstractHandler implements ISubSystemHandler {
|
public class SubSystemHandler extends AbstractHandler implements ISubSystemHandler {
|
||||||
|
|
||||||
public SubSystemHandler(final String host, final String login, final String password)
|
public SubSystemHandler(final String host, final String login, final String password, final Integer ssl)
|
||||||
throws AS400SecurityException, IOException {
|
throws AS400SecurityException, IOException {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,14 +45,14 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
public class SystemHandler extends AbstractHandler implements ISystemHandler {
|
public class SystemHandler extends AbstractHandler implements ISystemHandler {
|
||||||
private SystemStatus status = null;
|
private SystemStatus status = null;
|
||||||
|
|
||||||
public SystemHandler(final String host, final String login, final String password)
|
public SystemHandler(final String host, final String login, final String password, final Integer ssl)
|
||||||
throws AS400SecurityException, IOException {
|
throws AS400SecurityException, IOException {
|
||||||
this(host, login, password, null);
|
this(host, login, password, null, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SystemHandler(final String host, final String login, final String password, SystemStatus as400Status)
|
public SystemHandler(final String host, final String login, final String password, SystemStatus as400Status, final Integer ssl)
|
||||||
throws AS400SecurityException, IOException {
|
throws AS400SecurityException, IOException {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
this.status = as400Status == null ? new SystemStatus(getNewAs400()) : as400Status;
|
this.status = as400Status == null ? new SystemStatus(getNewAs400()) : as400Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.ibm.as400.access.AS400;
|
import com.ibm.as400.access.AS400;
|
||||||
|
import com.ibm.as400.access.SecureAS400;
|
||||||
import com.ibm.as400.access.AS400Message;
|
import com.ibm.as400.access.AS400Message;
|
||||||
import com.ibm.as400.access.AS400SecurityException;
|
import com.ibm.as400.access.AS400SecurityException;
|
||||||
import com.ibm.as400.access.ConnectionEvent;
|
import com.ibm.as400.access.ConnectionEvent;
|
||||||
@ -61,11 +62,13 @@ public class QyaspolYasp0300PcmlHandler {
|
|||||||
String host = null;
|
String host = null;
|
||||||
String login = null;
|
String login = null;
|
||||||
String password = null;
|
String password = null;
|
||||||
|
Integer ssl = 0;
|
||||||
|
|
||||||
public QyaspolYasp0300PcmlHandler(final String host, final String login, final String password) {
|
public QyaspolYasp0300PcmlHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.login = login;
|
this.login = login;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
|
this.ssl = ssl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addYasp0300Data(final Yasp0300Data data) {
|
public void addYasp0300Data(final Yasp0300Data data) {
|
||||||
@ -238,7 +241,27 @@ public class QyaspolYasp0300PcmlHandler {
|
|||||||
properties.setLoginTimeout(Conf.as400LoginTimeout);
|
properties.setLoginTimeout(Conf.as400LoginTimeout);
|
||||||
properties.setSoTimeout(Conf.as400ReadTimeout);
|
properties.setSoTimeout(Conf.as400ReadTimeout);
|
||||||
|
|
||||||
final AS400 system = new AS400(this.host, this.login, this.password);
|
if (this.ssl == 1) {
|
||||||
|
SecureAS400 system = new SecureAS400(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 (AS400)system;
|
||||||
|
}
|
||||||
|
|
||||||
|
AS400 system = new AS400(this.host, this.login, this.password);
|
||||||
system.setSocketProperties(properties);
|
system.setSocketProperties(properties);
|
||||||
system.addConnectionListener(new ConnectionListener() {
|
system.addConnectionListener(new ConnectionListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -102,8 +102,8 @@ public class CachedMessageQueueHandler extends AbstractHandler implements ICache
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public CachedMessageQueueHandler(final String host, final String login, final String password) {
|
public CachedMessageQueueHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -42,8 +42,8 @@ import com.centreon.connector.as400.dispatcher.check.ResponseData;
|
|||||||
*/
|
*/
|
||||||
public class MessageQueueHandler extends AbstractHandler implements IMessageQueueHandler {
|
public class MessageQueueHandler extends AbstractHandler implements IMessageQueueHandler {
|
||||||
|
|
||||||
public MessageQueueHandler(final String host, final String login, final String password) {
|
public MessageQueueHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -69,8 +69,8 @@ public class WorkWithProblemHandler extends AbstractHandler {
|
|||||||
private final boolean SSL = false;
|
private final boolean SSL = false;
|
||||||
private final String logPrefix;
|
private final String logPrefix;
|
||||||
|
|
||||||
public WorkWithProblemHandler(final String host, final String login, final String password) {
|
public WorkWithProblemHandler(final String host, final String login, final String password, final Integer ssl) {
|
||||||
super(host, login, password);
|
super(host, login, password, ssl);
|
||||||
this.logPrefix = "[" + WorkWithProblemHandler.INSTANCE_ID++ + "]";
|
this.logPrefix = "[" + WorkWithProblemHandler.INSTANCE_ID++ + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,5 +40,7 @@ public interface IClient {
|
|||||||
|
|
||||||
String getAs400CheckType();
|
String getAs400CheckType();
|
||||||
|
|
||||||
|
Integer getAs400Ssl();
|
||||||
|
|
||||||
Object getAs400Arg(String key);
|
Object getAs400Arg(String key);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ abstract class AbstractClient implements IClient {
|
|||||||
private String as400Password = null;
|
private String as400Password = null;
|
||||||
private String as400CheckType = null;
|
private String as400CheckType = null;
|
||||||
private String as400Args = null;
|
private String as400Args = null;
|
||||||
|
private Integer as400Ssl = 0;
|
||||||
private List<Map<String, String>> argList = new ArrayList<Map<String, String>>();
|
private List<Map<String, String>> argList = new ArrayList<Map<String, String>>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -77,6 +78,11 @@ abstract class AbstractClient implements IClient {
|
|||||||
return this.input.getArg(key);
|
return this.input.getArg(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getAs400Ssl() {
|
||||||
|
return this.input.getSsl();
|
||||||
|
}
|
||||||
|
|
||||||
public List<Map<String , String>> getAs400ArgList(String key) {
|
public List<Map<String , String>> getAs400ArgList(String key) {
|
||||||
Object arg = this.input.getArg(key);
|
Object arg = this.input.getArg(key);
|
||||||
if (arg == null) {
|
if (arg == null) {
|
||||||
|
@ -87,6 +87,7 @@ public class CheckDispatcher {
|
|||||||
private String host = null;
|
private String host = null;
|
||||||
private String login = null;
|
private String login = null;
|
||||||
private String password = null;
|
private String password = null;
|
||||||
|
private Integer ssl = 0;
|
||||||
|
|
||||||
private volatile ConcurrentHashMap<String, Long> filter = new ConcurrentHashMap<String, Long>();
|
private volatile ConcurrentHashMap<String, Long> filter = new ConcurrentHashMap<String, Long>();
|
||||||
|
|
||||||
@ -135,10 +136,11 @@ public class CheckDispatcher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CheckDispatcher(final String host, final String login, final String password) {
|
public CheckDispatcher(final String host, final String login, final String password, final Integer ssl) {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.login = login;
|
this.login = login;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
|
this.ssl = ssl;
|
||||||
|
|
||||||
this.executorGlobal = new ThreadPoolExecutorPostFilter(5, 10, Conf.workerQueueTimeout, TimeUnit.MILLISECONDS,
|
this.executorGlobal = new ThreadPoolExecutorPostFilter(5, 10, Conf.workerQueueTimeout, TimeUnit.MILLISECONDS,
|
||||||
new LinkedBlockingQueue<Runnable>());
|
new LinkedBlockingQueue<Runnable>());
|
||||||
@ -165,6 +167,10 @@ public class CheckDispatcher {
|
|||||||
return this.password;
|
return this.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getSsl() {
|
||||||
|
return this.ssl;
|
||||||
|
}
|
||||||
|
|
||||||
public synchronized void dispatch(final NetworkClient client) {
|
public synchronized void dispatch(final NetworkClient client) {
|
||||||
|
|
||||||
if (this.filter.containsKey(client.getRawRequest())) {
|
if (this.filter.containsKey(client.getRawRequest())) {
|
||||||
@ -190,52 +196,52 @@ public class CheckDispatcher {
|
|||||||
|
|
||||||
public ICommandHandler getCommandHandler() throws AS400SecurityException, IOException {
|
public ICommandHandler getCommandHandler() throws AS400SecurityException, IOException {
|
||||||
if (this.commandHandler == null) {
|
if (this.commandHandler == null) {
|
||||||
this.commandHandler = new CommandHandler(this.host, this.login, this.password);
|
this.commandHandler = new CommandHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
return this.commandHandler;
|
return this.commandHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDiskHandler getDiskHandler() throws AS400SecurityException, IOException {
|
public IDiskHandler getDiskHandler() throws AS400SecurityException, IOException {
|
||||||
if (this.diskHandler == null) {
|
if (this.diskHandler == null) {
|
||||||
this.diskHandler = new DiskHandler(this.host, this.login, this.password);
|
this.diskHandler = new DiskHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
return this.diskHandler;
|
return this.diskHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IJobHandler getJobHandler() throws AS400SecurityException, IOException {
|
public IJobHandler getJobHandler() throws AS400SecurityException, IOException {
|
||||||
if (this.jobHandler == null) {
|
if (this.jobHandler == null) {
|
||||||
this.jobHandler = new JobHandler(this.host, this.login, this.password);
|
this.jobHandler = new JobHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
return this.jobHandler;
|
return this.jobHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISubSystemHandler getSubSystemHandler() throws AS400SecurityException, IOException {
|
public ISubSystemHandler getSubSystemHandler() throws AS400SecurityException, IOException {
|
||||||
if (this.subSystemHandler == null) {
|
if (this.subSystemHandler == null) {
|
||||||
this.subSystemHandler = new SubSystemHandler(this.host, this.login, this.password);
|
this.subSystemHandler = new SubSystemHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
return this.subSystemHandler;
|
return this.subSystemHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISystemHandler getSystemHandler() throws AS400SecurityException, IOException {
|
public ISystemHandler getSystemHandler() throws AS400SecurityException, IOException {
|
||||||
if (this.systemHandler == null) {
|
if (this.systemHandler == null) {
|
||||||
this.systemHandler = new SystemHandler(this.host, this.login, this.password);
|
this.systemHandler = new SystemHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
return this.systemHandler;
|
return this.systemHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICachedMessageQueueHandler getCachedMessageQueueHandler() throws AS400SecurityException, IOException {
|
public ICachedMessageQueueHandler getCachedMessageQueueHandler() throws AS400SecurityException, IOException {
|
||||||
return new CachedMessageQueueHandler(this.host, this.login, this.password);
|
return new CachedMessageQueueHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IMessageQueueHandler getMessageQueueHandler() throws AS400SecurityException, IOException {
|
public IMessageQueueHandler getMessageQueueHandler() throws AS400SecurityException, IOException {
|
||||||
return new MessageQueueHandler(this.host, this.login, this.password);
|
return new MessageQueueHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IJobQueueHandler getJobQueueHandler() throws AS400SecurityException, IOException {
|
public IJobQueueHandler getJobQueueHandler() throws AS400SecurityException, IOException {
|
||||||
return new JobQueueHandler(this.host, this.login, this.password);
|
return new JobQueueHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorkWithProblemHandler getWrkPrbHandler() throws AS400SecurityException, IOException {
|
public WorkWithProblemHandler getWrkPrbHandler() throws AS400SecurityException, IOException {
|
||||||
return new WorkWithProblemHandler(this.host, this.login, this.password);
|
return new WorkWithProblemHandler(this.host, this.login, this.password, this.ssl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@ public class InputData {
|
|||||||
private String password = null;
|
private String password = null;
|
||||||
private String host = null;
|
private String host = null;
|
||||||
private String command = null;
|
private String command = null;
|
||||||
|
private Integer ssl = null;
|
||||||
Map<String, Object> args = null;
|
Map<String, Object> args = null;
|
||||||
|
|
||||||
public InputData() {
|
public InputData() {
|
||||||
@ -44,6 +45,13 @@ public class InputData {
|
|||||||
return this.password;
|
return this.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getSsl() {
|
||||||
|
if (this.ssl == null || this.ssl == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
public String getHost() {
|
public String getHost() {
|
||||||
return this.host;
|
return this.host;
|
||||||
}
|
}
|
||||||
|
@ -52,37 +52,37 @@ public class ClientDispatcherImpl implements ClientDispatcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private synchronized CheckDispatcher createNewCheckDispatcher(final String host, final String login,
|
private synchronized CheckDispatcher createNewCheckDispatcher(final String host, final String login,
|
||||||
final String password) throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
final String password, final Integer ssl) throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
||||||
|
|
||||||
ConnectorLogger.getInstance().info("create new As400 : " + host);
|
ConnectorLogger.getInstance().info("create new As400 : " + host);
|
||||||
|
|
||||||
CheckDispatcher resource = null;
|
CheckDispatcher resource = null;
|
||||||
resource = new CheckDispatcher(host, login, password);
|
resource = new CheckDispatcher(host, login, password, ssl);
|
||||||
|
|
||||||
this.pool.put(resource, System.currentTimeMillis());
|
this.pool.put(resource, System.currentTimeMillis());
|
||||||
|
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CheckDispatcher getAs400(final String host, final String login, final String password)
|
private CheckDispatcher getAs400(final String host, final String login, final String password, final Integer ssl)
|
||||||
throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
||||||
|
|
||||||
for (final CheckDispatcher resource : this.pool.keySet()) {
|
for (final CheckDispatcher resource : this.pool.keySet()) {
|
||||||
if (resource.getHost().equalsIgnoreCase(host) && resource.getLogin().equalsIgnoreCase(login)
|
if (resource.getHost().equalsIgnoreCase(host) && resource.getLogin().equalsIgnoreCase(login)
|
||||||
&& resource.getPassword().equalsIgnoreCase(password)) {
|
&& resource.getPassword().equalsIgnoreCase(password) && resource.getSsl() == ssl) {
|
||||||
this.pool.put(resource, System.currentTimeMillis());
|
this.pool.put(resource, System.currentTimeMillis());
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.createNewCheckDispatcher(host, login, password);
|
return this.createNewCheckDispatcher(host, login, password, ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void dispatch(final NetworkClient client)
|
public synchronized void dispatch(final NetworkClient client)
|
||||||
throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
throws AS400SecurityException, IOException, DelayedConnectionException, Exception {
|
||||||
final CheckDispatcher checkDispatcher = this.getAs400(client.getAs400Host(), client.getAs400Login(),
|
final CheckDispatcher checkDispatcher = this.getAs400(client.getAs400Host(), client.getAs400Login(),
|
||||||
client.getAs400Password());
|
client.getAs400Password(), client.getAs400Ssl());
|
||||||
checkDispatcher.dispatch(client);
|
checkDispatcher.dispatch(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public class SystemHandlerTest {
|
|||||||
try {
|
try {
|
||||||
SystemStatus as400 = mock(SystemStatus.class);
|
SystemStatus as400 = mock(SystemStatus.class);
|
||||||
when(as400.getSystemPools()).thenReturn(new Vector<Object>().elements());
|
when(as400.getSystemPools()).thenReturn(new Vector<Object>().elements());
|
||||||
SystemHandler sh = new SystemHandler(null, null, null, as400);
|
SystemHandler sh = new SystemHandler(null, null, null, as400, null);
|
||||||
sh.dumpSystem();
|
sh.dumpSystem();
|
||||||
} finally {
|
} finally {
|
||||||
System.setOut(originalOut);
|
System.setOut(originalOut);
|
||||||
|
@ -1,77 +0,0 @@
|
|||||||
name: "@NAME@"
|
|
||||||
arch: "${ARCH}"
|
|
||||||
platform: "linux"
|
|
||||||
version_schema: "none"
|
|
||||||
version: "0.020"
|
|
||||||
release: "${RELEASE}${DIST}"
|
|
||||||
section: "default"
|
|
||||||
priority: "optional"
|
|
||||||
maintainer: "Centreon <contact@centreon.com>"
|
|
||||||
description: |
|
|
||||||
This module implements the Argon2 key derivation function, which is suitable to convert any password into a cryptographic key.
|
|
||||||
This is most often used to for secure storage of passwords but can also be used to derive a encryption key from a password.
|
|
||||||
It offers variable time and memory costs as well as output size.
|
|
||||||
Commit: @COMMIT_HASH@
|
|
||||||
vendor: "Centreon"
|
|
||||||
homepage: "https://www.centreon.com"
|
|
||||||
license: "Apache-2.0"
|
|
||||||
|
|
||||||
contents:
|
|
||||||
- src: "/tmp/bin/argon2-calibrate"
|
|
||||||
dst: "/usr/local/bin/"
|
|
||||||
file_info:
|
|
||||||
mode: 0755
|
|
||||||
packager: rpm
|
|
||||||
- src: "/tmp/bin/argon2-calibrate"
|
|
||||||
dst: "/usr/bin/"
|
|
||||||
file_info:
|
|
||||||
mode: 0755
|
|
||||||
packager: deb
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/*/auto/Crypt/Argon2/"
|
|
||||||
dst: "@PERL_VENDORARCH@/auto/Crypt/Argon2/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/*/Crypt/Argon2.pm"
|
|
||||||
dst: "@PERL_VENDORARCH@/Crypt/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/man/man3/Crypt::Argon2*"
|
|
||||||
dst: "/usr/share/man/man3/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
overrides:
|
|
||||||
rpm:
|
|
||||||
depends:
|
|
||||||
- perl(Exporter)
|
|
||||||
- perl(Time::HiRes)
|
|
||||||
- perl(XSLoader)
|
|
||||||
- perl(strict)
|
|
||||||
- perl(warnings)
|
|
||||||
conflicts:
|
|
||||||
- perl-Crypt-Argon2-debuginfo
|
|
||||||
replaces:
|
|
||||||
- perl-Crypt-Argon2-debuginfo
|
|
||||||
provides:
|
|
||||||
- perl-Crypt-Argon2-debuginfo
|
|
||||||
- perl(Crypt::Argon2)
|
|
||||||
deb:
|
|
||||||
depends:
|
|
||||||
- perl
|
|
||||||
- libc6
|
|
||||||
conflicts:
|
|
||||||
- libcrypt-argon2-perl-dbgsym
|
|
||||||
replaces:
|
|
||||||
- libcrypt-argon2-perl-dbgsym
|
|
||||||
provides:
|
|
||||||
- libcrypt-argon2-perl-dbgsym
|
|
||||||
|
|
||||||
rpm:
|
|
||||||
summary: Perl interface to the Argon2 key derivation functions
|
|
||||||
compression: zstd
|
|
||||||
signature:
|
|
||||||
key_file: ${RPM_SIGNING_KEY_FILE}
|
|
||||||
key_id: ${RPM_SIGNING_KEY_ID}
|
|
63
dependencies/perl-json-path/perl-json-path.yaml
vendored
63
dependencies/perl-json-path/perl-json-path.yaml
vendored
@ -1,63 +0,0 @@
|
|||||||
name: "@NAME@"
|
|
||||||
arch: "${ARCH}"
|
|
||||||
platform: "linux"
|
|
||||||
version_schema: "none"
|
|
||||||
version: "@VERSION@"
|
|
||||||
release: "${RELEASE}${DIST}"
|
|
||||||
section: "default"
|
|
||||||
priority: "optional"
|
|
||||||
maintainer: "Centreon <contact@centreon.com>"
|
|
||||||
description: |
|
|
||||||
This module implements JSONPath, an XPath-like language for searching JSON-like structures.
|
|
||||||
JSONPath is described at http://goessner.net/articles/JsonPath/.
|
|
||||||
Commit: @COMMIT_HASH@
|
|
||||||
vendor: "Centreon"
|
|
||||||
homepage: "https://www.centreon.com"
|
|
||||||
license: "Apache-2.0"
|
|
||||||
|
|
||||||
contents:
|
|
||||||
- src: "/tmp/lib/perl5/JSON/Path.pm"
|
|
||||||
dst: "@PERL_VENDORLIB@/JSON/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/JSON/Path/"
|
|
||||||
dst: "@PERL_VENDORLIB@/JSON/Path/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/man/man3/JSON::Path*"
|
|
||||||
dst: "/usr/share/man/man3/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
overrides:
|
|
||||||
rpm:
|
|
||||||
depends:
|
|
||||||
- perl(Carp::Assert)
|
|
||||||
- perl(Exporter::Tiny)
|
|
||||||
- perl(JSON::MaybeXS)
|
|
||||||
- perl(JSON::Parse)
|
|
||||||
- perl(LV)
|
|
||||||
- perl(List::Util)
|
|
||||||
- perl(Readonly)
|
|
||||||
- perl(Tie::IxHash)
|
|
||||||
- perl(Try::Tiny)
|
|
||||||
provides:
|
|
||||||
- perl(JSON::Path)
|
|
||||||
deb:
|
|
||||||
depends:
|
|
||||||
- libcarp-assert-perl
|
|
||||||
- libexporter-tiny-perl
|
|
||||||
- libjson-parse-perl
|
|
||||||
- liblv-perl
|
|
||||||
- libreadonly-perl
|
|
||||||
- libtie-ixhash-perl
|
|
||||||
- libtry-tiny-perl
|
|
||||||
|
|
||||||
rpm:
|
|
||||||
summary: This module implements JSONPath, an XPath-like language for searching JSON-like structures
|
|
||||||
compression: zstd
|
|
||||||
signature:
|
|
||||||
key_file: ${RPM_SIGNING_KEY_FILE}
|
|
||||||
key_id: ${RPM_SIGNING_KEY_ID}
|
|
@ -1,64 +0,0 @@
|
|||||||
name: "@NAME@"
|
|
||||||
arch: "${ARCH}"
|
|
||||||
platform: "linux"
|
|
||||||
version_schema: "none"
|
|
||||||
version: "0.8"
|
|
||||||
release: "${RELEASE}${DIST}"
|
|
||||||
section: "default"
|
|
||||||
priority: "optional"
|
|
||||||
maintainer: "Centreon <contact@centreon.com>"
|
|
||||||
description: |
|
|
||||||
Perl interface to the libssh library
|
|
||||||
Commit: @COMMIT_HASH@
|
|
||||||
vendor: "Centreon"
|
|
||||||
homepage: "https://www.centreon.com"
|
|
||||||
license: "Apache-2.0"
|
|
||||||
|
|
||||||
contents:
|
|
||||||
- src: "/tmp/lib/perl5/*/auto/Libssh/Session/Session.so"
|
|
||||||
dst: "@PERL_VENDORARCH@/auto/Libssh/Session/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/*/Libssh/"
|
|
||||||
dst: "@PERL_VENDORARCH@/Libssh/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/man/man3/Libssh::*"
|
|
||||||
dst: "/usr/share/man/man3/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
overrides:
|
|
||||||
rpm:
|
|
||||||
depends:
|
|
||||||
- perl-interpreter
|
|
||||||
- libssh
|
|
||||||
conflicts:
|
|
||||||
- perl-Libssh-Session-debuginfo
|
|
||||||
replaces:
|
|
||||||
- perl-Libssh-Session-debuginfo
|
|
||||||
provides:
|
|
||||||
- perl-Libssh-Session-debuginfo
|
|
||||||
- perl(Libssh::Session)
|
|
||||||
- perl(Libssh::Sftp)
|
|
||||||
deb:
|
|
||||||
depends:
|
|
||||||
- perl
|
|
||||||
- libc6
|
|
||||||
- libssh-4
|
|
||||||
conflicts:
|
|
||||||
- libssh-session-perl-dbgsym
|
|
||||||
replaces:
|
|
||||||
- libssh-session-perl-dbgsym
|
|
||||||
provides:
|
|
||||||
- libssh-session-perl-dbgsym
|
|
||||||
- libssh-session-sftp
|
|
||||||
|
|
||||||
rpm:
|
|
||||||
summary: Perl interface to the libssh library
|
|
||||||
compression: zstd
|
|
||||||
signature:
|
|
||||||
key_file: ${RPM_SIGNING_KEY_FILE}
|
|
||||||
key_id: ${RPM_SIGNING_KEY_ID}
|
|
78
dependencies/perl-net-curl/perl-net-curl.yaml
vendored
78
dependencies/perl-net-curl/perl-net-curl.yaml
vendored
@ -1,78 +0,0 @@
|
|||||||
name: "@NAME@"
|
|
||||||
arch: "${ARCH}"
|
|
||||||
platform: "linux"
|
|
||||||
version_schema: "none"
|
|
||||||
version: "0.55"
|
|
||||||
release: "${RELEASE}${DIST}"
|
|
||||||
section: "default"
|
|
||||||
priority: "optional"
|
|
||||||
maintainer: "Centreon <contact@centreon.com>"
|
|
||||||
description: |
|
|
||||||
Net::Curl provides a Perl interface to libcurl created with object-oriented implementations in mind.
|
|
||||||
This documentation contains Perl-specific details and quirks.
|
|
||||||
For more information consult libcurl man pages and documentation at http://curl.haxx.se.
|
|
||||||
Commit: @COMMIT_HASH@
|
|
||||||
vendor: "Centreon"
|
|
||||||
homepage: "https://www.centreon.com"
|
|
||||||
license: "Apache-2.0"
|
|
||||||
|
|
||||||
contents:
|
|
||||||
- src: "/tmp/lib/perl5/*/auto/Net/Curl/Curl.so"
|
|
||||||
dst: "@PERL_VENDORARCH@/auto/Net/Curl/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/*/Net/Curl.pm"
|
|
||||||
dst: "@PERL_VENDORARCH@/Net/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/lib/perl5/*/Net/Curl/"
|
|
||||||
dst: "@PERL_VENDORARCH@/Net/Curl/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- src: "/tmp/man/man3/Net::Curl*"
|
|
||||||
dst: "/usr/share/man/man3/"
|
|
||||||
file_info:
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
overrides:
|
|
||||||
rpm:
|
|
||||||
depends:
|
|
||||||
- perl-interpreter
|
|
||||||
- libcurl
|
|
||||||
conflicts:
|
|
||||||
- perl-Net-Curl-debuginfo
|
|
||||||
replaces:
|
|
||||||
- perl-Net-Curl-debuginfo
|
|
||||||
provides:
|
|
||||||
- perl-Net-Curl-debuginfo
|
|
||||||
- perl(Net::Curl)
|
|
||||||
- perl(Net::Curl::Compat)
|
|
||||||
- perl(Net::Curl::Easy)
|
|
||||||
- perl(Net::Curl::Form)
|
|
||||||
- perl(Net::Curl::Share)
|
|
||||||
- perl(Net::Curl::Multi)
|
|
||||||
deb:
|
|
||||||
depends:
|
|
||||||
- perl
|
|
||||||
- libcurl4
|
|
||||||
conflicts:
|
|
||||||
- libnet-curl-perl-dbgsym
|
|
||||||
replaces:
|
|
||||||
- libnet-curl-perl-dbgsym
|
|
||||||
provides:
|
|
||||||
- libnet-curl-perl-dbgsym
|
|
||||||
- libnet-curl-compat-perl
|
|
||||||
- libnet-curl-easy-perl
|
|
||||||
- libnet-curl-form-perl
|
|
||||||
- libnet-curl-share-perl
|
|
||||||
- libnet-curl-multi-perl
|
|
||||||
|
|
||||||
rpm:
|
|
||||||
summary: Perl interface for libcurl
|
|
||||||
compression: zstd
|
|
||||||
signature:
|
|
||||||
key_file: ${RPM_SIGNING_KEY_FILE}
|
|
||||||
key_id: ${RPM_SIGNING_KEY_ID}
|
|
@ -5,9 +5,12 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"centreon/plugins/script_snmp.pm",
|
"centreon/plugins/script_snmp.pm",
|
||||||
"centreon/plugins/snmp.pm",
|
"centreon/plugins/snmp.pm",
|
||||||
|
"snmp_standard/mode/interfaces.pm",
|
||||||
"snmp_standard/mode/listinterfaces.pm",
|
"snmp_standard/mode/listinterfaces.pm",
|
||||||
|
"snmp_standard/mode/listspanningtrees.pm",
|
||||||
"snmp_standard/mode/resources/",
|
"snmp_standard/mode/resources/",
|
||||||
"snmp_standard/mode/interfaces.pm",
|
"snmp_standard/mode/spanningtree.pm",
|
||||||
|
"snmp_standard/mode/uptime.pm",
|
||||||
"network/aruba/aoscx/snmp/"
|
"network/aruba/aoscx/snmp/"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ sub prefix_scenario_output {
|
|||||||
sub prefix_steps_output {
|
sub prefix_steps_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return sprintf(" Step: %s, last exec: %s, ", $options{instance_value}->{display}, $options{instance_value}->{last_exec});
|
return sprintf("Step: %s, last exec: %s, ", $options{instance_value}->{display}, $options{instance_value}->{last_exec});
|
||||||
}
|
}
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
@ -61,9 +61,9 @@ sub set_counters {
|
|||||||
$self->{maps_counters}->{global} = [
|
$self->{maps_counters}->{global} = [
|
||||||
{ label => 'scenario-status',
|
{ label => 'scenario-status',
|
||||||
type => 2,
|
type => 2,
|
||||||
warning_default => '%{status} =~ /(Aborted|Stopped|Excluded|Degraded)/',
|
warning_default => '%{status} =~ "Degraded"',
|
||||||
critical_default => '%{status} =~ "Failure"',
|
critical_default => '%{status} =~ "Failure"',
|
||||||
unknown_default => '%{status} =~ /(Unknown|No execution)/',
|
unknown_default => '%{status} =~ /(Unknown|No execution|Aborted|Stopped|Excluded)/',
|
||||||
set => {
|
set => {
|
||||||
key_values => [ { name => 'status' }, { name => 'num_status' }, { name => 'display' } ],
|
key_values => [ { name => 'status' }, { name => 'num_status' }, { name => 'display' } ],
|
||||||
closure_custom_output => $self->can('custom_status_output'),
|
closure_custom_output => $self->can('custom_status_output'),
|
||||||
@ -182,7 +182,7 @@ sub manage_selection {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (!defined $scenario_detail->{results} or scalar(@{$scenario_detail->{results}}) <= 0) {
|
if (!defined $scenario_detail->{results} or scalar(@{$scenario_detail->{results}}) <= 0) {
|
||||||
$self->{output}->add_option_msg(short_msg => "Scenario '" . $scenario->{scenarioName} . "' Don't have any performance data, please try to add a bigger timeframe");
|
$self->{output}->add_option_msg(short_msg => "No execution, please try again with a bigger timeframe");
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
foreach my $kpi (@{$scenario_detail->{kpis}}) {
|
foreach my $kpi (@{$scenario_detail->{kpis}}) {
|
||||||
@ -194,8 +194,17 @@ sub manage_selection {
|
|||||||
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{$steps->{index} - 1} = $steps->{name};
|
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{$steps->{index} - 1} = $steps->{name};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# The API is expected to sort the output to get the most recent data at the end of the array.
|
||||||
|
# We store the last execution date, and check it for every data point sent back by the api.
|
||||||
|
# If a step has failed, no data is sent by the api for this step, but the results of the previous executions are present.
|
||||||
|
# This allows to get perfdata for the last execution with a successful first step.
|
||||||
|
# If the first step fails, the script will take older data.
|
||||||
|
my $last_execution = @{$scenario_detail->{results}}[-1]->{planningTime};
|
||||||
foreach my $step_metrics (@{$scenario_detail->{results}}) {
|
foreach my $step_metrics (@{$scenario_detail->{results}}) {
|
||||||
|
if ($step_metrics->{planningTime} ne $last_execution){
|
||||||
|
$self->{output}->add_option_msg(long_msg => "Execution $step_metrics->{planningTime} of step $step_metrics->{stepId} is older than $last_execution, not taking it into account.", debug => 1);
|
||||||
|
next;
|
||||||
|
}
|
||||||
my $exec_time = str2time($step_metrics->{planningTime}, 'GMT');
|
my $exec_time = str2time($step_metrics->{planningTime}, 'GMT');
|
||||||
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps}->{ $self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{ $step_metrics->{stepId} } }->{ $step_metrics->{metric} } = $step_metrics->{value};
|
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps}->{ $self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{ $step_metrics->{stepId} } }->{ $step_metrics->{metric} } = $step_metrics->{value};
|
||||||
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps}->{ $self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{ $step_metrics->{stepId} } }->{last_exec} = POSIX::strftime('%d-%m-%Y %H:%M:%S %Z', localtime($exec_time));
|
$self->{scenarios}->{ $scenario->{scenarioName} }->{steps}->{ $self->{scenarios}->{ $scenario->{scenarioName} }->{steps_index}->{ $step_metrics->{stepId} } }->{last_exec} = POSIX::strftime('%d-%m-%Y %H:%M:%S %Z', localtime($exec_time));
|
||||||
|
@ -47,7 +47,7 @@ sub custom_select_threshold {
|
|||||||
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
||||||
$status = 'warning';
|
$status = 'warning';
|
||||||
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
||||||
$self->{instance_mode}->reval($self->{result_values}->{config}->{unknown})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{unknown})) {
|
||||||
$status = 'unknown';
|
$status = 'unknown';
|
||||||
}
|
}
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
@ -42,7 +42,7 @@ sub custom_select_threshold {
|
|||||||
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
||||||
$status = 'warning';
|
$status = 'warning';
|
||||||
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
||||||
$self->{instance_mode}->reval($self->{result_values}->{config}->{unknown})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{unknown})) {
|
||||||
$status = 'unknown';
|
$status = 'unknown';
|
||||||
}
|
}
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2024 Centreon (http://www.centreon.com/)
|
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||||
#
|
#
|
||||||
# Centreon is a full-fledged industry-strength solution that meets
|
# Centreon is a full-fledged industry-strength solution that meets
|
||||||
# the needs in IT infrastructure and application monitoring for
|
# the needs in IT infrastructure and application monitoring for
|
||||||
@ -24,6 +24,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use centreon::plugins::http;
|
use centreon::plugins::http;
|
||||||
use centreon::plugins::statefile;
|
use centreon::plugins::statefile;
|
||||||
|
use JSON::XS;
|
||||||
use MIME::Base64;
|
use MIME::Base64;
|
||||||
use Digest::MD5 qw(md5_hex);
|
use Digest::MD5 qw(md5_hex);
|
||||||
|
|
||||||
@ -44,12 +45,14 @@ sub new {
|
|||||||
if (!defined($options{noptions})) {
|
if (!defined($options{noptions})) {
|
||||||
$options{options}->add_options(
|
$options{options}->add_options(
|
||||||
arguments => {
|
arguments => {
|
||||||
'hostname:s' => { name => 'hostname' },
|
'hostname:s' => { name => 'hostname' },
|
||||||
'port:s' => { name => 'port' },
|
'port:s' => { name => 'port', default => '443' },
|
||||||
'proto:s' => { name => 'proto' },
|
'proto:s' => { name => 'proto', default => 'https' },
|
||||||
'username:s' => { name => 'username' },
|
'username:s' => { name => 'username' },
|
||||||
'password:s' => { name => 'password' },
|
'password:s' => { name => 'password' },
|
||||||
'timeout:s' => { name => 'timeout' }
|
'vstats-interval:s' => { name => 'vstats_interval', default => 60 },
|
||||||
|
'vstats-duration:s' => { name => 'vstats_duration', default => 2764800 }, # 2764800 seconds in 32 days
|
||||||
|
'timeout:s' => { name => 'timeout', default => 10 }
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -73,12 +76,14 @@ sub set_defaults {}
|
|||||||
sub check_options {
|
sub check_options {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{hostname} = (defined($self->{option_results}->{hostname})) ? $self->{option_results}->{hostname} : '';
|
$self->{hostname} = (defined($self->{option_results}->{hostname})) ? $self->{option_results}->{hostname} : '';
|
||||||
$self->{port} = (defined($self->{option_results}->{port})) ? $self->{option_results}->{port} : 443;
|
$self->{port} = $self->{option_results}->{port};
|
||||||
$self->{proto} = (defined($self->{option_results}->{proto})) ? $self->{option_results}->{proto} : 'https';
|
$self->{proto} = $self->{option_results}->{proto};
|
||||||
$self->{timeout} = (defined($self->{option_results}->{timeout})) ? $self->{option_results}->{timeout} : 10;
|
$self->{timeout} = $self->{option_results}->{timeout};
|
||||||
$self->{username} = (defined($self->{option_results}->{username})) ? $self->{option_results}->{username} : '';
|
$self->{username} = (defined($self->{option_results}->{username})) ? $self->{option_results}->{username} : '';
|
||||||
$self->{password} = (defined($self->{option_results}->{password})) ? $self->{option_results}->{password} : '';
|
$self->{password} = (defined($self->{option_results}->{password})) ? $self->{option_results}->{password} : '';
|
||||||
|
$self->{vstats_interval} = $self->{option_results}->{vstats_interval};
|
||||||
|
$self->{vstats_duration} = $self->{option_results}->{vstats_duration};
|
||||||
|
|
||||||
if ($self->{hostname} eq '') {
|
if ($self->{hostname} eq '') {
|
||||||
$self->{output}->add_option_msg(short_msg => "Need to specify --hostname option.");
|
$self->{output}->add_option_msg(short_msg => "Need to specify --hostname option.");
|
||||||
@ -146,15 +151,12 @@ sub get_token {
|
|||||||
|
|
||||||
$self->settings();
|
$self->settings();
|
||||||
my $content = $self->{http}->request(
|
my $content = $self->{http}->request(
|
||||||
method => 'POST',
|
method => 'POST',
|
||||||
url_path => '/api/session',
|
url_path => '/api/session',
|
||||||
query_form_post => '',
|
query_form_post => '',
|
||||||
unknown_status => $self->{unknown_http_status},
|
header => [
|
||||||
warning_status => $self->{warning_http_status},
|
'Authorization: Basic ' . $auth_string,
|
||||||
critical_status => $self->{critical_http_status},
|
'Content-Type: application/x-www-form-urlencoded'
|
||||||
header => [
|
|
||||||
'Authorization: Basic ' . $auth_string,
|
|
||||||
'Content-Type: application/x-www-form-urlencoded'
|
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -175,22 +177,33 @@ sub try_request_api {
|
|||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $token = $self->get_token(%options);
|
my $token = $self->get_token(%options);
|
||||||
|
my $method = centreon::plugins::misc::is_empty($options{method}) ? 'GET' : $options{method};
|
||||||
|
my $headers = [ 'vmware-api-session-id: ' . $token ];
|
||||||
|
if ($method =~ /^(PATCH|POST)$/) {
|
||||||
|
push @$headers, 'content-type: application/json';
|
||||||
|
}
|
||||||
|
|
||||||
|
my $unknown_status = (defined($options{unknown_status})) ? $options{unknown_status} : undef;
|
||||||
|
|
||||||
my ($content) = $self->{http}->request(
|
my ($content) = $self->{http}->request(
|
||||||
url_path => '/api' . $options{endpoint},
|
method => $method,
|
||||||
get_param => $options{get_param},
|
url_path => '/api' . $options{endpoint},
|
||||||
header => [ 'vmware-api-session-id: ' . $token ],
|
get_param => $options{get_param},
|
||||||
unknown_status => '',
|
header => $headers,
|
||||||
insecure => (defined($self->{option_results}->{insecure}) ? 1 : 0)
|
query_form_post => $options{query_form_post},
|
||||||
|
unknown_status => $unknown_status,
|
||||||
|
insecure => (defined($self->{option_results}->{insecure}) ? 1 : 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!defined($content) || $content eq '') {
|
if (!defined($content)) {
|
||||||
$self->{output}->add_option_msg(short_msg => "API returns empty content [code: '"
|
$self->{output}->add_option_msg(short_msg => "API returns empty content [code: '"
|
||||||
. $self->{http}->get_code() . "'] [message: '"
|
. $self->{http}->get_code() . "'] [message: '"
|
||||||
. $self->{http}->get_message() . "']");
|
. $self->{http}->get_message() . "']");
|
||||||
$self->{output}->option_exit();
|
$self->{output}->option_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
my $decoded = centreon::plugins::misc::json_decode($content);
|
|
||||||
|
my $decoded = ($method eq 'GET') ? centreon::plugins::misc::json_decode($content) : {};
|
||||||
|
|
||||||
return $decoded;
|
return $decoded;
|
||||||
}
|
}
|
||||||
@ -199,14 +212,18 @@ sub request_api {
|
|||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->settings();
|
$self->settings();
|
||||||
my $api_response = $self->try_request_api(%options);
|
|
||||||
|
# first call using the available token with unknown_status = 0 in order to avoid exiting at first attempt in case it has expired
|
||||||
|
my $api_response = $self->try_request_api(%options, unknown_status => '0');
|
||||||
|
|
||||||
# if the token is invalid, we try to authenticate again
|
# if the token is invalid, we try to authenticate again
|
||||||
if (ref($api_response) eq 'HASH'
|
if (ref($api_response) eq 'HASH'
|
||||||
&& defined($api_response->{error_type})
|
&& defined($api_response->{error_type})
|
||||||
&& $api_response->{error_type} eq 'UNAUTHENTICATED') {
|
&& $api_response->{error_type} eq 'UNAUTHENTICATED') {
|
||||||
|
# if the first attempt failed, try again forcing to authenticate
|
||||||
$api_response = $self->try_request_api('force_authentication' => 1, %options);
|
$api_response = $self->try_request_api('force_authentication' => 1, %options);
|
||||||
}
|
}
|
||||||
|
|
||||||
# if we could not authenticate, we exit
|
# if we could not authenticate, we exit
|
||||||
if (ref($api_response) eq 'HASH' && defined($api_response->{error_type})) {
|
if (ref($api_response) eq 'HASH' && defined($api_response->{error_type})) {
|
||||||
my $full_message = '';
|
my $full_message = '';
|
||||||
@ -219,6 +236,191 @@ sub request_api {
|
|||||||
return $api_response;
|
return $api_response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub get_all_acq_specs {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
# Get all acq specs and store them in cache
|
||||||
|
# FIXME: cache management
|
||||||
|
# FIXME: any pagination issue ?
|
||||||
|
$self->{all_acq_specs} = $self->request_api(endpoint => '/stats/acq-specs')->{acq_specs} if ( !defined($self->{all_acq_specs}));
|
||||||
|
|
||||||
|
return $self->{all_acq_specs};
|
||||||
|
}
|
||||||
|
|
||||||
|
sub compose_type_from_rsrc_id {
|
||||||
|
my ($self, $rsrc_id) = @_;
|
||||||
|
|
||||||
|
if ($rsrc_id =~ /^([a-z]+)-(\d+)$/) {
|
||||||
|
return uc($1);
|
||||||
|
} else {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "compose_type_from_rsrc_id: cannot extract type from '$rsrc_id'");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub compose_acq_specs_json_payload {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my $payload = {
|
||||||
|
counters => {
|
||||||
|
cid_mid => {
|
||||||
|
cid => $options{cid}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resources => [
|
||||||
|
{
|
||||||
|
predicate => 'EQUAL',
|
||||||
|
scheme => 'moid',
|
||||||
|
type => $self->compose_type_from_rsrc_id($options{rsrc_id}),
|
||||||
|
id_value => $options{rsrc_id}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
expiration => time() + $self->{vstats_duration},
|
||||||
|
interval => $self->{vstats_interval}
|
||||||
|
};
|
||||||
|
|
||||||
|
return(centreon::plugins::misc::json_encode($payload));
|
||||||
|
}
|
||||||
|
|
||||||
|
sub create_acq_spec {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
if (centreon::plugins::misc::is_empty($options{cid})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "ERR: need a cid to create an acq_spec");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
if (centreon::plugins::misc::is_empty($options{rsrc_id})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "ERR: need a rsrc_id to create an acq_spec");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->request_api(
|
||||||
|
method => 'POST',
|
||||||
|
endpoint => '/stats/acq-specs/',
|
||||||
|
query_form_post => $self->compose_acq_specs_json_payload(%options)
|
||||||
|
) or return undef;
|
||||||
|
$self->{output}->add_option_msg(long_msg => "The counter $options{cid} was not recorded for resource $options{rsrc_id} before. It will now (creating acq_spec).");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub extend_acq_spec {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
if (centreon::plugins::misc::is_empty($options{cid})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "ERR: need a cid to extend an acq_spec");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
if (centreon::plugins::misc::is_empty($options{rsrc_id})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "ERR: need a rsrc_id to extend an acq_spec");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (centreon::plugins::misc::is_empty($options{acq_spec_id})) {
|
||||||
|
$self->{output}->add_option_msg(long_msg => "ERR: need a acq_spec_id to extend an acq_spec_id") ;
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
$self->{output}->add_option_msg(long_msg => "The acq_spec entry has to be extended to get more stats for $options{rsrc_id} / $options{cid}");
|
||||||
|
|
||||||
|
my $json_payload = $self->compose_acq_specs_json_payload(%options);
|
||||||
|
my $response = $self->request_api(
|
||||||
|
method => 'PATCH',
|
||||||
|
endpoint => '/stats/acq-specs/' . $options{acq_spec_id},
|
||||||
|
query_form_post => $json_payload
|
||||||
|
);
|
||||||
|
|
||||||
|
# The response must be empty if the patch succeeds
|
||||||
|
return undef if (defined($response) && ref($response) eq 'HASH' && scalar(keys %$response) > 0);
|
||||||
|
|
||||||
|
# reset stored acq_specs since it's no longer accurate
|
||||||
|
$self->{all_acq_specs} = [];
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_acq_spec {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
# If it is not available in cache call get_all_acq_specs()
|
||||||
|
my $acq_specs = $self->get_all_acq_specs();
|
||||||
|
# FIXME: opt exit if centreon::plugins::misc::is_empty($options{cid})
|
||||||
|
for my $spec (@$acq_specs) {
|
||||||
|
# Ignore acq_specs not related to the counter_id
|
||||||
|
next if ($options{cid} ne $spec->{counters}->{cid_mid}->{cid});
|
||||||
|
# Check if this acq_spec is related to the given resource
|
||||||
|
my @matching_rsrcs = grep {
|
||||||
|
$_->{id_value} eq $options{rsrc_id}
|
||||||
|
&& $_->{predicate} eq 'EQUAL'
|
||||||
|
&& $_->{scheme} eq 'moid'
|
||||||
|
} @{$spec->{resources}};
|
||||||
|
return $spec if (@matching_rsrcs > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub check_acq_spec {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my $acq_spec = $self->get_acq_spec(%options);
|
||||||
|
|
||||||
|
if ( !defined($acq_spec) ) {
|
||||||
|
# acq_spec not found => we need to create it
|
||||||
|
$self->create_acq_spec(%options) or return(undef);
|
||||||
|
# acq_spec is created => check is ok
|
||||||
|
return 1;
|
||||||
|
} elsif ($acq_spec->{status} eq 'EXPIRED' || $acq_spec->{expiration} <= time() + 3600) {
|
||||||
|
# acq_spec exists but expired => we need to extend it
|
||||||
|
$self->extend_acq_spec(%options, acq_spec_id => $acq_spec->{id}) or return(undef);
|
||||||
|
# acq_spec is extended => check is ok
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
# acq_spec exists and is not expired => check is ok
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_stats {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
if ( centreon::plugins::misc::is_empty($options{rsrc_id})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "get_stats method called without rsrc_id, won't query");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( centreon::plugins::misc::is_empty($options{cid}) ) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "get_stats method called without cid, will get all available stats for resource");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !$self->check_acq_spec(%options) ) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "get_stats method failed to check_acq_spec()");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
# compose the endpoint
|
||||||
|
my $endpoint = '/stats/data/dp?'
|
||||||
|
. 'rsrcs=type.' . $self->compose_type_from_rsrc_id($options{rsrc_id}) . '.moid=' . $options{rsrc_id}
|
||||||
|
. '&cid=' . $options{cid}
|
||||||
|
. '&start=' . (time() - 120); # get the last two minutes to be sure to get at least one value
|
||||||
|
|
||||||
|
my $result = $self->request_api(
|
||||||
|
method => 'GET',
|
||||||
|
endpoint => $endpoint
|
||||||
|
);
|
||||||
|
|
||||||
|
# FIXME: check if ( !defined($result) || ref($result) ne 'HASH' || scalar(@{ $result->{data_points} }) == 0 ) {
|
||||||
|
# FIXME: the existence of the resource id must be checked at one moment
|
||||||
|
# return only the last value (if there are several)
|
||||||
|
if ( scalar(@{ $result->{data_points} }) == 0 ) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "no data for host " . $options{rsrc_id} . " counter " . $options{cid} . " at the moment.");
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Return the `val` field of the last object of the array
|
||||||
|
return $result->{data_points}->[ @{ $result->{data_points} } - 1 ]->{val};
|
||||||
|
# FIXME: handle arrays in get_stats and check_acq_specs
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
__END__
|
__END__
|
||||||
|
|
||||||
@ -238,6 +440,9 @@ apps::vmware::vsphere8::custom::api - Custom module for VMware vSphere 8 API.
|
|||||||
$api->set_options(option_results => $option_results);
|
$api->set_options(option_results => $option_results);
|
||||||
$api->check_options();
|
$api->check_options();
|
||||||
my $response = $api->request_api(endpoint => '/vcenter/host');
|
my $response = $api->request_api(endpoint => '/vcenter/host');
|
||||||
|
my $host_cpu_capacity = $api->get_stats(
|
||||||
|
cid => 'cpu.capacity.provisioned.HOST',
|
||||||
|
rsrc_id => 'host-18');
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
@ -249,7 +454,7 @@ This module provides methods to interact with the VMware vSphere 8 REST API. It
|
|||||||
|
|
||||||
my $api = apps::vmware::vsphere8::custom::api->new(%options);
|
my $api = apps::vmware::vsphere8::custom::api->new(%options);
|
||||||
|
|
||||||
Creates a new `apps::vmware::vsphere8::custom::api` object.
|
Creates a new C<apps::vmware::vsphere8::custom::api> object.
|
||||||
|
|
||||||
=over 4
|
=over 4
|
||||||
|
|
||||||
@ -357,6 +562,128 @@ Calls try_request_api and recalls it forcing authentication if the first call fa
|
|||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
=head2 get_acq_spec
|
||||||
|
|
||||||
|
my $spec = $self->get_acq_spec(%options);
|
||||||
|
|
||||||
|
Retrieves the acquisition specification (acq_spec) for the given counter ID (C<cid>) and resource ID (rsrc_id).
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<cid> - The counter ID for which to retrieve the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=item * C<rsrc_id> - The resource ID for which to retrieve the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns the matching acq_spec if found, otherwise returns undef.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
=head2 create_acq_spec
|
||||||
|
|
||||||
|
$api->create_acq_spec(%options);
|
||||||
|
|
||||||
|
Creates a new acquisition specification (acq_spec) for the given options.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<cid> - The counter ID for which to create the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=item * C<rsrc_id> - The resource ID for which to create the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns 1 if the acq_spec is successfully created, otherwise returns undef.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
=head2 extend_acq_spec
|
||||||
|
|
||||||
|
$api->extend_acq_spec(%options);
|
||||||
|
|
||||||
|
Extends the acquisition specification (acq_spec) for the given options.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<cid> - The counter ID for which to extend the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=item * C<rsrc_id> - The resource ID for which to extend the acq_spec. This option is required.
|
||||||
|
|
||||||
|
=item * C<acq_spec_id> - The acquisition specification ID to extend. This option is required.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns 1 if the acq_spec is successfully extended, otherwise returns undef.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
=head2 check_acq_spec
|
||||||
|
|
||||||
|
$api->check_acq_spec(%options);
|
||||||
|
|
||||||
|
Checks the acquisition specification (acq\_spec) for the given options. If the acq\_spec does not exist, it creates a new one. If the acq\_spec exists but is expired or about to expire, it extends the acq\_spec.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<cid> - The counter ID for which to check the acq\_spec. This option is required.
|
||||||
|
|
||||||
|
=item * C<rsrc_id> - The resource ID for which to check the acq\_spec. This option is required.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns 1 if the acq\_spec is valid or has been successfully created/extended, undef otherwise.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
=head2 get_stats
|
||||||
|
|
||||||
|
my $value = $api->get_stats(%options);
|
||||||
|
|
||||||
|
Retrieves the latest statistics for a given resource and counter.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<rsrc_id> - The resource ID for which to retrieve statistics. This option is required.
|
||||||
|
|
||||||
|
=item * C<cid> - The counter ID for which to retrieve statistics. This option is required.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns the latest value for the specified resource and counter.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
=head1 REST API OPTIONS
|
=head1 REST API OPTIONS
|
||||||
|
|
||||||
Command-line options for VMware vSphere 8 API:
|
Command-line options for VMware vSphere 8 API:
|
||||||
@ -383,6 +710,16 @@ Define the username for authentication.
|
|||||||
|
|
||||||
Define the password for authentication.
|
Define the password for authentication.
|
||||||
|
|
||||||
|
=item B<--vstats-interval>
|
||||||
|
|
||||||
|
Define the interval (in seconds) at which the C<vstats> must be recorded (default: 300).
|
||||||
|
Used to create entries at the C</api/stats/acq-specs> endpoint.
|
||||||
|
|
||||||
|
=item B<--vstats-duration>
|
||||||
|
|
||||||
|
Define the time (in seconds) after which the C<vstats> will stop being recorded (default: 2764800, meaning 32 days).
|
||||||
|
Used to create entries at the C</api/stats/acq-specs> endpoint.
|
||||||
|
|
||||||
=item B<--timeout>
|
=item B<--timeout>
|
||||||
|
|
||||||
Define the timeout for API requests (default: 10 seconds).
|
Define the timeout for API requests (default: 10 seconds).
|
||||||
|
176
src/apps/vmware/vsphere8/esx/mode.pm
Normal file
176
src/apps/vmware/vsphere8/esx/mode.pm
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2025 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 apps::vmware::vsphere8::esx::mode;
|
||||||
|
use strict;
|
||||||
|
use warnings FATAL => 'all';
|
||||||
|
|
||||||
|
use base qw(centreon::plugins::templates::counter);
|
||||||
|
|
||||||
|
sub new {
|
||||||
|
my ($class, %options) = @_;
|
||||||
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
|
||||||
|
|
||||||
|
$options{options}->add_options(
|
||||||
|
arguments => {
|
||||||
|
'esx-id:s' => { name => 'esx_id' },
|
||||||
|
'esx-name:s' => { name => 'esx_name' }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
$options{options}->add_help(package => __PACKAGE__, sections => 'VMWARE 8 HOST OPTIONS', once => 1);
|
||||||
|
|
||||||
|
return $self;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_esx_id_from_name {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
if ( centreon::plugins::misc::is_empty($self->{esx_name}) ) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "get_esx_id_from_name method called without esx_name option. Please check configuration.");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
my $response = $options{custom}->request_api(
|
||||||
|
'endpoint' => '/vcenter/host',
|
||||||
|
'method' => 'GET'
|
||||||
|
);
|
||||||
|
|
||||||
|
for my $rsrc (@$response) {
|
||||||
|
next if ($rsrc->{name} ne $self->{esx_name});
|
||||||
|
$self->{esx_id} = $rsrc->{host};
|
||||||
|
$self->{output}->add_option_msg(long_msg => "get_esx_id_from_name method called to get " . $self->{esx_name}
|
||||||
|
. "'s id: " . $self->{esx_id} . ". Prefer using --esx-id to spare a query to the API.");
|
||||||
|
return $rsrc->{host};
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_esx_stats {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
if ( centreon::plugins::misc::is_empty($options{esx_id}) && !$self->get_esx_id_from_name(%options) ) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "get_esx_stats method cannot get host ID from host name");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $options{custom}->get_stats(
|
||||||
|
%options,
|
||||||
|
rsrc_id => $self->{esx_id}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub request_api {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return $options{custom}->request_api(%options);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub check_options {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
|
if (centreon::plugins::misc::is_empty($self->{option_results}->{esx_id})
|
||||||
|
&& centreon::plugins::misc::is_empty($self->{option_results}->{esx_name})) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => 'Need to specify either --esx-id or --esx-name option.');
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{esx_id} = $self->{option_results}->{esx_id};
|
||||||
|
$self->{esx_name} = $self->{option_results}->{esx_name};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 VMWARE 8 HOST OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--esx-id>
|
||||||
|
|
||||||
|
Define which physical server to monitor based on its resource ID (example: C<host-16>).
|
||||||
|
|
||||||
|
=item B<--esx-name>
|
||||||
|
|
||||||
|
Define which physical server to monitor based on its name (example: C<esx01.mydomain.tld>).
|
||||||
|
When possible, it is recommended to use C<--esx-id> instead.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
apps::vmware::vsphere8::esx::mode - Template for modes monitoring VMware physical hosts
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
use base apps::vmware::vsphere8::esx::mode;
|
||||||
|
|
||||||
|
sub set_counters {...}
|
||||||
|
sub manage_selection {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$api->set_options(option_results => $option_results);
|
||||||
|
$api->check_options();
|
||||||
|
my $response = $api->request_api(endpoint => '/vcenter/host');
|
||||||
|
my $host_cpu_capacity = $self->get_esx_stats(
|
||||||
|
cid => 'cpu.capacity.provisioned.HOST',
|
||||||
|
rsrc_id => 'host-18');
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
This module provides methods to interact with the VMware vSphere 8 REST API. It handles authentication, caching, and API requests.
|
||||||
|
|
||||||
|
=head1 METHODS
|
||||||
|
|
||||||
|
=head2 get_esx_stats
|
||||||
|
|
||||||
|
$self->get_esx_stats(%options);
|
||||||
|
|
||||||
|
Retrieves the ESX statistics for the given options using package apps::vmware::vsphere8::custom::api::get_stats()
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item * C<%options> - A hash of options. The following keys are supported:
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item * C<cid> - The C<cid> (counter id) of the desired metric.
|
||||||
|
|
||||||
|
=item * C<esx_id> - The ESX's C<rsrc_id> (resource ID) for which to retrieve the statistics. This option is optional if C<esx_name> is provided.
|
||||||
|
|
||||||
|
=item * C<esx_name> - The ESX's name for which to retrieve the statistics. This option is not used if C<esx_id> is provided, which is the nominal usage of this function.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Returns the statistics for the specified ESX.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
398
src/apps/vmware/vsphere8/esx/mode/cpu.pm
Normal file
398
src/apps/vmware/vsphere8/esx/mode/cpu.pm
Normal file
@ -0,0 +1,398 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2025 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 apps::vmware::vsphere8::esx::mode::cpu;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||||
|
|
||||||
|
sub new {
|
||||||
|
my ($class, %options) = @_;
|
||||||
|
|
||||||
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||||
|
|
||||||
|
$options{options}->add_options(
|
||||||
|
arguments => {
|
||||||
|
'add-contention' => { name => 'add_contention' },
|
||||||
|
'add-demand' => { name => 'add_demand' },
|
||||||
|
'add-corecount' => { name => 'add_corecount' }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return $self;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub check_options {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
|
# If a threshold is given on contention, we enable the corresponding data collection
|
||||||
|
if (grep {$_ =~ /contention/ && defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne ''} keys %{$self->{option_results}}) {
|
||||||
|
$self->{option_results}->{add_contention} = 1;
|
||||||
|
}
|
||||||
|
# If a threshold is given on demand, we enable the corresponding data collection
|
||||||
|
if (grep {$_ =~ /demand/ && defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne ''} keys %{$self->{option_results}}) {
|
||||||
|
$self->{option_results}->{add_demand} = 1;
|
||||||
|
}
|
||||||
|
# If a threshold is given on corecount, we enable the corresponding data collection
|
||||||
|
if (grep {$_ =~ /corecount/ && defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne ''} keys %{$self->{option_results}}) {
|
||||||
|
$self->{option_results}->{add_corecount} = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Skip contention processing if there is no available data
|
||||||
|
sub skip_contention {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return 0 if (defined($self->{cpu_contention})
|
||||||
|
&& ref($self->{cpu_contention}) eq 'HASH'
|
||||||
|
&& scalar(keys %{$self->{cpu_contention}}) > 0);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Skip demand processing if there is no available data
|
||||||
|
sub skip_demand {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return 0 if (defined($self->{cpu_demand})
|
||||||
|
&& ref($self->{cpu_demand}) eq 'HASH'
|
||||||
|
&& scalar(keys %{$self->{cpu_demand}}) > 0);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Skip corecount processing if there is no available data
|
||||||
|
sub skip_corecount {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return 0 if (defined($self->{cpu_corecount})
|
||||||
|
&& ref($self->{cpu_corecount}) eq 'HASH'
|
||||||
|
&& scalar(keys %{$self->{cpu_corecount}}) > 0);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub set_counters {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->{maps_counters_type} = [
|
||||||
|
{ name => 'cpu_usage', type => 0 },
|
||||||
|
{ name => 'cpu_contention', type => 0, cb_init => 'skip_contention' },
|
||||||
|
{ name => 'cpu_demand', type => 0, cb_init => 'skip_demand' },
|
||||||
|
{ name => 'cpu_corecount', type => 0, cb_init => 'skip_corecount' }
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{cpu_usage} = [
|
||||||
|
{
|
||||||
|
label => 'usage-percentage',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.capacity.usage.percentage',
|
||||||
|
set => {
|
||||||
|
output_template => 'CPU average usage is %.2f %%',
|
||||||
|
key_values => [ { name => 'prct_used' } ],
|
||||||
|
output_use => 'prct_used',
|
||||||
|
threshold_use => 'prct_used',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'prct_used',
|
||||||
|
template => '%.2f',
|
||||||
|
min => 0,
|
||||||
|
max => 100,
|
||||||
|
unit => '%'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label => 'usage-frequency',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.capacity.usage.hertz',
|
||||||
|
set => {
|
||||||
|
key_values => [ { name => 'cpu.capacity.usage.HOST' }, { name => 'cpu_usage_hertz' }, { name => 'cpu_provisioned_hertz' } ],
|
||||||
|
output_use => 'cpu.capacity.usage.HOST',
|
||||||
|
threshold_use => 'cpu.capacity.usage.HOST',
|
||||||
|
output_template => 'used frequency is %s kHz',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'cpu_usage_hertz',
|
||||||
|
template => '%s',
|
||||||
|
max => 'cpu_provisioned_hertz',
|
||||||
|
unit => 'Hz'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{cpu_contention} = [
|
||||||
|
{
|
||||||
|
label => 'contention-percentage',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.capacity.contention.percentage',
|
||||||
|
set => {
|
||||||
|
output_template => 'CPU average contention is %.2f %%',
|
||||||
|
key_values => [ { name => 'cpu.capacity.contention.HOST' } ],
|
||||||
|
output_use => 'cpu.capacity.contention.HOST',
|
||||||
|
threshold_use => 'cpu.capacity.contention.HOST',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'cpu.capacity.contention.HOST',
|
||||||
|
template => '%.2f',
|
||||||
|
min => 0,
|
||||||
|
max => 100,
|
||||||
|
unit => '%'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
$self->{maps_counters}->{cpu_demand} = [
|
||||||
|
{
|
||||||
|
label => 'demand-percentage',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.capacity.demand.percentage',
|
||||||
|
set => {
|
||||||
|
output_template => 'CPU average demand is %.2f %%',
|
||||||
|
key_values => [ { name => 'prct_demand' } ],
|
||||||
|
output_use => 'prct_demand',
|
||||||
|
threshold_use => 'prct_demand',
|
||||||
|
perfdatas => [ { value => 'prct_demand', template => '%s' } ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label => 'demand-frequency',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.capacity.demand.hertz',
|
||||||
|
set => {
|
||||||
|
key_values => [
|
||||||
|
{ name => 'cpu.capacity.demand.HOST' },
|
||||||
|
{ name => 'cpu_demand_hertz' },
|
||||||
|
{ name => 'cpu_provisioned_hertz' }
|
||||||
|
],
|
||||||
|
output_use => 'cpu.capacity.demand.HOST',
|
||||||
|
threshold_use => 'cpu.capacity.demand.HOST',
|
||||||
|
output_template => 'demand frequency is %s kHz',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'cpu_demand_hertz',
|
||||||
|
template => '%s',
|
||||||
|
max => 'cpu_provisioned_hertz',
|
||||||
|
unit => 'Hz'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{cpu_corecount} = [
|
||||||
|
{
|
||||||
|
label => 'corecount-usage',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'cpu.corecount.usage.count',
|
||||||
|
set => {
|
||||||
|
output_template => 'CPU cores used: %s',
|
||||||
|
output_use => 'cpu.corecount.usage.HOST',
|
||||||
|
key_values => [ { name => 'cpu.corecount.usage.HOST' } ],
|
||||||
|
threshold_use => 'cpu.corecount.usage.HOST',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'cpu.corecount.usage.HOST',
|
||||||
|
template => '%s'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
sub manage_selection {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
# Set the list of basic counters IDs
|
||||||
|
my @counters = (
|
||||||
|
'cpu.capacity.provisioned.HOST',
|
||||||
|
'cpu.capacity.usage.HOST'
|
||||||
|
);
|
||||||
|
|
||||||
|
# Add some counters depending on the options
|
||||||
|
push @counters, 'cpu.capacity.contention.HOST' if ($self->{option_results}->{add_contention});
|
||||||
|
push @counters, 'cpu.capacity.demand.HOST' if ($self->{option_results}->{add_demand});
|
||||||
|
push @counters, 'cpu.corecount.provisioned.HOST',
|
||||||
|
'cpu.corecount.usage.HOST' if ($self->{option_results}->{add_corecount});
|
||||||
|
|
||||||
|
# The corecount contention is available but does not seem useful atm. Keeping it here for later
|
||||||
|
#push @counters_list, 'cpu.corecount.contention.HOST' if ($self->{option_results}->{add_contention} && $self->{option_results}->{add_corecount});
|
||||||
|
|
||||||
|
# Get all the needed stats
|
||||||
|
my %results = map {
|
||||||
|
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name} )
|
||||||
|
} @counters;
|
||||||
|
|
||||||
|
# Fill the counter structure depending on their availability
|
||||||
|
# Fill the basic stats
|
||||||
|
if (defined($results{'cpu.capacity.usage.HOST'}) && defined($results{'cpu.capacity.provisioned.HOST'})) {
|
||||||
|
$self->{cpu_usage} = {
|
||||||
|
'prct_used' => 100 * $results{'cpu.capacity.usage.HOST'} / $results{'cpu.capacity.provisioned.HOST'},
|
||||||
|
'cpu_usage_hertz' => $results{'cpu.capacity.usage.HOST'} * 1000,
|
||||||
|
'cpu_provisioned_hertz' => $results{'cpu.capacity.provisioned.HOST'} * 1000,
|
||||||
|
'cpu.capacity.usage.HOST' => $results{'cpu.capacity.usage.HOST'}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fill the contention stats
|
||||||
|
if ( defined($results{'cpu.capacity.contention.HOST'}) ) {
|
||||||
|
$self->{cpu_contention} = {
|
||||||
|
'cpu.capacity.contention.HOST' => $results{'cpu.capacity.contention.HOST'}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fill the demand stats
|
||||||
|
if (defined($results{'cpu.capacity.demand.HOST'}) && defined($results{'cpu.capacity.provisioned.HOST'})) {
|
||||||
|
$self->{cpu_demand} = {
|
||||||
|
'prct_demand' => 100 * $results{'cpu.capacity.demand.HOST'} / $results{'cpu.capacity.provisioned.HOST'},
|
||||||
|
'cpu.capacity.demand.HOST' => $results{'cpu.capacity.demand.HOST'},
|
||||||
|
'cpu_demand_hertz' => $results{'cpu.capacity.demand.HOST'} * 1000,
|
||||||
|
'cpu_provisioned_hertz' => $results{'cpu.capacity.provisioned.HOST'} * 1000
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fill the corecount stats
|
||||||
|
if (defined($results{'cpu.corecount.usage.HOST'})) {
|
||||||
|
$self->{cpu_corecount}->{'cpu.corecount.usage.HOST'} = $results{'cpu.corecount.usage.HOST'};
|
||||||
|
# This counter is the number of physical CPU cores of the ESX, it does not seem worth monitoring
|
||||||
|
#$self->{cpu_corecount}->{'cpu.corecount.provisioned.HOST'} = $results{'cpu.corecount.provisioned.HOST'};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example of retrieved stats:
|
||||||
|
# $VAR1 = {
|
||||||
|
# 'cpu.capacity.demand.HOST' => '2790',
|
||||||
|
# 'cpu.capacity.provisioned.HOST' => '50280',
|
||||||
|
# 'cpu.capacity.usage.HOST' => '3228.36',
|
||||||
|
# 'cpu.corecount.provisioned.HOST' => '24',
|
||||||
|
# 'cpu.capacity.contention.HOST' => '0.55',
|
||||||
|
# 'cpu.corecount.usage.HOST' => '78',
|
||||||
|
# 'cpu.corecount.contention.HOST' => '0'
|
||||||
|
# };
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 MODE
|
||||||
|
|
||||||
|
Monitor the status of VMware ESX hosts through vSphere 8 REST API.
|
||||||
|
|
||||||
|
Meaning of the available counters in the VMware API:
|
||||||
|
- cpu.capacity.provisioned.HOST Capacity in kHz of the physical CPU cores.
|
||||||
|
- cpu.capacity.usage.HOST CPU usage as a percent during the interval.
|
||||||
|
- cpu.capacity.contention.HOST Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU(s).
|
||||||
|
- cpu.capacity.demand.HOST The amount of CPU resources a virtual machine would use if there were no CPU contention or CPU limit.
|
||||||
|
- cpu.corecount.usage.HOST The number of virtual processors running on the host.
|
||||||
|
- cpu.corecount.provisioned.HOST The number of virtual processors provisioned to the entity.
|
||||||
|
- cpu.corecount.contention.HOST Time the virtual machine vCPU is ready to run, but is unable to run due to co-scheduling constraints.
|
||||||
|
|
||||||
|
The default metrics provided by this plugin are:
|
||||||
|
- cpu.capacity.usage.hertz based on the API's cpu.capacity.usage.HOST counter
|
||||||
|
- cpu.capacity.usage.percentage based on 100 * cpu.capacity.usage.HOST / cpu.capacity.provisioned.HOST
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item B<--add-demand>
|
||||||
|
|
||||||
|
Add counter related to CPU demand:
|
||||||
|
|
||||||
|
C<cpu.capacity.demand.HOST>: The amount of CPU resources a virtual machine would use if there were no CPU contention or CPU limit.
|
||||||
|
|
||||||
|
=item B<--add-contention>
|
||||||
|
|
||||||
|
Add counter related to CPU demand:
|
||||||
|
|
||||||
|
C<cpu.capacity.contention.HOST>: Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU(s).
|
||||||
|
|
||||||
|
=item B<--add-corecount>
|
||||||
|
|
||||||
|
Add counter related to CPU core count:
|
||||||
|
|
||||||
|
C<cpu.corecount.usage.HOST>: The number of virtual processors running on the host.
|
||||||
|
|
||||||
|
=item B<--warning-usage-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--critical-usage-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--warning-usage-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--critical-usage-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--warning-contention-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--critical-contention-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--warning-contention-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--critical-contention-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--warning-demand-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--critical-demand-percentage>
|
||||||
|
|
||||||
|
Threshold in %.
|
||||||
|
|
||||||
|
=item B<--warning-demand-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--critical-demand-frequency>
|
||||||
|
|
||||||
|
Threshold in Hz.
|
||||||
|
|
||||||
|
=item B<--warning-corecount-usage>
|
||||||
|
|
||||||
|
Threshold in number of cores.
|
||||||
|
|
||||||
|
=item B<--critical-corecount-usage>
|
||||||
|
|
||||||
|
Threshold in number of cores.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=cut
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2024 Centreon (http://www.centreon.com/)
|
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||||
#
|
#
|
||||||
# Centreon is a full-fledged industry-strength solution that meets
|
# Centreon is a full-fledged industry-strength solution that meets
|
||||||
# the needs in IT infrastructure and application monitoring for
|
# the needs in IT infrastructure and application monitoring for
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2024 Centreon (http://www.centreon.com/)
|
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||||
#
|
#
|
||||||
# Centreon is a full-fledged industry-strength solution that meets
|
# Centreon is a full-fledged industry-strength solution that meets
|
||||||
# the needs in IT infrastructure and application monitoring for
|
# the needs in IT infrastructure and application monitoring for
|
||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
package apps::vmware::vsphere8::esx::mode::hoststatus;
|
package apps::vmware::vsphere8::esx::mode::hoststatus;
|
||||||
|
|
||||||
use base qw(centreon::plugins::templates::counter);
|
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
@ -41,31 +41,7 @@ sub custom_connection_status_output {
|
|||||||
sub prefix_host_output {
|
sub prefix_host_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return "Host '" . $options{instance_value}->{display} . "': ";
|
return "Host '" . $options{instance_value}->{display} . "', id: '" . $options{instance_value}->{id} . "': ";
|
||||||
}
|
|
||||||
|
|
||||||
sub new {
|
|
||||||
my ($class, %options) = @_;
|
|
||||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
|
||||||
bless $self, $class;
|
|
||||||
|
|
||||||
$options{options}->add_options(
|
|
||||||
arguments => {
|
|
||||||
'esx-name:s' => { name => 'esx_name', default => '.*' },
|
|
||||||
'warning-power-status:s' => { name => 'warning-power-status' },
|
|
||||||
'critical-power-status:s' => { name => 'critical-power-status', default => '%{power_state} !~ /^powered_on$/i' },
|
|
||||||
'warning-connection-status:s' => { name => 'warning-connection-status' },
|
|
||||||
'critical-connection-status:s' => { name => 'critical-connection-status', default => '%{connection_state} !~ /^connected$/i' },
|
|
||||||
});
|
|
||||||
|
|
||||||
return $self;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub check_options {
|
|
||||||
my ($self, %options) = @_;
|
|
||||||
|
|
||||||
$self->SUPER::check_options(%options);
|
|
||||||
$self->change_macros(macros => ['warning-power-status', 'critical-power-status', 'warning-connection-status', 'critical-connection-status']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
@ -73,8 +49,8 @@ sub set_counters {
|
|||||||
|
|
||||||
$self->{maps_counters_type} = [
|
$self->{maps_counters_type} = [
|
||||||
{
|
{
|
||||||
name => 'host',
|
name => 'host',
|
||||||
type => 1,
|
type => 1,
|
||||||
cb_prefix_output => 'prefix_host_output',
|
cb_prefix_output => 'prefix_host_output',
|
||||||
message_multiple => 'All ESX Hosts are ok'
|
message_multiple => 'All ESX Hosts are ok'
|
||||||
}
|
}
|
||||||
@ -84,20 +60,22 @@ sub set_counters {
|
|||||||
{
|
{
|
||||||
label => 'power-status',
|
label => 'power-status',
|
||||||
type => 2,
|
type => 2,
|
||||||
|
critical_default => '%{power_state} !~ /^powered_on$/i',
|
||||||
set => {
|
set => {
|
||||||
key_values => [ { name => 'display' }, { name => 'power_state' } ],
|
key_values => [ { name => 'display' }, { name => 'power_state' }, { name => 'id' } ],
|
||||||
closure_custom_output => $self->can('custom_power_status_output'),
|
closure_custom_output => $self->can('custom_power_status_output'),
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub {return 0;},
|
||||||
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label => 'connection-status',
|
label => 'connection-status',
|
||||||
type => 2,
|
type => 2,
|
||||||
|
critical_default => '%{connection_state} !~ /^connected$/i',
|
||||||
set => {
|
set => {
|
||||||
key_values => [{ name => 'display' }, { name => 'connection_state' }],
|
key_values => [{ name => 'display' }, { name => 'connection_state' }],
|
||||||
closure_custom_output => $self->can('custom_connection_status_output'),
|
closure_custom_output => $self->can('custom_connection_status_output'),
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub {return 0;},
|
||||||
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -107,14 +85,16 @@ sub set_counters {
|
|||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $response = $options{custom}->request_api(
|
my $response = $self->request_api(
|
||||||
|
%options,
|
||||||
'endpoint' => '/vcenter/host',
|
'endpoint' => '/vcenter/host',
|
||||||
'method' => 'GET'
|
'method' => 'GET'
|
||||||
);
|
);
|
||||||
|
|
||||||
$self->{host} = {};
|
$self->{host} = {};
|
||||||
foreach my $host (@{$response}) {
|
foreach my $host (@{$response}) {
|
||||||
next if (!defined($host->{name}) || $host->{name} !~ $self->{option_results}->{esx_name});
|
next if (!defined($host->{name}) || defined($self->{option_results}->{esx_name}) && $host->{name} ne $self->{option_results}->{esx_name});
|
||||||
|
next if (!defined($host->{host}) || defined($self->{option_results}->{esx_id}) && $host->{host} ne $self->{option_results}->{esx_id});
|
||||||
|
|
||||||
$self->{host}->{$host->{host}} = {
|
$self->{host}->{$host->{host}} = {
|
||||||
display => $host->{name},
|
display => $host->{name},
|
||||||
@ -140,11 +120,6 @@ Monitor the status of VMware ESX hosts through vSphere 8 REST API.
|
|||||||
|
|
||||||
=over 8
|
=over 8
|
||||||
|
|
||||||
=item B<--esx-name>
|
|
||||||
|
|
||||||
Define which ESX server to monitor based on their name.
|
|
||||||
This option will be treated as a regular expression.
|
|
||||||
|
|
||||||
=item B<--warning-power-status>
|
=item B<--warning-power-status>
|
||||||
|
|
||||||
Define the warning threshold for the power status of the ESX host.
|
Define the warning threshold for the power status of the ESX host.
|
||||||
|
147
src/apps/vmware/vsphere8/esx/mode/memory.pm
Normal file
147
src/apps/vmware/vsphere8/esx/mode/memory.pm
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2025 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 apps::vmware::vsphere8::esx::mode::memory;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||||
|
|
||||||
|
my @counters = (
|
||||||
|
#'mem.reservedCapacityPct.HOST', # Percent of memory that has been reserved either through VMkernel use, by userworlds or due to virtual machine memory reservations.
|
||||||
|
#'mem.capacity.provisioned.HOST', # Total amount of memory available to the host.
|
||||||
|
'mem.capacity.usable.HOST', # Amount of physical memory available for use by virtual machines on this host
|
||||||
|
#'mem.capacity.usage.HOST', # Amount of physical memory actively used
|
||||||
|
#'mem.capacity.contention.HOST', # Percentage of time VMs are waiting to access swapped, compressed or ballooned memory.
|
||||||
|
'mem.consumed.vms.HOST', # Amount of physical memory consumed by VMs on this host.
|
||||||
|
#'mem.consumed.userworlds.HOST' # Amount of physical memory consumed by userworlds on this host
|
||||||
|
);
|
||||||
|
|
||||||
|
sub custom_memory_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return sprintf(
|
||||||
|
'Memory used: %s %s used - Usable: %s %s',
|
||||||
|
$self->{perfdata}->change_bytes(value => $self->{result_values}->{used_bytes}),
|
||||||
|
$self->{perfdata}->change_bytes(value => $self->{result_values}->{max_bytes})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub set_counters {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->{maps_counters_type} = [
|
||||||
|
{ name => 'memory', type => 0, message_separator => ' - '}
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{memory} = [
|
||||||
|
{
|
||||||
|
label => 'vms-usage-percentage',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'vms.memory.usage.percentage',
|
||||||
|
set => {
|
||||||
|
key_values => [ { name => 'used_prct' } ],
|
||||||
|
output_template => '%2.f%% of usable memory is used by VMs',
|
||||||
|
output_use => 'used_prct',
|
||||||
|
threshold_use => 'used_prct',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'used_prct',
|
||||||
|
template => '%.2f',
|
||||||
|
min => 0,
|
||||||
|
max => 100,
|
||||||
|
unit => '%'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label => 'vms-usage-bytes',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'vms.memory.usage.bytes',
|
||||||
|
set => {
|
||||||
|
key_values => [ { name => 'used_bytes' }, { name => 'max_bytes' } ],
|
||||||
|
closure_custom_output => $self->can('custom_memory_output'),
|
||||||
|
threshold_use => 'used_bytes',
|
||||||
|
perfdatas => [
|
||||||
|
{
|
||||||
|
value => 'used_bytes',
|
||||||
|
template => '%d',
|
||||||
|
max => 'max_bytes',
|
||||||
|
unit => 'B'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
sub manage_selection {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my %structure = map {
|
||||||
|
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name} )
|
||||||
|
} @counters;
|
||||||
|
|
||||||
|
if (defined($structure{'mem.capacity.usable.HOST'}) && defined($structure{'mem.consumed.vms.HOST'})) {
|
||||||
|
$self->{output}->add_option_msg(long_msg => 'Retrieved value for mem.capacity.usable.HOST: ' . $structure{'mem.capacity.usable.HOST'});
|
||||||
|
$self->{output}->add_option_msg(long_msg => 'Retrieved value for mem.consumed.vms.HOST: ' . $structure{'mem.consumed.vms.HOST'});
|
||||||
|
$self->{memory} = {
|
||||||
|
used_prct => (100 * $structure{'mem.consumed.vms.HOST'} / $structure{'mem.capacity.usable.HOST'}),
|
||||||
|
used_bytes => int(1024 * 1024 * $structure{'mem.consumed.vms.HOST'}),
|
||||||
|
max_bytes => int(1024 * 1024 * $structure{'mem.capacity.usable.HOST'})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
=head1 MODE
|
||||||
|
|
||||||
|
Monitor the memory of VMware ESX hosts consumed by the virtual machines through vSphere 8 REST API.
|
||||||
|
|
||||||
|
Meaning of the available counters in the VMware API:
|
||||||
|
mem.reservedCapacityPct.HOST Percent of memory that has been reserved either through VMkernel use, by userworlds or due to virtual machine memory reservations.
|
||||||
|
mem.capacity.provisioned.HOST Total amount of memory available to the host.
|
||||||
|
mem.capacity.usable.HOST Amount of physical memory available for use by virtual machines on this host
|
||||||
|
mem.capacity.usage.HOST Amount of physical memory actively used
|
||||||
|
mem.capacity.contention.HOST Percentage of time VMs are waiting to access swapped, compressed or ballooned memory.
|
||||||
|
mem.consumed.vms.HOST Amount of physical memory consumed by VMs on this host.
|
||||||
|
mem.consumed.userworlds.HOST Amount of physical memory consumed by userworlds on this host
|
||||||
|
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item B<--warning-vms-usage-percentage>
|
||||||
|
|
||||||
|
Thresholds in percentage.
|
||||||
|
|
||||||
|
=item B<--critical-vms-usage-percentage>
|
||||||
|
|
||||||
|
Thresholds in percentage.
|
||||||
|
|
||||||
|
=item B<--warning-vms-usage-bytes>
|
||||||
|
|
||||||
|
Thresholds in bytes.
|
||||||
|
|
||||||
|
=item B<--critical-vms-usage-bytes>
|
||||||
|
|
||||||
|
Thresholds in bytes.
|
92
src/apps/vmware/vsphere8/esx/mode/power.pm
Normal file
92
src/apps/vmware/vsphere8/esx/mode/power.pm
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2025 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 apps::vmware::vsphere8::esx::mode::power;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||||
|
|
||||||
|
|
||||||
|
my @counters = (
|
||||||
|
'power.capacity.usage.HOST', # Current power usage.
|
||||||
|
);
|
||||||
|
|
||||||
|
sub set_counters {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->{maps_counters_type} = [
|
||||||
|
{ name => 'power', type => 0 }
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{power} = [
|
||||||
|
{
|
||||||
|
label => 'power-usage-watts',
|
||||||
|
type => 1,
|
||||||
|
nlabel => 'power.capacity.usage.watts',
|
||||||
|
output_template => 'Power usage is %d Watts',
|
||||||
|
set => {
|
||||||
|
output_template => 'Power usage is %d Watts',
|
||||||
|
key_values => [ { name => 'power.capacity.usage.HOST' } ],
|
||||||
|
output_use => 'power.capacity.usage.HOST',
|
||||||
|
threshold_use => 'power.capacity.usage.HOST',
|
||||||
|
perfdatas => [ { value => 'power.capacity.usage.HOST', template => '%sW' } ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub manage_selection {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my %structure = map {
|
||||||
|
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name} )
|
||||||
|
} @counters;
|
||||||
|
$self->{power} = \%structure;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
=head1 MODE
|
||||||
|
|
||||||
|
Monitor the power consumption of VMware ESX hosts through vSphere 8 REST API.
|
||||||
|
|
||||||
|
Meaning of the available counters in the VMware API:
|
||||||
|
- power.capacity.usable.HOST Current maximum allowed power usage.
|
||||||
|
- power.capacity.usage.HOST Current power usage.
|
||||||
|
- power.capacity.usagePct.HOST Current power usage as a percentage of maximum allowed power.
|
||||||
|
|
||||||
|
Since our tests showed that only C<power.capacity.usage.HOST> was different from zero, the other counters are ignored at the moment.
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item B<--warning-power-usage-watts>
|
||||||
|
|
||||||
|
Threshold in Watts.
|
||||||
|
|
||||||
|
=item B<--critical-power-usage-watts>
|
||||||
|
|
||||||
|
Threshold in Watts.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=cut
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2024 Centreon (http://www.centreon.com/)
|
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||||
#
|
#
|
||||||
# Centreon is a full-fledged industry-strength solution that meets
|
# Centreon is a full-fledged industry-strength solution that meets
|
||||||
# the needs in IT infrastructure and application monitoring for
|
# the needs in IT infrastructure and application monitoring for
|
||||||
@ -31,8 +31,11 @@ sub new {
|
|||||||
|
|
||||||
$self->{version} = '0.1';
|
$self->{version} = '0.1';
|
||||||
$self->{modes} = {
|
$self->{modes} = {
|
||||||
'discovery' => 'apps::vmware::vsphere8::esx::mode::discovery',
|
'cpu' => 'apps::vmware::vsphere8::esx::mode::cpu',
|
||||||
'host-status' => 'apps::vmware::vsphere8::esx::mode::hoststatus'
|
'discovery' => 'apps::vmware::vsphere8::esx::mode::discovery',
|
||||||
|
'host-status' => 'apps::vmware::vsphere8::esx::mode::hoststatus',
|
||||||
|
'memory' => 'apps::vmware::vsphere8::esx::mode::memory',
|
||||||
|
'power' => 'apps::vmware::vsphere8::esx::mode::power',
|
||||||
};
|
};
|
||||||
|
|
||||||
$self->{custom_modes}->{api} = 'apps::vmware::vsphere8::custom::api';
|
$self->{custom_modes}->{api} = 'apps::vmware::vsphere8::custom::api';
|
||||||
|
@ -69,6 +69,14 @@ sub set_counters {
|
|||||||
{ label => 'active_tunnels', template => '%d', min => 0, unit => 'tunnels', label_extra_instance => 1 }
|
{ label => 'active_tunnels', template => '%d', min => 0, unit => 'tunnels', label_extra_instance => 1 }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{ label => 'ipsec-tunnels-count', nlabel => 'vpn.ipsec.tunnels.state.count', set => {
|
||||||
|
key_values => [ { name => 'ipsec_tunnels_count' } ],
|
||||||
|
output_template => 'IPSec tunnels state up: %s',
|
||||||
|
perfdatas => [
|
||||||
|
{ label => 'ipsec-tunnels-count', template => '%d', min => 0, unit => 'tunnels', label_extra_instance => 1 }
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -186,6 +194,7 @@ sub manage_selection {
|
|||||||
|
|
||||||
$self->{vd} = {};
|
$self->{vd} = {};
|
||||||
my $duplicated = {};
|
my $duplicated = {};
|
||||||
|
my $ipsec_tunnels_counter = 0;
|
||||||
foreach my $oid (keys %{$snmp_result->{ $oid_fgVdEntName }}) {
|
foreach my $oid (keys %{$snmp_result->{ $oid_fgVdEntName }}) {
|
||||||
$oid =~ /^$oid_fgVdEntName\.(.*)$/;
|
$oid =~ /^$oid_fgVdEntName\.(.*)$/;
|
||||||
my $vdom_instance = $1;
|
my $vdom_instance = $1;
|
||||||
@ -203,7 +212,8 @@ sub manage_selection {
|
|||||||
global => {
|
global => {
|
||||||
users => $result->{fgVpnSslStatsLoginUsers},
|
users => $result->{fgVpnSslStatsLoginUsers},
|
||||||
tunnels => $result->{fgVpnSslStatsActiveTunnels},
|
tunnels => $result->{fgVpnSslStatsActiveTunnels},
|
||||||
sessions => $result->{fgVpnSslStatsActiveWebSessions}
|
sessions => $result->{fgVpnSslStatsActiveWebSessions},
|
||||||
|
ipsec_tunnels_count => $ipsec_tunnels_counter
|
||||||
},
|
},
|
||||||
vpn => {},
|
vpn => {},
|
||||||
};
|
};
|
||||||
@ -238,8 +248,13 @@ sub manage_selection {
|
|||||||
traffic_in => $result->{fgVpnTunEntInOctets} * 8,
|
traffic_in => $result->{fgVpnTunEntInOctets} * 8,
|
||||||
traffic_out => $result->{fgVpnTunEntOutOctets} * 8
|
traffic_out => $result->{fgVpnTunEntOutOctets} * 8
|
||||||
};
|
};
|
||||||
|
# count tunnels in state up
|
||||||
|
if ($self->{vd}->{$vdomain_name}->{vpn}->{$name}->{state} eq "up") {
|
||||||
|
$ipsec_tunnels_counter++;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
$self->{vd}->{$vdomain_name}->{global}->{ipsec_tunnels_count} = $ipsec_tunnels_counter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
@ -258,11 +273,11 @@ Filter name with regexp. Can be ('vdomain', 'vpn')
|
|||||||
|
|
||||||
=item B<--warning-*>
|
=item B<--warning-*>
|
||||||
|
|
||||||
Warning on counters. Can be ('users', 'sessions', 'tunnels', 'traffic-in', 'traffic-out')
|
Warning on counters. Can be ('users', 'sessions', 'tunnels', 'traffic-in', 'traffic-out', 'ipsec-tunnels-count')
|
||||||
|
|
||||||
=item B<--critical-*>
|
=item B<--critical-*>
|
||||||
|
|
||||||
Warning on counters. Can be ('users', 'sessions', 'tunnels', 'traffic-in', 'traffic-out')
|
Critical on counters. Can be ('users', 'sessions', 'tunnels', 'traffic-in', 'traffic-out', 'ipsec-tunnels-count'))
|
||||||
|
|
||||||
=item B<--warning-status>
|
=item B<--warning-status>
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ sub custom_select_threshold {
|
|||||||
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{warning})) {
|
||||||
$status = 'warning';
|
$status = 'warning';
|
||||||
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
} elsif (defined($self->{result_values}->{config}->{unknown}) && $self->{result_values}->{config}->{unknown} &&
|
||||||
$self->{instance_mode}->reval($self->{result_values}->{config}->{unknown})) {
|
$self->{instance_mode}->{safe}->reval($self->{result_values}->{config}->{unknown})) {
|
||||||
$status = 'unknown';
|
$status = 'unknown';
|
||||||
}
|
}
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
@ -56,22 +56,22 @@ Set resource group (required if resource's name is used).
|
|||||||
=item B<--warning-status>
|
=item B<--warning-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be WARNING (default: '').
|
Define the conditions to match for the status to be WARNING (default: '').
|
||||||
You can use the following variables: %{status}, %{summary}
|
You can use the following variables: C<%{status}>, C<%{summary}>.
|
||||||
|
|
||||||
=item B<--critical-status>
|
=item B<--critical-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be CRITICAL (default: '%{status} =~ /^Unavailable$/').
|
Define the conditions to match for the status to be CRITICAL (default: C<'%{status} =~ /^Unavailable$/'>).
|
||||||
You can use the following variables: %{status}, %{summary}
|
You can use the following variables: C<%{status}>, C<%{summary}>.
|
||||||
|
|
||||||
=item B<--unknown-status>
|
=item B<--unknown-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be UNKNOWN (default: '%{status} =~ /^Unknown$/').
|
Define the conditions to match for the status to be UNKNOWN (default: C<'%{status} =~ /^Unknown$/'>).
|
||||||
You can use the following variables: %{status}, %{summary}
|
You can use the following variables: C<%{status}>, C<%{summary}>.
|
||||||
|
|
||||||
=item B<--ok-status>
|
=item B<--ok-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be OK (default: '%{status} =~ /^Available$/').
|
Define the conditions to match for the status to be OK (default: C<'%{status} =~ /^Available$/''>).
|
||||||
You can use the following variables: %{status}, %{summary}
|
You can use the following variables: C<%{status}>, C<%{summary}>.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -129,15 +129,11 @@ Example:
|
|||||||
|
|
||||||
Using resource name:
|
Using resource name:
|
||||||
|
|
||||||
perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=site-traffic
|
C<perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=site-traffic --resource=MyResource --resource-group=MYRGROUP --aggregation='average' --aggregation='total' --critical-bandwidth-average='10' --verbose>
|
||||||
--resource=MyResource --resource-group=MYRGROUP --aggregation='average' --aggregation='total' --critical-bandwidth-average='10'
|
|
||||||
--verbose
|
|
||||||
|
|
||||||
Using resource ID:
|
Using resource ID:
|
||||||
|
|
||||||
perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=site-traffic
|
C<perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=site-traffic --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/virtualNetworkGateways/xxx' --aggregation='average' --aggregation='total' --critical-bandwidth-average='10' --verbose>
|
||||||
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/virtualNetworkGateways/xxx'
|
|
||||||
--aggregation='average' --aggregation='total' --critical-bandwidth-average='10' --verbose
|
|
||||||
|
|
||||||
Default aggregation: 'average' (*Bandwidth), 'total' (P2SConnectionCount)
|
Default aggregation: 'average' (*Bandwidth), 'total' (P2SConnectionCount)
|
||||||
|
|
||||||
@ -153,18 +149,33 @@ Set resource group (required if resource's name is used).
|
|||||||
|
|
||||||
=item B<--filter-metric>
|
=item B<--filter-metric>
|
||||||
|
|
||||||
Filter metrics (can be: 'AverageBandwidth', 'P2SBandwidth', 'P2SConnectionCount')
|
Filter metrics (can be: C<AverageBandwidth>, C<P2SBandwidth>, C<P2SConnectionCount>)
|
||||||
(can be a regexp).
|
(can be a regexp).
|
||||||
|
|
||||||
=item B<--warning-$label$>
|
|
||||||
|
|
||||||
Warning thresholds
|
=item B<--warning-bandwidth-average>
|
||||||
($label$ can be: 'bandwidth-average', 'p2s-bandwidth', p2s-connections)
|
|
||||||
|
|
||||||
=item B<--critical-$label$>
|
Thresholds.
|
||||||
|
|
||||||
Critical thresholds
|
=item B<--critical-bandwidth-average>
|
||||||
($label$ can be: 'bandwidth-average', 'p2s-bandwidth', p2s-connections)
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-p2s-bandwidth>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-p2s-bandwidth>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-p2s-connections>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-p2s-connections>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Copyright 2024 Centreon (http://www.centreon.com/)
|
# Copyright 2024 Centreon (http://www.centreon.com/)
|
||||||
#
|
#
|
||||||
@ -175,15 +176,55 @@ Filter metrics (can be: 'TunnelIngressBytes', 'TunnelEgressBytes', 'TunnelIngres
|
|||||||
'TunnelEgressPackets', 'TunnelIngressPacketDropTSMismatch', 'TunnelEgressPacketDropTSMismatch')
|
'TunnelEgressPackets', 'TunnelIngressPacketDropTSMismatch', 'TunnelEgressPacketDropTSMismatch')
|
||||||
(can be a regexp).
|
(can be a regexp).
|
||||||
|
|
||||||
=item B<--warning-$label$>
|
=item B<--warning-traffic-in>
|
||||||
|
|
||||||
Warning thresholds.
|
Thresholds.
|
||||||
($label$ can be traffic-in, traffic-out, packets-in, packets-out, dropped-packets-in, dropped-packets-out)
|
|
||||||
|
=item B<--critical-traffic-in>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-traffic-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-traffic-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-packets-in>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-packets-in>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-packets-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-packets-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-dropped-packets-in>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-dropped-packets-in>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--warning-dropped-packets-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
|
=item B<--critical-dropped-packets-out>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
|
||||||
=item B<--critical-$label$>
|
|
||||||
|
|
||||||
Critical thresholds
|
|
||||||
($label$ can be traffic-in, traffic-out, packets-in, packets-out, dropped-packets-in, dropped-packets-out)
|
|
||||||
|
|
||||||
=item B<--per-sec>
|
=item B<--per-sec>
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ sub manage_selection {
|
|||||||
&& $vpn->{name} !~ /$self->{option_results}->{filter_name}/);
|
&& $vpn->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||||
|
|
||||||
$self->{vpns}->{$vpn->{id}} = {
|
$self->{vpns}->{$vpn->{id}} = {
|
||||||
display => $vpn->{name},
|
name => $vpn->{name},
|
||||||
provisioning_state => ($vpn->{provisioningState}) ? $vpn->{provisioningState} : $vpn->{properties}->{provisioningState},
|
provisioning_state => ($vpn->{provisioningState}) ? $vpn->{provisioningState} : $vpn->{properties}->{provisioningState},
|
||||||
gateway_type => ($vpn->{gatewayType}) ? $vpn->{gatewayType} : $vpn->{properties}->{gatewayType},
|
gateway_type => ($vpn->{gatewayType}) ? $vpn->{gatewayType} : $vpn->{properties}->{gatewayType},
|
||||||
vpn_type => ($vpn->{vpnType}) ? $vpn->{vpnType} : $vpn->{properties}->{vpnType},
|
vpn_type => ($vpn->{vpnType}) ? $vpn->{vpnType} : $vpn->{properties}->{vpnType},
|
||||||
@ -120,8 +120,7 @@ __END__
|
|||||||
Check VPN gateways status.
|
Check VPN gateways status.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=vpn-gateways-status
|
C<perl centreon_plugins.pl --plugin=cloud::azure::network::vpngateway::plugin --custommode=azcli --mode=vpn-gateways-status --resource-group='MYRESOURCEGROUP' --verbose>
|
||||||
--resource-group='MYRESOURCEGROUP' --verbose
|
|
||||||
|
|
||||||
=over 8
|
=over 8
|
||||||
|
|
||||||
@ -131,16 +130,16 @@ Set resource group (required).
|
|||||||
|
|
||||||
=item B<--filter-name>
|
=item B<--filter-name>
|
||||||
|
|
||||||
Filter vpn name (can be a regexp).
|
Filter VPN Gateways by name (can be a regexp).
|
||||||
|
|
||||||
=item B<--warning-status>
|
=item B<--warning-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be WARNING (default: '').
|
Define the conditions to match for the status to be WARNING (default: '').
|
||||||
You can use the following variables: %{provisioning_state}, %{gateway_type}, %{vpn_type}, %{display}
|
You can use the following variables: %{provisioning_state}, %{gateway_type}>, %{vpn_type}, %{display}
|
||||||
|
|
||||||
=item B<--critical-status>
|
=item B<--critical-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be CRITICAL (default: '%{provisioning_state} ne "Succeeded"').
|
Define the conditions to match for the status to be CRITICAL (default: C<'%{provisioning_state} ne "Succeeded"'>).
|
||||||
You can use the following variables: %{provisioning_state}, %{gateway_type}, %{vpn_type}, %{display}
|
You can use the following variables: %{provisioning_state}, %{gateway_type}, %{vpn_type}, %{display}
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
@ -197,6 +197,7 @@ $mapping = {
|
|||||||
$thresholds = {
|
$thresholds = {
|
||||||
numeric => [
|
numeric => [
|
||||||
['unavailable', 'UNKNOWN'],
|
['unavailable', 'UNKNOWN'],
|
||||||
|
['absent', 'OK'],
|
||||||
['normal', 'OK'],
|
['normal', 'OK'],
|
||||||
['belowLowerCritical', 'CRITICAL'],
|
['belowLowerCritical', 'CRITICAL'],
|
||||||
['belowLowerWarning', 'WARNING'],
|
['belowLowerWarning', 'WARNING'],
|
||||||
|
@ -43,12 +43,16 @@ sub load {
|
|||||||
sub check {
|
sub check {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my $power_factor_dependencies;
|
||||||
foreach my $component (sort keys %raritan_type) {
|
foreach my $component (sort keys %raritan_type) {
|
||||||
my $long_msg = 0;
|
my $long_msg = 0;
|
||||||
next if ($component !~ /$options{component}/);
|
if ($options{component} eq 'powerFactor') {
|
||||||
|
next if ($component !~ /activePower|onOff|powerFactor/);
|
||||||
|
} elsif ($component !~ /$options{component}/) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
$self->{components}->{$component} = { name => $component, total => 0, skip => 0 };
|
$self->{components}->{$component} = { name => $component, total => 0, skip => 0 };
|
||||||
next if ($self->check_filter(section => $component));
|
next if ($self->check_filter(section => $component));
|
||||||
|
|
||||||
my $instance_type = $raritan_type{$component};
|
my $instance_type = $raritan_type{$component};
|
||||||
my $value_type = $map_type{$instance_type};
|
my $value_type = $map_type{$instance_type};
|
||||||
foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}})) {
|
foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}})) {
|
||||||
@ -77,17 +81,38 @@ sub check {
|
|||||||
|
|
||||||
next if ($self->check_filter(section => $component, instance => $instance));
|
next if ($self->check_filter(section => $component, instance => $instance));
|
||||||
|
|
||||||
if ($long_msg == 0) {
|
if ($component =~ /$options{component}/) {
|
||||||
$self->{output}->output_add(long_msg => "Checking " . $component);
|
$self->{components}->{$component}->{total}++;
|
||||||
$long_msg = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{components}->{$component}->{total}++;
|
|
||||||
|
|
||||||
my $value = (defined($result->{Value}) && $result->{Value} ne '') ? $result->{Value} : '-';
|
my $value = (defined($result->{Value}) && $result->{Value} ne '') ? $result->{Value} : '-';
|
||||||
if ($value =~ /[0-9]/) {
|
if ($value =~ /[0-9]/) {
|
||||||
$value *= 10 ** -int($result->{Decimal});
|
$value *= 10 ** -int($result->{Decimal});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($component eq 'activePower' && $value == 0) {
|
||||||
|
$power_factor_dependencies->{$instance}->{activePower} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($component eq 'onOff') {
|
||||||
|
if ($result->{State} eq 'off') {
|
||||||
|
$power_factor_dependencies->{$instance}->{absent} = 1;
|
||||||
|
|
||||||
|
} elsif (defined($power_factor_dependencies->{$instance}->{activePower})) {
|
||||||
|
$power_factor_dependencies->{$instance}->{absent} = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($component eq 'powerFactor' && defined($power_factor_dependencies->{$instance}->{absent})) {
|
||||||
|
$result->{State} = 'absent';
|
||||||
|
}
|
||||||
|
|
||||||
|
next if ($component !~ /$options{component}/);
|
||||||
|
if ($long_msg == 0) {
|
||||||
|
$self->{output}->output_add(long_msg => "Checking " . $component);
|
||||||
|
$long_msg = 1;
|
||||||
|
}
|
||||||
|
|
||||||
$self->{output}->output_add(
|
$self->{output}->output_add(
|
||||||
long_msg => sprintf(
|
long_msg => sprintf(
|
||||||
"'%s' %s state is '%s' [instance: %s, value: %s, unit: %s, label: %s, pdu: %s]",
|
"'%s' %s state is '%s' [instance: %s, value: %s, unit: %s, label: %s, pdu: %s]",
|
||||||
@ -158,7 +183,7 @@ sub check {
|
|||||||
my $nunit = (defined($result->{Unit}->{nunit}) ? $result->{Unit}->{nunit} : lc($result->{Unit}->{unit}));
|
my $nunit = (defined($result->{Unit}->{nunit}) ? $result->{Unit}->{nunit} : lc($result->{Unit}->{unit}));
|
||||||
|
|
||||||
$self->{output}->perfdata_add(
|
$self->{output}->perfdata_add(
|
||||||
nlabel => 'hardware.sensor.' . $options{type} . '.' . lc($component) . '.' . $nunit,
|
nlabel => $nunit ne '' ? 'hardware.sensor.' . $options{type} . '.' . lc($component) . '.' . $nunit : 'hardware.sensor.' . $options{type} . '.' . lc($component),
|
||||||
unit => $result->{Unit}->{unit},
|
unit => $result->{Unit}->{unit},
|
||||||
instances => [$pduName, $instance],
|
instances => [$pduName, $instance],
|
||||||
value => $value,
|
value => $value,
|
||||||
|
@ -78,7 +78,9 @@ sub check {
|
|||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{components}->{memory}->{total}++;
|
if($result->{cucsMemoryUnitPresence} eq "equipped") {
|
||||||
|
$self->{components}->{memory}->{total}++;
|
||||||
|
}
|
||||||
|
|
||||||
$exit = $self->get_severity(section => 'memory.operability', label => 'default.operability', value => $result2->{cucsMemoryUnitOperState});
|
$exit = $self->get_severity(section => 'memory.operability', label => 'default.operability', value => $result2->{cucsMemoryUnitOperState});
|
||||||
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
|
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
|
||||||
|
@ -60,14 +60,14 @@ __END__
|
|||||||
|
|
||||||
=head1 MODE
|
=head1 MODE
|
||||||
|
|
||||||
Check Hardware (Fans, Power supplies, chassis, io cards, blades, fabric extenders).
|
Check Hardware (Fans, Power supplies, chassis, I/O cards, blades, fabric extenders).
|
||||||
|
|
||||||
=over 8
|
=over 8
|
||||||
|
|
||||||
=item B<--component>
|
=item B<--component>
|
||||||
|
|
||||||
Which component to check (default: '.*').
|
Which component to check (default: '.*').
|
||||||
Can be: 'fan', 'psu', 'chassis', 'iocard', 'blade', 'fex', 'cpu', 'memory', 'localdisk'.
|
Can be: C<fan>, C<psu>, C<chassis>, C<iocard>, C<blade>, C<fex>, C<cpu>, C<memory>, C<localdisk>.
|
||||||
|
|
||||||
=item B<--filter>
|
=item B<--filter>
|
||||||
|
|
||||||
@ -89,6 +89,9 @@ Use this option to override the status returned by the plugin when the status la
|
|||||||
Example: --threshold-overload='fan.operability,OK,poweredOff|removed'
|
Example: --threshold-overload='fan.operability,OK,poweredOff|removed'
|
||||||
--threshold-overload='presence,OK,missing'
|
--threshold-overload='presence,OK,missing'
|
||||||
--threshold-overload='operability,OK,removed'
|
--threshold-overload='operability,OK,removed'
|
||||||
|
NB: For the memory component you may need to set this option twice if presence status doesn't
|
||||||
|
return OK state and you want to override the operability status. Example when memories are missing because of removing.
|
||||||
|
--threshold-overload='presence,OK,missing' --threshold-overload='operability,OK,removed'
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -30,14 +30,17 @@ sub new {
|
|||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
|
|
||||||
$self->{modes} = {
|
$self->{modes} = {
|
||||||
'cpu' => 'network::aruba::aoscx::snmp::mode::cpu',
|
'cpu' => 'network::aruba::aoscx::snmp::mode::cpu',
|
||||||
'hardware' => 'network::aruba::aoscx::snmp::mode::hardware',
|
'hardware' => 'network::aruba::aoscx::snmp::mode::hardware',
|
||||||
'interfaces' => 'snmp_standard::mode::interfaces',
|
'interfaces' => 'snmp_standard::mode::interfaces',
|
||||||
'list-interfaces' => 'snmp_standard::mode::listinterfaces',
|
'list-interfaces' => 'snmp_standard::mode::listinterfaces',
|
||||||
'memory' => 'network::aruba::aoscx::snmp::mode::memory',
|
'list-spanning-trees' => 'snmp_standard::mode::listspanningtrees',
|
||||||
'stack' => 'network::aruba::aoscx::snmp::mode::stack',
|
'memory' => 'network::aruba::aoscx::snmp::mode::memory',
|
||||||
'vsf' => 'network::aruba::aoscx::snmp::mode::vsf',
|
'spanning-tree' => 'snmp_standard::mode::spanningtree',
|
||||||
'vsx' => 'network::aruba::aoscx::snmp::mode::vsx'
|
'stack' => 'network::aruba::aoscx::snmp::mode::stack',
|
||||||
|
'uptime' => 'snmp_standard::mode::uptime',
|
||||||
|
'vsf' => 'network::aruba::aoscx::snmp::mode::vsf',
|
||||||
|
'vsx' => 'network::aruba::aoscx::snmp::mode::vsx'
|
||||||
};
|
};
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
@ -172,48 +172,68 @@ sub check_options {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $mapping = {
|
my $mapping = {
|
||||||
antivirus1 => {
|
new => {
|
||||||
name => '.1.3.6.1.4.1.50853.1.2.6.1.1',
|
antivirus1 => {
|
||||||
version => '.1.3.6.1.4.1.50853.1.2.6.1.2',
|
name => '.1.3.6.1.4.1.50853.1.2.6.1.1.0',
|
||||||
date => '.1.3.6.1.4.1.50853.1.2.6.1.3',
|
version => '.1.3.6.1.4.1.50853.1.2.6.1.2.0',
|
||||||
expiration => '.1.3.6.1.4.1.50853.1.2.6.1.4'
|
date => '.1.3.6.1.4.1.50853.1.2.6.1.3.0',
|
||||||
|
expiration => '.1.3.6.1.4.1.50853.1.2.6.1.4.0'
|
||||||
|
},
|
||||||
|
|
||||||
|
antivirus2 => {
|
||||||
|
name => '.1.3.6.1.4.1.50853.1.2.6.2.1.0',
|
||||||
|
version => '.1.3.6.1.4.1.50853.1.2.6.2.2.0',
|
||||||
|
date => '.1.3.6.1.4.1.50853.1.2.6.2.3.0',
|
||||||
|
expiration => '.1.3.6.1.4.1.50853.1.2.6.2.4.0'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
antivirus2 => {
|
|
||||||
name => '.1.3.6.1.4.1.50853.1.2.6.2.1',
|
old => {
|
||||||
version => '.1.3.6.1.4.1.50853.1.2.6.2.2',
|
antivirus1 => {
|
||||||
date => '.1.3.6.1.4.1.50853.1.2.6.2.3',
|
name => '.1.3.6.1.4.1.50853.1.2.6.1.1',
|
||||||
expiration => '.1.3.6.1.4.1.50853.1.2.6.2.4'
|
version => '.1.3.6.1.4.1.50853.1.2.6.1.2',
|
||||||
|
date => '.1.3.6.1.4.1.50853.1.2.6.1.3',
|
||||||
|
expiration => '.1.3.6.1.4.1.50853.1.2.6.1.4'
|
||||||
|
},
|
||||||
|
|
||||||
|
antivirus2 => {
|
||||||
|
name => '.1.3.6.1.4.1.50853.1.2.6.2.1',
|
||||||
|
version => '.1.3.6.1.4.1.50853.1.2.6.2.2',
|
||||||
|
date => '.1.3.6.1.4.1.50853.1.2.6.2.3',
|
||||||
|
expiration => '.1.3.6.1.4.1.50853.1.2.6.2.4'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
sub add_antivirus {
|
sub add_antivirus {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $name = $options{snmp_result}->{ $mapping->{ $options{label} }->{name} };
|
my $antivirus_mapping = defined($options{snmp_result}->{ $mapping->{new}->{ $options{label} }->{name} }) ? $mapping->{new}->{ $options{label} } : $mapping->{old}->{ $options{label} };
|
||||||
|
my $name = $options{snmp_result}->{ $antivirus_mapping->{name} };
|
||||||
$self->{antivirus}->{$name} = {
|
$self->{antivirus}->{$name} = {
|
||||||
name => $name,
|
name => $name,
|
||||||
version => $options{snmp_result}->{ $mapping->{ $options{label} }->{version} }
|
version => $options{snmp_result}->{ $antivirus_mapping->{version} }
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($options{snmp_result}->{ $mapping->{ $options{label} }->{expiration} } =~ /permanent/i) {
|
if ($options{snmp_result}->{ $antivirus_mapping->{expiration} } =~ /permanent/i) {
|
||||||
$self->{antivirus}->{$name}->{expires_seconds} = 'permanent';
|
$self->{antivirus}->{$name}->{expires_seconds} = 'permanent';
|
||||||
$self->{antivirus}->{$name}->{expires_human} = '-';
|
$self->{antivirus}->{$name}->{expires_human} = '-';
|
||||||
} else {
|
} else {
|
||||||
my $dt = $self->{ $options{label} . '_strp' }->parse_datetime($options{snmp_result}->{ $mapping->{ $options{label} }->{expiration} });
|
my $dt = $self->{ $options{label} . '_strp' }->parse_datetime($options{snmp_result}->{ $antivirus_mapping->{expiration} });
|
||||||
if (defined($dt)) {
|
if (defined($dt)) {
|
||||||
$self->{antivirus}->{$name}->{expires_seconds} = $dt->epoch() - time();
|
$self->{antivirus}->{$name}->{expires_seconds} = $dt->epoch() - time();
|
||||||
$self->{antivirus}->{$name}->{expires_seconds} = 0 if ($self->{antivirus}->{$name}->{expires_seconds} < 0);
|
$self->{antivirus}->{$name}->{expires_seconds} = 0 if ($self->{antivirus}->{$name}->{expires_seconds} < 0);
|
||||||
$self->{antivirus}->{$name}->{expires_human} = centreon::plugins::misc::change_seconds(value => $self->{antivirus}->{$name}->{expires_seconds});
|
$self->{antivirus}->{$name}->{expires_human} = centreon::plugins::misc::change_seconds(value => $self->{antivirus}->{$name}->{expires_seconds});
|
||||||
} else {
|
} else {
|
||||||
$self->{output}->output_add(long_msg => "cannot parse date: " . $options{snmp_result}->{ $mapping->{ $options{label} }->{expiration} } . ' (please use option --' . $options{label} . '-date-format)');
|
$self->{output}->output_add(long_msg => "cannot parse date: " . $options{snmp_result}->{ $antivirus_mapping->{expiration} } . ' (please use option --' . $options{label} . '-date-format)');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my $dt = $self->{ $options{label} . '_strp' }->parse_datetime($options{snmp_result}->{ $mapping->{ $options{label} }->{date} });
|
my $dt = $self->{ $options{label} . '_strp' }->parse_datetime($options{snmp_result}->{ $antivirus_mapping->{date} });
|
||||||
if (defined($dt)) {
|
if (defined($dt)) {
|
||||||
$self->{antivirus}->{$name}->{db_lastupdate_time} = time() - $dt->epoch();
|
$self->{antivirus}->{$name}->{db_lastupdate_time} = time() - $dt->epoch();
|
||||||
} else {
|
} else {
|
||||||
$self->{output}->output_add(long_msg => "cannot parse date: " . $options{snmp_result}->{ $mapping->{ $options{label} }->{date} } . ' (please use option --' . $options{label} . '-date-format)');
|
$self->{output}->output_add(long_msg => "cannot parse date: " . $options{snmp_result}->{ $antivirus_mapping->{date} } . ' (please use option --' . $options{label} . '-date-format)');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +241,10 @@ sub manage_selection {
|
|||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $snmp_result = $options{snmp}->get_leef(
|
my $snmp_result = $options{snmp}->get_leef(
|
||||||
oids => [ map($_, values(%{$mapping->{antivirus1}}), values(%{$mapping->{antivirus2}})) ],
|
oids => [
|
||||||
|
map($_, values(%{$mapping->{new}->{antivirus1}}), values(%{$mapping->{new}->{antivirus2}})),
|
||||||
|
map($_, values(%{$mapping->{old}->{antivirus1}}), values(%{$mapping->{old}->{antivirus2}}))
|
||||||
|
],
|
||||||
nothing_quit => 1
|
nothing_quit => 1
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use centreon::plugins::http;
|
use centreon::plugins::http;
|
||||||
use JSON::XS;
|
use JSON::XS;
|
||||||
|
use Digest::MD5 qw(md5_hex);
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ($class, %options) = @_;
|
my ($class, %options) = @_;
|
||||||
@ -52,7 +53,8 @@ sub new {
|
|||||||
'critical-http-status:s' => { name => 'critical_http_status' },
|
'critical-http-status:s' => { name => 'critical_http_status' },
|
||||||
'as400-hostname:s' => { name => 'as400_hostname' },
|
'as400-hostname:s' => { name => 'as400_hostname' },
|
||||||
'as400-username:s' => { name => 'as400_username' },
|
'as400-username:s' => { name => 'as400_username' },
|
||||||
'as400-password:s' => { name => 'as400_password' }
|
'as400-password:s' => { name => 'as400_password' },
|
||||||
|
'as400-ssl' => { name => 'as400_ssl' }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
$options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1);
|
$options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1);
|
||||||
@ -86,6 +88,7 @@ sub check_options {
|
|||||||
$self->{as400_hostname} = (defined($self->{option_results}->{as400_hostname})) ? $self->{option_results}->{as400_hostname} : '';
|
$self->{as400_hostname} = (defined($self->{option_results}->{as400_hostname})) ? $self->{option_results}->{as400_hostname} : '';
|
||||||
$self->{as400_username} = (defined($self->{option_results}->{as400_username})) ? $self->{option_results}->{as400_username} : '';
|
$self->{as400_username} = (defined($self->{option_results}->{as400_username})) ? $self->{option_results}->{as400_username} : '';
|
||||||
$self->{as400_password} = (defined($self->{option_results}->{as400_password})) ? $self->{option_results}->{as400_password} : '';
|
$self->{as400_password} = (defined($self->{option_results}->{as400_password})) ? $self->{option_results}->{as400_password} : '';
|
||||||
|
$self->{as400_ssl} = (defined($self->{option_results}->{as400_ssl})) ? 1 : 0;
|
||||||
|
|
||||||
if ($self->{connector_hostname} eq '') {
|
if ($self->{connector_hostname} eq '') {
|
||||||
$self->{output}->add_option_msg(short_msg => "Need to specify --connector-hostname option.");
|
$self->{output}->add_option_msg(short_msg => "Need to specify --connector-hostname option.");
|
||||||
@ -151,9 +154,16 @@ sub request_api {
|
|||||||
host => $self->{as400_hostname},
|
host => $self->{as400_hostname},
|
||||||
login => $self->{as400_username},
|
login => $self->{as400_username},
|
||||||
password => $self->{as400_password},
|
password => $self->{as400_password},
|
||||||
|
ssl => $self->{as400_ssl},
|
||||||
command => $options{command}
|
command => $options{command}
|
||||||
};
|
};
|
||||||
$post->{args} = $options{args} if (defined($options{args}));
|
if (defined($options{args})) {
|
||||||
|
$post->{args} = $options{args};
|
||||||
|
if (defined($post->{args}->{uuid})) {
|
||||||
|
$post->{args}->{uuid} = md5_hex($post->{args}->{uuid});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $encoded;
|
my $encoded;
|
||||||
eval {
|
eval {
|
||||||
$encoded = encode_json($post);
|
$encoded = encode_json($post);
|
||||||
@ -240,6 +250,10 @@ AS/400 username (required)
|
|||||||
|
|
||||||
AS/400 password (required)
|
AS/400 password (required)
|
||||||
|
|
||||||
|
=item B<--as400-ssl>
|
||||||
|
|
||||||
|
Use SSL connection (port: 9475)
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
@ -167,6 +167,18 @@ sub new {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_options {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
|
$self->{uuid} = '';
|
||||||
|
foreach ('filter_counters', 'filter_disk_name') {
|
||||||
|
if (defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne '') {
|
||||||
|
$self->{uuid} .= $self->{option_results}->{$_};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $map_disk_status = {
|
my $map_disk_status = {
|
||||||
0 => 'noUnitControl', 1 => 'active', 2 => 'failed',
|
0 => 'noUnitControl', 1 => 'active', 2 => 'failed',
|
||||||
3 => 'otherDiskSubFailed', 4 => 'hwFailurePerf', 5 => 'hwFailureOk',
|
3 => 'otherDiskSubFailed', 4 => 'hwFailurePerf', 5 => 'hwFailureOk',
|
||||||
@ -178,9 +190,12 @@ my $map_disk_status = {
|
|||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my %cmd = (command => 'listDisks');
|
my %cmd = (command => 'listDisks', args => {});
|
||||||
if (defined($self->{option_results}->{disk_name}) && $self->{option_results}->{disk_name} ne '') {
|
if (defined($self->{option_results}->{disk_name}) && $self->{option_results}->{disk_name} ne '') {
|
||||||
$cmd{args} = { diskName => $self->{option_results}->{disk_name} };
|
$cmd{args}->{diskName} = $self->{option_results}->{disk_name};
|
||||||
|
}
|
||||||
|
if ($self->{uuid} ne '') {
|
||||||
|
$cmd{args}->{uuid} = $self->{uuid};
|
||||||
}
|
}
|
||||||
my $disks = $options{custom}->request_api(%cmd);
|
my $disks = $options{custom}->request_api(%cmd);
|
||||||
|
|
||||||
|
@ -59,10 +59,26 @@ sub new {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_options {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
|
$self->{uuid} = '';
|
||||||
|
foreach ('filter_counters', 'filter_name', 'filter_active_status', 'filter_subsystem') {
|
||||||
|
if (defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne '') {
|
||||||
|
$self->{uuid} .= $self->{option_results}->{$_};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $jobs = $options{custom}->request_api(command => 'listJobs');
|
my %cmd = (command => 'listJobs', args => {});
|
||||||
|
if ($self->{uuid} ne '') {
|
||||||
|
$cmd{args}->{uuid} = $self->{uuid};
|
||||||
|
}
|
||||||
|
my $jobs = $options{custom}->request_api(%cmd);
|
||||||
|
|
||||||
$self->{global} = { total => 0 };
|
$self->{global} = { total => 0 };
|
||||||
foreach my $entry (@{$jobs->{result}}) {
|
foreach my $entry (@{$jobs->{result}}) {
|
||||||
|
@ -44,7 +44,7 @@ sub check_options {
|
|||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return $options{custom}->request_api(command => 'listDisks');
|
return $options{custom}->request_api(command => 'listDisks', args => { uuid => 'svc-discovery' });
|
||||||
}
|
}
|
||||||
|
|
||||||
my $map_disk_status = {
|
my $map_disk_status = {
|
||||||
|
@ -44,7 +44,7 @@ sub check_options {
|
|||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return $options{custom}->request_api(command => 'listSubsystems');
|
return $options{custom}->request_api(command => 'listSubsystems', args => { uuid => 'svc-discovery' });
|
||||||
}
|
}
|
||||||
|
|
||||||
my $map_subsys_status = {
|
my $map_subsys_status = {
|
||||||
|
@ -128,6 +128,18 @@ sub new {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_options {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
|
$self->{uuid} = '';
|
||||||
|
foreach ('filter_counters', 'filter_subsystem_name', 'filter_subsystem_library') {
|
||||||
|
if (defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne '') {
|
||||||
|
$self->{uuid} .= $self->{option_results}->{$_};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $map_subsys_status = {
|
my $map_subsys_status = {
|
||||||
'*ACTIVE' => 'active',
|
'*ACTIVE' => 'active',
|
||||||
'*ENDING' => 'ending',
|
'*ENDING' => 'ending',
|
||||||
@ -139,7 +151,11 @@ my $map_subsys_status = {
|
|||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $subsys = $options{custom}->request_api(command => 'listSubsystems');
|
my %cmd = (command => 'listSubsystems', args => {});
|
||||||
|
if ($self->{uuid} ne '') {
|
||||||
|
$cmd{args}->{uuid} = $self->{uuid};
|
||||||
|
}
|
||||||
|
my $subsys = $options{custom}->request_api(%cmd);
|
||||||
|
|
||||||
$self->{global} = { total => 0, active => 0, ending => 0, inactive => 0, restricted => 0, starting => 0 };
|
$self->{global} = { total => 0, active => 0, ending => 0, inactive => 0, restricted => 0, starting => 0 };
|
||||||
$self->{subsys} = {};
|
$self->{subsys} = {};
|
||||||
|
@ -82,7 +82,8 @@ sub new {
|
|||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
|
|
||||||
$options{options}->add_options(arguments => {
|
$options{options}->add_options(arguments => {
|
||||||
'unit:s' => { name => 'unit', default => 'd' }
|
'unit:s' => { name => 'unit', default => 'd' },
|
||||||
|
'timezone:s' => { name => 'timezone'}
|
||||||
});
|
});
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
@ -95,6 +96,10 @@ sub check_options {
|
|||||||
if ($self->{option_results}->{unit} eq '' || !defined($unitdiv->{$self->{option_results}->{unit}})) {
|
if ($self->{option_results}->{unit} eq '' || !defined($unitdiv->{$self->{option_results}->{unit}})) {
|
||||||
$self->{option_results}->{unit} = 'd';
|
$self->{option_results}->{unit} = 'd';
|
||||||
}
|
}
|
||||||
|
if (defined($self->{option_results}->{timezone}) && $self->{option_results}->{timezone} ne '' && $self->{option_results}->{timezone} !~ /^[A-Za-z_\/0-9-]+$/) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "Wrong timezone format '" . $self->{option_results}->{timezone} . "'. (Example format: 'America/Los_Angeles')");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
@ -112,6 +117,16 @@ sub manage_selection {
|
|||||||
foreach my $oid (keys %$snmp_result) {
|
foreach my $oid (keys %$snmp_result) {
|
||||||
if ($snmp_result->{$oid} =~ /\s+(\d+)\/(\d+)\/(\d+)\s+(\d+):(\d+):(\d+)/) {
|
if ($snmp_result->{$oid} =~ /\s+(\d+)\/(\d+)\/(\d+)\s+(\d+):(\d+):(\d+)/) {
|
||||||
my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6);
|
my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6);
|
||||||
|
# if the equipment check is on another timezone than the system where the plugin is executed.
|
||||||
|
if (defined($self->{option_results}->{timezone})){
|
||||||
|
eval {
|
||||||
|
$dt = $dt->set_time_zone($self->{option_results}->{timezone});
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
$self->{output}->add_option_msg(short_msg => "Invalid timezone provided: '" . $self->{option_results}->{timezone} . "'. Check in /usr/share/zoneinfo for valid time zones.");
|
||||||
|
$self->{output}->option_exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
my $lastExecSeconds = $ctime - $dt->epoch();
|
my $lastExecSeconds = $ctime - $dt->epoch();
|
||||||
if ($self->{global}->{lastExecSeconds} == -1 || $self->{global}->{lastExecSeconds} > $lastExecSeconds) {
|
if ($self->{global}->{lastExecSeconds} == -1 || $self->{global}->{lastExecSeconds} > $lastExecSeconds) {
|
||||||
$self->{global}->{lastExecSeconds} = $lastExecSeconds;
|
$self->{global}->{lastExecSeconds} = $lastExecSeconds;
|
||||||
@ -144,6 +159,11 @@ Check last time filesystems had been cleaned.
|
|||||||
|
|
||||||
Select the time unit for thresholds. May be 's' for seconds, 'm' for minutes, 'h' for hours, 'd' for days, 'w' for weeks (default: 'd').
|
Select the time unit for thresholds. May be 's' for seconds, 'm' for minutes, 'h' for hours, 'd' for days, 'w' for weeks (default: 'd').
|
||||||
|
|
||||||
|
=item B<--timezone>
|
||||||
|
|
||||||
|
Set equipment timezone if different from Europe/London. Valid time zones can be found in C</usr/share/zoneinfo>.
|
||||||
|
Format example : Europe/Paris and America/Los_Angeles
|
||||||
|
|
||||||
=item B<--warning-*> B<--critical-*>
|
=item B<--warning-*> B<--critical-*>
|
||||||
|
|
||||||
Thresholds.
|
Thresholds.
|
||||||
|
@ -76,7 +76,7 @@ sub get_shelves {
|
|||||||
|
|
||||||
return if (defined($self->{shelves}));
|
return if (defined($self->{shelves}));
|
||||||
|
|
||||||
$self->{shelves} = $self->{custom}->request_api(endpoint => '/api/storage/shelves?fields=name,state,serial_number,bay,frus');
|
$self->{shelves} = $self->{custom}->request_api(endpoint => '/api/storage/shelves?fields=name,state,serial_number,bays,frus');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub save_custom {
|
sub save_custom {
|
||||||
|
@ -58,7 +58,7 @@ sub set_counters {
|
|||||||
key_values => [
|
key_values => [
|
||||||
{ name => 'category' }, { name => 'code' },
|
{ name => 'category' }, { name => 'code' },
|
||||||
{ name => 'severity' }, { name => 'opened' }, { name => 'state' },
|
{ name => 'severity' }, { name => 'opened' }, { name => 'state' },
|
||||||
{ name => 'component_name' }, { name => 'issue' }
|
{ name => 'component_name' }, { name => 'issue' }, { name => 'flagged' }
|
||||||
],
|
],
|
||||||
closure_custom_output => $self->can('custom_status_output'),
|
closure_custom_output => $self->can('custom_status_output'),
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub { return 0; },
|
||||||
@ -98,7 +98,7 @@ sub manage_selection {
|
|||||||
|
|
||||||
my $last_time;
|
my $last_time;
|
||||||
if (defined($self->{option_results}->{memory})) {
|
if (defined($self->{option_results}->{memory})) {
|
||||||
$self->{statefile_cache}->read(statefile => 'purestorage_' . $self->{mode} . '_' . $options{custom}->get_connection_infos());
|
$self->{statefile_cache}->read(statefile => 'purestorage_' . $self->{mode} . '_' . $options{custom}->get_connection_info());
|
||||||
$last_time = $self->{statefile_cache}->get(name => 'last_time');
|
$last_time = $self->{statefile_cache}->get(name => 'last_time');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,12 +166,12 @@ Filter by category name (can be a regexp).
|
|||||||
=item B<--warning-status>
|
=item B<--warning-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be WARNING (default: '%{state} ne "closed" and %{severity} =~ /warning/i')
|
Define the conditions to match for the status to be WARNING (default: '%{state} ne "closed" and %{severity} =~ /warning/i')
|
||||||
You can use the following variables: %{category}, %{code}, %{severity}, %{opened}, %{state}, %{issue}, %{component_name}
|
You can use the following variables: %{category}, %{code}, %{severity}, %{opened}, %{state}, %{issue}, %{component_name}, %{flagged}
|
||||||
|
|
||||||
=item B<--critical-status>
|
=item B<--critical-status>
|
||||||
|
|
||||||
Define the conditions to match for the status to be CRITICAL (default: '%{state} ne "closed" and %{severity} =~ /critical/i').
|
Define the conditions to match for the status to be CRITICAL (default: '%{state} ne "closed" and %{severity} =~ /critical/i').
|
||||||
You can use the following variables: %{category}, %{code}, %{severity}, %{opened}, %{state}, %{issue}, %{component_name}
|
You can use the following variables: %{category}, %{code}, %{severity}, %{opened}, %{state}, %{issue}, %{component_name}, %{flagged}
|
||||||
|
|
||||||
=item B<--memory>
|
=item B<--memory>
|
||||||
|
|
||||||
|
@ -262,10 +262,10 @@ Filter arrays by ID (can be a regexp).
|
|||||||
|
|
||||||
Filter arrays by name (can be a regexp).
|
Filter arrays by name (can be a regexp).
|
||||||
|
|
||||||
=item B<--filter-resolution>
|
=item B<--perf-resolution>
|
||||||
|
|
||||||
Time resolution for array performance.
|
Time resolution for array performance.
|
||||||
Can be: 1s, 30s, 5m, 30m, 2h, 8h, 24h (default: 5m).
|
Can be: C<1s>, C<30s>, C<5m>, C<30m>, C<2h>, C<8h>, C<24h> (default: C<5m>).
|
||||||
|
|
||||||
=item B<--warning-*> B<--critical-*>
|
=item B<--warning-*> B<--critical-*>
|
||||||
|
|
||||||
|
@ -245,10 +245,10 @@ Filter volumes by ID (can be a regexp).
|
|||||||
|
|
||||||
Filter volumes by name (can be a regexp).
|
Filter volumes by name (can be a regexp).
|
||||||
|
|
||||||
=item B<--filter-resolution>
|
=item B<--perf-resolution>
|
||||||
|
|
||||||
Time resolution for array performance.
|
Time resolution for volumes performance.
|
||||||
Can be: 1s, 30s, 5m, 30m, 2h, 8h, 24h (default: 5m).
|
Can be: C<1s>, C<30s>, C<5m>, C<30m>, C<2h>, C<8h>, C<24h> (default: C<5m>).
|
||||||
|
|
||||||
=item B<--warning-*> B<--critical-*>
|
=item B<--warning-*> B<--critical-*>
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ sub process_test {
|
|||||||
|
|
||||||
sub main {
|
sub main {
|
||||||
#process_test('localhost', 443, 'https', '/v2', 10, 'user', 'pass');
|
#process_test('localhost', 443, 'https', '/v2', 10, 'user', 'pass');
|
||||||
process_test('localhost', 443, undef, undef, undef, undef, undef);
|
process_test('localhost', 3000, 'http', undef, 10, 'login', 'password');
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
46
tests/apps/vmware/vsphere8/esx/cpu-curl.robot
Normal file
46
tests/apps/vmware/vsphere8/esx/cpu-curl.robot
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||||
|
Suite Teardown Stop Mockoon
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Cleanup Cache
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||||
|
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||||
|
... --mode=cpu
|
||||||
|
... --password=C3POR2P2
|
||||||
|
... --username=obi-wan
|
||||||
|
... --hostname=127.0.0.1
|
||||||
|
... --proto=http
|
||||||
|
... --port=3000
|
||||||
|
... --esx-id=host-22
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
Cpu with curl ${tc}
|
||||||
|
[Tags] apps api vmware vsphere8 esx
|
||||||
|
${command} Catenate ${CMD} --http-backend=curl ${extraoptions}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extraoptions expected_result --
|
||||||
|
... 1 ${EMPTY} OK: usage-percentage : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||||
|
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||||
|
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||||
|
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||||
|
... 7 --warning-usage-percentage=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 8 --critical-usage-percentage=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;;50280000
|
||||||
|
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;;50280000
|
||||||
|
... 11 --warning-demand-percentage=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;0:5;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 12 --critical-demand-percentage=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;0:5;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;;50280000
|
||||||
|
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;;50280000
|
||||||
|
... 15 --warning-contention-percentage=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||||
|
... 16 --critical-contention-percentage=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
46
tests/apps/vmware/vsphere8/esx/cpu-lwp.robot
Normal file
46
tests/apps/vmware/vsphere8/esx/cpu-lwp.robot
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||||
|
Suite Teardown Stop Mockoon
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Cleanup Cache
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||||
|
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||||
|
... --mode=cpu
|
||||||
|
... --password=C3POR2P2
|
||||||
|
... --username=obi-wan
|
||||||
|
... --hostname=127.0.0.1
|
||||||
|
... --proto=http
|
||||||
|
... --port=3000
|
||||||
|
... --esx-id=host-22
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
Cpu with lwp ${tc}
|
||||||
|
[Tags] apps api vmware vsphere8 esx
|
||||||
|
${command} Catenate ${CMD} --http-backend=lwp ${extraoptions}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extraoptions expected_result --
|
||||||
|
... 1 ${EMPTY} OK: usage-percentage : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||||
|
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||||
|
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||||
|
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||||
|
... 7 --warning-usage-percentage=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 8 --critical-usage-percentage=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||||
|
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;;50280000
|
||||||
|
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;;50280000
|
||||||
|
... 11 --warning-demand-percentage=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;0:5;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 12 --critical-demand-percentage=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;0:5;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||||
|
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;;50280000
|
||||||
|
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;;50280000
|
||||||
|
... 15 --warning-contention-percentage=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||||
|
... 16 --critical-contention-percentage=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
@ -22,30 +22,23 @@ ${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::pl
|
|||||||
*** Test Cases ***
|
*** Test Cases ***
|
||||||
Host-Status ${tc}
|
Host-Status ${tc}
|
||||||
[Tags] apps api vmware vsphere8 esx
|
[Tags] apps api vmware vsphere8 esx
|
||||||
${command} Catenate ${CMD} --http-backend=${http_backend} --esx-name=${esx_name} ${extraoptions}
|
${command} Catenate ${CMD} ${filter_host} ${extraoptions}
|
||||||
|
${command_curl} Catenate ${command} --http-backend=curl
|
||||||
# We sort the host names and keep only the last one and make sure it is the expected one
|
${command_lwp} Catenate ${command} --http-backend=lwp
|
||||||
${output} Run ${command}
|
Ctn Run Command And Check Result As Strings ${command_curl} ${expected_result}
|
||||||
|
Ctn Run Command And Check Result As Strings ${command_lwp} ${expected_result}
|
||||||
${output} Strip String ${output}
|
|
||||||
Should Be Equal As Strings
|
|
||||||
... ${output}
|
|
||||||
... ${expected_result}
|
|
||||||
... Wrong output result for command:\n${command}\n\nObtained:\n${output}\n\nExpected:\n${expected_result}\n
|
|
||||||
... values=False
|
|
||||||
... collapse_spaces=True
|
|
||||||
|
|
||||||
|
|
||||||
Examples: tc http_backend esx_name extraoptions expected_result --
|
Examples: tc filter_host extraoptions expected_result --
|
||||||
... 1 curl esx1.acme.com ${EMPTY} OK: Host 'esx1.acme.com': power state is POWERED_ON, connection state is CONNECTED
|
... 1 --esx-name=esx1.acme.com ${EMPTY} OK: Host 'esx1.acme.com', id: 'host-22': power state is POWERED_ON, connection state is CONNECTED
|
||||||
... 2 lwp esx1.acme.com ${EMPTY} OK: Host 'esx1.acme.com': power state is POWERED_ON, connection state is CONNECTED
|
... 2 --esx-name=esx2.acme.com ${EMPTY} CRITICAL: Host 'esx2.acme.com', id: 'host-28': power state is POWERED_OFF
|
||||||
... 3 curl esx2.acme.com ${EMPTY} CRITICAL: Host 'esx2.acme.com': power state is POWERED_OFF
|
... 3 --esx-name=esx3.acme.com ${EMPTY} CRITICAL: Host 'esx3.acme.com', id: 'host-35': connection state is DISCONNECTED
|
||||||
... 4 lwp esx2.acme.com ${EMPTY} CRITICAL: Host 'esx2.acme.com': power state is POWERED_OFF
|
... 4 --esx-id=host-35 --esx-name=esx3.acme.com CRITICAL: Host 'esx3.acme.com', id: 'host-35': connection state is DISCONNECTED
|
||||||
... 5 curl esx3.acme.com ${EMPTY} CRITICAL: Host 'esx3.acme.com': connection state is DISCONNECTED
|
... 5 --esx-name=nothing ${EMPTY} UNKNOWN: No ESX Host found.
|
||||||
... 6 lwp esx3.acme.com ${EMPTY} CRITICAL: Host 'esx3.acme.com': connection state is DISCONNECTED
|
... 6 --esx-id=host-35 --esx-name=esx2.acme.com UNKNOWN: No ESX Host found.
|
||||||
... 7 curl esx ${EMPTY} CRITICAL: Host 'esx2.acme.com': power state is POWERED_OFF - Host 'esx3.acme.com': connection state is DISCONNECTED
|
... 7 --esx-id=host-22 ${EMPTY} OK: Host 'esx1.acme.com', id: 'host-22': power state is POWERED_ON, connection state is CONNECTED
|
||||||
... 8 lwp esx ${EMPTY} CRITICAL: Host 'esx2.acme.com': power state is POWERED_OFF - Host 'esx3.acme.com': connection state is DISCONNECTED
|
... 8 --esx-id=host-28 ${EMPTY} CRITICAL: Host 'esx2.acme.com', id: 'host-28': power state is POWERED_OFF
|
||||||
... 9 curl nothing ${EMPTY} UNKNOWN: No ESX Host found.
|
... 9 --esx-id=host-35 ${EMPTY} CRITICAL: Host 'esx3.acme.com', id: 'host-35': connection state is DISCONNECTED
|
||||||
... 10 lwp nothing ${EMPTY} UNKNOWN: No ESX Host found.
|
... 10 --esx-id=nothing ${EMPTY} UNKNOWN: No ESX Host found.
|
||||||
... 11 curl esx1.acme.com --port=8888 UNKNOWN: curl perform error : Couldn't connect to server
|
... 11 --esx-id=host-28 --critical-power-status=0 OK: Host 'esx2.acme.com', id: 'host-28': power state is POWERED_OFF, connection state is CONNECTED
|
||||||
... 12 lwp esx1.acme.com --port=8888 UNKNOWN: 500 Can't connect to 127.0.0.1:8888 (Connection refused)
|
... 12 --esx-id=host-35 --critical-connection-status=0 OK: Host 'esx3.acme.com', id: 'host-35': power state is POWERED_ON, connection state is DISCONNECTED
|
||||||
|
36
tests/apps/vmware/vsphere8/esx/memory.robot
Normal file
36
tests/apps/vmware/vsphere8/esx/memory.robot
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||||
|
Suite Teardown Stop Mockoon
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Cleanup Cache
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||||
|
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||||
|
... --mode=memory
|
||||||
|
... --password=C3POR2P2
|
||||||
|
... --username=obi-wan
|
||||||
|
... --hostname=127.0.0.1
|
||||||
|
... --proto=http
|
||||||
|
... --port=3000
|
||||||
|
... --esx-id=host-22
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
Memory ${tc}
|
||||||
|
[Tags] apps api vmware vsphere8 esx
|
||||||
|
${command} Catenate ${CMD} --http-backend=curl ${extraoptions}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extraoptions expected_result --
|
||||||
|
... 1 ${EMPTY} OK: vms-usage-percentage : skipped (no value(s)) - vms-usage-bytes : skipped (no value(s)) - no data for host host-22 counter mem.capacity.usable.HOST at the moment.
|
||||||
|
... 2 ${EMPTY} OK: 39% of usable memory is used by VMs - Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||||
|
... 3 --warning-vms-usage-percentage=0:0 WARNING: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;0:0;;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||||
|
... 4 --critical-vms-usage-percentage=0:0 CRITICAL: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;;0:0;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||||
|
... 5 --warning-vms-usage-bytes=0:0 WARNING: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;0:0;;;272694090137
|
||||||
|
... 6 --critical-vms-usage-bytes=0:0 CRITICAL: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;;0:0;;272694090137
|
34
tests/apps/vmware/vsphere8/esx/power.robot
Normal file
34
tests/apps/vmware/vsphere8/esx/power.robot
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||||
|
Suite Teardown Stop Mockoon
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Cleanup Cache
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||||
|
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||||
|
... --mode=power
|
||||||
|
... --password=C3POR2P2
|
||||||
|
... --username=obi-wan
|
||||||
|
... --hostname=127.0.0.1
|
||||||
|
... --proto=http
|
||||||
|
... --port=3000
|
||||||
|
... --esx-id=host-22
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
Power ${tc}
|
||||||
|
[Tags] apps api vmware vsphere8 esx
|
||||||
|
${command} Catenate ${CMD} --http-backend=curl ${extraoptions}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extraoptions expected_result --
|
||||||
|
... 1 ${EMPTY} OK: power-usage-watts : skipped (no value(s)) - no data for host host-22 counter power.capacity.usage.HOST at the moment.
|
||||||
|
... 2 ${EMPTY} OK: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;;;
|
||||||
|
... 3 --warning-power-usage-watts=0:0 WARNING: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;0:0;;;
|
||||||
|
... 4 --critical-power-usage-watts=0:0 CRITICAL: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;0:0;;
|
File diff suppressed because one or more lines are too long
125
tests/cloud/azure/network/vpngateway/vpngatewaystatus.json
Normal file
125
tests/cloud/azure/network/vpngateway/vpngatewaystatus.json
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
{
|
||||||
|
"uuid": "e745f255-dee8-48eb-a952-88bb0f9e5a0c",
|
||||||
|
"lastMigration": 32,
|
||||||
|
"name": "Azure vpn gateway",
|
||||||
|
"endpointPrefix": "",
|
||||||
|
"latency": 0,
|
||||||
|
"port": 3004,
|
||||||
|
"hostname": "",
|
||||||
|
"folders": [],
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"uuid": "f8dc6ac1-febc-46a8-be79-9e5e14cedd3a",
|
||||||
|
"type": "http",
|
||||||
|
"documentation": "List By Resource Group Reference (reduced reponse info)",
|
||||||
|
"method": "get",
|
||||||
|
"endpoint": "subscriptions/:subscriptionId/resourcegroups/:resourceGroup/providers/Microsoft.Network/virtualNetworkGateways",
|
||||||
|
"responses": [
|
||||||
|
{
|
||||||
|
"uuid": "4b0edd9d-2052-45a3-9969-cf0cf461154c",
|
||||||
|
"body": "{\r\n \"value\": [\r\n {\r\n \"name\": \"gateway1\",\r\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1\",\r\n \"type\": \"Microsoft.Network/vpnGateways\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"gatewayType\": \"ExpressRoute\",\r\n \"vpnType\": \"RouteBased\"\r\n },\r\n {\r\n \"name\": \"gateway2\",\r\n \"id\": \"/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2\",\r\n \"type\": \"Microsoft.Network/vpnGateways\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"gatewayType\": \"ExpressRoute\",\r\n \"vpnType\": \"RouteBased\"\r\n }\r\n ]\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
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "325811e6-6a5d-4906-90a1-3df24183d529",
|
||||||
|
"type": "http",
|
||||||
|
"documentation": "Azure login",
|
||||||
|
"method": "post",
|
||||||
|
"endpoint": "login/:tenant/oauth2/token",
|
||||||
|
"responses": [
|
||||||
|
{
|
||||||
|
"uuid": "e381c634-cbff-431e-851e-e4631f0f9e2c",
|
||||||
|
"body": "{\n \"access_token\": \"token\",\n \"expires_on\": \"{{ faker 'string.numeric' 10 }}\"\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": "f8dc6ac1-febc-46a8-be79-9e5e14cedd3a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "route",
|
||||||
|
"uuid": "325811e6-6a5d-4906-90a1-3df24183d529"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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": []
|
||||||
|
}
|
38
tests/cloud/azure/network/vpngateway/vpngatewaystatus.robot
Normal file
38
tests/cloud/azure/network/vpngateway/vpngatewaystatus.robot
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
*** Settings ***
|
||||||
|
Documentation Azure Network VPN Gateway plugin
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||||
|
Suite Teardown Stop Mockoon
|
||||||
|
Test Timeout 120s
|
||||||
|
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${MOCKOON_JSON} ${CURDIR}${/}vpngatewaystatus.json
|
||||||
|
|
||||||
|
${BASE_URL} http://${HOSTNAME}:${APIPORT}
|
||||||
|
${LOGIN_ENDPOINT} ${BASE_URL}/login
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=cloud::azure::network::vpngateway::plugin --custommode=api --subscription=subscription --tenant=tenant --client-id=client_id --client-secret=secret --resource-group=resource-group --login-endpoint=${LOGIN_ENDPOINT}
|
||||||
|
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
VPN Gateway status ${tc}
|
||||||
|
[Tags] cloud azure api mockoon
|
||||||
|
${command} Catenate
|
||||||
|
... ${CMD}
|
||||||
|
... --mode=vpn-gateway-status
|
||||||
|
... --management-endpoint=${BASE_URL}
|
||||||
|
... ${extra_options}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extra_options expected_result --
|
||||||
|
... 1 ${EMPTY} OK: All VPN gateways are ok
|
||||||
|
... 2 --warning-status='\\%\{provisioning_state\} eq "Succeeded"' WARNING: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased] - VPN Gateway 'gateway2' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
|
||||||
|
... 3 --critical-status='\\%\{provisioning_state\} eq "Succeeded"' CRITICAL: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased] - VPN Gateway 'gateway2' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
|
||||||
|
... 4 --filter-name='gateway1' OK: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
|
||||||
|
... 5 --filter-name='gateway1' --warning-status='\\%\{provisioning_state\} eq "Succeeded"' WARNING: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
|
||||||
|
... 6 --filter-name='gateway1' --critical-status='\\%\{provisioning_state\} eq "Succeeded"' CRITICAL: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
|
||||||
|
|
||||||
|
|
41
tests/cpan-libraries/crypt-argon2.pl
Executable file
41
tests/cpan-libraries/crypt-argon2.pl
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Crypt::Argon2 qw/argon2d_raw argon2i_raw argon2id_raw argon2_pass argon2_verify/;
|
||||||
|
|
||||||
|
# Password to hash
|
||||||
|
my $password = 'my_secure_password';
|
||||||
|
my $salt = 'random_salt';
|
||||||
|
my $iterations = 3;
|
||||||
|
my $memory_cost = 32 * 1024; # in KB
|
||||||
|
my $parallelism = 1;
|
||||||
|
my $hash_length = 32;
|
||||||
|
|
||||||
|
# Hash with Argon2d
|
||||||
|
my $argon2d_hash = argon2d_raw($password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print("Argon2d hash: " . unpack("H*", $argon2d_hash) . "\n");
|
||||||
|
# Hash with Argon2i
|
||||||
|
my $argon2i_hash = argon2i_raw($password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print("Argon2i hash: " . unpack("H*", $argon2i_hash) . "\n");
|
||||||
|
# Hash with Argon2id
|
||||||
|
my $argon2id_hash = argon2id_raw($password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print("Argon2id hash: " . unpack("H*", $argon2id_hash) . "\n");
|
||||||
|
|
||||||
|
# Encode password with Argon2d
|
||||||
|
my $argon2d_encoded = argon2_pass('argon2d', $password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print "Argon2d encoded: $argon2d_encoded\n";
|
||||||
|
# Encode password with Argon2i
|
||||||
|
my $argon2i_encoded = argon2_pass('argon2i', $password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print "Argon2i encoded: $argon2i_encoded\n";
|
||||||
|
# Encode password with Argon2id
|
||||||
|
my $argon2id_encoded = argon2_pass('argon2id', $password, $salt, $iterations, $memory_cost, $parallelism, $hash_length);
|
||||||
|
print "Argon2id encoded: $argon2id_encoded\n";
|
||||||
|
|
||||||
|
# Verify password with Argon2d
|
||||||
|
# print argon2d_verify($argon2d_encoded1, $password) ? "Argon2d password is correct.\n" : "Argon2d password is incorrect.\n";
|
||||||
|
argon2_verify($argon2d_encoded, $password) ? print "Argon2d password is correct.\n" : exit(1);
|
||||||
|
# Verify password with Argon2i
|
||||||
|
argon2_verify($argon2i_encoded, $password) ? print "Argon2i password is correct.\n" : exit(1);
|
||||||
|
# Verify password with Argon2id
|
||||||
|
argon2_verify($argon2id_encoded, $password) ? print "Argon2id password is correct.\n" : exit(1);
|
32
tests/cpan-libraries/json-path.pl
Normal file
32
tests/cpan-libraries/json-path.pl
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use JSON::Path;
|
||||||
|
|
||||||
|
# Sample Perl data structure
|
||||||
|
my $data = {
|
||||||
|
store => {
|
||||||
|
book => [
|
||||||
|
{ category => "reference", author => "Nigel Rees", title => "Sayings of the Century", price => 8.95 },
|
||||||
|
{ category => "fiction", author => "Evelyn Waugh", title => "Sword of Honour", price => 12.99 },
|
||||||
|
{ category => "fiction", author => "Herman Melville", title => "Moby Dick", isbn => "0-553-21311-3", price => 8.99 },
|
||||||
|
{ category => "fiction", author => "J. R. R. Tolkien", title => "The Lord of the Rings", isbn => "0-395-19395-8", price => 22.99 }
|
||||||
|
],
|
||||||
|
bicycle => {
|
||||||
|
color => "red",
|
||||||
|
price => 19.95
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
# Create a JSON::Path object
|
||||||
|
my $jpath = JSON::Path->new('$.store.book[*].author');
|
||||||
|
|
||||||
|
# Find all authors
|
||||||
|
my @authors = $jpath->values($data);
|
||||||
|
|
||||||
|
# Print authors
|
||||||
|
print "Authors:\n";
|
||||||
|
foreach my $author (@authors) {
|
||||||
|
print "$author\n";
|
||||||
|
}
|
111
tests/cpan-libraries/libssh-session.pl
Normal file
111
tests/cpan-libraries/libssh-session.pl
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Libssh::Session qw(:all);
|
||||||
|
use POSIX qw(WIFEXITED WEXITSTATUS);
|
||||||
|
|
||||||
|
# Install SSH server
|
||||||
|
if (-f "/etc/debian_version") {
|
||||||
|
system("apt-get update") == 0
|
||||||
|
or die "apt-update failed: $?";
|
||||||
|
system("apt-get install -y openssh-server") == 0
|
||||||
|
or die "Installation failed: $?";
|
||||||
|
} elsif (-f "/etc/redhat-release") {
|
||||||
|
system("dnf install -y openssh-server") == 0
|
||||||
|
or die "Installation failed: $?";
|
||||||
|
} else {
|
||||||
|
die "Unsupported operating system";
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir("/var/run/sshd") unless -d "/var/run/sshd";
|
||||||
|
|
||||||
|
system("ssh-keygen -A") == 0
|
||||||
|
or die "SSH keys generation failed: $?";
|
||||||
|
|
||||||
|
if (getpwnam("testuser")) {
|
||||||
|
print "User testuser already exists\n";
|
||||||
|
} else {
|
||||||
|
system("useradd -m testuser") == 0
|
||||||
|
or die "User creation failed: $?";
|
||||||
|
}
|
||||||
|
|
||||||
|
system("echo 'testuser:testpassword' | chpasswd") == 0
|
||||||
|
or die "Password configuration failed: $?";
|
||||||
|
|
||||||
|
# SSH configuration
|
||||||
|
open(my $fh, '>', '/etc/ssh/sshd_config')
|
||||||
|
or die "Cannot open sshd_config: $!";
|
||||||
|
print $fh "Port 2222\n";
|
||||||
|
print $fh "PermitRootLogin no\n";
|
||||||
|
print $fh "AllowUsers testuser\n";
|
||||||
|
print $fh "PasswordAuthentication yes\n";
|
||||||
|
close($fh);
|
||||||
|
|
||||||
|
# Start SSH server
|
||||||
|
my $pid = fork();
|
||||||
|
die "Fork failed: $!" unless defined $pid;
|
||||||
|
|
||||||
|
if ($pid == 0) {
|
||||||
|
exec("/usr/sbin/sshd", "-D")
|
||||||
|
or die "Cannot start SSH server: $!";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Wait and check the port
|
||||||
|
sleep(5);
|
||||||
|
|
||||||
|
# Check the port with Perl
|
||||||
|
use IO::Socket::INET;
|
||||||
|
my $sock = IO::Socket::INET->new(
|
||||||
|
PeerAddr => '127.0.0.1',
|
||||||
|
PeerPort => 2222,
|
||||||
|
Proto => 'tcp'
|
||||||
|
);
|
||||||
|
|
||||||
|
die "Port SSH 2222 is not listening" unless $sock;
|
||||||
|
$sock->close();
|
||||||
|
|
||||||
|
# Connection test with Libssh::Session
|
||||||
|
eval {
|
||||||
|
my $session = Libssh::Session->new();
|
||||||
|
$session->options(
|
||||||
|
host => "127.0.0.1",
|
||||||
|
port => 2222,
|
||||||
|
user => "testuser",
|
||||||
|
LogVerbosity => 1,
|
||||||
|
PrintError => 1,
|
||||||
|
Timeout => 10
|
||||||
|
);
|
||||||
|
|
||||||
|
print "Trying to connect...\n";
|
||||||
|
$session->connect() == SSH_OK or die "Connection failed: " . $session->get_error();
|
||||||
|
|
||||||
|
print "Trying to authenticate...\n";
|
||||||
|
$session->auth_password(password => "testpassword") == SSH_AUTH_SUCCESS or die "Authentification failed: " . $session->get_error();
|
||||||
|
|
||||||
|
print "SSH connection test succeeded\n";
|
||||||
|
$session->disconnect();
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
kill 'TERM', $pid;
|
||||||
|
die "Test failed: $@";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleaning
|
||||||
|
kill 'TERM', $pid;
|
||||||
|
waitpid($pid, 0);
|
||||||
|
|
||||||
|
# Uninstall SSH server
|
||||||
|
if (-f "/etc/debian_version") {
|
||||||
|
system("apt-get autoremove -y --purge openssh-server") == 0
|
||||||
|
or die "Uninstallation failed: $?";
|
||||||
|
} elsif (-f "/etc/redhat-release") {
|
||||||
|
system("dnf autoremove --setopt=keepcache=True -y openssh-server") == 0
|
||||||
|
or die "Uninstallation failed: $?";
|
||||||
|
} else {
|
||||||
|
die "Unsupported operating system";
|
||||||
|
}
|
||||||
|
|
||||||
|
system("userdel -r testuser") == 0
|
||||||
|
or die "Cannot delete user: $?";
|
||||||
|
|
||||||
|
print "Test and cleanup succeeded\n";
|
27
tests/cpan-libraries/net-curl.pl
Normal file
27
tests/cpan-libraries/net-curl.pl
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Net::Curl::Easy qw(:constants);
|
||||||
|
|
||||||
|
# URL to fetch
|
||||||
|
my $url = 'https://www.centreon.com';
|
||||||
|
|
||||||
|
# Create a new Curl object
|
||||||
|
my $curl = Net::Curl::Easy->new();
|
||||||
|
|
||||||
|
# Prepare the request
|
||||||
|
$curl->setopt(CURLOPT_URL, $url);
|
||||||
|
my $response_body;
|
||||||
|
$curl->setopt(CURLOPT_WRITEDATA, \$response_body);
|
||||||
|
|
||||||
|
# Perform the request
|
||||||
|
eval {
|
||||||
|
$curl->perform();
|
||||||
|
};
|
||||||
|
die "Unable to fetch URL $url: $@" if $@;
|
||||||
|
|
||||||
|
# Print the response body
|
||||||
|
print "Response body:\n$response_body\n";
|
||||||
|
|
||||||
|
print "Test completed successfully.\n";
|
33
tests/hardware/pdu/raritan/snmp/inletsensors.robot
Normal file
33
tests/hardware/pdu/raritan/snmp/inletsensors.robot
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
*** Settings ***
|
||||||
|
Documentation Check inlet sensors
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Ctn Generic Suite Setup
|
||||||
|
Test Timeout 120s
|
||||||
|
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=hardware::pdu::raritan::snmp::plugin
|
||||||
|
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
inlet ${tc}
|
||||||
|
[Tags] hardware pdu raritan inlet sensors
|
||||||
|
${command} Catenate
|
||||||
|
... ${CMD}
|
||||||
|
... --mode=inlet-sensors
|
||||||
|
... --hostname=${HOSTNAME}
|
||||||
|
... --snmp-version=${SNMPVERSION}
|
||||||
|
... --snmp-port=${SNMPPORT}
|
||||||
|
... --snmp-community=hardware/pdu/raritan/snmp/raritan
|
||||||
|
... --snmp-timeout=1
|
||||||
|
... ${extra_options}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extra_options expected_result --
|
||||||
|
... 1 ${EMPTY} OK: All 7 components are ok [1/1 activeEnergy, 1/1 activePower, 1/1 apparentPower, 1/1 frequency, 1/1 powerFactor, 1/1 rmsCurrent, 1/1 rmsVoltage]. | 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.activeenergy.watthour'=1444088wattHour;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.activepower.watt'=242W;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.apparentpower.voltamp'=379voltamp;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.frequency.hertz'=50Hz;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.powerfactor'=0.64;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.rmscurrent.ampere'=1.626A;~:10.4;~:12.8;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.rmsvoltage.volt'=233V;194:247;188:254;; 'hardware.activeEnergy.count'=1;;;; 'hardware.activePower.count'=1;;;; 'hardware.apparentPower.count'=1;;;; 'hardware.frequency.count'=1;;;; 'hardware.powerFactor.count'=1;;;; 'hardware.rmsCurrent.count'=1;;;; 'hardware.rmsVoltage.count'=1;;;;
|
||||||
|
... 2 --filter=powerFactor OK: All 6 components are ok [1/1 activeEnergy, 1/1 activePower, 1/1 apparentPower, 1/1 frequency, 1/1 rmsCurrent, 1/1 rmsVoltage]. | 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.activeenergy.watthour'=1444088wattHour;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.activepower.watt'=242W;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.apparentpower.voltamp'=379voltamp;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.frequency.hertz'=50Hz;;;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.rmscurrent.ampere'=1.626A;~:10.4;~:12.8;; 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.rmsvoltage.volt'=233V;194:247;188:254;; 'hardware.activeEnergy.count'=1;;;; 'hardware.activePower.count'=1;;;; 'hardware.apparentPower.count'=1;;;; 'hardware.frequency.count'=1;;;; 'hardware.rmsCurrent.count'=1;;;; 'hardware.rmsVoltage.count'=1;;;;
|
||||||
|
... 3 --component=powerFactor OK: All 1 components are ok [1/1 powerFactor]. | 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.powerfactor'=0.64;;;; 'hardware.powerFactor.count'=1;;;;
|
||||||
|
... 4 --component=powerFactor --threshold-overload='powerFactor,CRITICAL,normal' CRITICAL: 'Anonymized 027' powerFactor state is 'normal' | 'Anonymized 102~Anonymized 027#hardware.sensor.inlet.powerfactor'=0.64;;;; 'hardware.powerFactor.count'=1;;;;
|
33
tests/hardware/pdu/raritan/snmp/outletsensors.robot
Normal file
33
tests/hardware/pdu/raritan/snmp/outletsensors.robot
Normal file
File diff suppressed because one or more lines are too long
965
tests/hardware/pdu/raritan/snmp/raritan.snmpwalk
Normal file
965
tests/hardware/pdu/raritan/snmp/raritan.snmpwalk
Normal file
@ -0,0 +1,965 @@
|
|||||||
|
.1.3.6.1.4.1.13742.6.3.2.2.1.13.1 = STRING: Anonymized 102
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.3.1.2.1.1 = STRING: Anonymized 027
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.6.1.1.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.7.1.1.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.21.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.22.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.1 = Gauge32: 12800
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.23.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.1 = Gauge32: 10400
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.24.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.4 = Hex-STRING: F0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.3.4.1.25.1.1.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.1 = STRING: "1"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.2 = STRING: "2"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.3 = STRING: "3"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.4 = STRING: "4"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.5 = STRING: "5"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.6 = STRING: "6"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.7 = STRING: "7"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.8 = STRING: "8"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.9 = STRING: "9"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.10 = STRING: "10"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.11 = STRING: "11"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.2.1.12 = STRING: "12"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.1 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.2 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.3 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.5 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.6 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.7 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.8 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.9 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.10 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.11 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.28.1.12 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.1 = STRING: Anonymized 008
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.2 = STRING: Anonymized 217
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.3 = STRING: Anonymized 184
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.4 = STRING: Anonymized 062
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.5 = STRING: Anonymized 049
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.6 = STRING: Anonymized 018
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.7 = STRING: Anonymized 205
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.8 = STRING: Anonymized 091
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.9 = STRING: Anonymized 156
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.10 = STRING: Anonymized 123
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.11 = STRING: Anonymized 027
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.3.1.29.1.12 = STRING: Anonymized 207
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.1.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.2.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.3.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.4.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.5.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.6.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.7.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.8.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.9.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.10.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.11.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.1 = INTEGER: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.4 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.5 = INTEGER: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.8 = INTEGER: 5
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.14 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.6.1.12.23 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.1.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.2.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.3.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.4.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.5.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.6.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.7.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.8.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.9.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.10.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.11.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.1 = Gauge32: 3
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.7 = Gauge32: 2
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.7.1.12.23 = Gauge32: 1
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.2.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.3.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.4.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.5.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.6.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.7.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.8.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.9.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.10.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.11.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.4 = Gauge32: 188
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.21.1.12.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.2.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.3.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.4.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.5.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.6.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.7.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.8.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.9.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.10.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.11.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.4 = Gauge32: 194
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.22.1.12.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.2.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.3.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.4.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.5.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.6.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.7.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.8.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.9.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.10.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.11.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.1 = Gauge32: 8000
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.4 = Gauge32: 254
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.23.1.12.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.1.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.2.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.3.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.4.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.5.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.6.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.7.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.8.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.9.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.10.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.11.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.1 = Gauge32: 6500
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.4 = Gauge32: 247
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.24.1.12.23 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.1.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.2.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.3.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.4.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.5.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.6.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.7.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.8.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.9.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.10.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.11.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.1 = STRING: "0"
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.4 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.5 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.6 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.7 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.8 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.14 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.3.5.4.1.25.1.12.23 = Hex-STRING: 00
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.3.1.1.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.1 = Gauge32: 1626
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.5 = Gauge32: 242
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.6 = Gauge32: 379
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.7 = Gauge32: 64
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.8 = Gauge32: 1444088
|
||||||
|
.1.3.6.1.4.1.13742.6.5.2.3.1.4.1.1.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.1.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.2.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.3.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.4.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.5.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.6.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.7.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.14 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.8.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.14 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.9.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.14 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.10.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.7 = INTEGER: -1
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.14 = INTEGER: 8
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.11.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.1 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.4 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.5 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.6 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.7 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.8 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.14 = INTEGER: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.3.1.12.23 = INTEGER: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.1 = Gauge32: 74
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.5 = Gauge32: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.6 = Gauge32: 17
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.7 = Gauge32: 41
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.8 = Gauge32: 107881
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.1 = Gauge32: 303
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.5 = Gauge32: 56
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.6 = Gauge32: 71
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.7 = Gauge32: 79
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.8 = Gauge32: 330830
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.2.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.1 = Gauge32: 91
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.5 = Gauge32: 6
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.6 = Gauge32: 21
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.7 = Gauge32: 30
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.8 = Gauge32: 46648
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.3.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.8 = Gauge32: 4
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.4.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.1 = Gauge32: 333
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.5 = Gauge32: 45
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.6 = Gauge32: 78
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.7 = Gauge32: 58
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.8 = Gauge32: 281696
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.5.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.1 = Gauge32: 371
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.4 = Gauge32: 233
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.5 = Gauge32: 56
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.6 = Gauge32: 86
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.7 = Gauge32: 65
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.8 = Gauge32: 340154
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.6.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.1 = Gauge32: 389
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.4 = Gauge32: 234
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.5 = Gauge32: 65
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.6 = Gauge32: 91
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.7 = Gauge32: 72
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.8 = Gauge32: 293708
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.7.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.8.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.9.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.10.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.1 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.4 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.5 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.6 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.7 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.8 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.11.23 = Gauge32: 500
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.1 = Gauge32: 81
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.4 = Gauge32: 234
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.5 = Gauge32: 7
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.6 = Gauge32: 19
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.7 = Gauge32: 38
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.8 = Gauge32: 43137
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.14 = Gauge32: 0
|
||||||
|
.1.3.6.1.4.1.13742.6.5.4.3.1.4.1.12.23 = Gauge32: 500
|
39
tests/hardware/server/cisco/ucs/snmp/equipement.robot
Normal file
39
tests/hardware/server/cisco/ucs/snmp/equipement.robot
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
*** Settings ***
|
||||||
|
Documentation Check Hardware (Fans, Power supplies, chassis, io cards, blades, fabric extenders).
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Suite Setup Ctn Generic Suite Setup
|
||||||
|
Test Timeout 120s
|
||||||
|
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=hardware::server::cisco::ucs::snmp::plugin
|
||||||
|
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
equipment ${tc}
|
||||||
|
[Tags] hardware snmp
|
||||||
|
${command} Catenate
|
||||||
|
... ${CMD}
|
||||||
|
... --mode=equipment
|
||||||
|
... --hostname=${HOSTNAME}
|
||||||
|
... --snmp-version=${SNMPVERSION}
|
||||||
|
... --snmp-port=${SNMPPORT}
|
||||||
|
... --snmp-community=hardware/server/cisco/ucs/snmp/slim-ucs-equipment
|
||||||
|
... ${extra_options}
|
||||||
|
|
||||||
|
Ctn Verify Command Output ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extra_options expected_result --
|
||||||
|
... 1 ${EMPTY} WARNING: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
||||||
|
... 2 --threshold-overload='presence,OK,missing' --threshold-overload='operability,OK,removed' OK: All 100 components are ok [100/100 memories]. | 'hardware.memory.count'=100;;;;
|
||||||
|
... 3 --threshold-overload='presence,UNKNOWN,missing' --component='memory' UNKNOWN: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
||||||
|
... 4 --threshold-overload='operability,WARNING,missing' --component='memory' WARNING: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
||||||
|
... 5 --component='cpu' OK: All 0 components are ok [].
|
||||||
|
... 6 --filter=fan,/sys/chassis-7/fan-module-1-7/fan-1 WARNING: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
||||||
|
... 7 --absent-problem=fan,/sys/chassis-7/fan-module-1-7/fan-1 WARNING: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
||||||
|
... 8 --no-component=UNKNOWN --filter='.*' UNKNOWN: No components are checked.
|
||||||
|
... 9 --threshold-overload='presence,CRITICAL,equipped' CRITICAL: memory 'Anonymized-001/mem-10' presence is: 'equipped' - memory 'Anonymized-001/mem-11' presence is: 'equipped'
|
||||||
|
... 10 --filter='.*' OK: All 0 components are ok [].
|
||||||
|
... 11 --filter WARNING: memory 'Anonymized-001/mem-12' presence is: 'missing' - memory 'Anonymized-001/mem-15' presence is: 'missing'
|
576
tests/hardware/server/cisco/ucs/snmp/slim-ucs-equipment.snmpwalk
Normal file
576
tests/hardware/server/cisco/ucs/snmp/slim-ucs-equipment.snmpwalk
Normal file
@ -0,0 +1,576 @@
|
|||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190046 = STRING: Anonymized-001/mem-10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190047 = STRING: Anonymized-001/mem-11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190048 = STRING: Anonymized-001/mem-12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190049 = STRING: Anonymized-001/mem-13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190050 = STRING: Anonymized-001/mem-14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190051 = STRING: Anonymized-001/mem-15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190052 = STRING: Anonymized-001/mem-16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190053 = STRING: Anonymized-001/mem-17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190054 = STRING: Anonymized-001/mem-18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190055 = STRING: Anonymized-001/mem-19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190056 = STRING: Anonymized-001/mem-1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190057 = STRING: Anonymized-001/mem-2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190058 = STRING: Anonymized-001/mem-3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190059 = STRING: Anonymized-001/mem-4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190060 = STRING: Anonymized-001/mem-5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190061 = STRING: Anonymized-001/mem-6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190062 = STRING: Anonymized-001/mem-7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190063 = STRING: Anonymized-001/mem-8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190064 = STRING: Anonymized-001/mem-9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190065 = STRING: Anonymized-001/mem-20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190066 = STRING: Anonymized-001/mem-21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190067 = STRING: Anonymized-001/mem-22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190068 = STRING: Anonymized-001/mem-23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.190069 = STRING: Anonymized-001/mem-24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367440 = STRING: Anonymized-002/mem-23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367441 = STRING: Anonymized-002/mem-15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367442 = STRING: Anonymized-002/mem-9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367443 = STRING: Anonymized-002/mem-21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367444 = STRING: Anonymized-002/mem-16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367445 = STRING: Anonymized-002/mem-18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367446 = STRING: Anonymized-002/mem-11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367447 = STRING: Anonymized-002/mem-22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367448 = STRING: Anonymized-002/mem-12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367449 = STRING: Anonymized-002/mem-13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367450 = STRING: Anonymized-002/mem-7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367451 = STRING: Anonymized-002/mem-24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367452 = STRING: Anonymized-002/mem-4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367453 = STRING: Anonymized-002/mem-14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367454 = STRING: Anonymized-002/mem-17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367455 = STRING: Anonymized-002/mem-6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367456 = STRING: Anonymized-002/mem-3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367457 = STRING: Anonymized-002/mem-10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367458 = STRING: Anonymized-002/mem-2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367459 = STRING: Anonymized-002/mem-8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367460 = STRING: Anonymized-002/mem-5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367461 = STRING: Anonymized-002/mem-19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367462 = STRING: Anonymized-002/mem-20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.275367463 = STRING: Anonymized-002/mem-1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769461 = STRING: Anonymized-003/mem--11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769462 = STRING: Anonymized-003/mem--18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769463 = STRING: Anonymized-003/mem--10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769464 = STRING: Anonymized-003/mem--14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769465 = STRING: Anonymized-003/mem--3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769466 = STRING: Anonymized-003/mem--13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769467 = STRING: Anonymized-003/mem--9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769468 = STRING: Anonymized-003/mem--23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769469 = STRING: Anonymized-003/mem--24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769470 = STRING: Anonymized-003/mem--1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769471 = STRING: Anonymized-003/mem--16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769472 = STRING: Anonymized-003/mem--17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769473 = STRING: Anonymized-003/mem--22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769474 = STRING: Anonymized-003/mem--8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769475 = STRING: Anonymized-003/mem--21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769476 = STRING: Anonymized-003/mem--15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769477 = STRING: Anonymized-003/mem--20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769478 = STRING: Anonymized-003/mem--7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769479 = STRING: Anonymized-003/mem--2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769480 = STRING: Anonymized-003/mem--19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769481 = STRING: Anonymized-003/mem--5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769482 = STRING: Anonymized-003/mem--4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769483 = STRING: Anonymized-003/mem--12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277769484 = STRING: Anonymized-003/mem--6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770731 = STRING: Anonymized-004/mem--7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770732 = STRING: Anonymized-004/mem--9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770733 = STRING: Anonymized-004/mem--10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770734 = STRING: Anonymized-004/mem--16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770735 = STRING: Anonymized-004/mem--3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770736 = STRING: Anonymized-004/mem--15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770737 = STRING: Anonymized-004/mem--8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770738 = STRING: Anonymized-004/mem--14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770739 = STRING: Anonymized-004/mem--19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770740 = STRING: Anonymized-004/mem--4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770741 = STRING: Anonymized-004/mem--12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770742 = STRING: Anonymized-004/mem--21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770743 = STRING: Anonymized-004/mem--22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770744 = STRING: Anonymized-004/mem--18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770745 = STRING: Anonymized-004/mem--23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770746 = STRING: Anonymized-004/mem--24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770747 = STRING: Anonymized-004/mem--20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770748 = STRING: Anonymized-004/mem--13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770749 = STRING: Anonymized-004/mem--11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770750 = STRING: Anonymized-004/mem--6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770751 = STRING: Anonymized-004/mem--17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770752 = STRING: Anonymized-004/mem--5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770753 = STRING: Anonymized-004/mem--2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.277770754 = STRING: Anonymized-004/mem--1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261034 = STRING: Anonymized-005/mem--13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261035 = STRING: Anonymized-005/mem--8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261036 = STRING: Anonymized-005/mem--5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261037 = STRING: Anonymized-005/mem--12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261038 = STRING: Anonymized-005/mem--9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261039 = STRING: Anonymized-005/mem--16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261040 = STRING: Anonymized-005/mem--15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261041 = STRING: Anonymized-005/mem--24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261042 = STRING: Anonymized-005/mem--22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261043 = STRING: Anonymized-005/mem--14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261044 = STRING: Anonymized-005/mem--23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261045 = STRING: Anonymized-005/mem--3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261046 = STRING: Anonymized-005/mem--21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261047 = STRING: Anonymized-005/mem--2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261048 = STRING: Anonymized-005/mem--11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261049 = STRING: Anonymized-005/mem--6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261050 = STRING: Anonymized-005/mem--18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261051 = STRING: Anonymized-005/mem--19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261052 = STRING: Anonymized-005/mem--4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261053 = STRING: Anonymized-005/mem--20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261054 = STRING: Anonymized-005/mem--10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261055 = STRING: Anonymized-005/mem--7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261056 = STRING: Anonymized-005/mem--17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261057 = STRING: Anonymized-005/mem--1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261172 = STRING: Anonymized-006/mem--7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261173 = STRING: Anonymized-006/mem--8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261174 = STRING: Anonymized-006/mem--9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261175 = STRING: Anonymized-006/mem--10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261176 = STRING: Anonymized-006/mem--3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261177 = STRING: Anonymized-006/mem--12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261178 = STRING: Anonymized-006/mem--13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261179 = STRING: Anonymized-006/mem--6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261180 = STRING: Anonymized-006/mem--19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261181 = STRING: Anonymized-006/mem--14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261182 = STRING: Anonymized-006/mem--18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261183 = STRING: Anonymized-006/mem--15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261184 = STRING: Anonymized-006/mem--11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261185 = STRING: Anonymized-006/mem--1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261186 = STRING: Anonymized-006/mem--2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261187 = STRING: Anonymized-006/mem--24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261188 = STRING: Anonymized-006/mem--4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261189 = STRING: Anonymized-006/mem--5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261190 = STRING: Anonymized-006/mem--16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261191 = STRING: Anonymized-006/mem--17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261192 = STRING: Anonymized-006/mem--20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261193 = STRING: Anonymized-006/mem--21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261194 = STRING: Anonymized-006/mem--22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261195 = STRING: Anonymized-006/mem--23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261289 = STRING: Anonymized-007/mem-1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261290 = STRING: Anonymized-007/mem-8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261291 = STRING: Anonymized-007/mem-2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261292 = STRING: Anonymized-007/mem-6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261293 = STRING: Anonymized-007/mem-11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261294 = STRING: Anonymized-007/mem-10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261295 = STRING: Anonymized-007/mem-5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261296 = STRING: Anonymized-007/mem-9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261297 = STRING: Anonymized-007/mem-24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261298 = STRING: Anonymized-007/mem-20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261299 = STRING: Anonymized-007/mem-23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261300 = STRING: Anonymized-007/mem-17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261301 = STRING: Anonymized-007/mem-21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261302 = STRING: Anonymized-007/mem-3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261303 = STRING: Anonymized-007/mem-4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261304 = STRING: Anonymized-007/mem-7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261305 = STRING: Anonymized-007/mem-19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261306 = STRING: Anonymized-007/mem-13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261307 = STRING: Anonymized-007/mem-18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261308 = STRING: Anonymized-007/mem-22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261309 = STRING: Anonymized-007/mem-16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261310 = STRING: Anonymized-007/mem-15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261311 = STRING: Anonymized-007/mem-12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278261312 = STRING: Anonymized-007/mem-14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292669 = STRING: Anonymized-008/mem-21
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292670 = STRING: Anonymized-008/mem-2
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292671 = STRING: Anonymized-008/mem-23
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292672 = STRING: Anonymized-008/mem-18
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292673 = STRING: Anonymized-008/mem-17
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292674 = STRING: Anonymized-008/mem-20
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292675 = STRING: Anonymized-008/mem-16
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292676 = STRING: Anonymized-008/mem-22
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292677 = STRING: Anonymized-008/mem-4
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292678 = STRING: Anonymized-008/mem-24
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292679 = STRING: Anonymized-008/mem-15
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292680 = STRING: Anonymized-008/mem-11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292681 = STRING: Anonymized-008/mem-5
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292682 = STRING: Anonymized-008/mem-10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292683 = STRING: Anonymized-008/mem-3
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292684 = STRING: Anonymized-008/mem-9
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292685 = STRING: Anonymized-008/mem-8
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292686 = STRING: Anonymized-008/mem-19
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292687 = STRING: Anonymized-008/mem-6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292688 = STRING: Anonymized-008/mem-1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292689 = STRING: Anonymized-008/mem-14
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292690 = STRING: Anonymized-008/mem-13
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292691 = STRING: Anonymized-008/mem-7
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.2.278292692 = STRING: Anonymized-008/mem-12
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190046 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190047 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190048 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190049 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190050 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190051 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190052 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190053 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190054 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190055 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190056 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190057 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190058 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190059 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190060 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190061 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190062 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190063 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190064 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190065 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190066 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190067 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190068 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.190069 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367440 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367441 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367442 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367443 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367444 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367445 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367446 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367447 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367448 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367449 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367450 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367451 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367452 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367453 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367454 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367455 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367456 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367457 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367458 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367459 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367460 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367461 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367462 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.275367463 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769461 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769462 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769463 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769464 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769465 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769466 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769467 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769468 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769469 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769470 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769471 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769472 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769473 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769474 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769475 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769476 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769477 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769478 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769479 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769480 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769481 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769482 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769483 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277769484 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770731 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770732 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770733 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770734 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770735 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770736 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770737 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770738 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770739 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770740 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770741 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770742 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770743 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770744 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770745 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770746 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770747 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770748 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770749 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770750 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770751 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770752 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770753 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.277770754 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261034 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261035 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261036 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261037 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261038 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261039 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261040 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261041 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261042 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261043 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261044 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261045 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261046 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261047 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261048 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261049 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261050 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261051 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261052 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261053 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261054 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261055 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261056 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261057 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261172 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261173 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261174 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261175 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261176 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261177 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261178 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261179 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261180 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261181 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261182 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261183 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261184 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261185 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261186 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261187 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261188 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261189 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261190 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261191 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261192 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261193 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261194 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261195 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261289 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261290 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261291 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261292 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261293 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261294 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261295 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261296 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261297 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261298 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261299 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261300 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261301 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261302 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261303 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261304 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261305 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261306 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261307 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261308 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261309 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261310 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261311 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278261312 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292669 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292670 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292671 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292672 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292673 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292674 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292675 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292676 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292677 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292678 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292679 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292680 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292681 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292682 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292683 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292684 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292685 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292686 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292687 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292688 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292689 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292690 = INTEGER: 1
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292691 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.13.278292692 = INTEGER: 6
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190046 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190047 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190048 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190049 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190050 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190051 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190052 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190053 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190054 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190055 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190056 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190057 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190058 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190059 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190060 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190061 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190062 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190063 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190064 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190065 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190066 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190067 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190068 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.190069 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367440 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367441 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367442 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367443 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367444 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367445 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367446 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367447 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367448 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367449 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367450 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367451 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367452 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367453 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367454 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367455 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367456 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367457 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367458 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367459 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367460 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367461 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367462 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.275367463 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769461 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769462 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769463 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769464 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769465 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769466 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769467 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769468 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769469 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769470 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769471 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769472 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769473 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769474 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769475 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769476 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769477 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769478 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769479 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769480 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769481 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769482 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769483 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277769484 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770731 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770732 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770733 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770734 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770735 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770736 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770737 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770738 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770739 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770740 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770741 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770742 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770743 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770744 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770745 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770746 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770747 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770748 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770749 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770750 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770751 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770752 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770753 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.277770754 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261034 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261035 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261036 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261037 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261038 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261039 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261040 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261041 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261042 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261043 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261044 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261045 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261046 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261047 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261048 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261049 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261050 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261051 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261052 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261053 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261054 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261055 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261056 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261057 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261172 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261173 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261174 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261175 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261176 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261177 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261178 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261179 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261180 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261181 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261182 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261183 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261184 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261185 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261186 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261187 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261188 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261189 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261190 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261191 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261192 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261193 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261194 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261195 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261289 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261290 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261291 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261292 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261293 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261294 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261295 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261296 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261297 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261298 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261299 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261300 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261301 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261302 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261303 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261304 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261305 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261306 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261307 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261308 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261309 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261310 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261311 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278261312 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292669 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292670 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292671 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292672 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292673 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292674 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292675 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292676 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292677 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292678 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292679 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292680 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292681 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292682 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292683 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292684 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292685 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292686 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292687 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292688 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292689 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292690 = INTEGER: 10
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292691 = INTEGER: 11
|
||||||
|
.1.3.6.1.4.1.9.9.719.1.30.11.1.17.278292692 = INTEGER: 11
|
File diff suppressed because one or more lines are too long
@ -33,10 +33,20 @@ scenario ${tc}
|
|||||||
Examples: tc extra_options expected_result --
|
Examples: tc extra_options expected_result --
|
||||||
... 1 --filter-name='Centreon Demo Navigation|Centreon Demo ping NA' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2) WARNING: Scenario 'Centreon Demo ping NA': status: Degraded (8)
|
... 1 --filter-name='Centreon Demo Navigation|Centreon Demo ping NA' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2) WARNING: Scenario 'Centreon Demo ping NA': status: Degraded (8)
|
||||||
... 2 --filter-name='AKILA - Business App' OK: Scenario 'AKILA - Business App': status: Success (1), availability: 100%, time total all steps: 4280ms - All steps are ok | 'AKILA - Business App#scenario.availability.percentage'=100%;;;0;100 'AKILA - Business App#scenario.time.allsteps.total.milliseconds'=4280ms;;;0; 'AKILA - Business App~Dashboard 2#scenario.step.time.milliseconds'=898ms;;;0; 'AKILA - Business App~Dashboard 3#scenario.step.time.milliseconds'=848ms;;;0; 'AKILA - Business App~Run Chrome#scenario.step.time.milliseconds'=2534ms;;;0;
|
... 2 --filter-name='AKILA - Business App' OK: Scenario 'AKILA - Business App': status: Success (1), availability: 100%, time total all steps: 4280ms - All steps are ok | 'AKILA - Business App#scenario.availability.percentage'=100%;;;0;100 'AKILA - Business App#scenario.time.allsteps.total.milliseconds'=4280ms;;;0; 'AKILA - Business App~Dashboard 2#scenario.step.time.milliseconds'=898ms;;;0; 'AKILA - Business App~Dashboard 3#scenario.step.time.milliseconds'=848ms;;;0; 'AKILA - Business App~Run Chrome#scenario.step.time.milliseconds'=2534ms;;;0;
|
||||||
... 3 --filter-name='wrong currentstatus.*' WARNING: Scenario 'wrong currentstatus, no perfdata': status: Unknown (14) - Scenario 'wrong currentstatus, no perfdata' Don't have any performance data, please try to add a bigger timeframe
|
... 3 --filter-name='wrong currentstatus.*' UNKNOWN: Scenario 'wrong currentstatus, no perfdata': status: Unknown (14) - No execution, please try again with a bigger timeframe
|
||||||
... 4 --filter-name='not a scenario name' UNKNOWN: No scenario found
|
... 4 --filter-name='not a scenario name' UNKNOWN: No scenario found
|
||||||
... 5 --filter-id='09fe2561.*' --warning-time-total-allsteps='30' --output-ignore-perfdata WARNING: Scenario 'AKILA - (Web) ': time total all steps: 5822ms
|
... 5 --filter-id='127a149b.*' --warning-time-total='30' --output-ignore-perfdata WARNING: Scenario 'AKILA - (Browser Page Load)': Step: Default, last exec: 30-12-2024 10:30:00 UTC, time total: 1097 ms
|
||||||
... 6 --filter-status='2' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2)
|
... 6 --filter-status='2' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2)
|
||||||
... 7 --filter-status='2' --filter-siteid='site' --filter-workspaceid='workspace' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2)
|
... 7 --filter-status='2' --filter-siteid='site' --filter-workspaceid='workspace' --output-ignore-perfdata CRITICAL: Scenario 'Centreon Demo Navigation': status: Failure (2)
|
||||||
... 8 --filter-type='not a scenario type' UNKNOWN: No scenario found
|
... 8 --filter-type='not a scenario type' UNKNOWN: No scenario found
|
||||||
... 9 --api-password='Wrongpassword' --api-username='wrongUsername' UNKNOWN: Authentication endpoint returns error code 'Wrong email or password' (add --debug option for detailed message)
|
... 9 --api-password='Wrongpassword' --api-username='wrongUsername' UNKNOWN: Authentication endpoint returns error code 'Wrong email or password' (add --debug option for detailed message)
|
||||||
|
# This scenario failed the second step. we show only the first step perfdata, and not the perfdata of the other step for another timestamp.
|
||||||
|
... 10 --filter-name='AKILA - .Web.' CRITICAL: Scenario 'AKILA - (Web)': status: Failure (2) | 'AKILA - (Web)#scenario.availability.percentage'=45.76%;;;0;100 'AKILA - (Web)#scenario.time.allsteps.total.milliseconds'=4733ms;;;0; 'AKILA - (Web)~Home#scenario.step.time.milliseconds'=2851ms;;;0;
|
||||||
|
# without any filter-name of filter-id, every scenario are taken into account of this type.
|
||||||
|
... 11 --filter-type='WEB' --output-ignore-perfdata CRITICAL: Scenario 'AKILA - (Web)': status: Failure (2) - Scenario 'Centreon Demo Navigation': status: Failure (2)
|
||||||
|
# Check the unknown default parameter. These scenario are not real and go to the same scenarioId, which is not possible in real life.
|
||||||
|
... 12 --filter-name='unknown Status 0' --output-ignore-perfdata UNKNOWN: Scenario 'unknown Status 0': status: Unknown (0)
|
||||||
|
... 13 --filter-name='unknown Status 3' --output-ignore-perfdata UNKNOWN: Scenario 'unknown Status 3': status: Aborted (3)
|
||||||
|
... 14 --filter-name='unknown Status 4' --output-ignore-perfdata UNKNOWN: Scenario 'unknown Status 4': status: No execution (4)
|
||||||
|
... 15 --filter-name='unknown Status 5' --output-ignore-perfdata UNKNOWN: Scenario 'unknown Status 5': status: No execution (5)
|
||||||
|
... 16 --filter-name='unknown Status 6' --output-ignore-perfdata UNKNOWN: Scenario 'unknown Status 6': status: Stopped (6)
|
||||||
|
35
tests/network/aruba/aoscx/snmp/hardware.robot
Normal file
35
tests/network/aruba/aoscx/snmp/hardware.robot
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Generic Suite Setup
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=network::aruba::aoscx::snmp::plugin
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
hardware ${tc}
|
||||||
|
[Tags] network aruba
|
||||||
|
${command} Catenate
|
||||||
|
... ${CMD}
|
||||||
|
... --mode=hardware
|
||||||
|
... --hostname=${HOSTNAME}
|
||||||
|
... --snmp-version=${SNMPVERSION}
|
||||||
|
... --snmp-port=${SNMPPORT}
|
||||||
|
... --snmp-community=network/aruba/aoscx/snmp/slim_aoscx-spanning-tree
|
||||||
|
... --snmp-timeout=1
|
||||||
|
... ${extra_options}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extra_options expected_result --
|
||||||
|
... 1 ${EMPTY} OK: All 7 components are ok [1/1 psu, 6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 2 --component='.*' OK: All 7 components are ok [1/1 psu, 6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 3 --filter='psu' OK: All 6 components are ok [6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 4 --no-component='CRITICAL' --filter='.*' CRITICAL: No components are checked.
|
||||||
|
... 5 --threshold-overload='fan,WARNING,string' OK: All 7 components are ok [1/1 psu, 6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 6 --warning='temperature,.*,30' WARNING: temperature 'Anonymized 145' is 60.00 C - temperature 'Anonymized 096' is 58.00 C - temperature 'Anonymized 186' is 63.50 C - temperature 'Anonymized 159' is 63.25 C - temperature 'Anonymized 101' is 63.75 C | 'Anonymized 145#hardware.temperature.celsius'=60.00C;0:30;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;0:30;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;0:30;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;0:30;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;0:30;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;0:30;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 7 --critical='temperature,.*,40' CRITICAL: temperature 'Anonymized 145' is 60.00 C - temperature 'Anonymized 096' is 58.00 C - temperature 'Anonymized 186' is 63.50 C - temperature 'Anonymized 159' is 63.25 C - temperature 'Anonymized 101' is 63.75 C | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;0:40;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;0:40;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;0:40;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;0:40;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;0:40;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;0:40;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 8 --warning='fan.speed,.*,1000' OK: All 7 components are ok [1/1 psu, 6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
||||||
|
... 9 --critical='fan.speed,.*,2000' OK: All 7 components are ok [1/1 psu, 6/6 temperatures]. | 'Anonymized 145#hardware.temperature.celsius'=60.00C;;;; 'Anonymized 096#hardware.temperature.celsius'=58.00C;;;; 'Anonymized 138#hardware.temperature.celsius'=20.50C;;;; 'Anonymized 186#hardware.temperature.celsius'=63.50C;;;; 'Anonymized 159#hardware.temperature.celsius'=63.25C;;;; 'Anonymized 101#hardware.temperature.celsius'=63.75C;;;; 'hardware.psu.count'=1;;;; 'hardware.temperature.count'=6;;;;
|
44
tests/network/aruba/aoscx/snmp/interfaces.robot
Normal file
44
tests/network/aruba/aoscx/snmp/interfaces.robot
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
*** Settings ***
|
||||||
|
|
||||||
|
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||||
|
|
||||||
|
Test Timeout 120s
|
||||||
|
Test Setup Ctn Generic Suite Setup
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${CMD} ${CENTREON_PLUGINS} --plugin=network::aruba::aoscx::snmp::plugin
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
interfaces ${tc}
|
||||||
|
[Tags] network aruba interfaces
|
||||||
|
${command} Catenate
|
||||||
|
... ${CMD}
|
||||||
|
... --mode=interfaces
|
||||||
|
... --hostname=${HOSTNAME}
|
||||||
|
... --snmp-version=${SNMPVERSION}
|
||||||
|
... --snmp-port=${SNMPPORT}
|
||||||
|
... --snmp-community=network/aruba/aoscx/snmp/slim_aoscx-spanning-tree
|
||||||
|
... --snmp-timeout=1
|
||||||
|
... ${extra_options}
|
||||||
|
|
||||||
|
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||||
|
|
||||||
|
Examples: tc extra_options expected_result --
|
||||||
|
... 1 ${EMPTY} CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 2 --add-global OK: Total port : 18, AdminStatus Up : 18, AdminStatus Down : 0, OperStatus Up : 6, OperStatus Down : 12 | 'total_port'=18;;;0;18 'total_admin_up'=18;;;0;18 'total_admin_down'=0;;;0;18 'total_oper_up'=6;;;0;18 'global_oper_down'=12;;;0;18
|
||||||
|
... 3 --add-status CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 4 --add-duplex-status --warning-status='\\\%{opstatus} eq "warning"' CRITICAL: Interface '1/1/10' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/11' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/12' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/13' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/14' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/2' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/4' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/5' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/6' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/7' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/8' Status : down (admin: up) (duplex: fullDuplex) - Interface '1/1/9' Status : down (admin: up) (duplex: fullDuplex)
|
||||||
|
... 5 --add-traffic --name --interface='Anonymized 123' --warning-in-traffic=1:1 --speed=1 UNKNOWN: No entry found (maybe you should reload cache file)
|
||||||
|
... 6 --add-errors OK: All interfaces are ok
|
||||||
|
... 7 --add-cast --interface='1,1,14' OK: All interfaces are ok
|
||||||
|
... 8 --add-speed --interface='1,1,16' OK: All interfaces are ok | 'speed_1/1/1'=100000000b/s;;;0; 'speed_1/1/16'=1000000000b/s;;;0;
|
||||||
|
... 9 --add-volume --interface='1,1,10' --add-status='critical' CRITICAL: Interface '1/1/10' Status : down (admin: up)
|
||||||
|
... 10 --check-metrics='\\\%{opstatus} eq "up"' CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 11 --warning-status='\\\%{admstatus} eq "up"' --interface='16' WARNING: Interface '1/1/16' Status : up (admin: up)
|
||||||
|
... 12 --critical-status='\\\%{admstatus} eq "up" and \\\%{opstatus} ne "up"' CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 13 --warning-out-traffic='0' --critical-out-traffic=10 --warning-status='\\\%{opstatus} eq "up"' --interface='16' WARNING: Interface '1/1/16' Status : up (admin: up)
|
||||||
|
... 14 --warning-in-traffic='0' --critical-in-traffic=10 --critical-status='\\\%{opstatus} eq "up"' CRITICAL: Interface '1/1/1' Status : up (admin: up) - Interface '1/1/15' Status : up (admin: up) - Interface '1/1/16' Status : up (admin: up) - Interface 'Anonymized 124' Status : up (admin: up) - Interface '1/1/3' Status : up (admin: up) - Interface 'Anonymized 066' Status : up (admin: up)
|
||||||
|
... 15 --units-traffic='12%' CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 16 --units-errors='12%' CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 17 --units-cast='12%' CRITICAL: Interface '1/1/10' Status : down (admin: up) - Interface '1/1/11' Status : down (admin: up) - Interface '1/1/12' Status : down (admin: up) - Interface '1/1/13' Status : down (admin: up) - Interface '1/1/14' Status : down (admin: up) - Interface '1/1/2' Status : down (admin: up) - Interface '1/1/4' Status : down (admin: up) - Interface '1/1/5' Status : down (admin: up) - Interface '1/1/6' Status : down (admin: up) - Interface '1/1/7' Status : down (admin: up) - Interface '1/1/8' Status : down (admin: up) - Interface '1/1/9' Status : down (admin: up)
|
||||||
|
... 18 --display-transform-src='Anonymized' --display-transform-dst='Interface' --name --interface='Anonymized 124' OK: Interface 'Interface 124' Status : up (admin: up)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user