ipecache 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 06a3d2068a842bbf690d37dd3d652a6af90c1a2d
4
- data.tar.gz: 7727b25bafb8b1d6112293efcdd8d9e6bc6afb9f
2
+ SHA256:
3
+ metadata.gz: 83644585aefa09f211e82d1aef98381223d6c0cc378f7bf364c5216e2983f146
4
+ data.tar.gz: ec6b2f4a6f2bc998320e6de60bea3c32c0c66eabb95be1297d3ed53033050f4a
5
5
  SHA512:
6
- metadata.gz: 5ce411227bdc5f662ec4e1dc440c39794652aecc6ab6bd03d022dcf3aaa1d9d71296c40439dbbe9db47471c21ec669ec9a12a34a6bfe69dc0e48af5e0b39ab73
7
- data.tar.gz: 0ca0b888f6e417cfb144339fdebf7fc5cbccc44fa7be3f874c3b696ddfd203e5a56001664adc528bf80f009e7ea3d2a8af62329bee1325c22f3bf3d825d7acdc
6
+ metadata.gz: 480a48d2246456e3c5847cf9d4279380c765508ecad04b8a281a2cdc825ce0d45c839ae2d06b2fc789e2148a9b92f5ef99e1ace7135f6217d0bf86e636c9b0a5
7
+ data.tar.gz: dc8ec4aed0f6ff35f3b3909e40b50f3a3a5e2bdab625c87b061e8b8c14e862fbdca5424c76ad4dd529c3c02c4870a8f883afc978cceef60263485ebe5a399984
@@ -1,3 +1,9 @@
1
+ ## 0.0.15 (Sept 5th, 2019)
2
+
3
+ Bugfixes:
4
+
5
+ - Update Akamai API to v3 (Thanks to @dolvany https://github.com/jonlives/ipecache/pull/17)
6
+
1
7
  ## 0.0.14 (May 17th, 2017)
2
8
 
3
9
  Bugfixes:
data/README.md CHANGED
@@ -48,8 +48,10 @@ plugins:
48
48
  secret: abc123
49
49
  zone: 1234
50
50
  akamai:
51
- username: myusername
52
- password: mypassword
51
+ client_secret: xxxxxxx
52
+ host: xxxxxxx
53
+ access_token: xxxxxxx
54
+ client_token: xxxxxxx
53
55
  cloudflare:
54
56
  login: foo@bar.com
55
57
  api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -2,7 +2,7 @@ $:.push File.expand_path('../lib', __FILE__)
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'ipecache'
5
- gem.version = '0.0.14'
5
+ gem.version = '0.0.15'
6
6
  gem.authors = ["Jon Cowie"]
7
7
  gem.email = 'jonlives@gmail.com'
8
8
  gem.homepage = 'https://github.com/jonlives/ipecache'
@@ -2,47 +2,71 @@ require 'ipecache/plugins/plugin'
2
2
 
3
3
  module Ipecache
4
4
  module Plugins
5
- class Akamai < Plugin
5
+ class AKAMAI < Plugin
6
6
  name :akamai
7
7
  hooks :cdn_purge
8
8
 
9
9
  def perform
10
- safe_require 'faraday_middleware'
11
10
  safe_require 'json'
11
+ safe_require 'akamai/edgegrid'
12
+ safe_require 'net/http'
13
+ safe_require 'uri'
12
14
 
13
- username = config.username
14
- password = config.password
15
+ client_secret = config.client_secret
16
+ host = config.host
17
+ access_token = config.access_token
18
+ client_token = config.client_token
15
19
 
16
- if username.nil?
17
- plugin_puts("Akamai username not specified, Exiting...")
20
+ if client_secret.nil?
21
+ plugin_puts("Akamai client_secret not specified, Exiting...")
18
22
  exit 1
19
23
  end
20
24
 
21
- if password.nil?
22
- plugin_puts("Akamai password key not specified, Exiting...")
25
+ if host.nil?
26
+ plugin_puts("Akamai host not specified, Exiting...")
27
+ exit 1
28
+ end
29
+
30
+ if access_token.nil?
31
+ plugin_puts("Akamai access_token not specified, Exiting...")
32
+ exit 1
33
+ end
34
+
35
+ if client_token.nil?
36
+ plugin_puts("Akamai client_token not specified, Exiting...")
23
37
  exit 1
24
38
  end
25
39
 
26
40
  plugin_puts "Beginning URL Purge from Akamai..."
27
41
 
42
+ baseuri = URI("https://#{host}/")
43
+
44
+ http = Akamai::Edgegrid::HTTP.new(
45
+ address=baseuri.host,
46
+ port=baseuri.port
47
+ )
48
+
49
+ http.setup_edgegrid(
50
+ :client_token => client_token,
51
+ :client_secret => client_secret,
52
+ :access_token => access_token,
53
+ :max_body => 128 * 1024
54
+ )
55
+
28
56
  urls.each do |u|
29
57
  url = u.chomp
30
58
  plugin_puts ("Purging #{url}")
31
59
 
32
- connection = Faraday::Connection.new(
33
- {:url => "https://api.ccu.akamai.com",
34
- :headers => { :accept => 'application/json',
35
- :content_type => 'application/json',
36
- :user_agent => 'Ipecache',
37
- },
38
- :ssl => { :verify => true }
39
- }) do |builder|
40
- builder.request :json
41
- builder.basic_auth(username,password)
42
- builder.adapter Faraday.default_adapter
43
- end
60
+ post_request = Net::HTTP::Post.new(
61
+ URI.join(baseuri.to_s, "/ccu/v3/delete/url/production").to_s,
62
+ initheader = { 'Content-Type' => 'application/json' }
63
+ )
64
+
65
+ post_request.body = {
66
+ "objects" => ["#{url}"]
67
+ }.to_json
44
68
 
45
- response = connection.post("/ccu/v2/queues/default", "{\"objects\":[\"#{url}\"]}")
69
+ response = http.request(post_request)
46
70
 
47
71
  response_json = JSON.parse(response.body)
48
72
  response_httpStatus = response_json['httpStatus']
@@ -9,7 +9,7 @@ module Ipecache
9
9
 
10
10
  def perform
11
11
  safe_require 'uri'
12
-
12
+ safe_require 'openssl'
13
13
  api_key = config.api_key
14
14
 
15
15
  if api_key.nil?
@@ -11,8 +11,10 @@ Configuration
11
11
  ```yaml
12
12
  plugins:
13
13
  akamai:
14
- username: foo
15
- password: bar
14
+ client_secret: xxxxxxx
15
+ host: xxxxxxx
16
+ access_token: xxxxxxx
17
+ client_token: xxxxxxx
16
18
  ```
17
19
 
18
20
  #### username
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipecache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Cowie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2019-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: app_conf
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: choice
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.1.6
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.1.6
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday_middleware
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.9.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.9.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: public_suffix
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.4.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.4.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: aws-sdk-v1
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: maxcdn
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.2.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.2.1
97
97
  description: An extensible tool for purging urls from caches and CDNs
@@ -101,7 +101,7 @@ executables:
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - .gitignore
104
+ - ".gitignore"
105
105
  - CHANGELOG.md
106
106
  - Gemfile
107
107
  - Gemfile.lock
@@ -144,17 +144,17 @@ require_paths:
144
144
  - lib
145
145
  required_ruby_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - '>='
147
+ - - ">="
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0'
150
150
  required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - '>='
152
+ - - ">="
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  requirements: []
156
156
  rubyforge_project:
157
- rubygems_version: 2.0.14.1
157
+ rubygems_version: 2.7.8
158
158
  signing_key:
159
159
  specification_version: 4
160
160
  summary: An extensible tool for purging urls from caches and CDNs