Class: VagrantSubutai::Rest::Bazaar

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-subutai/rest/bazaar.rb

Class Method Summary collapse

Class Method Details

.blueprint(blueprint, variables, peer_id, cookies) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 23

def self.blueprint(blueprint, variables, peer_id, cookies)
  uri = URI.parse(url + Configs::Bazaar::V1::BLUEPRINT)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Post.new(uri.request_uri, {'Cookie' => cookies,  'Content-Type' => 'application/x-www-form-urlencoded'})
  request.set_form_data({'blueprint' => blueprint.to_json, 'variables'=> variables.to_json, 'peers' => peer_id})

  https.request(request)
end

.domains(cookies) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 90

def self.domains(cookies)
  uri = URI.parse(url + Configs::Bazaar::V1::DOMAIN_LIST)

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Get.new(uri.request_uri, {'Cookie' => cookies,  'Content-Type' => 'application/json'})

  https.request(request)
end

.environment(cookies, params) ⇒ Object

Creates Environment



62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 62

def self.environment(cookies, params)
  uri = URI.parse(url + Configs::Bazaar::V1::ENVIRONMENTS)

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 21600 # 6 hours

  request = Net::HTTP::Post.new(uri.request_uri, {'Cookie' => cookies,  'Content-Type' => 'application/json'})
  request.body = params.to_json

  https.request(request)
end

.list(cookies) ⇒ Object

List of environments



104
105
106
107
108
109
110
111
112
113
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 104

def self.list(cookies)
  uri = URI.parse(url + Configs::Bazaar::V1::ENVIRONMENTS)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Get.new(uri.request_uri, {'Cookie' => cookies})
  https.request(request)
end

.log(cookies, subutai_id) ⇒ Object

Tracks environment create state logs



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 77

def self.log(cookies, subutai_id)
  uri = URI.parse(url + Configs::Bazaar::V1::LOG.gsub('{SUBUTAI_ID}', subutai_id))

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Get.new(uri.request_uri, {'Cookie' => cookies,  'Content-Type' => 'application/json'})

  https.request(request)
end

.login(email, password) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 36

def self.(email, password)
  uri = URI.parse(url + Configs::Bazaar::V1::LOGIN)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Post.new(uri.request_uri)
  request.set_form_data({'email' => email, 'password' => password})

  https.request(request)
end

.registered(fingerprint) ⇒ Object

Check is Peer Os registered to Bazaar



50
51
52
53
54
55
56
57
58
59
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 50

def self.registered(fingerprint)
  uri = URI.parse(url + Configs::Bazaar::V1::PEER.gsub('{FINGERPRINT}', fingerprint))
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Get.new(uri.request_uri)
  https.request(request)
end

.reserve(cookies, domain) ⇒ Object

Reserve domain



116
117
118
119
120
121
122
123
124
125
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 116

def self.reserve(cookies, domain)
  uri = URI.parse(url + Configs::Bazaar::V1::DOMAIN_RESERVE.gsub('{DOMAIN}', domain))
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Put.new(uri.request_uri, {'Cookie' => cookies})
  https.request(request)
end

.template_id(name, owner) ⇒ Object



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 140

def self.template_id(name, owner)
  uri = URI.parse(url + Configs::Bazaar::V1::TEMPLATE.gsub('{TEMPLATE_NAME}', name))
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Get.new(uri.request_uri)
  response = https.request(request)

  case response
  when Net::HTTPOK
    response = JSON.parse(response.body)
    response['id']
  when Net::HTTPNotFound
    Put.error "#{response.body} template name #{name}, owner #{owner}"
  end
end

.urlObject



127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 127

def self.url
  env = SubutaiConfig.get(:SUBUTAI_ENV)
  env = env.to_s

  if env == VagrantSubutai::Configs::Environment::PROD
    return VagrantSubutai::Configs::Bazaar::BASE_PROD
  elsif env == VagrantSubutai::Configs::Environment::MASTER
    return VagrantSubutai::Configs::Bazaar::BASE_MASTER
  elsif env == VagrantSubutai::Configs::Environment::DEV
    return VagrantSubutai::Configs::Bazaar::BASE_DEV
  end
end

.variables(subutai_json, peers_id, cookies) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/vagrant-subutai/rest/bazaar.rb', line 10

def self.variables(subutai_json, peers_id, cookies)
  uri = URI.parse(url + Configs::Bazaar::V1::VARIABLES)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  https.read_timeout = 3600 # an hour

  request = Net::HTTP::Post.new(uri.request_uri, {'Cookie' => cookies,  'Content-Type' => 'application/x-www-form-urlencoded'})
  request.set_form_data({'blueprint' => subutai_json.to_json, 'peers' => [peers_id]})

  https.request(request)
end