podnix 0.1.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 +7 -0
- data/.gitignore +19 -0
- data/.project +12 -0
- data/.travis.yml +11 -0
- data/Gemfile +5 -0
- data/LICENSE +202 -0
- data/README.md +69 -0
- data/Rakefile +10 -0
- data/lib/certs/cacert.pem +3554 -0
- data/lib/podnix/api/errors.rb +27 -0
- data/lib/podnix/api/images.rb +18 -0
- data/lib/podnix/api/models.rb +18 -0
- data/lib/podnix/api/servers.rb +74 -0
- data/lib/podnix/api/version.rb +5 -0
- data/lib/podnix/api.rb +208 -0
- data/lib/podnix/core/auth.rb +91 -0
- data/lib/podnix/core/config.rb +44 -0
- data/lib/podnix/core/error.rb +97 -0
- data/lib/podnix/core/images.rb +239 -0
- data/lib/podnix/core/images_collection.rb +148 -0
- data/lib/podnix/core/json_compat.rb +162 -0
- data/lib/podnix/core/server.rb +375 -0
- data/lib/podnix/core/server_collection.rb +166 -0
- data/lib/podnix/core/stuff.rb +69 -0
- data/lib/podnix/core/text.rb +88 -0
- data/lib/podnix.rb +1 -0
- data/podnix.gemspec +25 -0
- data/test/test_helper.rb +38 -0
- data/test/test_images.rb +15 -0
- data/test/test_models.rb +15 -0
- data/test/test_servers.rb +83 -0
- metadata +163 -0
data/podnix.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "podnix/api/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "podnix"
|
7
|
+
s.version = Podnix::API::VERSION
|
8
|
+
s.authors = ["Kishorekumar Neelamegam, Thomas Alrin, Rajthilak"]
|
9
|
+
s.email = ["nkishore@megam.co.in","alrin@megam.co.in", "rajthilak@megam.co.in"]
|
10
|
+
s.homepage = "http://github.com/indykish/podnix"
|
11
|
+
s.license = "Apache V2"
|
12
|
+
s.extra_rdoc_files = ["README.md", "LICENSE" ]
|
13
|
+
s.summary = %q{Ruby Client for the Podnix Cloud}
|
14
|
+
s.description = %q{Ruby Client for the Podnix Cloud. Performs REST based HTTP calls to https://api.podnix.com }
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
s.add_runtime_dependency 'excon'
|
20
|
+
s.add_runtime_dependency 'highline'
|
21
|
+
s.add_runtime_dependency 'yajl-ruby'
|
22
|
+
s.add_runtime_dependency 'multi_json'
|
23
|
+
s.add_development_dependency 'minitest'
|
24
|
+
s.add_development_dependency 'rake'
|
25
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../lib/podnix/api")
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
gem 'minitest' # ensure we are using the gem version
|
5
|
+
require 'minitest/autorun'
|
6
|
+
require 'time'
|
7
|
+
|
8
|
+
SANDBOX_HOST_OPTIONS = {
|
9
|
+
:scheme => 'https',
|
10
|
+
:host => 'api.podnix.com',
|
11
|
+
:nonblock => false,
|
12
|
+
:port => 443
|
13
|
+
|
14
|
+
}
|
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
|
+
|
26
|
+
def podnix(options={})
|
27
|
+
s_options = SANDBOX_HOST_OPTIONS.merge({
|
28
|
+
:api_key => sandbox_apikey
|
29
|
+
})
|
30
|
+
options = s_options.merge(options)
|
31
|
+
mg=Podnix::API.new(options)
|
32
|
+
end
|
33
|
+
|
34
|
+
def sandbox_apikey
|
35
|
+
ENV['PODNIX_API_KEY']
|
36
|
+
end
|
37
|
+
|
38
|
+
|
data/test/test_images.rb
ADDED
data/test/test_models.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
|
2
|
+
class TestApps < MiniTest::Unit::TestCase
|
3
|
+
|
4
|
+
|
5
|
+
# https://api.podnix.com/servers/list?key=XXX
|
6
|
+
def test_get_servers
|
7
|
+
response = podnix.get_servers
|
8
|
+
#puts "=================> Response ========>"
|
9
|
+
#puts response.inspect
|
10
|
+
assert_equal(200, response.status)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
#STATUS 0=pending, 1=running, 2=deleted, 3=stopped
|
16
|
+
|
17
|
+
def test_get_server
|
18
|
+
response = podnix.get_server({:id => '395'})
|
19
|
+
#puts "=================> Response ========>"
|
20
|
+
#puts response.inspect
|
21
|
+
assert_equal(200, response.status)
|
22
|
+
end
|
23
|
+
|
24
|
+
#---------------------------------
|
25
|
+
#MODELS ID VCORE RAM(GB)
|
26
|
+
#Small 1 1 2
|
27
|
+
#Medium 2 2 4
|
28
|
+
#Large 4 4 8
|
29
|
+
#Jumbo 8 8 16
|
30
|
+
#---------------------------------
|
31
|
+
#IMAGES ID
|
32
|
+
#Ubuntu 12.04.2 LTS (64bit) 2
|
33
|
+
#Ubuntu 13.04 (64bit) 37
|
34
|
+
#-----------------------------------
|
35
|
+
#PASSWORD
|
36
|
+
# Must contain at least 9 chars and include a lower case char, an upper case char and a number.
|
37
|
+
|
38
|
+
#SSD Not require,.If this parameter is set to 1, the system drive will be located on a SSD drive.
|
39
|
+
|
40
|
+
#STORAGE (10 - 200)
|
41
|
+
|
42
|
+
# https://api.podnix.com/servers/add?&name=test&model=1&image=2&password=Secret123&ssd=1&storage=10&key=XXX
|
43
|
+
|
44
|
+
|
45
|
+
def test_add_server
|
46
|
+
tmp_hash = {
|
47
|
+
:name => "tom.megam.co",
|
48
|
+
:model => "1",
|
49
|
+
:image => "37",
|
50
|
+
:password => "Team4megam",
|
51
|
+
:ssd => "1",
|
52
|
+
:storage => 10
|
53
|
+
}
|
54
|
+
response = podnix.add_server({
|
55
|
+
:name => "tom.megam.co",
|
56
|
+
:model => "1",
|
57
|
+
:image => "37",
|
58
|
+
:password => "Team4megam",
|
59
|
+
:ssd => "1",
|
60
|
+
:storage => '10'
|
61
|
+
})
|
62
|
+
assert_equal(201, response.status)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_start_Server
|
66
|
+
response = podnix.start_server({:id => '401'})
|
67
|
+
assert_equal(201, response.status)
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
def test_stop_Server
|
73
|
+
response = podnix.stop_server({:id => '401'})
|
74
|
+
assert_equal(201, response.status)
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_delete_Server
|
78
|
+
response = podnix.delete_server({:id => '401'})
|
79
|
+
assert_equal(201, response.status)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
metadata
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: podnix
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kishorekumar Neelamegam, Thomas Alrin, Rajthilak
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-12-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: excon
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: highline
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yajl-ruby
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: multi_json
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: 'Ruby Client for the Podnix Cloud. Performs REST based HTTP calls to
|
98
|
+
https://api.podnix.com '
|
99
|
+
email:
|
100
|
+
- nkishore@megam.co.in
|
101
|
+
- alrin@megam.co.in
|
102
|
+
- rajthilak@megam.co.in
|
103
|
+
executables: []
|
104
|
+
extensions: []
|
105
|
+
extra_rdoc_files:
|
106
|
+
- README.md
|
107
|
+
- LICENSE
|
108
|
+
files:
|
109
|
+
- .gitignore
|
110
|
+
- .project
|
111
|
+
- .travis.yml
|
112
|
+
- Gemfile
|
113
|
+
- LICENSE
|
114
|
+
- README.md
|
115
|
+
- Rakefile
|
116
|
+
- lib/certs/cacert.pem
|
117
|
+
- lib/podnix.rb
|
118
|
+
- lib/podnix/api.rb
|
119
|
+
- lib/podnix/api/errors.rb
|
120
|
+
- lib/podnix/api/images.rb
|
121
|
+
- lib/podnix/api/models.rb
|
122
|
+
- lib/podnix/api/servers.rb
|
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
|
+
- lib/podnix/core/text.rb
|
134
|
+
- podnix.gemspec
|
135
|
+
- test/test_helper.rb
|
136
|
+
- test/test_images.rb
|
137
|
+
- test/test_models.rb
|
138
|
+
- test/test_servers.rb
|
139
|
+
homepage: http://github.com/indykish/podnix
|
140
|
+
licenses:
|
141
|
+
- Apache V2
|
142
|
+
metadata: {}
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - '>='
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
requirements: []
|
158
|
+
rubyforge_project:
|
159
|
+
rubygems_version: 2.1.11
|
160
|
+
signing_key:
|
161
|
+
specification_version: 4
|
162
|
+
summary: Ruby Client for the Podnix Cloud
|
163
|
+
test_files: []
|