fastly 1.00 → 1.1.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 +7 -7
- data/.gitignore +1 -0
- data/.travis.yml +6 -0
- data/Changes +14 -0
- data/LICENSE +20 -0
- data/README.md +94 -61
- data/Rakefile +9 -0
- data/fastly.gemspec +5 -3
- data/lib/fastly.rb +233 -18
- data/lib/fastly/backend.rb +11 -2
- data/lib/fastly/base.rb +1 -1
- data/lib/fastly/belongs_to_service_and_version.rb +7 -2
- data/lib/fastly/cache_setting.rb +47 -0
- data/lib/fastly/client.rb +7 -1
- data/lib/fastly/condition.rb +40 -0
- data/lib/fastly/director.rb +2 -2
- data/lib/fastly/fetcher.rb +2 -2
- data/lib/fastly/gem_version.rb +4 -0
- data/lib/fastly/gzip.rb +39 -0
- data/lib/fastly/header.rb +88 -0
- data/lib/fastly/request_setting.rb +90 -0
- data/lib/fastly/response_object.rb +54 -0
- data/lib/fastly/s3_logging.rb +68 -0
- data/lib/fastly/service.rb +4 -4
- data/lib/fastly/settings.rb +9 -4
- data/lib/fastly/string.rb +7 -0
- data/lib/fastly/syslog.rb +6 -1
- data/lib/fastly/version.rb +7 -0
- data/test/admin_test.rb +7 -11
- data/test/api_key_test.rb +11 -14
- data/test/common.rb +98 -38
- data/test/full_login_test.rb +17 -21
- data/test/helper.rb +19 -3
- data/test/stats_test.rb +85 -0
- metadata +95 -56
data/test/full_login_test.rb
CHANGED
@@ -1,12 +1,8 @@
|
|
1
|
-
|
1
|
+
require 'helper'
|
2
2
|
|
3
|
-
|
4
|
-
require 'test/unit'
|
5
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
6
|
-
|
7
|
-
class FullLoginTest < Test::Unit::TestCase
|
3
|
+
class FullLoginTest < Fastly::TestCase
|
8
4
|
include CommonTests
|
9
|
-
|
5
|
+
|
10
6
|
def setup
|
11
7
|
@opts = login_opts(:full).merge(:use_curb => false)
|
12
8
|
begin
|
@@ -18,7 +14,7 @@ class FullLoginTest < Test::Unit::TestCase
|
|
18
14
|
exit(-1)
|
19
15
|
end
|
20
16
|
end
|
21
|
-
|
17
|
+
|
22
18
|
def test_raw_client
|
23
19
|
user = @client.get('/current_user')
|
24
20
|
assert user
|
@@ -29,8 +25,8 @@ class FullLoginTest < Test::Unit::TestCase
|
|
29
25
|
assert customer
|
30
26
|
assert_equal @opts[:customer], customer['name']
|
31
27
|
end
|
32
|
-
|
33
|
-
|
28
|
+
|
29
|
+
|
34
30
|
def test_current_user_and_customer
|
35
31
|
user = @fastly.current_user
|
36
32
|
assert user
|
@@ -40,28 +36,28 @@ class FullLoginTest < Test::Unit::TestCase
|
|
40
36
|
customer = @fastly.current_customer
|
41
37
|
assert customer
|
42
38
|
assert_equal @opts[:customer], customer.name
|
43
|
-
|
39
|
+
|
44
40
|
tmp_customer = user.customer
|
45
41
|
assert_equal customer.id, tmp_customer.id
|
46
|
-
|
42
|
+
|
47
43
|
tmp_user = customer.owner
|
48
44
|
assert tmp_user
|
49
45
|
assert_equal user.id, tmp_user.id
|
50
46
|
end
|
51
|
-
|
52
|
-
|
47
|
+
|
48
|
+
|
53
49
|
def test_fetching_particular_user
|
54
50
|
current_user = @fastly.current_user
|
55
51
|
assert current_user
|
56
|
-
|
52
|
+
|
57
53
|
id_user = @fastly.get_user(current_user.id)
|
58
54
|
assert_equal current_user.id, id_user.id
|
59
55
|
assert_equal current_user.name, id_user.name
|
60
|
-
|
56
|
+
|
61
57
|
# FIXME looking up by login doesn't work yet
|
62
58
|
#login_user = @fastly.get_user(current_user.login)
|
63
59
|
#assert_equal current_user.id, login_user.id
|
64
|
-
#assert_equal current_user.name, login_user.name
|
60
|
+
#assert_equal current_user.name, login_user.name
|
65
61
|
|
66
62
|
current_customer = @fastly.current_customer
|
67
63
|
assert current_customer
|
@@ -77,7 +73,7 @@ class FullLoginTest < Test::Unit::TestCase
|
|
77
73
|
user = @fastly.create_user(:login => email, :name => "New User")
|
78
74
|
assert user
|
79
75
|
assert_equal customer.id, user.customer_id
|
80
|
-
assert_equal "New User", user.name
|
76
|
+
assert_equal "New User", user.name
|
81
77
|
assert_equal email, user.login
|
82
78
|
|
83
79
|
tmp = @fastly.get_user(user.id)
|
@@ -85,13 +81,13 @@ class FullLoginTest < Test::Unit::TestCase
|
|
85
81
|
assert tmp
|
86
82
|
assert_equal user.id, tmp.id
|
87
83
|
assert_equal user.name, tmp.name
|
88
|
-
|
84
|
+
|
89
85
|
user.name = "Updated Name"
|
90
|
-
tmp = @fastly.update_user(user)
|
86
|
+
tmp = @fastly.update_user(user)
|
91
87
|
assert tmp
|
92
88
|
assert_equal user.id, tmp.id
|
93
89
|
assert_equal "Updated Name", tmp.name
|
94
|
-
|
90
|
+
|
95
91
|
assert @fastly.delete_user(user)
|
96
92
|
tmp = @fastly.get_user(user.id)
|
97
93
|
assert_equal nil, tmp
|
data/test/helper.rb
CHANGED
@@ -1,4 +1,20 @@
|
|
1
|
-
require
|
1
|
+
require 'common'
|
2
|
+
require 'fastly'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
|
5
|
+
# Accommodate a more modern version of Minitest compared to the stdlib
|
6
|
+
if defined? Minitest::Test
|
7
|
+
class Fastly::TestCase < Minitest::Test
|
8
|
+
end
|
9
|
+
else
|
10
|
+
class Fastly::TestCase < MiniTest::Unit::TestCase
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Fastly::TestCase
|
15
|
+
# Map inconsistency between Test::Unit and Minitest
|
16
|
+
alias :assert_raise :assert_raises
|
17
|
+
end
|
2
18
|
|
3
19
|
def login_opts(mode=:full)
|
4
20
|
opts = { }
|
@@ -6,7 +22,7 @@ def login_opts(mode=:full)
|
|
6
22
|
key = "FASTLY_TEST_BASE_#{what.to_s.upcase}"
|
7
23
|
opts["base_#{what}".to_sym] = ENV[key] if ENV.has_key?(key)
|
8
24
|
end
|
9
|
-
|
25
|
+
|
10
26
|
required = :full == mode ? [:user, :name, :password, :customer] : [:api_key, :customer]
|
11
27
|
required.each do |what|
|
12
28
|
key ="FASTLY_TEST_#{what.to_s.upcase}"
|
@@ -21,4 +37,4 @@ end
|
|
21
37
|
|
22
38
|
def get_rand
|
23
39
|
"#{Process.pid}-#{Time.now.to_i}-#{Kernel.rand(1000)}"
|
24
|
-
end
|
40
|
+
end
|
data/test/stats_test.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
FROM = "2011-01-01 00:00:00"
|
4
|
+
|
5
|
+
class StatsTest < Fastly::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
opts = login_opts(:api_key).merge(:use_curb => false)
|
9
|
+
begin
|
10
|
+
@fastly = Fastly.new(opts)
|
11
|
+
rescue Exception => e
|
12
|
+
warn e.inspect
|
13
|
+
warn e.backtrace.join("\n")
|
14
|
+
exit(-1)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_regions
|
19
|
+
regions = @fastly.regions
|
20
|
+
assert(regions.size>0)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_usage
|
24
|
+
usage = @fastly.usage(:from => FROM)
|
25
|
+
assert(usage["usa"], "Found a USA region in usage");
|
26
|
+
assert(usage["usa"]["requests"], "USA region has a requests field");
|
27
|
+
|
28
|
+
usage = @fastly.usage(:from => FROM, :by_service => 1)
|
29
|
+
assert(usage["usa"], "Found a USA region in usage");
|
30
|
+
assert(usage["usa"]["requests"].nil?, "USA region doesn't have a requests field");
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def test_stats
|
35
|
+
stats = @fastly.stats(:from => $FROM)
|
36
|
+
service1, service2 = stats.keys
|
37
|
+
assert(stats[service1][0]["requests"], "Found requests")
|
38
|
+
assert(stats[service1][0]["hits"], "Found hits")
|
39
|
+
assert(stats[service2][0]["requests"], "Found requests")
|
40
|
+
assert(stats[service2][0]["hits"], "Found hits")
|
41
|
+
|
42
|
+
stats = @fastly.stats(:from => $FROM, :field => "requests")
|
43
|
+
assert(stats[service1][0]["requests"], "Found requests")
|
44
|
+
assert(stats[service1][0]["hits"].nil?, "Didn't find hits")
|
45
|
+
assert(stats[service2][0]["requests"], "Found requests")
|
46
|
+
assert(stats[service2][0]["hits"].nil?, "Didn't find hits")
|
47
|
+
|
48
|
+
stats = @fastly.stats(:from => $FROM, :service => service1)
|
49
|
+
assert_equal(stats[0]["service_id"], service1, "Got correct service id")
|
50
|
+
assert(stats[0]["requests"], "Found requests")
|
51
|
+
assert(stats[0]["hits"], "Found hits")
|
52
|
+
|
53
|
+
stats = @fastly.stats(:from => $FROM, :field => "requests", :service => service1)
|
54
|
+
assert_equal(stats[0]["service_id"], service1, "Got correct service id")
|
55
|
+
assert(stats[0]["requests"], "Found requests")
|
56
|
+
assert(stats[0]["hits"].nil?, "Didn't find hits")
|
57
|
+
|
58
|
+
stats = @fastly.stats(:from => $FROM, :aggregate => true)
|
59
|
+
assert(stats[0]["service_id"].nil?, "No service id")
|
60
|
+
assert(stats[0]["requests"], "Found requests")
|
61
|
+
assert(stats[0]["hits"], "Found hits")
|
62
|
+
|
63
|
+
stats = nil
|
64
|
+
# stats aggregate with field
|
65
|
+
begin
|
66
|
+
stats = @fastly.stats(:from => $FROM, :field => "requests", :aggregate => true)
|
67
|
+
rescue Fastly::Error => e
|
68
|
+
end
|
69
|
+
assert stats.nil?
|
70
|
+
|
71
|
+
# stats aggregate with service
|
72
|
+
begin
|
73
|
+
stats = @fastly.stats(:from => $FROM, :service => service1, :aggregate => true)
|
74
|
+
rescue Fastly::Error => e
|
75
|
+
end
|
76
|
+
assert stats.nil?
|
77
|
+
|
78
|
+
begin
|
79
|
+
stats = @fastly.stats(:from => $FROM, :service => service1, :field => "requests", :aggregate => true)
|
80
|
+
rescue Fastly::Error => e
|
81
|
+
end
|
82
|
+
assert stats.nil?
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
metadata
CHANGED
@@ -1,70 +1,98 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastly
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Fastly Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
16
21
|
prerelease: false
|
17
|
-
|
18
|
-
requirements:
|
19
|
-
-
|
20
|
-
-
|
21
|
-
|
22
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
23
34
|
type: :runtime
|
24
|
-
version_requirements: *id001
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: curb
|
27
35
|
prerelease: false
|
28
|
-
|
29
|
-
requirements:
|
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: curb
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
30
45
|
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
46
|
+
- !ruby/object:Gem::Version
|
32
47
|
version: 0.7.15
|
33
48
|
type: :runtime
|
34
|
-
version_requirements: *id002
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: curb-fu
|
37
49
|
prerelease: false
|
38
|
-
|
39
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
40
52
|
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.7.15
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: curb-fu
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
42
61
|
version: 0.6.1
|
43
62
|
type: :runtime
|
44
|
-
|
45
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.6.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
46
70
|
name: rdoc
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.4'
|
76
|
+
type: :development
|
47
77
|
prerelease: false
|
48
|
-
|
49
|
-
requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
50
80
|
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version:
|
53
|
-
type: :runtime
|
54
|
-
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.4'
|
55
83
|
description: Client library for the Fastly acceleration system
|
56
|
-
email:
|
84
|
+
email:
|
57
85
|
- support@fastly.com
|
58
|
-
executables:
|
86
|
+
executables:
|
59
87
|
- fastly_upload_vcl
|
60
88
|
extensions: []
|
61
|
-
|
62
89
|
extra_rdoc_files: []
|
63
|
-
|
64
|
-
|
65
|
-
- .
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- ".travis.yml"
|
66
93
|
- Changes
|
67
94
|
- Gemfile
|
95
|
+
- LICENSE
|
68
96
|
- README.md
|
69
97
|
- Rakefile
|
70
98
|
- bin/fastly_upload_vcl
|
@@ -73,17 +101,26 @@ files:
|
|
73
101
|
- lib/fastly/backend.rb
|
74
102
|
- lib/fastly/base.rb
|
75
103
|
- lib/fastly/belongs_to_service_and_version.rb
|
104
|
+
- lib/fastly/cache_setting.rb
|
76
105
|
- lib/fastly/client.rb
|
106
|
+
- lib/fastly/condition.rb
|
77
107
|
- lib/fastly/customer.rb
|
78
108
|
- lib/fastly/director.rb
|
79
109
|
- lib/fastly/domain.rb
|
80
110
|
- lib/fastly/fetcher.rb
|
111
|
+
- lib/fastly/gem_version.rb
|
112
|
+
- lib/fastly/gzip.rb
|
113
|
+
- lib/fastly/header.rb
|
81
114
|
- lib/fastly/healthcheck.rb
|
82
115
|
- lib/fastly/invoice.rb
|
83
116
|
- lib/fastly/match.rb
|
84
117
|
- lib/fastly/origin.rb
|
118
|
+
- lib/fastly/request_setting.rb
|
119
|
+
- lib/fastly/response_object.rb
|
120
|
+
- lib/fastly/s3_logging.rb
|
85
121
|
- lib/fastly/service.rb
|
86
122
|
- lib/fastly/settings.rb
|
123
|
+
- lib/fastly/string.rb
|
87
124
|
- lib/fastly/syslog.rb
|
88
125
|
- lib/fastly/user.rb
|
89
126
|
- lib/fastly/vcl.rb
|
@@ -93,33 +130,35 @@ files:
|
|
93
130
|
- test/common.rb
|
94
131
|
- test/full_login_test.rb
|
95
132
|
- test/helper.rb
|
133
|
+
- test/stats_test.rb
|
96
134
|
homepage: http://github.com/fastly/fastly-ruby
|
97
|
-
licenses:
|
98
|
-
|
135
|
+
licenses:
|
136
|
+
- MIT
|
99
137
|
metadata: {}
|
100
|
-
|
101
138
|
post_install_message:
|
102
139
|
rdoc_options: []
|
103
|
-
|
104
|
-
require_paths:
|
140
|
+
require_paths:
|
105
141
|
- lib
|
106
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
-
|
109
|
-
|
110
|
-
|
111
|
-
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
112
152
|
requirements: []
|
113
|
-
|
114
153
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
154
|
+
rubygems_version: 2.2.2
|
116
155
|
signing_key:
|
117
156
|
specification_version: 4
|
118
157
|
summary: Client library for the Fastly acceleration system
|
119
|
-
test_files:
|
158
|
+
test_files:
|
120
159
|
- test/admin_test.rb
|
121
160
|
- test/api_key_test.rb
|
122
161
|
- test/common.rb
|
123
162
|
- test/full_login_test.rb
|
124
163
|
- test/helper.rb
|
125
|
-
|
164
|
+
- test/stats_test.rb
|