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