fastly 1.1.2 → 1.1.3

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.
@@ -1,113 +1,113 @@
1
1
  class Fastly
2
2
  # An individual host you want to serve assets off
3
3
  class Backend < BelongsToServiceAndVersion
4
- attr_accessor :service_id, :name, :address, :ipv4, :ipv6, :hostname, :use_ssl, :client_cert, :port,
4
+ attr_accessor :service_id, :name, :address, :ipv4, :ipv6, :hostname, :use_ssl, :client_cert, :port,
5
5
  :connect_timeout, :first_byte_timeout, :between_bytes_timeout, :error_threshold, :max_conn, :weight, :comment, :healthcheck, :auto_loadbalance, :request_condition
6
6
 
7
- ##
7
+ ##
8
8
  # :attr: service_id
9
- #
9
+ #
10
10
  # The id of the service this belongs to.
11
- #
11
+ #
12
12
 
13
- ##
13
+ ##
14
14
  # :attr: version
15
- #
15
+ #
16
16
  # The number of the version this belongs to.
17
- #
17
+ #
18
18
 
19
- ##
19
+ ##
20
20
  # :attr: name
21
- #
21
+ #
22
22
  # The name of this backend.
23
- #
23
+ #
24
24
 
25
- ##
25
+ ##
26
26
  # :attr: address
27
- #
27
+ #
28
28
  # A magic field - will automagically be set to whichever of ipv4, ipv6 or hostname is currently set.
29
- #
29
+ #
30
30
  # Conversely if you set the address field then the correct field from ipv4, ipv6 or hostname will be set.
31
- #
31
+ #
32
32
 
33
- ##
33
+ ##
34
34
  # :attr: ipv4
35
- #
35
+ #
36
36
  # the ipv4 address of the host to serve assets (this, hostname or ipv6 must be set)
37
- #
37
+ #
38
38
 
39
- ##
39
+ ##
40
40
  # :attr: ipv6
41
- #
41
+ #
42
42
  # the ipv6 address of the host to serve assets (this, hostname or ipv4 must be set)
43
- #
43
+ #
44
44
 
45
- ##
45
+ ##
46
46
  # :attr: hostname
47
- #
47
+ #
48
48
  # the hostname to serve assets from (this, ipv4 or ipv6 must be set)
49
- #
49
+ #
50
50
 
51
- ##
51
+ ##
52
52
  # :attr: port
53
- #
53
+ #
54
54
  # the port to connect to (default 80)
55
- #
55
+ #
56
56
 
57
- ##
57
+ ##
58
58
  # :attr: use_ssl
59
- #
59
+ #
60
60
  # whether to use ssl to get to the backend (default 0 i.e false)
61
- #
61
+ #
62
62
 
63
- ##
63
+ ##
64
64
  # :attr: connect_timeout
65
- #
65
+ #
66
66
  # how long in milliseconds to wait for a connect before declaring the backend out of rotation (default 1,000)
67
- #
67
+ #
68
68
 
69
- ##
69
+ ##
70
70
  # :attr: first_byte_timeout
71
- #
71
+ #
72
72
  # how long in milliseconds to wait for the first bytes before declaring the host out of rotation (default 15,000)
73
- #
73
+ #
74
74
 
75
- ##
75
+ ##
76
76
  # :attr: between_bytes_timeout
77
- #
77
+ #
78
78
  # how long in milliseconds to wait between bytes before declaring the backend out of rotation (default 10,000)
79
- #
79
+ #
80
80
 
81
- ##
81
+ ##
82
82
  # :attr: error_threshold
83
- #
83
+ #
84
84
  # how many errors before declaring the backend out of rotation (default 0, 0 meaning turned off)
85
- #
85
+ #
86
86
 
87
- ##
87
+ ##
88
88
  # :attr: max_conn
89
- #
89
+ #
90
90
  # the maximum number of connections to this backend (default 20)
91
- #
91
+ #
92
92
 
93
- ##
93
+ ##
94
94
  # :attr: weight
95
- #
95
+ #
96
96
  # the weight assigned to this backend (default 100)
97
-
97
+
98
98
  ##
99
99
  # :attr: healthcheck
100
100
  #
101
101
  # the name of a healthcheck to associate with this backend. See the Healthcheck object
102
-
103
- ##
102
+
103
+ ##
104
104
  # :attr: auto_loadbalance
105
105
  #
106
106
  # set to true if you want to auto_loadbalance, set to false if you don't want to auto_loadbalance
107
-
107
+
108
108
  ##
109
109
  # :attr: request_condition
110
110
  #
111
111
  # name of a request_condition to filter the backend on
112
112
  end
113
- end
113
+ end
@@ -2,7 +2,7 @@ class Fastly
2
2
  # Base class for all Fastly objects
3
3
  class Base # :nodoc: all
4
4
  attr_accessor :fetcher
5
-
5
+
6
6
  def initialize(opts, fetcher)
7
7
  @keys = []
8
8
  opts.each do |key,val|
