Exemplo n.º 1
0
def _parameter_valuespec_volume_groups():
    return Dictionary(
        elements=[
            (
                "levels",
                Alternative(
                    title=_("Levels for volume group"),
                    show_alternative_title=True,
                    default_value=(80.0, 90.0),
                    match=match_dual_level_type,
                    elements=[
                        get_free_used_dynamic_valuespec("used", "volume group"),
                        Transform(
                            get_free_used_dynamic_valuespec(
                                "free", "volume group", default_value=(20.0, 10.0)
                            ),
                            title=_("Levels for volume group free space"),
                            forth=transform_filesystem_free,
                            back=transform_filesystem_free,
                        ),
                    ],
                ),
            ),
        ],
        optional_keys=False,
    )
Exemplo n.º 2
0
def _parameter_valuespec_netapp_luns():
    return Transform(
        Dictionary(
            title=_("Configure levels for used space"),
            elements=[
                (
                    "ignore_levels",
                    FixedValue(
                        title=_("Ignore used space (this option disables any other options)"),
                        help=_(
                            "Some luns, e.g. jfs formatted, tend to report incorrect used space values"
                        ),
                        totext=_("Ignore used space"),
                        value=True,
                    ),
                ),
                (
                    "levels",
                    Alternative(
                        title=_("Levels for LUN"),
                        show_alternative_title=True,
                        default_value=(80.0, 90.0),
                        match=match_dual_level_type,
                        elements=[
                            get_free_used_dynamic_valuespec("used", "LUN"),
                            Transform(
                                get_free_used_dynamic_valuespec(
                                    "free", "LUN", default_value=(20.0, 10.0)
                                ),
                                forth=transform_filesystem_free,
                                back=transform_filesystem_free,
                            ),
                        ],
                    ),
                ),
            ]
            + size_trend_elements
            + [
                (
                    "read_only",
                    Checkbox(
                        title=_("LUN is read-only"),
                        help=_(
                            "Display a warning if a LUN is not read-only. Without "
                            "this setting a warning will be displayed if a LUN is "
                            "read-only."
                        ),
                        label=_("Enable"),
                    ),
                ),
            ],
        ),
        forth=transform_trend_mb_to_trend_bytes,
    )
Exemplo n.º 3
0
def _parameter_valuespec_netapp_volumes():
    return Transform(
        valuespec=Dictionary(
            ignored_keys=["patterns"],
            elements=[
                (
                    "levels",
                    Alternative(
                        title=_("Levels for volume"),
                        show_alternative_title=True,
                        default_value=(80.0, 90.0),
                        match=match_dual_level_type,
                        elements=[
                            get_free_used_dynamic_valuespec("used", "volume", maxvalue=None),
                            Transform(
                                valuespec=get_free_used_dynamic_valuespec(
                                    "free", "volume", default_value=(20.0, 10.0)
                                ),
                                forth=transform_filesystem_free,
                                back=transform_filesystem_free,
                            ),
                        ],
                    ),
                ),
                (
                    "perfdata",
                    ListChoice(
                        title=_("Performance data for protocols"),
                        help=_("Specify for which protocol performance data should get recorded."),
                        choices=[
                            ("", _("Summarized data of all protocols")),
                            ("nfs", _("NFS")),
                            ("cifs", _("CIFS")),
                            ("san", _("SAN")),
                            ("fcp", _("FCP")),
                            ("iscsi", _("iSCSI")),
                        ],
                    ),
                ),
            ]
            + fs_magic_elements
            + fs_inodes_elements
            + size_trend_elements,
        ),
        forth=transform_trend_mb_to_trend_bytes,
    )
Exemplo n.º 4
0
def _parameter_valuespec_db2_logsize():
    return Dictionary(elements=[
        ("levels",
         Transform(
             get_free_used_dynamic_valuespec("free", "logfile", default_value=(20.0, 10.0)),
             title=_("Logfile levels"),
             forth=transform_filesystem_free,
             back=transform_filesystem_free,
         )),
    ],)
Exemplo n.º 5
0
 def parameter_valuespec(self):
     return Dictionary(elements=[
         ("levels",
          Transform(get_free_used_dynamic_valuespec("free",
                                                    "logfile",
                                                    default_value=(20.0, 10.0)),
                    title=_("Logfile levels"),
                    allow_empty=False,
                    forth=transform_filesystem_free,
                    back=transform_filesystem_free))
     ],)
