akamai_api 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Guardfile +5 -15
- data/README.md +106 -36
- data/Thorfile +5 -0
- data/akamai_api.gemspec +6 -3
- data/bin/akamai_api +1 -2
- data/cassettes/akamai_api_ccu_arl_invalidate/invalid_credentials.yml +37 -0
- data/cassettes/akamai_api_ccu_arl_invalidate/invalid_item.yml +36 -0
- data/cassettes/akamai_api_ccu_arl_invalidate/multiple_items.yml +38 -0
- data/cassettes/akamai_api_ccu_arl_invalidate/single_item.yml +38 -0
- data/cassettes/akamai_api_ccu_arl_remove/invalid_credentials.yml +37 -0
- data/cassettes/akamai_api_ccu_arl_remove/invalid_item.yml +36 -0
- data/cassettes/akamai_api_ccu_arl_remove/multiple_items.yml +38 -0
- data/cassettes/akamai_api_ccu_arl_remove/single_item.yml +38 -0
- data/cassettes/akamai_api_ccu_cpcode_invalidate/invalid_credentials.yml +37 -0
- data/cassettes/akamai_api_ccu_cpcode_invalidate/invalid_item.yml +36 -0
- data/cassettes/akamai_api_ccu_cpcode_invalidate/multiple_items.yml +38 -0
- data/cassettes/akamai_api_ccu_cpcode_invalidate/single_item.yml +38 -0
- data/cassettes/akamai_api_ccu_cpcode_remove/invalid_credentials.yml +37 -0
- data/cassettes/akamai_api_ccu_cpcode_remove/invalid_item.yml +36 -0
- data/cassettes/akamai_api_ccu_cpcode_remove/multiple_items.yml +38 -0
- data/cassettes/akamai_api_ccu_cpcode_remove/single_item.yml +38 -0
- data/cassettes/akamai_api_ccu_purge_status/completed_request.yml +35 -0
- data/cassettes/akamai_api_ccu_purge_status/enqueued_request.yml +35 -0
- data/cassettes/akamai_api_ccu_purge_status/invalid_credentials.yml +35 -0
- data/cassettes/akamai_api_ccu_purge_status/not_found_request.yml +37 -0
- data/cassettes/akamai_api_ccu_status/invalid_credentials.yml +35 -0
- data/cassettes/akamai_api_ccu_status/valid_credentials.yml +34 -0
- data/cassettes/akamai_api_eccu_last_request/invalid_credentials.yml +68 -0
- data/cassettes/akamai_api_eccu_last_request/valid_credentials.yml +140 -0
- data/cassettes/akamai_api_eccu_publish/invalid_credentials.yml +73 -0
- data/cassettes/akamai_api_eccu_publish/invalid_domain.yml +60 -0
- data/cassettes/akamai_api_eccu_publish/successful.yml +126 -0
- data/cassettes/akamai_api_eccu_requests/invalid_credentials.yml +68 -0
- data/cassettes/akamai_api_eccu_requests/valid_credentials.yml +325 -0
- data/features/ccu_arl_invalidate.feature +83 -0
- data/features/ccu_arl_remove.feature +83 -0
- data/features/ccu_cpcode_invalidate.feature +83 -0
- data/features/ccu_cpcode_remove.feature +83 -0
- data/features/ccu_purge_status.feature +83 -0
- data/features/ccu_status.feature +31 -0
- data/features/eccu_last_request.feature +47 -0
- data/features/eccu_publish.feature +98 -0
- data/features/eccu_requests.feature +43 -0
- data/features/step_definitions/contain_multiple_times_steps.rb +3 -0
- data/features/support/env.rb +58 -0
- data/lib/akamai_api/ccu/purge/request.rb +76 -0
- data/lib/akamai_api/ccu/purge/response.rb +31 -0
- data/lib/akamai_api/ccu/purge.rb +5 -0
- data/lib/akamai_api/ccu/purge_status/not_found_response.rb +9 -0
- data/lib/akamai_api/ccu/purge_status/request.rb +32 -0
- data/lib/akamai_api/ccu/purge_status/response.rb +19 -0
- data/lib/akamai_api/ccu/purge_status/successful_response.rb +25 -0
- data/lib/akamai_api/ccu/purge_status.rb +10 -0
- data/lib/akamai_api/ccu/response.rb +18 -0
- data/lib/akamai_api/ccu/status/request.rb +23 -0
- data/lib/akamai_api/ccu/status/response.rb +11 -0
- data/lib/akamai_api/ccu/status.rb +2 -0
- data/lib/akamai_api/ccu.rb +14 -50
- data/lib/akamai_api/cli/app.rb +2 -2
- data/lib/akamai_api/cli/ccu/arl.rb +36 -0
- data/lib/akamai_api/cli/ccu/base.rb +18 -0
- data/lib/akamai_api/cli/ccu/cp_code.rb +39 -0
- data/lib/akamai_api/cli/ccu/purge_renderer.rb +49 -0
- data/lib/akamai_api/cli/ccu/status_renderer.rb +69 -0
- data/lib/akamai_api/cli/ccu.rb +5 -10
- data/lib/akamai_api/cli/eccu/entry_renderer.rb +63 -0
- data/lib/akamai_api/cli/eccu.rb +16 -14
- data/lib/akamai_api/cli.rb +7 -2
- data/lib/akamai_api/eccu_request.rb +19 -1
- data/lib/akamai_api/version.rb +1 -1
- data/lib/akamai_api.rb +3 -1
- data/spec/features/ccu/purge_request_spec.rb +94 -0
- data/spec/features/ccu/purge_status_request_spec.rb +31 -0
- data/spec/features/ccu/status_request_spec.rb +17 -0
- data/spec/fixtures/ccu/successful_purge.json +1 -0
- data/spec/lib/akamai_api/ccu/purge/request_spec.rb +124 -0
- data/spec/lib/akamai_api/ccu/purge/response_spec.rb +54 -0
- data/spec/lib/akamai_api/ccu/purge_status/not_found_response_spec.rb +41 -0
- data/spec/lib/akamai_api/ccu/purge_status/request_spec.rb +64 -0
- data/spec/lib/akamai_api/ccu/purge_status/successful_response_spec.rb +86 -0
- data/spec/lib/akamai_api/ccu/response_spec.rb +15 -0
- data/spec/lib/akamai_api/ccu/status/request_spec.rb +22 -0
- data/spec/lib/akamai_api/ccu/status/response_spec.rb +29 -0
- data/spec/lib/akamai_api/ccu_spec.rb +49 -61
- data/spec/lib/akamai_api/cli/ccu/status_renderer_spec.rb +36 -0
- data/spec/lib/akamai_api/eccu_request_spec.rb +5 -5
- data/spec/spec_helper.rb +21 -1
- metadata +163 -26
- data/lib/akamai_api/ccu_response.rb +0 -51
- data/lib/akamai_api/cli/ccu_arl.rb +0 -40
- data/lib/akamai_api/cli/ccu_cp_code.rb +0 -48
- data/lib/akamai_api/cli/template.rb +0 -36
- data/lib/akamai_api/cp_code.rb +0 -33
- data/spec/fixtures/ccu/successful_purge.xml +0 -15
- data/spec/fixtures/cp_code/collection.xml +0 -21
- data/spec/fixtures/cp_code/single.xml +0 -16
- data/spec/lib/akamai_api/cp_code_spec.rb +0 -47
- data/wsdls/cpcode.wsdl +0 -2765
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da5bb7a0452b3d4b21385faf7458834c366add6c
|
4
|
+
data.tar.gz: 55bc7df2f48e4941cd70050941b283524a744e56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b940d0dee60736afadcc0313ea2adb660c0ddbb1527e52b648b4acf34f381996ea82bdd6271e162034239d466ed151e9913aedaaf881c6b5287e85f4cb3f48b7
|
7
|
+
data.tar.gz: e976472d6fac76144147d48747a9414f1a485c2b70981d157ad1cf186d1f19cd36091ec2534fe48bf3038f639bdde0c08201e2a069876d09dd9394d4550ebec8
|
data/Guardfile
CHANGED
@@ -5,20 +5,10 @@ guard :rspec do
|
|
5
5
|
watch(%r{^spec/.+_spec\.rb$})
|
6
6
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
7
|
watch('spec/spec_helper.rb') { "spec" }
|
8
|
-
|
9
|
-
# Rails example
|
10
|
-
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
11
|
-
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
12
|
-
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
13
|
-
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
14
|
-
watch('config/routes.rb') { "spec/routing" }
|
15
|
-
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
16
|
-
|
17
|
-
# Capybara features specs
|
18
|
-
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
19
|
-
|
20
|
-
# Turnip features and steps
|
21
|
-
watch(%r{^spec/acceptance/(.+)\.feature$})
|
22
|
-
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
23
8
|
end
|
24
9
|
|
10
|
+
guard 'cucumber' do
|
11
|
+
watch(%r{^features/.+\.feature$})
|
12
|
+
watch(%r{^features/support/.+$}) { 'features' }
|
13
|
+
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
14
|
+
end
|
data/README.md
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
# AkamaiApi
|
2
2
|
|
3
|
-
|
3
|
+
__Now with CCU REST support!__
|
4
4
|
|
5
|
-
|
5
|
+
AkamaiApi is a ruby library and command line utility to interact with Akamai CCU (Content Control Utility) and ECCU (Enhanced Content Control Utility) services.
|
6
6
|
|
7
7
|
# Using the CLI
|
8
8
|
|
9
9
|
After gem installation you will have a CLI utility to execute operations on Akamai. Each method requires authentication. You can provide auth info using one of the following methods:
|
10
10
|
|
11
11
|
- Passing --username (-u) and --password (-p) arguments at each invocation
|
12
|
-
- Set ENV variables: AKAMAI_USERNAME and AKAMAI_PASSWORD
|
13
|
-
- Creating a config file in your HOME directory named
|
12
|
+
- Set ENV variables: `AKAMAI_USERNAME` and `AKAMAI_PASSWORD`
|
13
|
+
- Creating a config file in your HOME directory named `.akamai_api.yml` with the following format:
|
14
14
|
|
15
15
|
```yaml
|
16
16
|
auth:
|
17
17
|
- user
|
18
18
|
- pass
|
19
|
-
log: true # optional for enabling logging. false by default
|
19
|
+
log: true # optional for enabling logging in ECCU requests. false by default
|
20
20
|
```
|
21
21
|
|
22
22
|
## Tasks
|
@@ -35,9 +35,10 @@ Use *akamai_api help* to view the help of the CLI.
|
|
35
35
|
In the CCU interface you can work with CP Codes and ARLs.
|
36
36
|
|
37
37
|
```
|
38
|
-
akamai_api ccu cpcode
|
39
|
-
akamai_api ccu help [COMMAND]
|
40
|
-
akamai_api ccu arl
|
38
|
+
akamai_api ccu cpcode # CP Code CCU actions
|
39
|
+
akamai_api ccu help [COMMAND] # Describe subcommands or one specific subcommand
|
40
|
+
akamai_api ccu arl # ARL CCU actions
|
41
|
+
akamai_api ccu status [progress_uri] # Show the CCU queue status if no progress_uri is given, or show a CCU Purge request status if a progress uri is given
|
41
42
|
```
|
42
43
|
|
43
44
|
### CP Code
|
@@ -45,14 +46,12 @@ In the CCU interface you can work with CP Codes and ARLs.
|
|
45
46
|
```
|
46
47
|
akamai_api ccu cpcode help [COMMAND] # Describe subcommands or one specific subcommand
|
47
48
|
akamai_api ccu cpcode invalidate CPCODE1 CPCODE2 ... # Purge CP Code(s) marking their cache as expired
|
48
|
-
akamai_api ccu cpcode list # Print the list of CP Codes
|
49
49
|
akamai_api ccu cpcode remove CPCODE1 CPCODE2 ... # Purge CP Code(s) removing them from the cache
|
50
50
|
```
|
51
51
|
|
52
52
|
When removing or invalidating a CP Code you can provide the following optional arguments:
|
53
53
|
|
54
54
|
- *--domain*, *-d*: Specify if you want to work with *production* or *staging*. This is a completely optional argument and usually you don't need to set it.
|
55
|
-
- *--emails*, *-e*: Specify the list of email used by Akamai to send notifications about the purge request.
|
56
55
|
|
57
56
|
### ARL
|
58
57
|
|
@@ -65,17 +64,43 @@ When removing or invalidating a CP Code you can provide the following optional a
|
|
65
64
|
When removing or invalidating an ARL you can provide the following optional arguments:
|
66
65
|
|
67
66
|
- *--domain*, *-d*: Specify if you want to work with *production* or *staging*. This is a completely optional argument and usually you don't need to set it.
|
68
|
-
|
67
|
+
|
68
|
+
### Status
|
69
|
+
|
70
|
+
If you don't provide a `progress_uri` this command will print the CCU queue status. E.g.
|
71
|
+
|
72
|
+
```bash
|
73
|
+
$ akamai_api ccu status
|
74
|
+
------------
|
75
|
+
Status has been successfully received:
|
76
|
+
* Result: 200 - The queue may take a minute to reflect new or removed requests.
|
77
|
+
* Support ID: 12345678901234567890-123456789
|
78
|
+
* Queue Length: 0
|
79
|
+
------------
|
80
|
+
```
|
81
|
+
|
82
|
+
When you provide a `progress_uri` or a `purge_id` this command will print the CCU request status. E.g.
|
83
|
+
|
84
|
+
```bash
|
85
|
+
$ akamai_api ccu status 12345678-1234-5678-1234-123456789012 # or you can pass /ccu/v2/purges/12345678-1234-5678-1234-123456789012
|
86
|
+
------------
|
87
|
+
Status has been successfully received:
|
88
|
+
* Result: 200 - Done
|
89
|
+
* Purge ID: 12345678-1234-5678-1234-123456789012 | Support ID: 12345678901234567890-123456789
|
90
|
+
* Submitted by 'gawaine' on 2014-05-20 08:19:21 UTC
|
91
|
+
* Completed on: 2014-05-20 08:22:20 UTC
|
92
|
+
------------
|
93
|
+
```
|
69
94
|
|
70
95
|
## ECCU
|
71
96
|
|
72
97
|
In the ECCU interface you can see the requestes already published and publish your own requests.
|
73
98
|
|
74
99
|
```
|
75
|
-
akamai_api eccu help [COMMAND]
|
76
|
-
akamai_api eccu last_request
|
100
|
+
akamai_api eccu help [COMMAND] # Describe subcommands or one specific subcommand
|
101
|
+
akamai_api eccu last_request # Print the last request made to ECCU
|
77
102
|
akamai_api eccu publish_xml path/to/request.xml john.com # Publish a request made in XML for the specified Digital Property (usually the Host Header)
|
78
|
-
akamai_api eccu requests
|
103
|
+
akamai_api eccu requests # Print the list of the last requests made to ECCU
|
79
104
|
```
|
80
105
|
|
81
106
|
### Viewing Requests
|
@@ -112,7 +137,7 @@ The command takes two arguments:
|
|
112
137
|
Remember to init the AkamaiApi gem with your login credentials. You can set your credentials with the following statement:
|
113
138
|
|
114
139
|
```ruby
|
115
|
-
|
140
|
+
AkamaiApi.config.merge! :auth => ['user', 'pass']
|
116
141
|
```
|
117
142
|
|
118
143
|
- CpCode: model representing a CP Code. Use the ::all method to retrieve the list of available CpCode.
|
@@ -121,43 +146,88 @@ Remember to init the AkamaiApi gem with your login credentials. You can set your
|
|
121
146
|
|
122
147
|
## Ccu
|
123
148
|
|
149
|
+
### ::status
|
150
|
+
|
151
|
+
When no argument is given, this command will return a [`AkamaiApi::Ccu::Status::Response`](lib/akamai_api/ccu/status/response.rb) object describing the status of the Akamai CCU queue. E.g.
|
152
|
+
|
153
|
+
```ruby
|
154
|
+
AkamaiApi::Ccu.status
|
155
|
+
# => #<AkamaiApi::Ccu::Status::Response:0x00000101167978 @raw={"supportId"=>"12345678901234567890-123456789", "httpStatus"=>200, "detail"=>"The queue may take a minute to reflect new or removed requests.", "queueLength"=>0}>
|
156
|
+
```
|
157
|
+
|
158
|
+
When you pass a `progress_uri` or a `purge_id`, this command will check the given Akamai CCU request. E.g.
|
159
|
+
|
160
|
+
```ruby
|
161
|
+
AkamaiApi::Ccu.status '/ccu/v2/purges/foobarbaz' # you can pass only 'foobarbaz' (the purge request id) as argument
|
162
|
+
# => #<AkamaiApi::Ccu::PurgeStatus::SuccessfulResponse:0x000001014da088
|
163
|
+
# @raw=
|
164
|
+
# {"originalEstimatedSeconds"=>480,
|
165
|
+
# "progressUri"=>"/ccu/v2/purges/12345678-1234-5678-1234-123456789012",
|
166
|
+
# "originalQueueLength"=>6,
|
167
|
+
# "purgeId"=>"12345678-1234-5678-1234-123456789012",
|
168
|
+
# "supportId"=>"12345678901234567890-123456789",
|
169
|
+
# "httpStatus"=>200,
|
170
|
+
# "completionTime"=>"2014-02-19T22:16:20Z",
|
171
|
+
# "submittedBy"=>"test1",
|
172
|
+
# "purgeStatus"=>"In-Progress",
|
173
|
+
# "submissionTime"=>"2014-02-19T21:16:20Z",
|
174
|
+
# "pingAfterSeconds"=>60}>
|
175
|
+
```
|
176
|
+
|
177
|
+
It will return a [`AkamaiApi::Ccu::PurgeStatus::SuccessfulResponse`](lib/akamai_api/ccu/purge_status/successful_response.rb) object when a purge request is found, or a [`Akamai::Ccu::PurgeStatus::NotFoundResponse`](lib/akamai_api/ccu/purge_status/not_found_response.rb) when no request can be found.
|
178
|
+
|
124
179
|
### ::purge
|
125
180
|
|
126
181
|
```ruby
|
127
|
-
|
128
|
-
|
129
|
-
|
182
|
+
module AkamaiApi::Ccu
|
183
|
+
def purge action, type, items, args = {}
|
184
|
+
...
|
185
|
+
end
|
186
|
+
end
|
130
187
|
```
|
131
188
|
|
132
|
-
- action
|
133
|
-
- type
|
134
|
-
- items
|
135
|
-
- args
|
189
|
+
- `action`: symbol or string. It should be *remove* or *invalidate*. See the CLI documentation for more details
|
190
|
+
- `type`: symbol or string. It should be *arl* or *cpcode*. Use arl to purge a list of urls, and cpcodes to purge a list of cp codes
|
191
|
+
- `items`: the list of the resources to clean
|
192
|
+
- `args`: additional options (domain)
|
193
|
+
|
194
|
+
It will return a [`AkamaiApi::Ccu::Purge::Response`](lib/akamai_api/ccu/purge/response.rb) object that you can use to retrieve the `progress_uri` (or the `purge_id`) of the request.
|
136
195
|
|
137
|
-
|
196
|
+
E.g.
|
138
197
|
|
139
198
|
```ruby
|
140
|
-
|
199
|
+
AkamaiApi::Ccu.purge :remove, :arl, ['http://www.foo.com/a.txt'], :domain => 'staging'
|
200
|
+
# => #<AkamaiApi::Ccu::Purge::Response:0x00000101bf2848
|
201
|
+
# @raw=
|
202
|
+
# {"describedBy"=>"foo",
|
203
|
+
# "title"=>"bar",
|
204
|
+
# "pingAfterSeconds"=>100,
|
205
|
+
# "purgeId"=>"1234",
|
206
|
+
# "supportId"=>"130",
|
207
|
+
# "detail"=>"baz",
|
208
|
+
# "httpStatus"=>201,
|
209
|
+
# "estimatedSeconds"=>90,
|
210
|
+
# "progressUri"=>"/ccu/v2/purges/1234"}>
|
141
211
|
```
|
142
212
|
|
143
|
-
### Helpers
|
213
|
+
### Purge Helpers
|
144
214
|
|
145
215
|
```ruby
|
146
|
-
|
216
|
+
ccu = AkamaiApi::Ccu
|
147
217
|
|
148
|
-
|
149
|
-
|
150
|
-
|
218
|
+
ccu.invalidate_cpcode cpcodes # => wrapper to call .purge :invalidate, :cpcode
|
219
|
+
ccu.invalidate_arl arls # => wrapper to call .purge :invalidate, :arl
|
220
|
+
ccu.invalidate :arl, arls # => wrapper to call .purge :invalidate
|
151
221
|
|
152
|
-
|
153
|
-
|
154
|
-
|
222
|
+
ccu.remove_cpcodes cpcodes # => wrapper to call .purge :remove, :cpcode
|
223
|
+
ccu.remove_arl arls # => wrapper to call .purge :remove, :arl
|
224
|
+
ccu.remove :arl # => wrapper to call .purge :remove
|
155
225
|
```
|
156
226
|
|
157
227
|
## EccuRequest
|
158
228
|
|
159
|
-
An EccuRequest is an object representing an ECCU Request. To see all the published requests use the
|
160
|
-
To retrieve only the last request, you can use the
|
229
|
+
An EccuRequest is an object representing an ECCU Request. To see all the published requests use the `::all` method.
|
230
|
+
To retrieve only the last request, you can use the `::last` method.
|
161
231
|
The following code should be self explaining about both class methods and instance methods:
|
162
232
|
|
163
233
|
```ruby
|
@@ -184,7 +254,7 @@ You can specify the following optional arguments in args: file_name, notes, vers
|
|
184
254
|
# Contributing
|
185
255
|
|
186
256
|
- Clone this repository
|
187
|
-
- Run 'bundle install
|
257
|
+
- Run 'bundle install'
|
188
258
|
- To run the specs, create the file spec/auth.rb with the following content:
|
189
259
|
|
190
260
|
```ruby
|
@@ -194,4 +264,4 @@ You can specify the following optional arguments in args: file_name, notes, vers
|
|
194
264
|
})
|
195
265
|
```
|
196
266
|
|
197
|
-
- Run specs with `thor spec`
|
267
|
+
- Run specs using `guard`. Alternatively you can execute the specs with `thor spec` and cucumber features with `cucumber`
|
data/Thorfile
CHANGED
data/akamai_api.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'akamai_api/version'
|
@@ -18,11 +17,15 @@ Gem::Specification.new do |gem|
|
|
18
17
|
gem.require_paths = ["lib"]
|
19
18
|
gem.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
20
19
|
|
20
|
+
gem.add_dependency 'httparty', '~> 0.13.1'
|
21
21
|
gem.add_dependency 'activesupport', '>= 2.3.9', '< 5.0'
|
22
22
|
gem.add_dependency 'thor', '>= 0.14.0', '< 2.0'
|
23
23
|
gem.add_dependency 'savon', '~> 2.3.0'
|
24
24
|
gem.add_dependency 'builder', '~> 3.0'
|
25
25
|
|
26
|
-
gem.add_development_dependency 'rspec'
|
27
|
-
gem.add_development_dependency 'guard-
|
26
|
+
gem.add_development_dependency 'guard-rspec'
|
27
|
+
gem.add_development_dependency 'guard-cucumber'
|
28
|
+
gem.add_development_dependency 'aruba'
|
29
|
+
gem.add_development_dependency 'webmock'
|
30
|
+
gem.add_development_dependency 'vcr'
|
28
31
|
end
|
data/bin/akamai_api
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://foo:bar@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"invalidate","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 401
|
15
|
+
message: Unauthorized
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 14:31:21 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '146'
|
23
|
+
Allow:
|
24
|
+
- GET, HEAD, POST
|
25
|
+
Www-Authenticate:
|
26
|
+
- Basic realm="Luna Control Center"
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- text/html;charset=utf-8
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: <html><head><title>401 Unauthorized</title></head><body><p>401 Unauthorized</p><p>You
|
34
|
+
are not authorized to access that resource</p></body></html>
|
35
|
+
http_version:
|
36
|
+
recorded_at: Tue, 13 May 2014 14:31:21 GMT
|
37
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"invalidate","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 403
|
15
|
+
message: Forbidden
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Thu, 15 May 2014 06:51:09 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '209'
|
23
|
+
Allow:
|
24
|
+
- GET, HEAD, POST
|
25
|
+
Vary:
|
26
|
+
- Authorization
|
27
|
+
Content-Type:
|
28
|
+
- application/api-problem+json
|
29
|
+
body:
|
30
|
+
encoding: UTF-8
|
31
|
+
string: '{"supportId": "12345678901234567890-123456789", "title": "unauthorized
|
32
|
+
arl", "httpStatus": 403, "detail": "http://www.foo.com/bar.txt", "describedBy":
|
33
|
+
"https://api.ccu.akamai.com/ccu/v2/errors/unauthorized-arl"}'
|
34
|
+
http_version:
|
35
|
+
recorded_at: Thu, 15 May 2014 06:51:12 GMT
|
36
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"invalidate","objects":["http://www.foo.com/bar.txt","http://www.foo.com/baz.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 201
|
15
|
+
message: Created
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 15:37:48 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '268'
|
23
|
+
Content-Location:
|
24
|
+
- /ccu/v2/purges/12345678-1234-5678-1234-123456789012
|
25
|
+
Allow:
|
26
|
+
- GET, HEAD, POST
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: '{"estimatedSeconds": 420, "progressUri": "/ccu/v2/purges/12345678-1234-5678-1234-123456789012",
|
34
|
+
"purgeId": "12345678-1234-1234-1234-123456789012", "supportId": "12345678901234567890-123456789",
|
35
|
+
"httpStatus": 201, "detail": "Request accepted.", "pingAfterSeconds": 420}'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 13 May 2014 15:37:49 GMT
|
38
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"invalidate","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 201
|
15
|
+
message: Created
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 15:37:48 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '268'
|
23
|
+
Content-Location:
|
24
|
+
- /ccu/v2/purges/12345678-1234-5678-1234-123456789012
|
25
|
+
Allow:
|
26
|
+
- GET, HEAD, POST
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: '{"estimatedSeconds": 420, "progressUri": "/ccu/v2/purges/12345678-1234-5678-1234-123456789012",
|
34
|
+
"purgeId": "12345678-1234-1234-1234-123456789012", "supportId": "12345678901234567890-123456789",
|
35
|
+
"httpStatus": 201, "detail": "Request accepted.", "pingAfterSeconds": 420}'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 13 May 2014 15:37:49 GMT
|
38
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://foo:bar@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"remove","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 401
|
15
|
+
message: Unauthorized
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 14:31:21 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '146'
|
23
|
+
Allow:
|
24
|
+
- GET, HEAD, POST
|
25
|
+
Www-Authenticate:
|
26
|
+
- Basic realm="Luna Control Center"
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- text/html;charset=utf-8
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: <html><head><title>401 Unauthorized</title></head><body><p>401 Unauthorized</p><p>You
|
34
|
+
are not authorized to access that resource</p></body></html>
|
35
|
+
http_version:
|
36
|
+
recorded_at: Tue, 13 May 2014 14:31:21 GMT
|
37
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"remove","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 403
|
15
|
+
message: Forbidden
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Thu, 15 May 2014 06:51:09 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '209'
|
23
|
+
Allow:
|
24
|
+
- GET, HEAD, POST
|
25
|
+
Vary:
|
26
|
+
- Authorization
|
27
|
+
Content-Type:
|
28
|
+
- application/api-problem+json
|
29
|
+
body:
|
30
|
+
encoding: UTF-8
|
31
|
+
string: '{"supportId": "12345678901234567890-123456789", "title": "unauthorized
|
32
|
+
arl", "httpStatus": 403, "detail": "http://www.foo.com/bar.txt", "describedBy":
|
33
|
+
"https://api.ccu.akamai.com/ccu/v2/errors/unauthorized-arl"}'
|
34
|
+
http_version:
|
35
|
+
recorded_at: Thu, 15 May 2014 06:51:12 GMT
|
36
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"remove","objects":["http://www.foo.com/bar.txt","http://www.foo.com/baz.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 201
|
15
|
+
message: Created
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 15:37:48 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '268'
|
23
|
+
Content-Location:
|
24
|
+
- /ccu/v2/purges/12345678-1234-5678-1234-123456789012
|
25
|
+
Allow:
|
26
|
+
- GET, HEAD, POST
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: '{"estimatedSeconds": 420, "progressUri": "/ccu/v2/purges/12345678-1234-5678-1234-123456789012",
|
34
|
+
"purgeId": "12345678-1234-1234-1234-123456789012", "supportId": "12345678901234567890-123456789",
|
35
|
+
"httpStatus": 201, "detail": "Request accepted.", "pingAfterSeconds": 420}'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 13 May 2014 15:37:49 GMT
|
38
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://USERNAME:PASSWORD@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"arl","action":"remove","objects":["http://www.foo.com/bar.txt"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 201
|
15
|
+
message: Created
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 15:37:48 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '268'
|
23
|
+
Content-Location:
|
24
|
+
- /ccu/v2/purges/12345678-1234-5678-1234-123456789012
|
25
|
+
Allow:
|
26
|
+
- GET, HEAD, POST
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: '{"estimatedSeconds": 420, "progressUri": "/ccu/v2/purges/12345678-1234-5678-1234-123456789012",
|
34
|
+
"purgeId": "12345678-1234-1234-1234-123456789012", "supportId": "12345678901234567890-123456789",
|
35
|
+
"httpStatus": 201, "detail": "Request accepted.", "pingAfterSeconds": 420}'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 13 May 2014 15:37:49 GMT
|
38
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://foo:bar@api.ccu.akamai.com/ccu/v2/queues/default/
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"type":"cpcode","action":"invalidate","objects":["12345"]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 401
|
15
|
+
message: Unauthorized
|
16
|
+
headers:
|
17
|
+
Date:
|
18
|
+
- Tue, 13 May 2014 14:31:21 GMT
|
19
|
+
Server:
|
20
|
+
- Apache
|
21
|
+
Content-Length:
|
22
|
+
- '146'
|
23
|
+
Allow:
|
24
|
+
- GET, HEAD, POST
|
25
|
+
Www-Authenticate:
|
26
|
+
- Basic realm="Luna Control Center"
|
27
|
+
Vary:
|
28
|
+
- Authorization
|
29
|
+
Content-Type:
|
30
|
+
- text/html;charset=utf-8
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: <html><head><title>401 Unauthorized</title></head><body><p>401 Unauthorized</p><p>You
|
34
|
+
are not authorized to access that resource</p></body></html>
|
35
|
+
http_version:
|
36
|
+
recorded_at: Tue, 13 May 2014 14:31:21 GMT
|
37
|
+
recorded_with: VCR 2.9.0
|