azuki-api 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +4 -0
  5. data/README.md +128 -0
  6. data/Rakefile +41 -0
  7. data/azuki-api.gemspec +23 -0
  8. data/changelog.txt +204 -0
  9. data/lib/azuki-api.rb +1 -0
  10. data/lib/azuki/api.rb +146 -0
  11. data/lib/azuki/api/addons.rb +48 -0
  12. data/lib/azuki/api/apps.rb +71 -0
  13. data/lib/azuki/api/attachments.rb +14 -0
  14. data/lib/azuki/api/collaborators.rb +33 -0
  15. data/lib/azuki/api/config_vars.rb +33 -0
  16. data/lib/azuki/api/domains.rb +42 -0
  17. data/lib/azuki/api/errors.rb +26 -0
  18. data/lib/azuki/api/features.rb +45 -0
  19. data/lib/azuki/api/keys.rb +42 -0
  20. data/lib/azuki/api/login.rb +14 -0
  21. data/lib/azuki/api/logs.rb +18 -0
  22. data/lib/azuki/api/mock.rb +179 -0
  23. data/lib/azuki/api/mock/addons.rb +153 -0
  24. data/lib/azuki/api/mock/apps.rb +205 -0
  25. data/lib/azuki/api/mock/attachments.rb +19 -0
  26. data/lib/azuki/api/mock/cache/get_addons.json +1 -0
  27. data/lib/azuki/api/mock/cache/get_features.json +1 -0
  28. data/lib/azuki/api/mock/cache/get_user.json +1 -0
  29. data/lib/azuki/api/mock/collaborators.rb +55 -0
  30. data/lib/azuki/api/mock/config_vars.rb +49 -0
  31. data/lib/azuki/api/mock/domains.rb +80 -0
  32. data/lib/azuki/api/mock/features.rb +120 -0
  33. data/lib/azuki/api/mock/keys.rb +46 -0
  34. data/lib/azuki/api/mock/login.rb +22 -0
  35. data/lib/azuki/api/mock/logs.rb +20 -0
  36. data/lib/azuki/api/mock/processes.rb +198 -0
  37. data/lib/azuki/api/mock/releases.rb +69 -0
  38. data/lib/azuki/api/mock/stacks.rb +83 -0
  39. data/lib/azuki/api/mock/user.rb +16 -0
  40. data/lib/azuki/api/processes.rb +77 -0
  41. data/lib/azuki/api/releases.rb +33 -0
  42. data/lib/azuki/api/ssl_endpoints.rb +62 -0
  43. data/lib/azuki/api/stacks.rb +22 -0
  44. data/lib/azuki/api/user.rb +14 -0
  45. data/lib/azuki/api/vendor/okjson.rb +600 -0
  46. data/lib/azuki/api/version.rb +5 -0
  47. data/test/data/site.crt +19 -0
  48. data/test/data/site.key +27 -0
  49. data/test/test_addons.rb +193 -0
  50. data/test/test_apps.rb +147 -0
  51. data/test/test_attachments.rb +23 -0
  52. data/test/test_collaborators.rb +73 -0
  53. data/test/test_config_vars.rb +54 -0
  54. data/test/test_domains.rb +65 -0
  55. data/test/test_error_conditions.rb +11 -0
  56. data/test/test_features.rb +87 -0
  57. data/test/test_helper.rb +48 -0
  58. data/test/test_keys.rb +39 -0
  59. data/test/test_login.rb +20 -0
  60. data/test/test_logs.rb +29 -0
  61. data/test/test_processes.rb +245 -0
  62. data/test/test_releases.rb +73 -0
  63. data/test/test_ssl_endpoints.rb +132 -0
  64. data/test/test_stacks.rb +49 -0
  65. data/test/test_user.rb +13 -0
  66. metadata +168 -0