Exemplo n.º 6
0
def _parameter_valuespec_netapp_volumes():
    return Dictionary(elements=[
        ("levels",
         Alternative(
             title=_("Levels for volume"),
             show_alternative_title=True,
             default_value=(80.0, 90.0),
             match=match_dual_level_type,
             elements=[
                 get_free_used_dynamic_valuespec("used", "volume"),
                 Transform(
                     get_free_used_dynamic_valuespec("free",
                                                     "volume",
                                                     default_value=(20.0,
                                                                    10.0)),
                     forth=transform_filesystem_free,
                     back=transform_filesystem_free,
                 )
             ],
         )),
        ("perfdata",
         ListChoice(
             title=_("Performance data for protocols"),
             help=
             _("Specify for which protocol performance data should get recorded."
               ),
             choices=[
                 ("", _("Summarized data of all protocols")),
                 ("nfs", _("NFS")),
                 ("cifs", _("CIFS")),
                 ("san", _("SAN")),
                 ("fcp", _("FCP")),
                 ("iscsi", _("iSCSI")),
             ],
         )),
        ("magic",
         Float(title=_(
             "Magic factor (automatic level adaptation for large volumes)"),
               default_value=0.8,
               minvalue=0.1,
               maxvalue=1.0)),
        ("magic_normsize",
         Integer(title=_("Reference size for magic factor"),
                 default_value=20,
                 minvalue=1,
                 unit=_("GB"))),
        ("levels_low",
         Tuple(
             title=_("Minimum levels if using magic factor"),
             help=_(
                 "The volume levels will never fall below these values, when using "
                 "the magic factor and the volume is very small."),
             elements=[
                 Percentage(title=_("Warning if above"),
                            unit=_("% usage"),
                            allow_int=True,
                            default_value=50),
                 Percentage(title=_("Critical if above"),
                            unit=_("% usage"),
                            allow_int=True,
                            default_value=60)
             ],
         )),
        ("inodes_levels",
         Alternative(
             title=_("Levels for Inodes"),
             help=_(
                 "The number of remaining inodes on the filesystem. "
                 "Please note that this setting has no effect on some filesystem checks."
             ),
             elements=[
                 Tuple(
                     title=_("Percentage free"),
                     elements=[
                         Percentage(title=_("Warning if less than")),
                         Percentage(title=_("Critical if less than")),
                     ],
                 ),
                 Tuple(
                     title=_("Absolute free"),
                     elements=[
                         Integer(title=_("Warning if less than"),
                                 size=10,
                                 unit=_("inodes"),
                                 minvalue=0,
                                 default_value=10000),
                         Integer(title=_("Critical if less than"),
                                 size=10,
                                 unit=_("inodes"),
                                 minvalue=0,
                                 default_value=5000),
                     ],
                 )
             ],
             default_value=(10.0, 5.0),
         )),
        ("show_inodes",
         DropdownChoice(
             title=_("Display inode usage in check output..."),
             choices=[
                 ("onproblem", _("Only in case of a problem")),
                 ("onlow",
                  _("Only in case of a problem or if inodes are below 50%")),
                 ("always", _("Always")),
             ],
             default_value="onlow",
         )),
        ("trend_range",
         Optional(Integer(
             title=_("Time Range for filesystem trend computation"),
             default_value=24,
             minvalue=1,
             unit=_("hours")),
                  title=_("Trend computation"),
                  label=_("Enable trend computation"))),
        ("trend_mb",
         Tuple(
             title=_("Levels on trends in MB per time range"),
             elements=[
                 Integer(title=_("Warning at"),
                         unit=_("MB / range"),
                         default_value=100),
                 Integer(title=_("Critical at"),
                         unit=_("MB / range"),
                         default_value=200)
             ],
         )),
        ("trend_perc",
         Tuple(
             title=_("Levels for the percentual growth per time range"),
             elements=[
                 Percentage(
                     title=_("Warning at"),
                     unit=_("% / range"),
                     default_value=5,
                 ),
                 Percentage(
                     title=_("Critical at"),
                     unit=_("% / range"),
                     default_value=10,
                 ),
             ],
         )),
        ("trend_timeleft",
         Tuple(
             title=_("Levels on the time left until the filesystem gets full"),
             elements=[
                 Integer(
                     title=_("Warning if below"),
                     unit=_("hours"),
                     default_value=12,
                 ),
                 Integer(
                     title=_("Critical if below"),
                     unit=_("hours"),
                     default_value=6,
                 ),
             ],
         )),
        ("trend_showtimeleft",
         Checkbox(
             title=_("Display time left in check output"),
             label=_("Enable"),
             help=
             _("Normally, the time left until the disk is full is only displayed when "
               "the configured levels have been breached. If you set this option "
               "the check always reports this information"))),
        ("trend_perfdata",
         Checkbox(
             title=_("Trend performance data"),
             label=_("Enable generation of performance data from trends"))),
    ], )
