podnix 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b410c0fe8125604df4f3b6959bb1aebbc7f081d1
4
- data.tar.gz: 91729b65fcb9c44644fe191a6fd80d369a1ec262
3
+ metadata.gz: a349b4dd9627768d083336b20bb6bc9edc8137a8
4
+ data.tar.gz: 6ea2a8b1a4d1ac62331d731f70e9c89f7d8027ea
5
5
  SHA512:
6
- metadata.gz: dc0efb434667656459d7de1b25b39d8eadbf0eb86e22bd319bbe64308257443580c0fd2f7c36920704dddf0eb0c72b0b77e07069f66d93abc774e52d9be6e314
7
- data.tar.gz: c608b141688693650d09535632c6f9d6e5857c2df4ab840e93f7432e07d1d3133b4b93b095cea1091679be4a5f548a35856b314ce5088895ad8113aaaf1657e2
6
+ metadata.gz: 76783f66dcc6572d0ee902ddd8854f5fdee4050d10be68da51aec442566122d4bff0ac18bc71d67b636630874c7376b36b9923dc2e50e29171df75d44de5cb5e
7
+ data.tar.gz: 88d5c594b87b44570aa4e5f4d6071fc8e2961b8984c90520895614ad846b40c8ed4b6d3d6122b832e440ab12f2dea5300651dc13660c7f68850985456400b0cd
@@ -19,14 +19,7 @@ require "podnix/api/version"
19
19
  require "podnix/api/images"
20
20
  require "podnix/api/models"
21
21
  require "podnix/api/servers"
22
- require "podnix/core/stuff"
23
22
  require "podnix/core/text"
24
- require "podnix/core/json_compat"
25
- require "podnix/core/error"
26
- require "podnix/core/images"
27
- require "podnix/core/images_collection"
28
- require "podnix/core/server"
29
- require "podnix/core/server_collection"
30
23
 
31
24
  #we may nuke logs out of the api
32
25
  #require "megam/api/logs"
@@ -49,7 +42,6 @@ module Podnix
49
42
  }
50
43
 
51
44
  QUERY = {
52
- :key => ENV['PODNIX_API_KEY']
53
45
  }
54
46
 
