Class: VagrantPlugins::Sakura::Driver::API

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-sakura/driver/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(access_token, access_token_secret, zone_id) ⇒ API

Returns a new instance of API.



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/vagrant-sakura/driver/api.rb', line 12

def initialize(access_token, access_token_secret, zone_id)
  @logger = Log4r::Logger.new("vagrant::provider::sakura")

  @access_token = access_token
  @access_token_secret = access_token_secret
  @prefix = "/cloud/zone/#{zone_id}/api/cloud/1.1"

  @https = Net::HTTP.new(APIHOST, 443)
  @https.use_ssl = true
  @https.ca_file = CERTFILE
  @https.verify_mode = OpenSSL::SSL::VERIFY_PEER
  @https.verify_depth = 3
end

Instance Method Details

#delete(resource, data = nil) ⇒ Object



26
27
28
29
30
# File 'lib/vagrant-sakura/driver/api.rb', line 26

def delete(resource, data = nil)
  request = Net::HTTP::Delete.new(@prefix + resource)
  request.body = data.to_json if data
  do_request request
end

#get(resource, data = nil) ⇒ Object



32
33
34
35
36
# File 'lib/vagrant-sakura/driver/api.rb', line 32

def get(resource, data = nil)
  request = Net::HTTP::Get.new(@prefix + resource)
  request.body = data.to_json if data
  do_request request
end

#post(resource, data) ⇒ Object



38
39
40
41
42
# File 'lib/vagrant-sakura/driver/api.rb', line 38

def post(resource, data)
  request = Net::HTTP::Post.new(@prefix + resource)
  request.body = data.to_json
  do_request request
end

#put(resource, data = nil) ⇒ Object



44
45
46
47
48
# File 'lib/vagrant-sakura/driver/api.rb', line 44

def put(resource, data = nil)
  request = Net::HTTP::Put.new(@prefix + resource)
  request.body = if data then data.to_json else '' end
  do_request request
end