scalarium-api-wrapper 0.2.10 → 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.
- data/.gitignore +1 -0
- data/README.markdown +20 -3
- data/lib/scalarium-api-wrapper.rb +7 -0
- data/lib/scalarium-api-wrapper/api.rb +9 -2
- data/lib/scalarium-api-wrapper/version.rb +1 -1
- data/scalarium-api-wrapper.gemspec +1 -0
- data/spec/api_spec.rb +5 -0
- data/spec/configuration_spec.rb +10 -0
- data/spec/functional/api_functional_spec.rb +48 -0
- data/spec/functional/scalarium.yml.sample +5 -0
- metadata +21 -6
data/.gitignore
CHANGED
data/README.markdown
CHANGED
@@ -33,7 +33,7 @@ Setup
|
|
33
33
|
<pre>
|
34
34
|
<code>Scalarium.configuration.api_token = "YOUR TOKEN"</code></pre>
|
35
35
|
|
36
|
-
You can obtain your token at ([https://manage.scalarium.com/users](https://manage.scalarium.com/users)) - I highly encourage to setup new user
|
36
|
+
You can obtain your token at ([https://manage.scalarium.com/users](https://manage.scalarium.com/users)) - I highly encourage to setup a new user in scalarium (i.e. devdeploy) and then render him new API_TOKEN.
|
37
37
|
|
38
38
|
|
39
39
|
|
@@ -54,7 +54,19 @@ and then for example execute a deploy for one of your applications:
|
|
54
54
|
<code>api.deploy_application('application_id')</code>
|
55
55
|
</pre>
|
56
56
|
|
57
|
-
|
57
|
+
This will return hash containing information about current deploy:
|
58
|
+
[Scalarium Documentation details](http://support.scalarium.com/kb/api/fetching-deployment-details)
|
59
|
+
|
60
|
+
We can then use the 'id' from the above hash and current application id to call for information about the progress:
|
61
|
+
|
62
|
+
<pre>
|
63
|
+
<code>api.fetch_deployment_details('application_id','deployment_id')</code>
|
64
|
+
</pre>
|
65
|
+
|
66
|
+
NOTE: We can always see the deploy status if we know proper deployment_id (even from the deploys that have been already finished)
|
67
|
+
|
68
|
+
|
69
|
+
to obtain list of all available applications execute:
|
58
70
|
<pre>
|
59
71
|
<code>api.get_applications</code>
|
60
72
|
</pre>
|
@@ -100,13 +112,18 @@ Here are the fields returned in each hash:
|
|
100
112
|
|
101
113
|
for their meaning check Scalarium's documentation and examples
|
102
114
|
|
115
|
+
Ruby on Rails integration
|
116
|
+
--
|
117
|
+
|
118
|
+
Here is a simple [RAKE task](https://gist.github.com/1037410) that illustrates how this library could be used with Rails application.
|
119
|
+
|
103
120
|
|
104
121
|
|
105
122
|
|
106
123
|
License
|
107
124
|
--
|
108
125
|
|
109
|
-
Copyright (c)
|
126
|
+
Copyright (c) 2011 Lukasz Lazewski
|
110
127
|
|
111
128
|
Permission is hereby granted, free of charge, to any person obtaining
|
112
129
|
a copy of this software and associated documentation files (the
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Scalarium
|
2
2
|
|
3
|
+
# @return [String] url for the clouds
|
3
4
|
def self.clouds_url
|
4
5
|
Scalarium.configuration.clouds_url
|
5
6
|
end
|
6
7
|
|
8
|
+
# @return [String] url for the applications
|
7
9
|
def self.applications_url
|
8
10
|
Scalarium.configuration.applications_url
|
9
11
|
end
|
@@ -16,6 +18,11 @@ module Scalarium
|
|
16
18
|
def self.configuration
|
17
19
|
@configuration ||= Scalarium::Configuration.new
|
18
20
|
end
|
21
|
+
|
22
|
+
# setting an alias for :configuration
|
23
|
+
class << self
|
24
|
+
alias configure configuration
|
25
|
+
end
|
19
26
|
end
|
20
27
|
|
21
28
|
|
@@ -7,7 +7,6 @@ module Scalarium
|
|
7
7
|
|
8
8
|
# Method fetches all clouds on the server
|
9
9
|
#
|
10
|
-
# @option headers [Hash] - hash for of headers details for authentication
|
11
10
|
# @returns array [Array] - array containing all the clouds
|
12
11
|
#
|
13
12
|
def get_clouds
|
@@ -16,13 +15,21 @@ module Scalarium
|
|
16
15
|
|
17
16
|
# Method fetches all applications on the server
|
18
17
|
#
|
19
|
-
# @option headers [Hash] - hash for of headers details for authentication
|
20
18
|
# @returns array [Array] - array containing all the applications
|
21
19
|
#
|
22
20
|
def get_applications
|
23
21
|
http_get_request(Scalarium.applications_url)
|
24
22
|
end
|
25
23
|
|
24
|
+
# Method pings scalarium to check the details of the deploy (i.e. progress)
|
25
|
+
# @see http://support.scalarium.com/kb/api/fetching-deployment-details
|
26
|
+
#
|
27
|
+
# @returns hash [Hash] - Hash contains all the deployment details
|
28
|
+
#
|
29
|
+
def fetch_deployment_details(app_id, deployment_id)
|
30
|
+
http_get_request(Scalarium.applications_url+"/#{app_id}/deployments/#{deployment_id}")
|
31
|
+
end
|
32
|
+
|
26
33
|
# Method allows to deploy application in scalarium
|
27
34
|
#
|
28
35
|
# @option app_id [String] - The ID of application we want to deploy.
|
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = %q{This is scalarium API wrapper}
|
12
12
|
s.description = %q{This is scalarium API wrapper, allowing to execute API calls to scalarium backend}
|
13
13
|
|
14
|
+
s.add_dependency('json')
|
14
15
|
s.add_development_dependency('rake')
|
15
16
|
s.add_development_dependency('rspec', '~> 2.0')
|
16
17
|
|
data/spec/api_spec.rb
CHANGED
@@ -38,5 +38,10 @@ describe "Scalarium::API", "when first created" do
|
|
38
38
|
it "should be able to get all the applications" do
|
39
39
|
@api.should respond_to(:get_applications)
|
40
40
|
end
|
41
|
+
|
42
|
+
it "should be able to get deployment status aka deployment details" do
|
43
|
+
@api.should respond_to(:fetch_deployment_details)
|
44
|
+
end
|
45
|
+
|
41
46
|
|
42
47
|
end
|
data/spec/configuration_spec.rb
CHANGED
@@ -6,9 +6,19 @@ describe "Scalarium.configuration", "when first created" do
|
|
6
6
|
Scalarium.configuration.api_token.should == nil
|
7
7
|
end
|
8
8
|
|
9
|
+
it "should has no api token set yet - testing thru alias" do
|
10
|
+
Scalarium.configure.api_token.should == nil
|
11
|
+
end
|
12
|
+
|
9
13
|
it "we should be able to set api token and check it's presence" do
|
10
14
|
Scalarium.configuration.api_token = "FAKE_TOKEN"
|
11
15
|
Scalarium.configuration.api_token.should == "FAKE_TOKEN"
|
12
16
|
end
|
13
17
|
|
18
|
+
it "by using alias we should be able to obtain details set thru 'configuration' check it's presence change it and check again" do
|
19
|
+
Scalarium.configure.api_token.should == "FAKE_TOKEN"
|
20
|
+
Scalarium.configure.api_token = "FAKE_TOKEN_NEW"
|
21
|
+
Scalarium.configure.api_token.should == "FAKE_TOKEN_NEW"
|
22
|
+
end
|
23
|
+
|
14
24
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
|
5
|
+
describe "Scalarium functional tests", "when first created" do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
# we load configuration
|
9
|
+
config = YAML::load(File.open("./scalarium.yml"))
|
10
|
+
raise "!!! scalarium.yml file is missing - have your renamed scalarium.yml.sample into scalarium.yml? !!!" if config.nil?
|
11
|
+
|
12
|
+
Scalarium.configuration.api_token = config["api_token"]
|
13
|
+
@application_id = config["app_id"]
|
14
|
+
@comment = "This is test deploy by functional testing from scalarium-api-wrapper gem"
|
15
|
+
|
16
|
+
@api = Scalarium::API.new
|
17
|
+
|
18
|
+
# @response_status - this is initial response status
|
19
|
+
# returned after we make initial call to deploy application
|
20
|
+
@response_status = nil
|
21
|
+
# @status_check_response - this is status response for when we check
|
22
|
+
# progress of our deployment
|
23
|
+
@status_check_response = nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should obtain list of applications and present an array" do
|
27
|
+
@api.get_applications.class.should == Array
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should obtain list of clouds and present an array" do
|
31
|
+
@api.get_clouds.class.should == Array
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should redeploy application with specified ID and comment: #{@comment} returning status should be in proper state" do
|
35
|
+
@response_status = @api.deploy_application(@application_id, :comment => @comment)
|
36
|
+
@response_status.class.should == Hash
|
37
|
+
@response_status["status"].should == "running"
|
38
|
+
@response_status["command"].should == "deploy"
|
39
|
+
@response_status["application_id"].should == @application_id
|
40
|
+
|
41
|
+
sleep 2
|
42
|
+
id_of_deployment = @response_status["id"]
|
43
|
+
@status_check_response = @api.fetch_deployment_details(@application_id, id_of_deployment)
|
44
|
+
@status_check_response.class.should == Hash
|
45
|
+
@status_check_response["status"].should == "running"
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scalarium-api-wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,23 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-06-
|
12
|
+
date: 2011-06-24 00:00:00.000000000 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: json
|
17
|
+
requirement: &2153054260 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2153054260
|
15
26
|
- !ruby/object:Gem::Dependency
|
16
27
|
name: rake
|
17
|
-
requirement: &
|
28
|
+
requirement: &2153053800 !ruby/object:Gem::Requirement
|
18
29
|
none: false
|
19
30
|
requirements:
|
20
31
|
- - ! '>='
|
@@ -22,10 +33,10 @@ dependencies:
|
|
22
33
|
version: '0'
|
23
34
|
type: :development
|
24
35
|
prerelease: false
|
25
|
-
version_requirements: *
|
36
|
+
version_requirements: *2153053800
|
26
37
|
- !ruby/object:Gem::Dependency
|
27
38
|
name: rspec
|
28
|
-
requirement: &
|
39
|
+
requirement: &2153053200 !ruby/object:Gem::Requirement
|
29
40
|
none: false
|
30
41
|
requirements:
|
31
42
|
- - ~>
|
@@ -33,7 +44,7 @@ dependencies:
|
|
33
44
|
version: '2.0'
|
34
45
|
type: :development
|
35
46
|
prerelease: false
|
36
|
-
version_requirements: *
|
47
|
+
version_requirements: *2153053200
|
37
48
|
description: This is scalarium API wrapper, allowing to execute API calls to scalarium
|
38
49
|
backend
|
39
50
|
email:
|
@@ -53,6 +64,8 @@ files:
|
|
53
64
|
- scalarium-api-wrapper.gemspec
|
54
65
|
- spec/api_spec.rb
|
55
66
|
- spec/configuration_spec.rb
|
67
|
+
- spec/functional/api_functional_spec.rb
|
68
|
+
- spec/functional/scalarium.yml.sample
|
56
69
|
- spec/spec_helper.rb
|
57
70
|
has_rdoc: true
|
58
71
|
homepage: ''
|
@@ -82,4 +95,6 @@ summary: This is scalarium API wrapper
|
|
82
95
|
test_files:
|
83
96
|
- spec/api_spec.rb
|
84
97
|
- spec/configuration_spec.rb
|
98
|
+
- spec/functional/api_functional_spec.rb
|
99
|
+
- spec/functional/scalarium.yml.sample
|
85
100
|
- spec/spec_helper.rb
|