Exemplo n.º 7
0
def _parameter_valuespec_netapp_luns():
    return Dictionary(
        title=_("Configure levels for used space"),
        elements=[
            ("ignore_levels",
             FixedValue(
                 title=
                 _("Ignore used space (this option disables any other options)"
                   ),
                 help=
                 _("Some luns, e.g. jfs formatted, tend to report incorrect used space values"
                   ),
                 totext=_("Ignore used space"),
                 value=True,
             )),
            ("levels",
             Alternative(
                 title=_("Levels for LUN"),
                 show_alternative_title=True,
                 default_value=(80.0, 90.0),
                 match=match_dual_level_type,
                 elements=[
                     get_free_used_dynamic_valuespec("used", "LUN"),
                     Transform(
                         get_free_used_dynamic_valuespec("free",
                                                         "LUN",
                                                         default_value=(20.0,
                                                                        10.0)),
                         forth=transform_filesystem_free,
                         back=transform_filesystem_free,
                     )
                 ],
             )),
            ("trend_range",
             Optional(Integer(
                 title=_("Time Range for lun filesystem trend computation"),
                 default_value=24,
                 minvalue=1,
                 unit=_("hours")),
                      title=_("Trend computation"),
                      label=_("Enable trend computation"))),
            ("trend_mb",
             Tuple(
                 title=_("Levels on trends in MB per time range"),
                 elements=[
                     Integer(title=_("Warning at"),
                             unit=_("MB / range"),
                             default_value=100),
                     Integer(title=_("Critical at"),
                             unit=_("MB / range"),
                             default_value=200)
                 ],
             )),
            ("trend_perc",
             Tuple(
                 title=_("Levels for the percentual growth per time range"),
                 elements=[
                     Percentage(
                         title=_("Warning at"),
                         unit=_("% / range"),
                         default_value=5,
                     ),
                     Percentage(
                         title=_("Critical at"),
                         unit=_("% / range"),
                         default_value=10,
                     ),
                 ],
             )),
            ("trend_timeleft",
             Tuple(
                 title=
                 _("Levels on the time left until the lun filesystem gets full"
                   ),
                 elements=[
                     Integer(
                         title=_("Warning if below"),
                         unit=_("hours"),
                         default_value=12,
                     ),
                     Integer(
                         title=_("Critical if below"),
                         unit=_("hours"),
                         default_value=6,
                     ),
                 ],
             )),
            ("trend_showtimeleft",
             Checkbox(
                 title=_("Display time left in check output"),
                 label=_("Enable"),
                 help=
                 _("Normally, the time left until the lun filesystem is full is only displayed when "
                   "the configured levels have been breached. If you set this option "
                   "the check always reports this information"))),
            ("trend_perfdata",
             Checkbox(
                 title=_("Trend performance data"),
                 label=_("Enable generation of performance data from trends"))
             ),
            ("read_only",
             Checkbox(
                 title=_("LUN is read-only"),
                 help=_("Display a warning if a LUN is not read-only. Without "
                        "this setting a warning will be displayed if a LUN is "
                        "read-only."),
                 label=_("Enable"))),
        ],
    )
Exemplo n.º 8
0
    match_dual_level_type,
    transform_filesystem_free,
)

register_check_parameters(
    subgroup_storage,
    "netapp_volumes",
    _("NetApp Volumes"),
    Dictionary(elements=[
        ("levels",
         Alternative(title=_("Levels for volume"),
                     show_alternative_title=True,
                     default_value=(80.0, 90.0),
                     match=match_dual_level_type,
                     elements=[
                         get_free_used_dynamic_valuespec("used", "volume"),
                         Transform(get_free_used_dynamic_valuespec(
                             "free", "volume", default_value=(20.0, 10.0)),
                                   allow_empty=False,
                                   forth=transform_filesystem_free,
                                   back=transform_filesystem_free)
                     ])),
        ("show_levels",
         DropdownChoice(
             title=_("Display warn/crit levels in check output..."),
             choices=[
                 ("onproblem", _("Only if the status is non-OK")),
                 ("onmagic",
                  _("If the status is non-OK or a magic factor is set")),
                 ("always", _("Always")),
             ],