Module: Icinga2::Usergroups

Included in:
Client
Defined in:
lib/icinga2/usergroups.rb

Instance Method Summary collapse

Instance Method Details

#addUsergroup(params = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/icinga2/usergroups.rb', line 6

def addUsergroup( params = {} )

  name     = params.dig(:name)
  vars     = params.dig(:vars) || {}

  if( name == nil )

    return {
      :status  => 404,
      :message => 'missing usergroup name'
    }
  end

  payload = {
    "attrs" => {
      "display_name"         => name
    }
  }

  result = Network.put( {
    :host    => name,
    :url     => sprintf( '%s/v1/objects/usergroups/%s', @icingaApiUrlBase, name ),
    :headers => @headers,
    :options => @options,
    :payload => payload
  } )

  return JSON.pretty_generate( result )

end

#deleteUsergroup(params = {}) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/icinga2/usergroups.rb', line 38

def deleteUsergroup( params = {} )

  name = params.dig(:name)

  if( name == nil )

    return {
      :status  => 404,
      :message => 'missing usergroup name'
    }
  end

  result = Network.delete( {
    :host    => name,
    :url     => sprintf( '%s/v1/objects/usergroups/%s?cascade=1', @icingaApiUrlBase, name ),
    :headers => @headers,
    :options => @options
  } )

  return JSON.pretty_generate( result )

end

#existsUsergroup?(name) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/icinga2/usergroups.rb', line 78

def existsUsergroup?( name )

  result = self.listUsergroups( { :name => name } )

  if( result.is_a?( String ) )
    result = JSON.parse( result )
  end

  status = result.dig('status')

  if( status != nil && status == 200 )
    return true
  end

  return false

end

#listUsergroups(params = {}) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/icinga2/usergroups.rb', line 62

def listUsergroups( params = {} )

  name = params.dig(:name)

  result = Network.get( {
    :host     => name,
    :url      => sprintf( '%s/v1/objects/usergroups/%s', @icingaApiUrlBase, name ),
    :headers  => @headers,
    :options  => @options
  } )

  return JSON.pretty_generate( result )

end