akamai_cloudlet_manager 0.0.1 → 0.0.2
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
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f33e1ce2cf65b398f20153bacd85f6f7d2df49af
|
4
|
+
data.tar.gz: e4e4d7d402bdedb30527ff8ba0082c84e230cecd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 012ae566e4d7e58c6fc2eb6d10e1488a9d26322e3a548f5525d1ac5d1872bf8ee28b7c18fe5c29d1a9ddcb76329083987d126d378348eccb0cbd054c3675d308
|
7
|
+
data.tar.gz: f1f26d134b1c7d01eeba2df7e1e51233c960f22ae2f907cd5590927c2698d8c9b547c1c3d6cdc266b6ecc735e9b29cb4cfc460e874babbbdb04f0b6a245377ec
|
data/bin/acm
CHANGED
@@ -39,8 +39,7 @@ class AkamaiCloudletManagerCli < Thor
|
|
39
39
|
puts "No policy versions available"
|
40
40
|
end
|
41
41
|
rescue => err
|
42
|
-
puts "cloning failed!"
|
43
|
-
puts "Exception: #{err}"
|
42
|
+
puts "Exception: #{err.formatted_exception("Policy cloning failed!")}"
|
44
43
|
err
|
45
44
|
end
|
46
45
|
end
|
@@ -48,7 +47,7 @@ class AkamaiCloudletManagerCli < Thor
|
|
48
47
|
desc "update_policy_version", "Updates the policy version"
|
49
48
|
long_desc <<-LONGDESC
|
50
49
|
Updates the policy version. Policy version can be updated only in draft mode, not when it is activated.
|
51
|
-
With --
|
50
|
+
With --policy_id, policy on which version to be updated
|
52
51
|
With --draft_version, version which needs to be updated, this must be inactive version
|
53
52
|
With --file_path, file_path from which rules can be constructed and updated to policy version
|
54
53
|
With --rule_name, rule name so that it is visible in akamai control panel
|
@@ -66,7 +65,7 @@ class AkamaiCloudletManagerCli < Thor
|
|
66
65
|
method_option :rule_type, required: false
|
67
66
|
method_option :cookie_rules, required: false
|
68
67
|
def update_policy_version
|
69
|
-
puts "
|
68
|
+
puts "updating the policy version"
|
70
69
|
policy_version = AkamaiCloudletManager::PolicyVersion.new({
|
71
70
|
policy_id: options[:policy_id],
|
72
71
|
version_id: options[:draft_version]
|
@@ -79,6 +78,40 @@ class AkamaiCloudletManagerCli < Thor
|
|
79
78
|
end
|
80
79
|
end
|
81
80
|
|
81
|
+
desc "append_rules_to_policy_version", "Appends new rules to existing policy version"
|
82
|
+
long_desc <<-LONGDESC
|
83
|
+
Append new rules to existing policy version. Policy version can be updated only in draft mode, not when it is activated.
|
84
|
+
With --policy_id, policy on which version to be updated
|
85
|
+
With --draft_version, version which needs to be updated, this must be inactive version
|
86
|
+
With --file_path, file_path from which rules can be constructed and updated to policy version
|
87
|
+
With --rule_name, rule name so that it is visible in akamai control panel
|
88
|
+
With --origin_id, origin's id, this can be found from "get_policy_versions" command
|
89
|
+
With --rule_type, rule type, e.g. "albMatchRule"
|
90
|
+
With --cookie_rules, from which cookie rules can be constructed and updated to policy version, e.g. "abc=xyz"
|
91
|
+
|
92
|
+
LONGDESC
|
93
|
+
|
94
|
+
method_option :policy_id, required: true
|
95
|
+
method_option :draft_version, required: true
|
96
|
+
method_option :file_path, required: true
|
97
|
+
method_option :rule_name, required: true
|
98
|
+
method_option :origin_id, required: true
|
99
|
+
method_option :rule_type, required: false
|
100
|
+
method_option :cookie_rules, required: false
|
101
|
+
def append_rules_to_policy_version
|
102
|
+
puts "Appending rules to draft policy version with existing rules"
|
103
|
+
policy_version = AkamaiCloudletManager::PolicyVersion.new({
|
104
|
+
policy_id: options[:policy_id],
|
105
|
+
version_id: options[:draft_version]
|
106
|
+
})
|
107
|
+
begin
|
108
|
+
puts policy_version.append(options)
|
109
|
+
rescue => err
|
110
|
+
puts "Exception: #{err.formatted_exception("Policy version update failed!")}"
|
111
|
+
err
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
82
115
|
desc "activate_policy_version", "Activate the policy version on a given network(staging/production)"
|
83
116
|
long_desc <<-LONGDESC
|
84
117
|
Activates the policy version
|
@@ -91,7 +124,7 @@ class AkamaiCloudletManagerCli < Thor
|
|
91
124
|
method_option :version, required: true
|
92
125
|
method_option :network, required: true, enum: ['staging','production']
|
93
126
|
def activate_policy_version
|
94
|
-
puts "
|
127
|
+
puts "activating the policy version"
|
95
128
|
policy_version = AkamaiCloudletManager::PolicyVersion.new({
|
96
129
|
policy_id: options[:policy_id],
|
97
130
|
version_id: options[:version]
|
@@ -102,8 +135,7 @@ class AkamaiCloudletManagerCli < Thor
|
|
102
135
|
puts options[:version]
|
103
136
|
puts policy_version.activate(options[:network])
|
104
137
|
rescue => err
|
105
|
-
puts "activation failed!"
|
106
|
-
puts "Exception: #{err}"
|
138
|
+
puts "Exception: #{err.formatted_exception("Policy activation failed!")}"
|
107
139
|
err
|
108
140
|
end
|
109
141
|
end
|
@@ -11,7 +11,6 @@ module AkamaiCloudletManager
|
|
11
11
|
def info
|
12
12
|
request = Net::HTTP::Get.new URI.join(@base_uri.to_s, "cloudlets/api/v2/cloudlet-info/#{@cloudlet_id}").to_s
|
13
13
|
response = @http_host.request(request)
|
14
|
-
# puts response.body
|
15
14
|
response.body
|
16
15
|
end
|
17
16
|
|
@@ -19,7 +18,6 @@ module AkamaiCloudletManager
|
|
19
18
|
def list
|
20
19
|
request = Net::HTTP::Get.new URI.join(@base_uri.to_s, "cloudlets/api/v2/cloudlet-info?#{@group_id}").to_s
|
21
20
|
response = @http_host.request(request)
|
22
|
-
# puts response.body
|
23
21
|
response.body
|
24
22
|
end
|
25
23
|
end
|
@@ -7,11 +7,9 @@ module AkamaiCloudletManager
|
|
7
7
|
end
|
8
8
|
|
9
9
|
# Get Policy version's rules
|
10
|
-
|
11
|
-
def rules
|
10
|
+
def existing_rules
|
12
11
|
request = Net::HTTP::Get.new URI.join(@base_uri.to_s, "cloudlets/api/v2/policies/#{@policy_id}/versions/#{@version_id}?omitRules=false&matchRuleFormat=1.0").to_s
|
13
12
|
response = @http_host.request(request)
|
14
|
-
# puts response.body
|
15
13
|
response.body
|
16
14
|
end
|
17
15
|
|
@@ -23,7 +21,6 @@ module AkamaiCloudletManager
|
|
23
21
|
"cloudlets/api/v2/policies/#{@policy_id}/versions?includeRules=false&matchRuleFormat=1.0"
|
24
22
|
).to_s
|
25
23
|
response = @http_host.request(request)
|
26
|
-
# puts response.body
|
27
24
|
response.body
|
28
25
|
end
|
29
26
|
|
@@ -37,7 +34,6 @@ module AkamaiCloudletManager
|
|
37
34
|
{ 'Content-Type' => 'application/json'}
|
38
35
|
)
|
39
36
|
response = @http_host.request(request)
|
40
|
-
# puts response.body
|
41
37
|
response.body
|
42
38
|
end
|
43
39
|
|
@@ -54,17 +50,26 @@ module AkamaiCloudletManager
|
|
54
50
|
"network": network
|
55
51
|
}.to_json
|
56
52
|
response = @http_host.request(request)
|
57
|
-
# puts response.body
|
58
53
|
response.body
|
59
54
|
end
|
60
55
|
|
56
|
+
def append(options={})
|
57
|
+
# Removing location is mandatory from matchRules, otherwise we see this error:
|
58
|
+
# matchRules : object instance has properties which are not allowed by the schema: [\"location\"]\n"
|
59
|
+
rules = JSON.parse(existing_rules)
|
60
|
+
rules = rules["matchRules"].map{|rule| rule.delete('location'); rule; }
|
61
|
+
|
62
|
+
update(options, rules)
|
63
|
+
end
|
64
|
+
|
61
65
|
# Update policy version, all rules
|
62
|
-
def update(options = {})
|
66
|
+
def update(options = {}, existing_rules = [])
|
67
|
+
|
63
68
|
request = Net::HTTP::Put.new(
|
64
69
|
URI.join(@base_uri.to_s, "cloudlets/api/v2/policies/#{@policy_id}/versions/#{@version_id}?omitRules=false&matchRuleFormat=1.0").to_s,
|
65
70
|
{ 'Content-Type' => 'application/json'}
|
66
71
|
)
|
67
|
-
rules = generate_path_rules(options) + generate_cookie_rules(options)
|
72
|
+
rules = generate_path_rules(options) + generate_cookie_rules(options) + existing_rules
|
68
73
|
|
69
74
|
if rules.empty?
|
70
75
|
puts "No rules to apply, please check syntax"
|
@@ -80,9 +85,9 @@ module AkamaiCloudletManager
|
|
80
85
|
|
81
86
|
# All the path rules from one file will be added under same match, space separated
|
82
87
|
def generate_path_rules(options={})
|
83
|
-
return [] if options[:file_path].empty?
|
88
|
+
return [] if options[:file_path].nil? || options[:file_path].empty?
|
84
89
|
|
85
|
-
options = options.merge(match_operator: '
|
90
|
+
options = options.merge(match_operator: 'contains', match_type: 'path')
|
86
91
|
counter = 0
|
87
92
|
match_value = []
|
88
93
|
|
@@ -99,19 +104,19 @@ module AkamaiCloudletManager
|
|
99
104
|
|
100
105
|
match_rules(match_value, options)
|
101
106
|
rescue => err
|
102
|
-
puts "Exception: #{err}"
|
107
|
+
puts "Exception: #{err.formatted_exception("Path rules generation failed!")}"
|
103
108
|
err
|
104
109
|
end
|
105
110
|
|
106
111
|
# All the path rules from one file will be added under same match, space separated
|
107
112
|
def generate_cookie_rules(options = {})
|
108
|
-
return [] if options[:cookie_rules].empty?
|
113
|
+
return [] if options[:cookie_rules].nil? || options[:cookie_rules].empty?
|
109
114
|
|
110
115
|
options = options.merge(match_operator: 'contains', match_type: 'cookie')
|
111
116
|
|
112
117
|
match_rules(options[:cookie_rules], options)
|
113
118
|
rescue => err
|
114
|
-
puts "Exception: #{err}"
|
119
|
+
puts "Exception: #{err.formatted_exception("Cookie rules generation failed!")}"
|
115
120
|
err
|
116
121
|
end
|
117
122
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: akamai_cloudlet_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gourav Tiwari
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-11-
|
12
|
+
date: 2017-11-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: akamai-edgegrid
|
@@ -125,7 +125,7 @@ files:
|
|
125
125
|
- lib/akamai_cloudlet_manager/policy_version.rb
|
126
126
|
homepage: https://github.com/gouravtiwari/akamai-cloudlet-manager
|
127
127
|
licenses:
|
128
|
-
- Apache
|
128
|
+
- Apache-2.0
|
129
129
|
metadata: {}
|
130
130
|
post_install_message:
|
131
131
|
rdoc_options: []
|