@@ -12,7 +12,7 @@ class Fastly
12
12
  end
13
13
  self.fetcher = fetcher
14
14
  end
15
-
15
+
16
16
  # Save this object
17
17
  def save!
18
18
  fetcher.update(self.class, self)
@@ -22,7 +22,7 @@ class Fastly
22
22
  def delete!
23
23
  fetcher.delete(self.class, self)
24
24
  end
25
-
25
+
26
26
  ##
27
27
  # :nodoc:
28
28
  def as_hash
@@ -36,26 +36,26 @@ class Fastly
36
36
  def self.path
37
37
  Util.class_to_path(self)
38
38
  end
39
-
39
+
40
40
  def self.get_path(id)
41
41
  "/#{path}/#{id}"
42
42
  end
43
-
43
+
44
44
  def self.post_path(opts={})
45
45
  "/#{path}"
46
46
  end
47
-
47
+
48
48
  def self.list_path(opts={})
49
49
  post_path(opts)
50
50
  end
51
-
51
+
52
52
  def self.put_path(obj)
53
53
  get_path(obj.id)
54
54
  end
55
-
55
+
56
56
  def self.delete_path(obj)
57
57
  put_path(obj)
58
58
  end
59
-
59
+
60
60
  end
61
61
  end
@@ -4,44 +4,44 @@ class Fastly
4
4
  def service
5
5
  @service ||= fetcher.get(Fastly::Service, service_id)
6
6
  end
7
-
7
+
8
8
  # Set the Version object this belongs to
9
9
  def version=(version)
10
10
  @version = version
11
11
  end
12
-
12
+
13
13
  # Get the Version object this belongs to
14
14
  def version
15
15
  @version_obj ||= fetcher.get(Fastly::Version, service_id, version_number)
16
16
  end
17
-
17
+
18
18
  # Get the number of the Version this belongs to
19
19
  def version_number
20
20
  @version
21
21
  end
22
22
 
23
23
  # :nodoc:
24
- def as_hash
24
+ def as_hash
25
25
  super.delete_if { |var| ["service_id", "version"].include?(var) }
26
26
  end
27
-
27
+
28
28
  private
29
-
29
+
30
30
  def self.get_path(service, version, name, options={})
31
31
  "/service/#{service}/version/#{version}/#{path}/#{name}"
32
32
  end
33
-
33
+
34
34
  def self.post_path(opts)
35
35
  "/service/#{opts[:service_id]}/version/#{opts[:version]}/#{path}"
36
36
  end
37
-
37
+
38
38
  def self.put_path(obj)
39
39
  get_path(obj.service_id, obj.version_number,obj.name)
40
40
  end
41
-
41
+
42
42
  def self.delete_path(obj)
43
43
  put_path(obj)
44
44
  end
45
-
45
+
46
46
  end
47
47
  end
@@ -2,17 +2,17 @@ class Fastly
2
2
  # customize cache handling. Best used with conditions.
3
3
  class CacheSetting < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :action, :cache_condition, :ttl, :stale_ttl
5
- ##
5
+ ##
6
6
  # :attr: service_id
7
7
  #
8
8
  # The id of the service this belongs to.
9
9
 
10
- ##
10
+ ##
11
11
  # :attr: version
12
12
  #
13
13
  # The number of the version this belongs to.
14
14
 
15
- ##
15
+ ##
16
16
  # :attr: name
17
17
  #
18
18
  # The name of the gzip setting
@@ -8,7 +8,7 @@ require 'uri'
8
8
  class Fastly
9
9
  # The UserAgent to communicate with the API
10
10
  class Client #:nodoc: all
11
- begin
11
+ begin
12
12
  require 'curb-fu'
13
13
  CURB_FU=true
14
14
  rescue LoadError
@@ -50,19 +50,19 @@ class Fastly
50
50
  def fully_authed?
51
51
  !(user.nil? || password.nil?)
52
52
  end
53
-
53
+
54
54
  def set_customer(id)
55
-
55
+
56
56
  end
57
57
 
58
58
  def get(path, params={})
59
- path += "?"+make_params(params) unless params.empty?
59
+ path += "?"+make_params(params) unless params.empty?
60
60
  resp = self.http.get(path, headers)
61
61
  return nil if 404 == resp.status
62
62
  raise Fastly::Error, resp.message unless resp.success?
63
63
  JSON.parse(resp.body)
64
64
  end
65
-
65
+
66
66
  def get_stats(path, params={})
67
67
  content = get(path, params)
68
68
  raise Fastly::Error, content["message"] unless content["status"] == 'success'
@@ -98,19 +98,19 @@ class Fastly
98
98
  end
99
99
 
100
100
  def make_params(params)
101
- params.map { |key,val|
101
+ params.map { |key,val|
102
102
  next if val.nil?
103
103
  unless val.is_a?(Hash)
104
104
  "#{CGI.escape(key.to_s)}=#{CGI.escape(val.to_s)}"
105
- else
105
+ else
106
106
  val.map { |sub_key, sub_val|
107
107
  new_key = "#{key}[#{sub_key}]"
108
108
  "#{CGI.escape(new_key)}=#{CGI.escape(sub_val.to_s)}"
109
- }
109
+ }
110
110
  end
111
111
  }.flatten.delete_if { |v| v.nil? }.join("&")
