akamai_api 0.1.1 → 0.2.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 +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
|