]> git.pld-linux.org Git - SPECS.git/blob - nagios-plugin-check_raid.spec
SPECS updated Mon 29 Apr 22:05:02 CEST 2024
[SPECS.git] / nagios-plugin-check_raid.spec
1 # TODO
2 # - see and adopt: http://gist.github.com/359890
3 %define         plugin  check_raid
4 Summary:        Nagios plugin to check current server's RAID status
5 Name:           nagios-plugin-%{plugin}
6 Version:        4.0.10
7 Release:        2
8 License:        GPL v2
9 Group:          Applications
10 Source0:        https://github.com/glensc/nagios-plugin-check_raid/archive/%{version}/%{name}-%{version}.tar.gz
11 # Source0-md5:  44d42b711ea234f69c1103f731a4c461
12 Patch0:         aacraid.patch
13 Patch1:         bbu.patch
14 URL:            https://github.com/glensc/nagios-plugin-check_raid
15 BuildRequires:  perl-ExtUtils-MakeMaker-CPANfile
16 BuildRequires:  perl-Module-Pluggable >= 5.1
17 BuildRequires:  perl-Monitoring-Plugin >= 0.37
18 BuildRequires:  rpm-perlprov >= 4.1-13
19 BuildRequires:  rpmbuild(macros) >= 1.685
20 Requires:       grep
21 Requires:       nagios-common
22 Requires:       perl-base >= 1:5.8.0
23 Requires:       sed >= 4.0
24 Requires:       sudo >= 1:1.8.7-2
25 Suggests:       CmdTool2
26 Suggests:       arcconf
27 Suggests:       areca-cli
28 Suggests:       cciss_vol_status
29 Suggests:       hpacucli
30 Suggests:       lsscsi
31 Suggests:       megacli-sas
32 Suggests:       megarc-scsi
33 Suggests:       mpt-status
34 Suggests:       mvcli
35 Suggests:       smartmontools
36 Suggests:       tw_cli-9xxx
37 # cciss_vol_status 1.10 can process /dev/sdX instead of only /dev/sgX
38 Conflicts:      cciss_vol_status < 1.10
39 Conflicts:      nagios-nrpe < 2.15-5
40 BuildArch:      noarch
41 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42
43 %define         _sysconfdir     /etc/nagios/plugins
44 %define         nrpeddir        /etc/nagios/nrpe.d
45 %define         plugindir       %{_prefix}/lib/nagios/plugins
46
47 %description
48 This plugin chekcs Check all RAID volumes (hardware and software) that
49 can be identified.
50
51 Supports:
52 - AIX software RAID via lsvg
53 - Adaptec AAC RAID via aaccli or afacli or arcconf
54 - Areca SATA RAID Support
55 - HP Smart Array (MSA1500) via serial line
56 - HP Smart Array Controllers and MSA Controllers via hpacucli (see
57   hapacucli readme)
58 - HP/Compaq Smart Array via cciss_vol_status (hpsa supported too)
59 - LSI Logic MegaRAID SAS series via MegaCli
60 - LSI MegaRaid via lsraid
61 - Linux 3ware SATA RAID via tw_cli
62 - Linux DPT/I2O hardware RAID controllers via /proc/scsi/dpt_i2o
63 - Linux GDTH hardware RAID controllers via /proc/scsi/gdth
64 - Linux LSI MegaRaid hardware RAID via /proc/megaraid
65 - Linux LSI MegaRaid hardware RAID via CmdTool2
66 - Linux LSI MegaRaid hardware RAID via megarc
67 - Linux MPT hardware RAID via mpt-status
68 - Linux Device Mapper
69 - Linux MegaIDE hardware RAID controllers via /proc/megaide
70 - Linux software RAID (md) via /proc/mdstat
71 - SAS2IRCU support
72 - Serveraid IPS via ipssend
73 - Solaris software RAID via metastat
74
75 %prep
76 %setup -qc
77 mv nagios-plugin-check_raid-*/* .
78 %patch0 -p1
79 %patch1 -p1
80
81 # set version
82 %{__sed} -i -e '
83     s#my $VERSION = q.*;#my $VERSION = q/%{version}-%{release}/;#
84 ' bin/%{plugin}.pl
85
86 %build
87 # version check exits with "3", here's explanation:
88 # https://github.com/monitoring-plugins/monitoring-plugins/pull/1363
89 ver=$(./%{plugin}.sh -V || :)
90 test "$(echo "$ver" | awk '{print $NF}')" = %{version}-%{release}
91
92 LC_ALL=en_US.utf8 \
93 %{__perl} Makefile.PL \
94         INSTALLVENDORSCRIPT=%{plugindir} \
95         INSTALLDIRS=vendor
96 %{__make}
97
98 %install
99 rm -rf $RPM_BUILD_ROOT
100 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{nrpeddir},%{plugindir},/etc/sudoers.d}
101 %{__make} install \
102         DESTDIR=$RPM_BUILD_ROOT
103
104 cp -p %{plugin}.cfg $RPM_BUILD_ROOT%{_sysconfdir}
105 touch $RPM_BUILD_ROOT%{nrpeddir}/%{plugin}.cfg
106 touch $RPM_BUILD_ROOT/etc/sudoers.d/check_raid
107
108 # remove .pl extension
109 mv $RPM_BUILD_ROOT%{plugindir}/%{plugin}{.pl,}
110
111 # cleanup
112 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
113 %{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/App/Monitoring/Plugin/CheckRaid/.packlist
114
115 %clean
116 rm -rf $RPM_BUILD_ROOT
117
118 %post
119 # setup sudo rules:
120 # - on first install
121 # - if separate config file is used
122 grep -q '^#includedir /etc/sudoers\.d' /etc/sudoers && confd=1
123
124 if [ "$1" = 1 ] || [ "$1" = "configure" ] || [ "$confd" = 1 ]; then
125         %{plugindir}/%{plugin} -S || :
126 fi
127
128 %postun
129 if [ "$1" = "0" ] || [ "$1" = "remove" ]; then
130         # remove all sudo rules related to us
131         %{__sed} -i -e '/CHECK_RAID/d' /etc/sudoers
132 fi
133
134 %triggerpostun -- %{name} < 3.1.1-0.2, sudo < 1:1.8.7-2
135 if grep -q '^#includedir /etc/sudoers\.d' /etc/sudoers; then
136         %{plugindir}/%{plugin} -S || :
137 fi
138 # remove CHECK_RAID rules from /etc/sudoers if separate config is in place
139 if [ -e /etc/sudoers.d/check_raid ]; then
140         %{__sed} -i -e '/CHECK_RAID/d' /etc/sudoers
141 fi
142
143 %triggerin -- nagios-nrpe
144 %nagios_nrpe -a %{plugin} -f %{_sysconfdir}/%{plugin}.cfg
145
146 %triggerun -- nagios-nrpe
147 %nagios_nrpe -d %{plugin} -f %{_sysconfdir}/%{plugin}.cfg
148
149 %files
150 %defattr(644,root,root,755)
151 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{plugin}.cfg
152 %attr(755,root,root) %{plugindir}/%{plugin}
153 %ghost %{nrpeddir}/%{plugin}.cfg
154 %ghost /etc/sudoers.d/check_raid
155 %dir %{perl_vendorlib}/App/Monitoring
156 %dir %{perl_vendorlib}/App/Monitoring/Plugin
157 %{perl_vendorlib}/App/Monitoring/Plugin/CheckRaid.pm
158 %{perl_vendorlib}/App/Monitoring/Plugin/CheckRaid
This page took 1.309193 seconds and 3 git commands to generate.