112
112
  end
113
-
113
+
114
114
  # :nodoc: all
115
115
  class Curl
116
116
  attr_accessor :host, :port, :protocol
@@ -145,7 +145,7 @@ class Fastly
145
145
  end
146
146
 
147
147
  # :nodoc: all
148
- class Net::HTTPResponse
148
+ class Net::HTTPResponse
149
149
  def success?
150
150
  return Net::HTTPSuccess === self
151
151
  end
@@ -158,7 +158,7 @@ end
158
158
 
159
159
 
160
160
  # :nodoc: all
161
- class CurbFu::Response::Base
161
+ class CurbFu::Response::Base
162
162
  def get_fields(key)
163
163
  if ( match = @headers.find{|k,v| k.downcase == key.downcase} )
164
164
  [match.last].flatten
@@ -1,34 +1,34 @@
1
1
  class Fastly
2
- # An endpoint to stream syslogs to
2
+ # An endpoint to stream syslogs to
3
3
  class Condition < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :priority, :statement, :type
5
5
 
6
- ##
6
+ ##
7
7
  # :attr: service_id
8
8
  #
9
9
  # The id of the service this belongs to.
10
10
 
11
- ##
11
+ ##
12
12
  # :attr: version
13
13
  #
14
14
  # The number of the version this belongs to.
15
15
 
16
- ##
16
+ ##
17
17
  # :attr: name
18
18
  #
19
19
  # The name of the condition
20
20
 
21
- ##
21
+ ##
22
22
  # :attr: statement
23
23
  #
24
24
  # The statement of the condition, should be a varnish if statement line
25
25
 
26
- ##
26
+ ##
27
27
  # :attr: priority
28
28
  #
29
29
  # What order to run them in, higher priority gets executed after lower priority
30
30
 
31
- ##
31
+ ##
32
32
  # :attr: type
33
33
  #
34
34
  # request, cache or response
@@ -5,17 +5,17 @@ class Fastly
5
5
 
6
6
  ##
7
7
  # :attr: id
8
- #
8
+ #
9
9
  # The id of this customer
10
10
 
11
- ##
11
+ ##
12
12
  # :attr: name
13
- #
13
+ #
14
14
  # The name of this customer
15
15
 
16
- ##
16
+ ##
17
17
  # :attr: owner_id
18
- #
18
+ #
19
19
  # The id of the user that owns this customer
20
20
 
21
21
  # Return a user object representing the owner of this Customer
@@ -23,4 +23,4 @@ class Fastly
23
23
  self.fetcher.get(User,self.owner_id)
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -3,59 +3,59 @@ class Fastly
3
3
  class Director < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :type, :comment, :retries, :capacity, :quorum
5
5
 
6
- ##
6
+ ##
7
7
  # :attr: service
8
- #
8
+ #
9
9
  # The id of the service this belongs to.
10
- #
10
+ #
11
11
 
12
- ##
12
+ ##
13
13
  # :attr: version
14
- #
14
+ #
15
15
  # The number of the version this belongs to.
16
- #
16
+ #
17
17
 
18
- ##
18
+ ##
19
19
  # :attr: name
20
- #
20
+ #
21
21
  # The domain name of this domain
22
- #
22
+ #
23
23
 
24
- ##
24
+ ##
25
25
  # :attr: type
26
- #
26
+ #
27
27
  # what kind of Load Balancer group (currently always 1 meaning random)
28
- #
28
+ #
29
29
 
30
- ##
30
+ ##
31
31
  # :attr: retries
32
- #
32
+ #
33
33
  # how many backends to search if it fails (default 5)
34
- #
34
+ #
35
35
 
36
- ##
36
+ ##
37
37
  # :attr: quorum
38
- #
38
+ #
39
39
  # the percentage of capacity that needs to be up for a director to be considered up (default 75)
40
- #
40
+ #
41
41
 
42
- ##
43
- # :attr: comment
44
- #
42
+ ##
43
+ # :attr: comment
44
+ #
45
45
  # a free form comment field
46
-
46
+
47
47
  # Add a Backend object to a Director
48
48
  #
49
49
  # Return true on success and false on failure
50
- def add_backend(backend)
50
+ def add_backend(backend)
51
51
  hash = fetcher.client.post(Fastly::Director.put_path(self)+"/backend/#{backend.name}")
52
52
  return !hash.nil?
53
53
  end
54
-
54
+
55
55
  # Delete a Backend object from a Director
56
56
  #
57
57
  # Return true on success and false on failure
58
- def delete_backend(backend)
58
+ def delete_backend(backend)
59
59
  hash = fetcher.client.delete(Fastly::Director.put_path(self)+"/backend/#{backend.name}")
60
60
  return !hash.nil?
61
61
  end