@@ -0,0 +1,73 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestReleases < MiniTest::Unit::TestCase
4
+
5
+ def test_get_releases
6
+ with_app do |app_data|
7
+ response = azuki.get_releases(app_data['name'])
8
+
9
+ assert_equal(200, response.status)
10
+ # body assertion?
11
+ end
12
+ end
13
+
14
+ def test_get_releases_app_not_found
15
+ assert_raises(Azuki::API::Errors::NotFound) do
16
+ azuki.get_releases(random_name)
17
+ end
18
+ end
19
+
20
+ def test_get_release
21
+ with_app do |app_data|
22
+ current = azuki.get_releases(app_data['name']).body.last['name']
23
+ response = azuki.get_release(app_data['name'], current)
24
+
25
+ assert_equal(200, response.status)
26
+ # body assertion?
27
+ end
28
+ end
29
+
30
+ def test_get_release_current
31
+ with_app do |app_data|
32
+ response = azuki.get_release(app_data['name'], 'current')
33
+
34
+ assert_equal(200, response.status)
35
+ # body assertion?
36
+ end
37
+ end
38
+
39
+ def test_get_release_app_not_found
40
+ assert_raises(Azuki::API::Errors::NotFound) do
41
+ azuki.get_release(random_name, 'v2')
42
+ end
43
+ end
44
+
45
+ def test_get_release_release_not_found
46
+ assert_raises(Azuki::API::Errors::NotFound) do
47
+ azuki.get_release(random_name, 'v0')
48
+ end
49
+ end
50
+
51
+ def test_post_release
52
+ with_app do |app_data|
53
+ current = azuki.get_releases(app_data['name']).body.last['name']
54
+ response = azuki.post_release(app_data['name'], current)
55
+
56
+ assert_equal(200, response.status)
57
+ # body assertion?
58
+ end
59
+ end
60
+
61
+ def test_post_release_app_not_found
62
+ assert_raises(Azuki::API::Errors::NotFound) do
63
+ azuki.post_release(random_name, 'v3')
64
+ end
65
+ end
66
+
67
+ def test_post_release_release_not_found
68
+ assert_raises(Azuki::API::Errors::NotFound) do
69
+ azuki.post_release(random_name, 'v0')
70
+ end
71
+ end
72
+
73
+ end
@@ -0,0 +1,132 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestSslEndpoints < MiniTest::Unit::TestCase
4
+
5
+ def test_delete_ssl_endpoint
6
+ skip if MOCK
7
+ with_app do |app_data|
8
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
9
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
10
+
11
+ response = azuki.delete_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
12
+
13
+ data = response.body['ssl_cert']
14
+ assert_equal(false, data['ca_signed?'])
15
+ assert_equal(true, data['self_signed?'])
16
+ assert_equal(['example.com'], data['cert_domains'])
17
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
18
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
19
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
20
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
21
+ assert_equal(200, response.status)
22
+ end
23
+ end
24
+
25
+ def test_delete_ssl_endpoint_app_not_found
26
+ skip if MOCK
27
+ assert_raises(Azuki::API::Errors::NotFound) do
28
+ azuki.delete_ssl_endpoint(random_name, 'key')
29
+ end
30
+ end
31
+
32
+ def test_get_ssl_endpoint
33
+ skip if MOCK
34
+ with_app do |app_data|
35
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
36
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
37
+
38
+ response = azuki.get_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
39
+
40
+ data = response.body['ssl_cert']
41
+ assert_equal(false, data['ca_signed?'])
42
+ assert_equal(true, data['self_signed?'])
43
+ assert_equal(['example.com'], data['cert_domains'])
44
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
45
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
46
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
47
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
48
+ assert_equal(200, response.status)
49
+ end
50
+ end
51
+
52
+ def test_get_ssl_endpoints
53
+ skip if MOCK
54
+ with_app do |app_data|
55
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
56
+ azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key)
57
+
58
+ response = azuki.get_ssl_endpoints(app_data['name'])
59
+
60
+ data = response.body.first['ssl_cert']
61
+ assert_equal(false, data['ca_signed?'])
62
+ assert_equal(true, data['self_signed?'])
63
+ assert_equal(['example.com'], data['cert_domains'])
64
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
65
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
66
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
67
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
68
+ assert_equal(200, response.status)
69
+ end
70
+ end
71
+
72
+ def test_post_ssl_endpoint
73
+ skip if MOCK
74
+ with_app do |app_data|
75
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
76
+
77
+ response = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key)
78
+
79
+ data = response.body['ssl_cert']
80
+ assert_equal(false, data['ca_signed?'])
81
+ assert_equal(true, data['self_signed?'])
82
+ assert_equal(['example.com'], data['cert_domains'])
83
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
84
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
85
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
86
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
87
+ assert_equal(200, response.status)
88
+ end
89
+ end
90
+
91
+ def test_post_ssl_endpoint_rollback
92
+ skip if MOCK
93
+ with_app do |app_data|
94
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
95
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
96
+ azuki.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_site_crt, data_site_key)
97
+
98
+ response = azuki.post_ssl_endpoint_rollback(app_data['name'], ssl_endpoint_data['cname'])
99
+
100
+ data = response.body['ssl_cert']
101
+ assert_equal(false, data['ca_signed?'])
102
+ assert_equal(true, data['self_signed?'])
103
+ assert_equal(['example.com'], data['cert_domains'])
104
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
105
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
106
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
107
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
108
+ assert_equal(200, response.status)
109
+ end
110
+ end
111
+
112
+ def test_put_ssl_endpoint
113
+ skip if MOCK
114
+ with_app do |app_data|
115
+ azuki.post_addon(app_data['name'], 'ssl:endpoint')
116
+ ssl_endpoint_data = azuki.post_ssl_endpoint(app_data['name'], data_site_crt, data_site_key).body
117
+
118
+ response = azuki.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_site_crt, data_site_key)
119
+
120
+ data = response.body['ssl_cert']
121
+ assert_equal(false, data['ca_signed?'])
122
+ assert_equal(true, data['self_signed?'])
123
+ assert_equal(['example.com'], data['cert_domains'])
124
+ assert_equal('2013/08/01 15:32:09 -0700', data['expires_at'])
125
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['issuer'])
126
+ assert_equal('2012/08/01 15:32:09 -0700', data['starts_at'])
127
+ assert_equal('/C=US/ST=CA/O=Azuki/CN=example.com', data['subject'])
128
+ assert_equal(200, response.status)
129
+ end
130
+ end
131
+
132
+ end
@@ -0,0 +1,49 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestStacks < MiniTest::Unit::TestCase
4
+
5
+ def test_get_stack
6
+ with_app do |app_data|
7
+ response = azuki.get_stack(app_data['name'])
8
+
9
+ assert_equal(200, response.status)
10
+ end
11
+ end
12
+
13
+ def test_get_stack_app_not_found
14
+ assert_raises(Azuki::API::Errors::NotFound) do
15
+ azuki.get_stack(random_name)
16
+ end
17
+ end
18
+
19
+ def test_put_stack
20
+ with_app do |app_data|
21
+ response = azuki.put_stack(app_data['name'], 'bamboo-ree-1.8.7')
22
+
23
+ assert_equal(200, response.status)
24
+ end
25
+ end
26
+
27
+ def test_put_stack_app_not_found
28
+ assert_raises(Azuki::API::Errors::NotFound) do
29
+ azuki.put_stack(random_name, 'bamboo-ree-1.8.7')
30
+ end
31
+ end
32
+
33
+ def test_put_stack_stack_not_found
34
+ with_app do |app_data|
35
+ assert_raises(Azuki::API::Errors::NotFound) do
36
+ azuki.put_stack(app_data['name'], random_name)
37
+ end
38
+ end
39
+ end
40
+
41
+ def test_put_stack_cedar
42
+ with_app do |app_data|
43
+ assert_raises(Azuki::API::Errors::RequestFailed) do
44
+ azuki.put_stack(app_data['name'], 'cedar')
45
+ end
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,13 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestUser < MiniTest::Unit::TestCase
4
+
5
+ def test_get_user
6
+ response = azuki.get_user
7
+ data = File.read("#{File.dirname(__FILE__)}/../lib/azuki/api/mock/cache/get_user.json")
8
+
9
+ assert_equal(200, response.status)
10
+ assert_equal(Azuki::API::OkJson.decode(data), response.body)
11
+ end
12
+
13
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: azuki-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Éverton Ribeiro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-23 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.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.20.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Ruby Client for the Azuki API
56
+ email:
57
+ - everton@azukiapp.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - .travis.yml
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - azuki-api.gemspec
68
+ - changelog.txt
69
+ - lib/azuki-api.rb
70
+ - lib/azuki/api.rb
71
+ - lib/azuki/api/addons.rb
72
+ - lib/azuki/api/apps.rb
73
+ - lib/azuki/api/attachments.rb
74
+ - lib/azuki/api/collaborators.rb
75
+ - lib/azuki/api/config_vars.rb
76
+ - lib/azuki/api/domains.rb
77
+ - lib/azuki/api/errors.rb
78
+ - lib/azuki/api/features.rb
79
+ - lib/azuki/api/keys.rb
80
+ - lib/azuki/api/login.rb
81
+ - lib/azuki/api/logs.rb
82
+ - lib/azuki/api/mock.rb
83
+ - lib/azuki/api/mock/addons.rb
84
+ - lib/azuki/api/mock/apps.rb
85
+ - lib/azuki/api/mock/attachments.rb
86
+ - lib/azuki/api/mock/cache/get_addons.json
87
+ - lib/azuki/api/mock/cache/get_features.json
88
+ - lib/azuki/api/mock/cache/get_user.json
89
+ - lib/azuki/api/mock/collaborators.rb
90
+ - lib/azuki/api/mock/config_vars.rb
91
+ - lib/azuki/api/mock/domains.rb
92
+ - lib/azuki/api/mock/features.rb
93
+ - lib/azuki/api/mock/keys.rb
94
+ - lib/azuki/api/mock/login.rb
95
+ - lib/azuki/api/mock/logs.rb
96
+ - lib/azuki/api/mock/processes.rb
97
+ - lib/azuki/api/mock/releases.rb
98
+ - lib/azuki/api/mock/stacks.rb
99
+ - lib/azuki/api/mock/user.rb
100
+ - lib/azuki/api/processes.rb
101
+ - lib/azuki/api/releases.rb
102
+ - lib/azuki/api/ssl_endpoints.rb
103
+ - lib/azuki/api/stacks.rb
104
+ - lib/azuki/api/user.rb
105
+ - lib/azuki/api/vendor/okjson.rb
106
+ - lib/azuki/api/version.rb
107
+ - test/data/site.crt
108
+ - test/data/site.key
109
+ - test/test_addons.rb
110
+ - test/test_apps.rb
111
+ - test/test_attachments.rb
112
+ - test/test_collaborators.rb
113
+ - test/test_config_vars.rb
114
+ - test/test_domains.rb
115
+ - test/test_error_conditions.rb
116
+ - test/test_features.rb
117
+ - test/test_helper.rb
118
+ - test/test_keys.rb
119
+ - test/test_login.rb
120
+ - test/test_logs.rb
121
+ - test/test_processes.rb
122
+ - test/test_releases.rb
123
+ - test/test_ssl_endpoints.rb
124
+ - test/test_stacks.rb
125
+ - test/test_user.rb
126
+ homepage: https://github.com/azukiapp/azuki-api-ruby
127
+ licenses: []
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 2.0.3
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: Ruby Client for the Azuki API
149
+ test_files:
150
+ - test/data/site.crt
151
+ - test/data/site.key
152
+ - test/test_addons.rb
153
+ - test/test_apps.rb
154
+ - test/test_attachments.rb
155
+ - test/test_collaborators.rb
156
+ - test/test_config_vars.rb
157
+ - test/test_domains.rb
158
+ - test/test_error_conditions.rb
159
+ - test/test_features.rb
160
+ - test/test_helper.rb
161
+ - test/test_keys.rb
162
+ - test/test_login.rb
163
+ - test/test_logs.rb
164
+ - test/test_processes.rb
165
+ - test/test_releases.rb
166
+ - test/test_ssl_endpoints.rb
167
+ - test/test_stacks.rb
168
+ - test/test_user.rb