55
47
  OPTIONS = {
@@ -79,9 +71,9 @@ module Podnix
79
71
  # 3. Upon merge of the options, the api_key, email as available in the @options is deleted.
80
72
  def initialize(options={})
81
73
  @options = OPTIONS.merge(options)
82
- @api_key = @options.delete(:api_key) || ENV['PODNIX_API_KEY']
83
- #@email = @options.delete(:email)
84
- raise ArgumentError, "You must specify [:email, :api_key]" if @api_key.nil?
74
+ @key = options[:key]
75
+ @options[:query] = QUERY.merge(options)
76
+ raise ArgumentError, "You must specify podnix_api_key in knife.rb or ENV['PODNIX_API_KEY']" if @key.empty? && !ENV['PODNIX_API_KEY']
85
77
  end
86
78
 
87
79
  def request(params,&block)
@@ -163,8 +155,10 @@ module Podnix
163
155
  #Make a lazy connection.
164
156
  def connection
165
157
 
166
- #@options[:path]=@options[:path]+'&key='+"#{ENV['PODNIX_API_KEY']}"
167
- @options[:query] = QUERY.merge(@options[:query])
158
+ if ENV['PODNIX_API_KEY'] && @options[:query][:key].empty?
159
+ QUERY[:key]="#{ENV['PODNIX_API_KEY']}"
160
+ @options[:query] = @options[:query].merge(QUERY)
161
+ end
168
162
  @options[:headers] = HEADERS.merge(@options[:headers])
169
163
 
170
164
  #SSL certificate file paths
@@ -28,7 +28,7 @@ module Podnix
28
28
  @options = { :path => "/servers/add",:body => ""}.merge(@options)
29
29
  @options[:query] = @options[:query].merge(new_server)
30
30
  request(
31
- :expects => 201,
31
+ :expects => 200,
32
32
  :method => :post,
33
33
  :body => @options[:body]
34
34
  )
@@ -1,5 +1,5 @@
1
1
  module Podnix
2
2
  class API
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -13,16 +13,7 @@ SANDBOX_HOST_OPTIONS = {
13
13
 
14
14
  }
15
15
 
16
- def nested_merge(other_hash={})
17
- merge(other_hash) do |key, oldval, newval|
18
- if oldval.is_a? Hash
19
- oldval.nested_merge(newval)
20
- else
21
- newval
22
- end
23
- end
24
- end
25
-
16
+
26
17
  def podnix(options={})
27
18
  s_options = SANDBOX_HOST_OPTIONS.merge({
28
19
  :api_key => sandbox_apikey
@@ -6,6 +6,8 @@ class TestApps < MiniTest::Unit::TestCase
6
6
 
7
7
  response = podnix.get_images
8
8
  assert_equal(200, response.status)
9
+ response.data[:body]['data'].each do |im|
10
+ end
9
11
  end
10
12
 
11
13
 
@@ -5,8 +5,6 @@ class TestApps < MiniTest::Unit::TestCase
5
5
  # https://api.podnix.com/servers/list?key=XXX
6
6
  def test_get_servers
7
7
  response = podnix.get_servers
8
- #puts "=================> Response ========>"
9
- #puts response.inspect
10
8
  assert_equal(200, response.status)
11
9
  end
12
10
 
@@ -16,8 +14,6 @@ class TestApps < MiniTest::Unit::TestCase
16
14
 
17
15
  def test_get_server
18
16
  response = podnix.get_server({:id => '395'})
19
- #puts "=================> Response ========>"
20
- #puts response.inspect
21
17
  assert_equal(200, response.status)
22
18
  end
23
19
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: podnix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kishorekumar Neelamegam, Thomas Alrin, Rajthilak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-06 00:00:00.000000000 Z
11
+ date: 2013-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -121,15 +121,6 @@ files:
121
121
  - lib/podnix/api/models.rb
122
122
  - lib/podnix/api/servers.rb
123
123
  - lib/podnix/api/version.rb
124
- - lib/podnix/core/auth.rb
125
- - lib/podnix/core/config.rb
126
- - lib/podnix/core/error.rb
127
- - lib/podnix/core/images.rb
128
- - lib/podnix/core/images_collection.rb
129
- - lib/podnix/core/json_compat.rb
130
- - lib/podnix/core/server.rb
131
- - lib/podnix/core/server_collection.rb
132
- - lib/podnix/core/stuff.rb
133
124
  - lib/podnix/core/text.rb
134
125
  - podnix.gemspec
135
126
  - test/test_helper.rb
@@ -1,91 +0,0 @@
1
- # Copyright:: Copyright (c) 2012-2013 Megam Systems, Inc.
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
- module Podnix
17
- class Auth
18
-
19
- def initialize
20
- @some_msg = {}
21
- end
22
-
23
- #used by resque workers and any other background job
24
- def auth
25
- self
26
- end
27
-
28
- def podnix_rest
29
- Podnix::API.new(Podnix::Config[:email], Podnix::Config[:api_key])
30
- end
31
-
32
- def some_msg(arg=nil)
33
- if arg != nil
34
- @some_msg = arg
35
- else
36
- @some_msg
37
- end
38
- end
39
-
40
- def error?
41
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
42
- end
43
-
44
- # Transform the ruby obj -> to a Hash
45
- def to_hash
46
- index_hash = Hash.new
47
- index_hash["json_claz"] = self.class.name
48
- index_hash["some_msg"] = some_msg
49
- index_hash
50
- end
51
-
52
- # Serialize this object as a hash: called from JsonCompat.
53
- # Verify if this called from JsonCompat during testing.
54
- def to_json(*a)
55
- for_json.to_json(*a)
56
- end
57
-
58
- def for_json
59
- result = { }
60
- result
61
- end
62
-
63
- # Create a Podnix::Account from JSON (used by the backgroud job workers)
64
- def self.json_create(o)
65
- acct = new
66
- acct.some_msg[:code] = o["code"] if o.has_key?("code")
67
- acct.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
68
- acct.some_msg[:msg]= o["msg"] if o.has_key?("msg")
69
- acct.some_msg[:links] = o["links"] if o.has_key?("links")
70
- acct
71
- end
72
-
73
- def self.from_hash(o)
74
- acct = self.new()
75
- acct.from_hash(o)
76
- acct
77
- end
78
-
79
- # just an auth
80
- def self.auth
81
- podnix_rest.post_auth
82
- self
83
- end
84
-
85
-
86
- def to_s
87
- Podnix::Stuff.styled_hash(to_hash)
88
- #"---> Megam::Account:[error=#{error?}]\n"+
89
- end
90
- end
91
- end
@@ -1,44 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2012-2013 Megam Systems.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- require 'mixlib/config'
18
-
19
- module Podnix
20
- class Config
21
-
22
- extend Mixlib::Config
23
-
24
- def self.inspect
25
- configuration.inspect
26
- end
27
-
28
- podnix_api_server_url "http://localhost:9000"
29
-
30
- podnix_api_version "v1"
31
-
32
- email nil
33
- api_key nil
34
-
35
- # Set these to enable SSL authentication / mutual-authentication
36
- # with the server
37
- ssl_client_cert nil
38
- ssl_client_key nil
39
- ssl_verify_mode :verify_none
40
- ssl_ca_path nil
41
- ssl_ca_file nil
42
-
43
- end
44
- end
@@ -1,97 +0,0 @@
1
- # Copyright:: Copyright (c) 2012-2013 Megam Systems, Inc.
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
- module Podnix
17
- class Error
18
-
19
- def initialize
20
- @some_msg = {}
21
- end
22
-
23
- #used by resque workers and any other background job
24
- def auth
25
- self
26
- end
27
-
28
- def podnix_rest
29
- Podnix::API.new(Podnix::Config[:email], Podnix::Config[:api_key])
30
- end
31
-
32
- def some_msg(arg=nil)
33
- if arg != nil
34
- @some_msg = arg
35
- else
36
- @some_msg
37
- end
38
- end
39
-
40
- def error?
41
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
42
- end
43
-
44
- # Transform the ruby obj -> to a Hash
45
- def to_hash
46
- index_hash = Hash.new
47
- index_hash["json_claz"] = self.class.name
48
- index_hash["some_msg"] = some_msg
49
- index_hash
50
- end
51
-
52
- # Serialize this object as a hash: called from JsonCompat.
53
- # Verify if this called from JsonCompat during testing.
54
- def to_json(*a)
55
- for_json.to_json(*a)
56
- end
57
-
58
- def for_json
59
- result = { }
60
- result
61
- end
62
-
63
- # Create a Megam::Account from JSON (used by the backgroud job workers)
64
- def self.json_create(o)
65
- acct = new
66
- acct.some_msg[:code] = o["code"] if o.has_key?("code")
67
- acct.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
68
- acct.some_msg[:msg]= o["msg"] if o.has_key?("msg")
69
- acct.some_msg[:links] = o["links"] if o.has_key?("links")
70
- acct
71
- end
72
-
73
- def self.from_hash(o)
74
- acct = self.new()
75
- acct.from_hash(o)
76
- acct
77
- end
78
-
79
- def from_hash(o)
80
- @some_msg[:code] = o["code"] if o.has_key?("code")
81
- @some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
82
- @some_msg[:msg]= o["msg"] if o.has_key?("msg")
83
- @some_msg[:links] = o["links"] if o.has_key?("links")
84
- self
85
- end
86
-
87
- # just an auth
88
- def self.auth
89
- podnix_rest.post_auth
90
- self
91
- end
92
-
93
-
94
- def to_s
95
- Podnix::Stuff.styled_hash(to_hash) end
96
- end
97
- end
@@ -1,239 +0,0 @@
1
- # Copyright:: Copyright (c) 2012, 2013 Megam Systems
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
- module Podnix
17
- class AppRequest
18
- # Each notify entry is a resource/action pair, modeled as an
19
- # Struct with a #resource and #action member
20
- =begin
21
- def self.hash_tree
22
- Hash.new do |hash, key|
23
- hash[key] = hash_tree
24
- end
25
- end
26
- =end
27
-
28
- def initialize
29
- @id = nil
30
- @req_type = nil
31
- @appdefns_id = nil
32
- @node_name = nil
33
- @lc_apply = nil
34
- @lc_additional = nil
35
- @lc_when = nil
36
- @created_at = nil
37
- @some_msg = {}
38
- end
39
- def appreq
40
- self
41
- end
42
-
43
- def podnix_rest
44
- options = { :email => Megam::Config[:email], :api_key => Megam::Config[:api_key]}
45
- Podnix::API.new(options)
46
- end
47
-
48
- def id(arg=nil)
49
- if arg != nil
50
- @id = arg
51
- else
52
- @id
53
- end
54
- end
55
-
56
- def req_type(arg=nil)
57
- if arg != nil
58
- @req_type = arg
59
- else
60
- @req_type
61
- end
62
- end
63
-
64
- def appdefns_id(arg=nil)
65
- if arg != nil
66
- @appdefns_id = arg
67
- else
68
- @appdefns_id
69
- end
70
- end
71
-
72
- def node_name(arg=nil)
73
- if arg != nil
74
- @node_name = arg
75
- else
76
- @node_name
77
- end
78
- end
79
-
80
- def lc_apply(arg=nil)
81
- if arg != nil
82
- @lc_apply = arg
83
- else
84
- @lc_apply
85
- end
86
- end
87
-
88
- def lc_additional(arg=nil)
89
- if arg != nil
90
- @lc_additional = arg
91
- else
92
- @lc_additional
93
- end
94
- end
95
-
96
- def lc_when(arg=nil)
97
- if arg != nil
98
- @lc_when = arg
99
- else
100
- @lc_when
101
- end
102
- end
103
-
104
- def created_at(arg=nil)
105
- if arg != nil
106
- @created_at = arg
107
- else
108
- @created_at
109
- end
110
- end
111
- def some_msg(arg=nil)
112
- if arg != nil
113
- @some_msg = arg
114
- else
115
- @some_msg
116
- end
117
- end
118
-
119
- def error?
120
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
121
- end
122
-
123
- # Transform the ruby obj -> to a Hash
124
- def to_hash
125
- index_hash = Hash.new
126
- index_hash["json_claz"] = self.class.name
127
- index_hash["id"] = id
128
- index_hash["req_type"] = req_type
129
- index_hash["appdefns_id"] = appdefns_id
130
- index_hash["node_name"] = node_name
131
- index_hash["lc_apply"] = lc_apply
132
- index_hash["lc_additional"] = lc_additional
133
- index_hash["lc_when"] = lc_when
134
- index_hash["created_at"] = created_at
135
- index_hash["some_msg"] = some_msg
136
- index_hash
137
- end
138
-
139
- # Serialize this object as a hash: called from JsonCompat.
140
- # Verify if this called from JsonCompat during testing.
141
- def to_json(*a)
142
- for_json.to_json(*a)
143
- end
144
-
145
- def for_json
146
- result = {
147
- "id" => id,
148
- "req_type" => req_type,
149
- "appdefns_id" => appdefns_id,
150
- "node_name" => node_name,
151
- "lc_apply" => lc_apply,
152
- "lc_additional" => lc_additional,
153
- "lc_when" => lc_when,
154
- "created_at" => created_at
155
- }
156
- result
157
- end
158
-
159
-
160
- # Create a Megam::Node from NodeResult-JSON
161
- #
162
- #[{
163
- #"id":"NOD362212018897289216",
164
- #"accounts_id":"ACT362211962353876992",
165
- #"json_claz":"Megam::Node",
166
- #"request":{
167
- #"req_id":"NOD362212018897289216",
168
- #"command":"commands"
169
- #},
170
- #"predefs":{
171
- #"name":"",
172
- #"scm":"",
173
- #"war":"",
174
- #"db":"",
175
- #"queue":""
176
- #}
177
- #}]
178
- #
179
- def self.json_create(o)
180
- appreq = new
181
- appreq.id(o["id"]) if o.has_key?("id")
182
- appreq.req_type(o["req_type"]) if o.has_key?("req_type")
183
- appreq.appdefns_id(o["appdefns_id"]) if o.has_key?("appdefns_id")
184
- appreq.node_name(o["node_name"]) if o.has_key?("node_name")
185
- appreq.lc_apply(o["lc_apply"]) if o.has_key?("lc_apply")
186
- appreq.lc_additional(o["lc_additional"]) if o.has_key?("lc_additional")
187
- appreq.lc_when(o["lc_when"]) if o.has_key?("lc_when")
188
- appreq.created_at(o["created_at"]) if o.has_key?("created_at")
189
-
190
- appreq.some_msg[:code] = o["code"] if o.has_key?("code")
191
- appreq.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
192
- appreq.some_msg[:msg]= o["msg"] if o.has_key?("msg")
193
- appreq.some_msg[:links] = o["links"] if o.has_key?("links")
194
-
195
- appreq
196
- end
197
-
198
- def self.from_hash(o)
199
- appreq = self.new()
200
- appreq.from_hash(o)
201
- appreq
202
- end
203
-
204
- def from_hash(o)
205
- @id = o["id"] if o.has_key?("id")
206
- @req_type = o["req_type"] if o.has_key?("req_type")
207
- @appdefns_id = o["appdefns_id"] if o.has_key?("appdefns_id")
208
- @node_name = o["node_name"] if o.has_key?("node_name")
209
- @lc_apply = o["lc_apply"] if o.has_key?("lc_apply")
210
- @lc_additional = o["lc_additional"] if o.has_key?("lc_additional")
211
- @lc_when = o["lc_when"] if o.has_key?("lc_when")
212
- @created_at = o["created_at"] if o.has_key?("created_at")
213
- self
214
- end
215
-
216
- def self.create(o)
217
- acct = from_hash(o)
218
- acct.create
219
- end
220
-
221
- # Create the node via the REST API
222
- def create
223
- podnix_rest.post_appreq(to_hash)
224
- end
225
-
226
- # Load a account by email_p
227
- def self.list(node_name)
228
- appreq = self.new()
229
- appreq.podnix_rest.get_appreq(node_name)
230
- #self
231
- end
232
-
233
- def to_s
234
- Podnix::Stuff.styled_hash(to_hash)
235
- #"---> Megam::Account:[error=#{error?}]\n"+
236
- end
237
-
238
- end
239
- end