Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
5
plugins/inputs/gnmi/testcases/issue_15046/expected.out
Normal file
5
plugins/inputs/gnmi/testcases/issue_15046/expected.out
Normal file
|
@ -0,0 +1,5 @@
|
|||
psu,name=PowerSupply1/A,path=openconfig:/components/component/power-supply/state,source=127.0.0.1 openconfig_platform_psu:capacity=715,openconfig_platform_psu:enabled=true,openconfig_platform_psu:input_current=0.47099998593330383,openconfig_platform_psu:input_voltage=208.5,openconfig_platform_psu:output_current=1.2029999494552612,openconfig_platform_psu:output_power=68.625,openconfig_platform_psu:output_voltage=56.367000579833984 1711178737105194000
|
||||
psu,name=PowerSupply1/B,path=openconfig:/components/component/power-supply/state,source=127.0.0.1 openconfig_platform_psu:capacity=715,openconfig_platform_psu:enabled=true,openconfig_platform_psu:input_current=0.3930000066757202,openconfig_platform_psu:input_voltage=209.75,openconfig_platform_psu:output_current=0.9380000233650208,openconfig_platform_psu:output_power=51.875,openconfig_platform_psu:output_voltage=56.367000579833984 1711178737105194000
|
||||
temp,name=InletTempSensor1,path=openconfig:/components/component/state/temperature,source=127.0.0.1 alarm_severity="openconfig-alarm-types:MINOR",alarm_status=false,alarm_threshold=0,avg=24.000000,instant=35.000000,interval=180000000000u,max=36.000000,min=0.000000 1715838159171548000
|
||||
temp,name=OutletTempSensor1,path=openconfig:/components/component/state/temperature,source=127.0.0.1 alarm_severity="openconfig-alarm-types:MINOR",alarm_status=false,alarm_threshold=0,avg=29.000000,instant=44.000000,interval=180000000000u,max=44.000000,min=0.000000 1715838159171548000
|
||||
temp,name=HotSpotTempSensor1,path=openconfig:/components/component/state/temperature,source=127.0.0.1 alarm_severity="openconfig-alarm-types:MINOR",alarm_status=false,alarm_threshold=0,avg=39.000000,instant=58.000000,interval=180000000000u,max=59.000000,min=0.000000 1715838159171548000
|
202
plugins/inputs/gnmi/testcases/issue_15046/models/LICENSE
Normal file
202
plugins/inputs/gnmi/testcases/issue_15046/models/LICENSE
Normal file
|
@ -0,0 +1,202 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<!-- markdownlint-disable -->
|
||||
Files extracted from https://github.com/openconfig/public
|
|
@ -0,0 +1,109 @@
|
|||
module openconfig-alarm-types {
|
||||
|
||||
yang-version "1";
|
||||
|
||||
// namespace
|
||||
namespace "http://openconfig.net/yang/alarms/types";
|
||||
|
||||
prefix "oc-alarm-types";
|
||||
|
||||
// import some basic types
|
||||
import openconfig-extensions { prefix oc-ext; }
|
||||
|
||||
// meta
|
||||
organization "OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
www.openconfig.net";
|
||||
|
||||
description
|
||||
"This module defines operational state data related to alarms
|
||||
that the device is reporting.
|
||||
|
||||
This model reuses some data items defined in the draft IETF
|
||||
YANG Alarm Module:
|
||||
https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
|
||||
|
||||
Portions of this code were derived from the draft IETF YANG Alarm
|
||||
Module. Please reproduce this note if possible.
|
||||
|
||||
IETF code is subject to the following copyright and license:
|
||||
Copyright (c) IETF Trust and the persons identified as authors of
|
||||
the code.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, is permitted pursuant to, and subject to the license
|
||||
terms contained in, the Simplified BSD License set forth in
|
||||
Section 4.c of the IETF Trust's Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info).";
|
||||
|
||||
oc-ext:openconfig-version "0.2.1";
|
||||
|
||||
// OpenConfig specific extensions for module metadata.
|
||||
oc-ext:regexp-posix;
|
||||
oc-ext:catalog-organization "openconfig";
|
||||
oc-ext:origin "openconfig";
|
||||
|
||||
// identity statements
|
||||
|
||||
identity OPENCONFIG_ALARM_SEVERITY {
|
||||
description
|
||||
"Base identity for alarm severity profiles. Derived
|
||||
identities are based on contents of the draft
|
||||
IETF YANG Alarm Module";
|
||||
reference
|
||||
"IETF YANG Alarm Module: Draft - typedef severity
|
||||
https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
|
||||
|
||||
}
|
||||
|
||||
identity UNKNOWN {
|
||||
base OPENCONFIG_ALARM_SEVERITY;
|
||||
description
|
||||
"Indicates that the severity level could not be determined.
|
||||
This level SHOULD be avoided.";
|
||||
}
|
||||
|
||||
identity MINOR {
|
||||
base OPENCONFIG_ALARM_SEVERITY;
|
||||
description
|
||||
"Indicates the existence of a non-service affecting fault
|
||||
condition and that corrective action should be taken in
|
||||
order to prevent a more serious (for example, service
|
||||
affecting) fault. Such a severity can be reported, for
|
||||
example, when the detected alarm condition is not currently
|
||||
degrading the capacity of the resource";
|
||||
}
|
||||
|
||||
identity WARNING {
|
||||
base OPENCONFIG_ALARM_SEVERITY;
|
||||
description
|
||||
"Indicates the detection of a potential or impending service
|
||||
affecting fault, before any significant effects have been felt.
|
||||
Action should be taken to further diagnose (if necessary) and
|
||||
correct the problem in order to prevent it from becoming a more
|
||||
serious service affecting fault.";
|
||||
}
|
||||
|
||||
identity MAJOR {
|
||||
base OPENCONFIG_ALARM_SEVERITY;
|
||||
description
|
||||
"Indicates that a service affecting condition has developed
|
||||
and an urgent corrective action is required. Such a severity
|
||||
can be reported, for example, when there is a severe
|
||||
degradation in the capability of the resource and its full
|
||||
capability must be restored.";
|
||||
}
|
||||
|
||||
identity CRITICAL {
|
||||
base OPENCONFIG_ALARM_SEVERITY;
|
||||
description
|
||||
"Indicates that a service affecting condition has occurred
|
||||
and an immediate corrective action is required. Such a
|
||||
severity can be reported, for example, when a resource becomes
|
||||
totally out of service and its capability must be restored.";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
module openconfig-extensions {
|
||||
|
||||
yang-version "1";
|
||||
|
||||
// namespace
|
||||
namespace "http://openconfig.net/yang/openconfig-ext";
|
||||
|
||||
prefix "oc-ext";
|
||||
|
||||
// meta
|
||||
organization "OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
www.openconfig.net";
|
||||
|
||||
description
|
||||
"This module provides extensions to the YANG language to allow
|
||||
OpenConfig specific functionality and meta-data to be defined.";
|
||||
|
||||
oc-ext:openconfig-version "0.5.1";
|
||||
|
||||
// extension statements
|
||||
extension openconfig-version {
|
||||
argument "semver" {
|
||||
yin-element false;
|
||||
}
|
||||
description
|
||||
"The OpenConfig version number for the module. This is
|
||||
expressed as a semantic version number of the form:
|
||||
x.y.z
|
||||
where:
|
||||
* x corresponds to the major version,
|
||||
* y corresponds to a minor version,
|
||||
* z corresponds to a patch version.
|
||||
This version corresponds to the model file within which it is
|
||||
defined, and does not cover the whole set of OpenConfig models.
|
||||
|
||||
Individual YANG modules are versioned independently -- the
|
||||
semantic version is generally incremented only when there is a
|
||||
change in the corresponding file. Submodules should always
|
||||
have the same semantic version as their parent modules.
|
||||
|
||||
A major version number of 0 indicates that this model is still
|
||||
in development (whether within OpenConfig or with industry
|
||||
partners), and is potentially subject to change.
|
||||
|
||||
Following a release of major version 1, all modules will
|
||||
increment major revision number where backwards incompatible
|
||||
changes to the model are made.
|
||||
|
||||
The minor version is changed when features are added to the
|
||||
model that do not impact current clients use of the model.
|
||||
|
||||
The patch-level version is incremented when non-feature changes
|
||||
(such as bugfixes or clarifications to human-readable
|
||||
descriptions that do not impact model functionality) are made
|
||||
that maintain backwards compatibility.
|
||||
|
||||
The version number is stored in the module meta-data.";
|
||||
}
|
||||
|
||||
extension regexp-posix {
|
||||
description
|
||||
"This extension indicates that the regular expressions included
|
||||
within the YANG module specified are conformant with the POSIX
|
||||
regular expression format rather than the W3C standard that is
|
||||
specified by RFC6020 and RFC7950.";
|
||||
}
|
||||
|
||||
extension operational {
|
||||
description
|
||||
"The operational annotation is specified in the context of a
|
||||
grouping, leaf, or leaf-list within a YANG module. It indicates
|
||||
that the nodes within the context are derived state on the device.
|
||||
|
||||
OpenConfig data models divide nodes into the following three categories:
|
||||
|
||||
- intended configuration - these are leaves within a container named
|
||||
'config', and are the writable configuration of a target.
|
||||
- applied configuration - these are leaves within a container named
|
||||
'state' and are the currently running value of the intended configuration.
|
||||
- derived state - these are the values within the 'state' container which
|
||||
are not part of the applied configuration of the device. Typically, they
|
||||
represent state values reflecting underlying operational counters, or
|
||||
protocol statuses.";
|
||||
}
|
||||
|
||||
extension catalog-organization {
|
||||
argument "org" {
|
||||
yin-element false;
|
||||
}
|
||||
description
|
||||
"This extension specifies the organization name that should be used within
|
||||
the module catalogue on the device for the specified YANG module. It stores
|
||||
a pithy string where the YANG organization statement may contain more
|
||||
details.";
|
||||
}
|
||||
|
||||
extension origin {
|
||||
argument "origin" {
|
||||
yin-element false;
|
||||
}
|
||||
description
|
||||
"This extension specifies the name of the origin that the YANG module
|
||||
falls within. This allows multiple overlapping schema trees to be used
|
||||
on a single network element without requiring module based prefixing
|
||||
of paths.";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
module openconfig-platform-psu {
|
||||
|
||||
yang-version "1";
|
||||
|
||||
// namespace
|
||||
namespace "http://openconfig.net/yang/platform/psu";
|
||||
|
||||
prefix "oc-platform-psu";
|
||||
|
||||
// import some basic types
|
||||
import openconfig-extensions { prefix oc-ext; }
|
||||
import openconfig-types { prefix oc-types; }
|
||||
|
||||
|
||||
// meta
|
||||
organization "OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
www.openconfig.net";
|
||||
|
||||
description
|
||||
"This module defines a schema for power supply components in
|
||||
the OpenConfig platform model.";
|
||||
|
||||
oc-ext:openconfig-version "0.2.1";
|
||||
|
||||
// OpenConfig specific extensions for module metadata.
|
||||
oc-ext:regexp-posix;
|
||||
oc-ext:catalog-organization "openconfig";
|
||||
oc-ext:origin "openconfig";
|
||||
|
||||
grouping psu-config {
|
||||
description
|
||||
"Configuration data for power supply components";
|
||||
|
||||
leaf enabled {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Adminsitrative control on the on/off state of the power
|
||||
supply unit.";
|
||||
}
|
||||
}
|
||||
|
||||
grouping psu-state {
|
||||
description
|
||||
"Operational state data for power supply components";
|
||||
|
||||
leaf capacity {
|
||||
type oc-types:ieeefloat32;
|
||||
units watts;
|
||||
description
|
||||
"Maximum power capacity of the power supply.";
|
||||
}
|
||||
|
||||
leaf input-current {
|
||||
type oc-types:ieeefloat32;
|
||||
units amps;
|
||||
description
|
||||
"The input current draw of the power supply.";
|
||||
}
|
||||
|
||||
leaf input-voltage {
|
||||
type oc-types:ieeefloat32;
|
||||
units volts;
|
||||
description
|
||||
"Input voltage to the power supply.";
|
||||
}
|
||||
|
||||
leaf output-current {
|
||||
type oc-types:ieeefloat32;
|
||||
units amps;
|
||||
description
|
||||
"The output current supplied by the power supply.";
|
||||
}
|
||||
|
||||
leaf output-voltage {
|
||||
type oc-types:ieeefloat32;
|
||||
units volts;
|
||||
description
|
||||
"Output voltage supplied by the power supply.";
|
||||
}
|
||||
|
||||
leaf output-power {
|
||||
type oc-types:ieeefloat32;
|
||||
units watts;
|
||||
description
|
||||
"Output power supplied by the power supply.";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
module openconfig-platform-types {
|
||||
|
||||
yang-version "1";
|
||||
|
||||
// namespace
|
||||
namespace "http://openconfig.net/yang/platform-types";
|
||||
|
||||
prefix "oc-platform-types";
|
||||
|
||||
import openconfig-types { prefix oc-types; }
|
||||
import openconfig-extensions { prefix oc-ext; }
|
||||
|
||||
// meta
|
||||
organization
|
||||
"OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
www.openconfig.net";
|
||||
|
||||
description
|
||||
"This module defines data types (e.g., YANG identities)
|
||||
to support the OpenConfig component inventory model.";
|
||||
|
||||
oc-ext:openconfig-version "1.6.0";
|
||||
|
||||
// OpenConfig specific extensions for module metadata.
|
||||
oc-ext:regexp-posix;
|
||||
oc-ext:catalog-organization "openconfig";
|
||||
oc-ext:origin "openconfig";
|
||||
|
||||
// grouping statements
|
||||
grouping avg-min-max-instant-stats-precision1-celsius {
|
||||
description
|
||||
"Common grouping for recording temperature values in
|
||||
Celsius with 1 decimal precision. Values include the
|
||||
instantaneous, average, minimum, and maximum statistics";
|
||||
|
||||
leaf instant {
|
||||
type decimal64 {
|
||||
fraction-digits 1;
|
||||
}
|
||||
units celsius;
|
||||
description
|
||||
"The instantaneous value of the statistic.";
|
||||
}
|
||||
|
||||
leaf avg {
|
||||
type decimal64 {
|
||||
fraction-digits 1;
|
||||
}
|
||||
units celsius;
|
||||
description
|
||||
"The arithmetic mean value of the statistic over the
|
||||
sampling period.";
|
||||
}
|
||||
|
||||
leaf min {
|
||||
type decimal64 {
|
||||
fraction-digits 1;
|
||||
}
|
||||
units celsius;
|
||||
description
|
||||
"The minimum value of the statistic over the sampling
|
||||
period";
|
||||
}
|
||||
|
||||
leaf max {
|
||||
type decimal64 {
|
||||
fraction-digits 1;
|
||||
}
|
||||
units celsius;
|
||||
description
|
||||
"The maximum value of the statistic over the sampling
|
||||
period";
|
||||
}
|
||||
|
||||
uses oc-types:stat-interval-state;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,162 @@
|
|||
module openconfig-platform {
|
||||
|
||||
yang-version "1";
|
||||
|
||||
// namespace
|
||||
namespace "http://openconfig.net/yang/platform";
|
||||
|
||||
prefix "oc-platform";
|
||||
|
||||
import openconfig-platform-types { prefix oc-platform-types; }
|
||||
import openconfig-extensions { prefix oc-ext; }
|
||||
import openconfig-alarm-types { prefix oc-alarm-types; }
|
||||
|
||||
// meta
|
||||
organization "OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
www.openconfig.net";
|
||||
|
||||
description
|
||||
"This module defines a data model for representing a system
|
||||
component inventory, which can include hardware or software
|
||||
elements arranged in an arbitrary structure. The primary
|
||||
relationship supported by the model is containment, e.g.,
|
||||
components containing subcomponents.
|
||||
|
||||
It is expected that this model reflects every field replacable
|
||||
unit on the device at a minimum (i.e., additional information
|
||||
may be supplied about non-replacable components).
|
||||
|
||||
Every element in the inventory is termed a 'component' with each
|
||||
component expected to have a unique name and type, and optionally
|
||||
a unique system-assigned identifier and FRU number. The
|
||||
uniqueness is guaranteed by the system within the device.
|
||||
|
||||
Components may have properties defined by the system that are
|
||||
modeled as a list of key-value pairs. These may or may not be
|
||||
user-configurable. The model provides a flag for the system
|
||||
to optionally indicate which properties are user configurable.
|
||||
|
||||
Each component also has a list of 'subcomponents' which are
|
||||
references to other components. Appearance in a list of
|
||||
subcomponents indicates a containment relationship as described
|
||||
above. For example, a linecard component may have a list of
|
||||
references to port components that reside on the linecard.
|
||||
|
||||
This schema is generic to allow devices to express their own
|
||||
platform-specific structure. It may be augmented by additional
|
||||
component type-specific schemas that provide a common structure
|
||||
for well-known component types. In these cases, the system is
|
||||
expected to populate the common component schema, and may
|
||||
optionally also represent the component and its properties in the
|
||||
generic structure.
|
||||
|
||||
The properties for each component may include dynamic values,
|
||||
e.g., in the 'state' part of the schema. For example, a CPU
|
||||
component may report its utilization, temperature, or other
|
||||
physical properties. The intent is to capture all platform-
|
||||
specific physical data in one location, including inventory
|
||||
(presence or absence of a component) and state (physical
|
||||
attributes or status).";
|
||||
|
||||
oc-ext:openconfig-version "0.24.0";
|
||||
|
||||
// OpenConfig specific extensions for module metadata.
|
||||
oc-ext:regexp-posix;
|
||||
oc-ext:catalog-organization "openconfig";
|
||||
oc-ext:origin "openconfig";
|
||||
|
||||
// grouping statements
|
||||
|
||||
grouping platform-component-temp-alarm-state {
|
||||
description
|
||||
"Temperature alarm data for platform components";
|
||||
|
||||
// TODO(aashaikh): consider if these leaves could be in a
|
||||
// reusable grouping (not temperature-specific); threshold
|
||||
// may always need to be units specific.
|
||||
|
||||
leaf alarm-status {
|
||||
type boolean;
|
||||
description
|
||||
"A value of true indicates the alarm has been raised or
|
||||
asserted. The value should be false when the alarm is
|
||||
cleared.";
|
||||
}
|
||||
|
||||
leaf alarm-threshold {
|
||||
type uint32;
|
||||
description
|
||||
"The threshold value that was crossed for this alarm.";
|
||||
}
|
||||
|
||||
leaf alarm-severity {
|
||||
type identityref {
|
||||
base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
|
||||
}
|
||||
description
|
||||
"The severity of the current alarm.";
|
||||
}
|
||||
}
|
||||
|
||||
grouping platform-component-temp-state {
|
||||
description
|
||||
"Temperature state data for device components";
|
||||
|
||||
container temperature {
|
||||
description
|
||||
"Temperature in degrees Celsius of the component. Values include
|
||||
the instantaneous, average, minimum, and maximum statistics. If
|
||||
avg/min/max statistics are not supported, the target is expected
|
||||
to just supply the instant value";
|
||||
|
||||
uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
|
||||
uses platform-component-temp-alarm-state;
|
||||
}
|
||||
}
|
||||
|
||||
grouping platform-component-top {
|
||||
description
|
||||
"Top-level grouping for components in the device inventory";
|
||||
|
||||
container components {
|
||||
description
|
||||
"Enclosing container for the components in the system.";
|
||||
|
||||
list component {
|
||||
key "name";
|
||||
description
|
||||
"List of components, keyed by component name.";
|
||||
|
||||
leaf name {
|
||||
type leafref {
|
||||
path "../config/name";
|
||||
}
|
||||
description
|
||||
"References the component name";
|
||||
}
|
||||
|
||||
container state {
|
||||
config false;
|
||||
|
||||
description
|
||||
"Operational state data for each component";
|
||||
|
||||
uses platform-component-temp-state;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// data definition statements
|
||||
|
||||
uses platform-component-top;
|
||||
|
||||
|
||||
// augments
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
module openconfig-types {
|
||||
yang-version "1";
|
||||
|
||||
namespace "http://openconfig.net/yang/openconfig-types";
|
||||
|
||||
prefix "oc-types";
|
||||
|
||||
// import statements
|
||||
import openconfig-extensions { prefix oc-ext; }
|
||||
|
||||
// meta
|
||||
organization
|
||||
"OpenConfig working group";
|
||||
|
||||
contact
|
||||
"OpenConfig working group
|
||||
netopenconfig@googlegroups.com";
|
||||
|
||||
description
|
||||
"This module contains a set of general type definitions that
|
||||
are used across OpenConfig models. It can be imported by modules
|
||||
that make use of these types.";
|
||||
|
||||
oc-ext:openconfig-version "1.0.0";
|
||||
|
||||
// OpenConfig specific extensions for module metadata.
|
||||
oc-ext:regexp-posix;
|
||||
oc-ext:catalog-organization "openconfig";
|
||||
oc-ext:origin "openconfig";
|
||||
|
||||
typedef stat-interval {
|
||||
type uint64;
|
||||
units nanoseconds;
|
||||
description
|
||||
"A time interval over which a set of statistics is computed.
|
||||
A common usage is to report the interval over which
|
||||
avg/min/max stats are computed and reported.";
|
||||
}
|
||||
|
||||
grouping stat-interval-state {
|
||||
description
|
||||
"Reusable leaf definition for stats computation interval";
|
||||
|
||||
leaf interval {
|
||||
type oc-types:stat-interval;
|
||||
description
|
||||
"If supported by the system, this reports the time interval
|
||||
over which the min/max/average statistics are computed by
|
||||
the system.";
|
||||
}
|
||||
}
|
||||
|
||||
typedef ieeefloat32 {
|
||||
type binary {
|
||||
length "4";
|
||||
}
|
||||
description
|
||||
"An IEEE 32-bit floating point number. The format of this number
|
||||
is of the form:
|
||||
1-bit sign
|
||||
8-bit exponent
|
||||
23-bit fraction
|
||||
The floating point value is calculated using:
|
||||
(-1)**S * 2**(Exponent-127) * (1+Fraction)";
|
||||
}
|
||||
}
|
141
plugins/inputs/gnmi/testcases/issue_15046/responses.json
Normal file
141
plugins/inputs/gnmi/testcases/issue_15046/responses.json
Normal file
|
@ -0,0 +1,141 @@
|
|||
[
|
||||
{
|
||||
"update": {
|
||||
"timestamp": "1711178737105194000",
|
||||
"update": [
|
||||
{
|
||||
"path": {
|
||||
"origin": "openconfig",
|
||||
"elem": [
|
||||
{
|
||||
"name": "components"
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"key": {
|
||||
"name": "PowerSupply1/A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "power-supply"
|
||||
},
|
||||
{
|
||||
"name": "state"
|
||||
}
|
||||
]
|
||||
},
|
||||
"val": {
|
||||
"jsonIetfVal": "eyJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTplbmFibGVkIjp0cnVlLCJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTpjYXBhY2l0eSI6IlJETEFBQT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6aW5wdXQtY3VycmVudCI6IlB2RW02UT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6aW5wdXQtdm9sdGFnZSI6IlExQ0FBQT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6b3V0cHV0LWN1cnJlbnQiOiJQNW43NXc9PSIsIm9wZW5jb25maWctcGxhdGZvcm0tcHN1Om91dHB1dC12b2x0YWdlIjoiUW1GM3p3PT0iLCJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTpvdXRwdXQtcG93ZXIiOiJRb2xBQUE9PSJ9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": {
|
||||
"origin": "openconfig",
|
||||
"elem": [
|
||||
{
|
||||
"name": "components"
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"key": {
|
||||
"name": "PowerSupply1/B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "power-supply"
|
||||
},
|
||||
{
|
||||
"name": "state"
|
||||
}
|
||||
]
|
||||
},
|
||||
"val": {
|
||||
"jsonIetfVal": "eyJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTplbmFibGVkIjp0cnVlLCJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTpjYXBhY2l0eSI6IlJETEFBQT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6aW5wdXQtY3VycmVudCI6IlBzazNUQT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6aW5wdXQtdm9sdGFnZSI6IlExSEFBQT09Iiwib3BlbmNvbmZpZy1wbGF0Zm9ybS1wc3U6b3V0cHV0LWN1cnJlbnQiOiJQM0FneFE9PSIsIm9wZW5jb25maWctcGxhdGZvcm0tcHN1Om91dHB1dC12b2x0YWdlIjoiUW1GM3p3PT0iLCJvcGVuY29uZmlnLXBsYXRmb3JtLXBzdTpvdXRwdXQtcG93ZXIiOiJRaytBQUE9PSJ9"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"update": {
|
||||
"timestamp": "1715838159171548000",
|
||||
"update": [
|
||||
{
|
||||
"path": {
|
||||
"origin": "openconfig",
|
||||
"elem": [
|
||||
{
|
||||
"name": "components"
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"key": {
|
||||
"name": "InletTempSensor1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "state"
|
||||
},
|
||||
{
|
||||
"name": "temperature"
|
||||
}
|
||||
]
|
||||
},
|
||||
"val": {
|
||||
"jsonIetfVal": "eyJpbnN0YW50IjoiMzUuMDAwMDAwIiwiYXZnIjoiMjQuMDAwMDAwIiwibWluIjoiMC4wMDAwMDAiLCJtYXgiOiIzNi4wMDAwMDAiLCJpbnRlcnZhbCI6IjE4MDAwMDAwMDAwMCIsImFsYXJtLXN0YXR1cyI6ZmFsc2UsImFsYXJtLXRocmVzaG9sZCI6MCwiYWxhcm0tc2V2ZXJpdHkiOiJvcGVuY29uZmlnLWFsYXJtLXR5cGVzOk1JTk9SIn0="
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": {
|
||||
"origin": "openconfig",
|
||||
"elem": [
|
||||
{
|
||||
"name": "components"
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"key": {
|
||||
"name": "OutletTempSensor1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "state"
|
||||
},
|
||||
{
|
||||
"name": "temperature"
|
||||
}
|
||||
]
|
||||
},
|
||||
"val": {
|
||||
"jsonIetfVal": "eyJpbnN0YW50IjoiNDQuMDAwMDAwIiwiYXZnIjoiMjkuMDAwMDAwIiwibWluIjoiMC4wMDAwMDAiLCJtYXgiOiI0NC4wMDAwMDAiLCJpbnRlcnZhbCI6IjE4MDAwMDAwMDAwMCIsImFsYXJtLXN0YXR1cyI6ZmFsc2UsImFsYXJtLXRocmVzaG9sZCI6MCwiYWxhcm0tc2V2ZXJpdHkiOiJvcGVuY29uZmlnLWFsYXJtLXR5cGVzOk1JTk9SIn0="
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": {
|
||||
"origin": "openconfig",
|
||||
"elem": [
|
||||
{
|
||||
"name": "components"
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"key": {
|
||||
"name": "HotSpotTempSensor1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "state"
|
||||
},
|
||||
{
|
||||
"name": "temperature"
|
||||
}
|
||||
]
|
||||
},
|
||||
"val": {
|
||||
"jsonIetfVal": "eyJpbnN0YW50IjoiNTguMDAwMDAwIiwiYXZnIjoiMzkuMDAwMDAwIiwibWluIjoiMC4wMDAwMDAiLCJtYXgiOiI1OS4wMDAwMDAiLCJpbnRlcnZhbCI6IjE4MDAwMDAwMDAwMCIsImFsYXJtLXN0YXR1cyI6ZmFsc2UsImFsYXJtLXRocmVzaG9sZCI6MCwiYWxhcm0tc2V2ZXJpdHkiOiJvcGVuY29uZmlnLWFsYXJtLXR5cGVzOk1JTk9SIn0="
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
18
plugins/inputs/gnmi/testcases/issue_15046/telegraf.conf
Normal file
18
plugins/inputs/gnmi/testcases/issue_15046/telegraf.conf
Normal file
|
@ -0,0 +1,18 @@
|
|||
[[inputs.gnmi]]
|
||||
addresses = ["dummy"]
|
||||
path_guessing_strategy = "subscription"
|
||||
yang_model_paths = ["testcases/issue_15046/models"]
|
||||
|
||||
[[inputs.gnmi.subscription]]
|
||||
name = "psu"
|
||||
origin = "openconfig"
|
||||
path = "/components/component/power-supply/state"
|
||||
subscription_mode = "sample"
|
||||
sample_interval = "60s"
|
||||
|
||||
[[inputs.gnmi.subscription]]
|
||||
name = "temp"
|
||||
origin = "openconfig"
|
||||
path = "/components/component/state/temperature"
|
||||
subscription_mode = "sample"
|
||||
sample_interval = "60s"
|
Loading…
Add table
Add a link
Reference in a new issue