zabbixapi 0.5.0b4 → 0.5.0b5

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,6 +23,16 @@ class ZabbixApi
23
23
  delete(data)
24
24
  end
25
25
 
26
+ def create_or_update(data)
27
+ userid = get_id(:name => data[:name])
28
+ userid ? update(data.merge(:groupid => userid)) : create(data)
29
+ end
30
+
31
+ def update(data)
32
+ result = @client.api_request(:method => "hostgroup.update", :params => data)
33
+ result ? result['groupids'][0].to_i : nil
34
+ end
35
+
26
36
  def get_or_create(data)
27
37
  unless hostgroupid = get_id(data)
28
38
  hostgroupid = update(data)
@@ -94,7 +94,7 @@ class ZabbixApi
94
94
  # Create screen all graphs for host
95
95
  #
96
96
  # * *Args* :
97
- # - +data+ -> Hash with :host=> "hostname", :graphsid => [], [:hsize, :vsize]
97
+ # - +data+ -> Hash with :host=> "hostname", :graphsid => [], [:hsize, :vsize, :valign, :halign]
98
98
  # * *Returns* :
99
99
  # - Nil or Integer
100
100
  def get_or_create_for_host(data)
@@ -102,6 +102,8 @@ class ZabbixApi
102
102
  graphids = data[:graphids]
103
103
  screenitems = []
104
104
  hsize = data[:hsize] || 3
105
+ valign = data[:valign] || 2
106
+ halign = data[:halign] || 2
105
107
  vsize = data[:vsize] || ((graphids.size/hsize) + 1).to_i
106
108
  screenid = get_id(:name => screen_name)
107
109
  unless screenid
@@ -111,7 +113,9 @@ class ZabbixApi
111
113
  :resourcetype => 0,
112
114
  :resourceid => graphid,
113
115
  :x => (index % hsize).to_i,
114
- :y => (index % graphids.size/hsize).to_i
116
+ :y => (index % graphids.size/hsize).to_i,
117
+ :valign =>valign,
118
+ :halign =>halign
115
119
  }
116
120
  end
117
121
  screenid = create(
@@ -1,3 +1,3 @@
1
1
  class ZabbixApi
2
- VERSION = "0.5.0b4"
2
+ VERSION = "0.5.0b5"
3
3
  end
data/spec/localhost.rb CHANGED
@@ -51,6 +51,10 @@ describe ZabbixApi, "test_api" do
51
51
  zbx.hostgroups.get_or_create(:name => hostgroup).should be_kind_of(Integer)
52
52
  end
53
53
 
54
+ it "HOSTGROUP: Create or update" do
55
+ zbx.hostgroups.create_or_update(:name => hostgroup).should be_kind_of(Integer)
56
+ end
57
+
54
58
  it "HOSTGROUP: Get all" do
55
59
  zbx.hostgroups.all.should be_kind_of(Hash)
56
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zabbixapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0b4
4
+ version: 0.5.0b5
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
12
+ date: 2012-12-03 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Allows you to work with zabbix api from ruby.
15
15
  email:
@@ -59,7 +59,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
59
  version: '0'
60
60
  segments:
61
61
  - 0
62
- hash: 2258863443762518848
62
+ hash: -1736011782781099386
63
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements: