hetzner-api 0.0.1 → 0.0.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.
data/README.rdoc CHANGED
@@ -1,9 +1,38 @@
1
1
  = hetzner-api
2
2
 
3
- A HTTParty based wrapper for Hetzner.de's server management interface.
4
- see http://wiki.hetzner.de/index.php/Robot_Webservice for details.
3
+ A HTTParty[http://httparty.rubyforge.org/] based wrapper for Hetzner.de's server management API.
4
+
5
+ see http://wiki.hetzner.de/index.php/Robot_Webservice_en for details.
6
+
7
+ == Installation
8
+
9
+ <b>gem install hetzner-api</b>
10
+
11
+ (you may want to use sudo for that.)
12
+
13
+ == Example
14
+
15
+ <tt>h = Hetzner::API.new "username", "password"</tt>
16
+
17
+ <tt>h.reset? "111.111.111.111"</tt>
18
+
19
+ <tt>h.enable_rescue! "111.111.111.111", "linux", "64"</tt>
20
+
21
+ <tt>h.reset! "111.111.111.111", :sw</tt>
22
+
23
+ <tt>h.wol! "111.111.111.222"</tt>
24
+
25
+ <tt>h.rdns! "111.111.111.222", "web100.falkenstein.de.example.com"</tt>
26
+
27
+ == Readme (rdoc)
28
+
29
+ <b>http://rdoc.info/github/rmoriz/hetzner-api</b>
30
+
31
+
32
+ == WARNING!
33
+
34
+ This is not an official Hetzner AG project.
5
35
 
6
- This is not an official Hetzner AG software!
7
36
  The gem and the author are not related to Hetzner AG!
8
37
 
9
38
  <b>Use at your very own risk! Satisfaction NOT guaranteed!</b>
@@ -11,3 +40,7 @@ The gem and the author are not related to Hetzner AG!
11
40
  == Copyright
12
41
 
13
42
  Copyright (c) 2010 Roland Moriz. See LICENSE for details.
43
+
44
+ {Ruby on Rails Entwicklung}[http://moriz.de/] -> Moriz GmbH
45
+
46
+ {Ruby on Rails Hosting}[http://rails.io/] -> Rails.io
data/Rakefile CHANGED
@@ -11,6 +11,7 @@ begin
11
11
  gem.homepage = "http://github.com/rmoriz/hetzner-api"
12
12
  gem.authors = ["Roland Moriz"]
13
13
  gem.add_development_dependency "rspec", ">= 1.2.9"
14
+ gem.add_dependency "httparty", ">= 0.6.1"
14
15
  end
15
16
  Jeweler::GemcutterTasks.new
16
17
  rescue LoadError
@@ -38,7 +39,7 @@ Rake::RDocTask.new do |rdoc|
38
39
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
39
40
 
40
41
  rdoc.rdoc_dir = 'rdoc'
41
- rdoc.title = "hetzner #{version}"
42
+ rdoc.title = "hetzner-api #{version}"
42
43
  rdoc.rdoc_files.include('README*')
43
44
  rdoc.rdoc_files.include('lib/**/*.rb')
44
45
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/hetzner-api.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{hetzner-api}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roland Moriz"]
12
- s.date = %q{2010-09-02}
12
+ s.date = %q{2010-09-03}
13
13
  s.description = %q{A small, unofficial wrapper for Hetzner.de's API (server management)}
14
14
  s.email = %q{roland@rails.io}
15
15
  s.extra_rdoc_files = [
@@ -53,11 +53,14 @@ Gem::Specification.new do |s|
53
53
 
54
54
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
55
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
56
+ s.add_runtime_dependency(%q<httparty>, [">= 0.6.1"])
56
57
  else
57
58
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
59
+ s.add_dependency(%q<httparty>, [">= 0.6.1"])
58
60
  end
59
61
  else
60
62
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
63
+ s.add_dependency(%q<httparty>, [">= 0.6.1"])
61
64
  end
62
65
  end
63
66
 
data/lib/api/boot.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Boot
4
+ # lists boot options for a given IP address/server or all servers of the account
4
5
  def boot?(ip = nil)
5
6
  path = "/boot"
6
7
  path << "/#{ip}" if ip
data/lib/api/failover.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Failover
4
+ # queries the failover status of one IP address or all failover IP addresses of the account
4
5
  def failover?(ip = nil)
5
6
  path = "/failover"
6
7
  path << "/#{ip}" if @ip
7
8
  perform_get path
8
9
  end
9
10
 
11
+ # redirects the failover_ip to another server ip
10
12
  def failover!(failover_ip, active_server_ip)
11
13
  path = "/rdns/#{failover_ip}"
12
14
  perform_post path, :query => { :active_server_ip => active_server_ip }
data/lib/api/rdns.rb CHANGED
@@ -1,21 +1,27 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Rdns
4
+ # queries the reverse mapping status of one IP address
4
5
  def rdns?(ip)
5
6
  path = "/rdns/#{ip}"
6
7
  perform_get path
7
8
  end
8
9
 
10
+ # creates or updates a reverse mapping record.
11
+ # ptr contains a hostname
9
12
  def rdns!(ip, ptr)
10
13
  path = "/rdns/#{ip}"
11
14
  perform_post path, :query => { :ptr => ptr }
12
15
  end
13
16
 
17
+ # creates a reverse mapping record. fails if already one exists
18
+ # ptr contains a hostname
14
19
  def initialize_rdns!(ip, ptr)
15
20
  path = "/rdns/#{ip}"
16
21
  perform_put path, :query => { :ptr => ptr }
17
22
  end
18
23
 
24
+ # delete the reverse mapping of one IP address
19
25
  def delete_rdns!(ip)
20
26
  path = "/rdns/#{ip}"
21
27
  perform_delete path
data/lib/api/rescue.rb CHANGED
@@ -1,10 +1,16 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Rescue
4
+ # enables the rescue systm for given IP address/server using <em>os</em> (operating system) and <em>arch</em> (architecture)
5
+ #
6
+ # see <em>boot?</em> method to query the API for available options
7
+ #
8
+ # defaults to 64bit Linux
4
9
  def enable_rescue!(ip, os = 'linux', arch = '64')
5
10
  perform_post "/boot/#{ip}/rescue", :query => { :os => os, :arch => arch }
6
11
  end
7
12
 
13
+ # disables the rescue system for a given IP address/server
8
14
  def disable_rescue!(ip)
9
15
  perform_delete "/boot/#{ip}/rescue"
10
16
  end
data/lib/api/reset.rb CHANGED
@@ -1,12 +1,19 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Reset
4
+ # returns the reset status of a given IP address or all servers of the account
4
5
  def reset?(ip = nil)
5
6
  path = "/reset"
6
7
  path << "/#{ip}" if ip
7
8
  perform_get path
8
9
  end
9
10
 
11
+ # resets a server by its IP address.
12
+ #
13
+ # <em>type</em> is one of:
14
+ # * <b>sw</b> (software reset)
15
+ # * <b>hw</b> (hardware reset)
16
+ # * <b>man</b> (manual reset)
10
17
  def reset!(ip, type)
11
18
  perform_post "/reset/#{ip}", :query => { :type => type }
12
19
  end
data/lib/api/vnc.rb CHANGED
@@ -1,16 +1,21 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module VNC
4
+ # queries the vnc boot status of one IP address/server
4
5
  def boot_vnc?(ip)
5
6
  path = "/boot/#{ip}/vnc"
6
7
  perform_get path
7
8
  end
8
-
9
+
10
+ # enables vnc boot option for one IP address/server
11
+ #
12
+ # see <em>Boot</em> to query the API for available options
9
13
  def boot_vnc!(ip, dist, arch, lang)
10
14
  path = "/boot/#{ip}/vnc"
11
15
  perform_post path, :query => { :dist => dist, :arch => arch, :lang => lang }
12
16
  end
13
-
17
+
18
+ # disables the vnc boot status of one IP address/server
14
19
  def disable_boot_vnc!(ip)
15
20
  path = "/boot/#{ip}/vnc"
16
21
  perform_delete path
data/lib/api/wol.rb CHANGED
@@ -1,10 +1,13 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module WOL
4
+ # queries the WOL of one IP address/server
4
5
  def wol?(ip)
5
6
  path = "/wol/#{ip}"
6
7
  perform_get path
7
8
  end
9
+
10
+ # triggers a WOL packet for given IP address/server
8
11
  def wol!(ip)
9
12
  path = "/wol/#{ip}"
10
13
  perform_post path
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
 
4
4
  require 'rubygems'
5
- require 'hetzner'
5
+ require 'hetzner-api'
6
6
  require 'spec'
7
7
  require 'spec/autorun'
8
8
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Roland Moriz
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-02 00:00:00 +02:00
17
+ date: 2010-09-03 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -31,6 +31,20 @@ dependencies:
31
31
  version: 1.2.9
32
32
  type: :development
33
33
  version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: httparty
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 6
44
+ - 1
45
+ version: 0.6.1
46
+ type: :runtime
47
+ version_requirements: *id002
34
48
  description: A small, unofficial wrapper for Hetzner.de's API (server management)
35
49
  email: roland@rails.io
36
50
  executables: []