icinga2 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +504 -0
- data/README.md +118 -0
- data/doc/downtimes.md +7 -0
- data/doc/examples +122 -0
- data/doc/hostgroups.md +19 -0
- data/doc/hosts.md +22 -0
- data/doc/notifications.md +15 -0
- data/doc/servicegroups.md +19 -0
- data/doc/services.md +26 -0
- data/doc/usergroups.md +12 -0
- data/doc/users.md +41 -0
- data/examples/test.rb +150 -0
- data/lib/icinga2.rb +140 -0
- data/lib/icinga2/converts.rb +77 -0
- data/lib/icinga2/downtimes.rb +173 -0
- data/lib/icinga2/hostgroups.rb +98 -0
- data/lib/icinga2/hosts.rb +307 -0
- data/lib/icinga2/network.rb +397 -0
- data/lib/icinga2/notifications.rb +158 -0
- data/lib/icinga2/servicegroups.rb +101 -0
- data/lib/icinga2/services.rb +301 -0
- data/lib/icinga2/status.rb +52 -0
- data/lib/icinga2/tools.rb +13 -0
- data/lib/icinga2/usergroups.rb +101 -0
- data/lib/icinga2/users.rb +143 -0
- data/lib/icinga2/version.rb +15 -0
- data/lib/logging.rb +36 -0
- metadata +210 -0
data/README.md
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# ruby-icinga2
|
2
|
+
|
3
|
+
Small Ruby Class for the Icinga2 API
|
4
|
+
|
5
|
+
|
6
|
+
## Requirements
|
7
|
+
|
8
|
+
gem install rest-client --no-rdoc --no-ri
|
9
|
+
gem install json --no-rdoc --no-ri
|
10
|
+
|
11
|
+
## usage
|
12
|
+
|
13
|
+
create an instance and get information about the Icinga2 Server
|
14
|
+
|
15
|
+
config = {
|
16
|
+
:icinga => {
|
17
|
+
:host => icingaHost,
|
18
|
+
:api => {
|
19
|
+
:port => icingaApiPort,
|
20
|
+
:user => icingaApiUser,
|
21
|
+
:pass => icingaApiPass
|
22
|
+
},
|
23
|
+
:cluster => icingaCluster,
|
24
|
+
:satellite => icingaSatellite,
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
i = Icinga::Client.new( config )
|
29
|
+
puts i.applicationData()
|
30
|
+
|
31
|
+
## Status
|
32
|
+
|
33
|
+
supports the following API Calls:
|
34
|
+
|
35
|
+
- [Users](doc/users.md)
|
36
|
+
* addUser
|
37
|
+
* deleteUser
|
38
|
+
* listUsers
|
39
|
+
* existsUser
|
40
|
+
- [Usergroups](doc/usergroups.md)
|
41
|
+
* addUsergroup
|
42
|
+
* deleteUsergroup
|
43
|
+
* listUsergroups
|
44
|
+
* existsUsergroup
|
45
|
+
- [Hosts](doc/hosts.md)
|
46
|
+
* addHost
|
47
|
+
* deleteHost
|
48
|
+
* listHosts
|
49
|
+
* existsHost
|
50
|
+
- [Hostgroups](doc/hostgroups.md)
|
51
|
+
* addHostgroup
|
52
|
+
* deleteHostgroup
|
53
|
+
* listHostgroups
|
54
|
+
* existsHostgroup
|
55
|
+
- [Services](doc/services.md)
|
56
|
+
* addService
|
57
|
+
* deleteService
|
58
|
+
* listServices
|
59
|
+
* existsService
|
60
|
+
- [Servicegroups](doc/servicegroups.md)
|
61
|
+
* addServicegroup
|
62
|
+
* deleteServicegroup
|
63
|
+
* listServicegroups
|
64
|
+
* existsServicegroup
|
65
|
+
- [Downtimes](doc/downtimes.md)
|
66
|
+
* addDowntime
|
67
|
+
* listDowntimes
|
68
|
+
- [Notifications](doc/notifications.md)
|
69
|
+
* enableHostNotification
|
70
|
+
* disableHostNotification
|
71
|
+
* enableServiceNotification
|
72
|
+
* disableServiceNotification
|
73
|
+
* enableHostgroupNotification
|
74
|
+
* disableHostgroupNotification
|
75
|
+
* listNotifications
|
76
|
+
|
77
|
+
|
78
|
+
## create a own gem File
|
79
|
+
|
80
|
+
#$ gem build icinga2.gemspec
|
81
|
+
Successfully built RubyGem
|
82
|
+
Name: icinga2
|
83
|
+
Version: 1.4.9
|
84
|
+
File: icinga2-1.4.9.gem
|
85
|
+
|
86
|
+
## install gem
|
87
|
+
|
88
|
+
#$ gem install ./icinga2-1.4.9.gem
|
89
|
+
Successfully installed icinga2-1.4.9
|
90
|
+
1 gem installed
|
91
|
+
|
92
|
+
## test via CLI
|
93
|
+
|
94
|
+
#$ export ICINGA_HOST=localhost ; export ICINGA_API_USER=root ; export ICINGA_API_PASSWORD=icinga
|
95
|
+
#$ irb
|
96
|
+
2.3.0 :001 > require 'icinga2'
|
97
|
+
=> true
|
98
|
+
2.3.0 :002 > config = { :icinga => { :host => 'localhost', :api => { :user => 'root', :pass => 'icinga' } } }
|
99
|
+
=> {:icinga=>{:host=>"localhost", :api=>{:user=>"root", :pass=>"icinga"}}}
|
100
|
+
2.3.0 :003 > i = Icinga2::Client.new( config )
|
101
|
+
|
102
|
+
## test via example
|
103
|
+
#$ export ICINGA_HOST=localhost ; export ICINGA_API_USER=root ; export ICINGA_API_PASSWORD=icinga
|
104
|
+
#$ ruby examples/test.rb
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
## Contributing
|
109
|
+
|
110
|
+
1. Fork it
|
111
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
112
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
113
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
114
|
+
5. Create new Pull Request
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
data/doc/downtimes.md
ADDED
data/doc/examples
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
|
2
|
+
To add hostgroup :
|
3
|
+
|
4
|
+
curl -k -s -u icingaadmin:icinga 'https://localhost:5665/v1/objects/hostgroups/testgrp' \
|
5
|
+
-X PUT -d '{ "attrs": { "name" : "testgrp" ,"display_name" : "testgrp" , "state_loaded" :true }}'
|
6
|
+
|
7
|
+
To add host :
|
8
|
+
|
9
|
+
curl -k -s -u icingaadmin:icinga 'https://localhost:5665/v1/objects/hosts/8.8.8.8' \
|
10
|
+
-X PUT -d '{ "templates": [ "generic-host" ], "attrs": { "address": "8.8.8.8" , "groups" : [ "testgrp" ]} }'
|
11
|
+
|
12
|
+
|
13
|
+
https://localhost:5665/v1/objects/users
|
14
|
+
https://localhost:5665/v1/objects/usergroups
|
15
|
+
|
16
|
+
|
17
|
+
https://localhost:5665/v1/objects/hostgroups
|
18
|
+
https://localhost:5665/v1/objects/servicegroups
|
19
|
+
|
20
|
+
https://localhost:5665/v1/objects/hosts
|
21
|
+
https://localhost:5665/v1/objects/services
|
22
|
+
|
23
|
+
# list service from host
|
24
|
+
curl -k -u root:icinga -H 'Accept: application/json' -X GET 'https://localhost:5665/v1/objects/services/pandora-17-01!Runlevel-master-live-server'
|
25
|
+
|
26
|
+
|
27
|
+
https://localhost:5665/v1/objects/notifications
|
28
|
+
|
29
|
+
# get usergroups:
|
30
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X GET 'https://localhost:5665/v1/objects/usergroups'
|
31
|
+
|
32
|
+
# add usergroup:
|
33
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5665/v1/objects/usergroups/foo' --data '{ "attrs": {"display_name": "Foo Bar" } }'
|
34
|
+
|
35
|
+
# delete usergroup:
|
36
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -H 'X-HTTP-Method-Override: DELETE' -X POST 'https://localhost:5665/v1/objects/usergroups/foo'
|
37
|
+
|
38
|
+
|
39
|
+
# delete user:
|
40
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -H 'X-HTTP-Method-Override: DELETE' -X POST 'https://localhost:5665/v1/objects/users/foo'
|
41
|
+
|
42
|
+
# add user:
|
43
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5665/v1/objects/users/foo' --data '{ "attrs": {"display_name": "Foo Bar", "email": "foo.bar@coremedia.com","enable_notifications": false, "groups": [ "coreme
|
44
|
+
dia" ] } }'
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
# add notification
|
49
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' \
|
50
|
+
-X PUT 'https://localhost:5665/v1/objects/notifications/debian7.example.com!jabber' -d '{
|
51
|
+
"attrs": {
|
52
|
+
"command":"mail-service-notification",
|
53
|
+
"service_name":"apt",
|
54
|
+
"user_groups": ["icingaadmins"] } }'
|
55
|
+
|
56
|
+
|
57
|
+
# delete notification
|
58
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' \
|
59
|
+
-H 'X-HTTP-Method-Override: DELETE' \
|
60
|
+
-X POST 'https://localhost:5665/v1/objects/notifications/debian7.example.com!apt!jabber?cascade=1'
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
# enable notification für host:
|
67
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/hosts/api_dummy_host_1' --data '{ "attrs": { "enable_notifications": true } }'
|
68
|
+
|
69
|
+
# disable notification für host:
|
70
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/hosts/api_dummy_host_1' --data '{ "attrs": { "enable_notifications": false } }'
|
71
|
+
|
72
|
+
# enable notification für service x von host:
|
73
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/services' --data '{ "filter": "host.name==\"api_dummy_host_1\"", "attrs": { "enable_notifications": true } }'
|
74
|
+
|
75
|
+
# disable notification für service x von host:
|
76
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/services' --data '{ "filter": "host.name==\"api_dummy_host_1\"", "attrs": { "enable_notifications": false } }'
|
77
|
+
|
78
|
+
# enable notification für hostgroup:
|
79
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/services' --data '{ "filter": "\"api_dummy_hostgroup\" in host.groups", "attrs": { "enable_notifications": true } }'
|
80
|
+
|
81
|
+
# disable notification für hostgroup:
|
82
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/services' --data '{ "filter": "\"api_dummy_hostgroup\" in host.groups", "attrs": { "enable_notifications": false } }'
|
83
|
+
|
84
|
+
|
85
|
+
# get downtimes
|
86
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X GET 'https://localhost:5665/v1/objects/downtimes'
|
87
|
+
|
88
|
+
# delete named downtime
|
89
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -H 'X-HTTP-Method-Override: DELETE' -X POST 'https://localhost:5665/v1/objects/downtimes/icinga2-master!load!icinga2-master-1496045418-0'
|
90
|
+
|
91
|
+
|
92
|
+
# schedule downtime for a host
|
93
|
+
|
94
|
+
# current_time=$(date +%s)
|
95
|
+
# 1449057010
|
96
|
+
# current_time_add_30_second=$(date +%s --date="+30 seconds")
|
97
|
+
# 1449057040
|
98
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/actions/schedule-downtime' \
|
99
|
+
--data '{ "type": "Host", "filter": "host.name==\"api_dummy_host_1\"", "start_time": 1449057685, "end_time": 1449057715, "author": "api_user", "comment": "api_comment", "fixed": true, "duration": 30 }'
|
100
|
+
|
101
|
+
# schedule downtime for all services of a host - change the timestamps accordingly
|
102
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/actions/schedule-downtime' \
|
103
|
+
--data '{ "type": "Service", "filter": "host.name==\"api_dummy_host_1\"", "start_time": 1449064981, "end_time": 1449065129, "author": "api_user", "comment": "api_comment", "fixed": true, "duration": 30 }'
|
104
|
+
|
105
|
+
|
106
|
+
# schedule downtime for all hosts and services in a hostgroup - change the timestamps accordingly
|
107
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/actions/schedule-downtime' \
|
108
|
+
--data '{ "type": "Host", "filter": "\"api_dummy_hostgroup\" in host.groups", "start_time": 1449065680, "end_time": 1449065823, "author": "api_user", "comment": "api_comment", "duration": 120, "fixed": true, "duration": 30 }'
|
109
|
+
|
110
|
+
curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/actions/schedule-downtime' \
|
111
|
+
--data '{ "type": "Service", "filter": "\"api_dummy_hostgroup\" in host.groups)", "start_time": 1449065680, "end_time": 1449065823, "author": "api_user", "comment": "api_comment", "duration": 120, "fixed": true, "duration": 30 }'
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
data/doc/hostgroups.md
ADDED
data/doc/hosts.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Icinga2 - Hosts
|
2
|
+
|
3
|
+
## check
|
4
|
+
existsHost()
|
5
|
+
|
6
|
+
## add
|
7
|
+
vars = {
|
8
|
+
'aws' => false
|
9
|
+
}
|
10
|
+
|
11
|
+
addHost( 'foo-bar.lan', vars )
|
12
|
+
|
13
|
+
## list
|
14
|
+
|
15
|
+
### named
|
16
|
+
listHosts( 'foo-bar.lan' )
|
17
|
+
|
18
|
+
### all
|
19
|
+
listHosts()
|
20
|
+
|
21
|
+
## delete
|
22
|
+
deleteHost( 'foo-bar.lan' )
|
data/doc/services.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# Icinga2 - Services
|
2
|
+
|
3
|
+
|
4
|
+
## check
|
5
|
+
existsService()
|
6
|
+
|
7
|
+
## add
|
8
|
+
services = {
|
9
|
+
'service-heap-mem' => {
|
10
|
+
'display_name' => 'Tomcat - Heap Memory',
|
11
|
+
'check_command' => 'tomcat-heap-memory',
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
i.addServices( 'foo-bar.lan', services )
|
16
|
+
|
17
|
+
## list
|
18
|
+
|
19
|
+
### named
|
20
|
+
listServices( 'foo-bar.lan' )
|
21
|
+
|
22
|
+
### all
|
23
|
+
listServices()
|
24
|
+
|
25
|
+
## delete
|
26
|
+
**not yet implemented**
|
data/doc/usergroups.md
ADDED
data/doc/users.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Icinga2 - Users
|
2
|
+
|
3
|
+
## check, if User exists
|
4
|
+
|
5
|
+
existsUser?( $USERNAME )
|
6
|
+
|
7
|
+
return `true` or `false`
|
8
|
+
|
9
|
+
## add User
|
10
|
+
|
11
|
+
var = {
|
12
|
+
:name => 'foo',
|
13
|
+
:display_name => 'FOO',
|
14
|
+
:email => 'foo@bar.com',
|
15
|
+
:pager => '0000',
|
16
|
+
:groups => ['icingaadmins']
|
17
|
+
}
|
18
|
+
|
19
|
+
addUser( var )
|
20
|
+
|
21
|
+
return `Hash`
|
22
|
+
|
23
|
+
## list User
|
24
|
+
|
25
|
+
### named User
|
26
|
+
|
27
|
+
listUsers( { :name => $USERNAME } )
|
28
|
+
|
29
|
+
return `Hash`
|
30
|
+
|
31
|
+
### all Users
|
32
|
+
|
33
|
+
listUsers()
|
34
|
+
|
35
|
+
return `Hash`
|
36
|
+
|
37
|
+
## delete User
|
38
|
+
|
39
|
+
deleteUser( { :name => $USERNAME } )
|
40
|
+
|
41
|
+
return `Hash`
|
data/examples/test.rb
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# 23.01.2017 - Bodo Schulz
|
4
|
+
#
|
5
|
+
#
|
6
|
+
# v0.9.2
|
7
|
+
|
8
|
+
# -----------------------------------------------------------------------------
|
9
|
+
|
10
|
+
require_relative '../lib/icinga2'
|
11
|
+
|
12
|
+
# -----------------------------------------------------------------------------
|
13
|
+
|
14
|
+
icingaHost = ENV.fetch( 'ICINGA_HOST' , 'icinga2' )
|
15
|
+
icingaApiPort = ENV.fetch( 'ICINGA_API_PORT' , 5665 )
|
16
|
+
icingaApiUser = ENV.fetch( 'ICINGA_API_USER' , 'admin' )
|
17
|
+
icingaApiPass = ENV.fetch( 'ICINGA_API_PASSWORD' , nil )
|
18
|
+
icingaCluster = ENV.fetch( 'ICINGA_CLUSTER' , false )
|
19
|
+
icingaSatellite = ENV.fetch( 'ICINGA_CLUSTER_SATELLITE', nil )
|
20
|
+
|
21
|
+
# convert string to bool
|
22
|
+
icingaCluster = icingaCluster.to_s.eql?('true') ? true : false
|
23
|
+
|
24
|
+
config = {
|
25
|
+
:icinga => {
|
26
|
+
:host => icingaHost,
|
27
|
+
:api => {
|
28
|
+
:port => icingaApiPort,
|
29
|
+
:user => icingaApiUser,
|
30
|
+
:password => icingaApiPass
|
31
|
+
},
|
32
|
+
:cluster => icingaCluster,
|
33
|
+
:satellite => icingaSatellite,
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
# ---------------------------------------------------------------------------------------
|
38
|
+
|
39
|
+
i = Icinga2::Client.new( config )
|
40
|
+
|
41
|
+
if( i != nil )
|
42
|
+
|
43
|
+
# run tests ...
|
44
|
+
#
|
45
|
+
#
|
46
|
+
|
47
|
+
puts "Information about Icinga2:"
|
48
|
+
puts i.applicationData()
|
49
|
+
puts i.CIBData()
|
50
|
+
puts i.apiListener()
|
51
|
+
puts ""
|
52
|
+
|
53
|
+
puts "check if Host 'icinga2-master' exists:"
|
54
|
+
puts i.existsHost?( 'icinga2-master' ) ? 'true' : 'false'
|
55
|
+
puts "get host Objects from 'icinga2-master'"
|
56
|
+
puts i.hostObjects()
|
57
|
+
puts "Host problems:"
|
58
|
+
puts i.hostProblems()
|
59
|
+
puts "Problem Hosts:"
|
60
|
+
puts i.problemHosts()
|
61
|
+
|
62
|
+
puts "list named Hosts:"
|
63
|
+
puts i.listHosts( { :name => 'icinga2-master' } )
|
64
|
+
puts "list all Hosts:"
|
65
|
+
puts i.listHosts()
|
66
|
+
puts ""
|
67
|
+
|
68
|
+
puts "check if Hostgroup 'linux-servers' exists:"
|
69
|
+
puts i.existsHostgroup?( 'linux-servers' ) ? 'true' : 'false'
|
70
|
+
puts "add hostgroup 'foo'"
|
71
|
+
puts i.addHostgroup( { :name => 'foo', :display_name => 'FOO' } )
|
72
|
+
puts "list named Hostgroup 'foo'"
|
73
|
+
puts i.listHostgroups( { :name => 'foo' } )
|
74
|
+
puts "list all Hostgroups:"
|
75
|
+
puts i.listHostgroups()
|
76
|
+
puts "delete Hostgroup 'foo'"
|
77
|
+
puts i.deleteHostgroup( { :name => 'foo' } )
|
78
|
+
puts ""
|
79
|
+
|
80
|
+
puts "check if service 'users' on host 'icinga2-master' exists:"
|
81
|
+
puts i.existsService?( { :host => 'icinga2-master', :service => 'users' } ) ? 'true' : 'false'
|
82
|
+
|
83
|
+
puts "get service Objects"
|
84
|
+
puts i.serviceObjects()
|
85
|
+
puts "Service problems:"
|
86
|
+
puts i.serviceProblems()
|
87
|
+
puts "Problem Services:"
|
88
|
+
puts i.problemServices()
|
89
|
+
|
90
|
+
puts "list named Service 'ping4' from Host 'icinga2-master'"
|
91
|
+
puts i.listServices( { :host => 'icinga2-master', :service => 'ping4' } )
|
92
|
+
puts "list all Services:"
|
93
|
+
puts i.listServices()
|
94
|
+
puts ""
|
95
|
+
|
96
|
+
puts "check if Servicegroup 'disk' exists:"
|
97
|
+
puts i.existsServicegroup?( 'disk' ) ? 'true' : 'false'
|
98
|
+
puts "add Servicegroup 'foo'"
|
99
|
+
puts i.addServicegroup( { :name => 'foo', :display_name => 'FOO' } )
|
100
|
+
puts "list named Servicegroup 'foo'"
|
101
|
+
puts i.listServicegroups( { :name => 'foo' } )
|
102
|
+
puts "list all Servicegroup:"
|
103
|
+
puts i.listServicegroups()
|
104
|
+
puts "delete Servicegroup 'foo'"
|
105
|
+
puts i.deleteServicegroup( { :name => 'foo' } )
|
106
|
+
puts ""
|
107
|
+
|
108
|
+
puts "check if Usergroup 'icingaadmins' exists:"
|
109
|
+
puts i.existsUsergroup?( 'icingaadmins' ) ? 'true' : 'false'
|
110
|
+
puts "add Usergroup 'foo'"
|
111
|
+
puts i.addUsergroup( { :name => 'foo', :display_name => 'FOO' } )
|
112
|
+
puts "list named Usergroup 'foo'"
|
113
|
+
puts i.listUsergroups( { :name => 'foo' } )
|
114
|
+
puts "list all Usergroup:"
|
115
|
+
puts i.listUsergroups()
|
116
|
+
puts "delete Usergroup 'foo'"
|
117
|
+
puts i.deleteUsergroup( { :name => 'foo' } )
|
118
|
+
puts ""
|
119
|
+
|
120
|
+
puts "check if User 'icingaadmin' exists:"
|
121
|
+
puts i.existsUser?( 'icingaadmin' ) ? 'true' : 'false'
|
122
|
+
puts "add User 'foo'"
|
123
|
+
puts i.addUser( { :name => 'foo', :display_name => 'FOO', :email => 'foo@bar.com', :pager => '0000', :groups => ['icingaadmins'] } )
|
124
|
+
puts "list named User 'foo'"
|
125
|
+
puts i.listUsers( { :name => 'foo' } )
|
126
|
+
puts "list all User:"
|
127
|
+
puts i.listUsers()
|
128
|
+
puts "delete User 'foo'"
|
129
|
+
puts i.deleteUser( { :name => 'foo' } )
|
130
|
+
puts ""
|
131
|
+
|
132
|
+
puts "add Downtime 'test':"
|
133
|
+
puts i.addDowntime( { :name => 'test', :type => 'service', :host => 'icinga2-master', :comment => 'test downtime', :author => 'icingaadmin', :start_time => Time.now.to_i, :end_time => Time.now.to_i + 20 } )
|
134
|
+
puts "list all Downtimes:"
|
135
|
+
puts i.listDowntimes()
|
136
|
+
|
137
|
+
puts "list all Notifications:"
|
138
|
+
puts i.listNotifications()
|
139
|
+
|
140
|
+
puts i.enableHostNotification( 'icinga2-master' )
|
141
|
+
puts i.disableHostNotification( 'icinga2-master' )
|
142
|
+
|
143
|
+
puts i.disableServiceNotification( 'icinga2-master' )
|
144
|
+
|
145
|
+
|
146
|
+
end
|
147
|
+
|
148
|
+
# -----------------------------------------------------------------------------
|
149
|
+
|
150
|
+
# EOF
|