fastly 0.95 → 0.96

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,22 +46,23 @@ die("Couldn't find any of the config files - #{configs.join(',')}") unless param
46
46
  die("Couldn't find vcl file #{vcl_file}") unless File.file?(vcl_file)
47
47
 
48
48
  fastly = Fastly.new(params)
49
+
49
50
  service = fastly.get_service(service_id) || die("Couldn't find service #{service_id}")
50
- old = service.version
51
- updated = old.clone
52
- puts "Uploading #{vcl_file} and bumping version from #{old.number} to #{updated.number}"
51
+ version = service.version
52
+ die "Can't upload a vcl file to the last (#{version.number}) version of #{service.name} (#{service.id}) because it's locked" if version.locked?
53
+ puts "Uploading #{vcl_file} to version #{version.number}"
53
54
  begin
54
55
  name = File.basename(vcl_file, ".vcl")
55
56
  content = File.new(vcl_file, "r").read
56
- vcl = updated.vcl(name)
57
+ vcl = version.vcl(name)
57
58
  if vcl
58
59
  vcl.content = content
59
60
  vcl.save!
60
61
  else
61
- updated.upload_vcl(name, content)
62
+ version.upload_vcl(name, content)
62
63
  end
63
- updated.activate!
64
+ # version.activate!
64
65
  rescue => e
65
- die("Couldn't upload and activate vcl: #{e}")
66
+ die("Couldn't upload vcl: #{e}")
66
67
  end
67
- puts "Done!"
68
+ puts "Done! You should now go and activate it at https://app.fastly.com/#configure"
@@ -5,7 +5,7 @@
5
5
  # A client library for interacting with the Fastly web acceleration service
6
6
  class Fastly
7
7
  # The current version of the library
8
- VERSION = "0.95"
8
+ VERSION = "0.96"
9
9
 
10
10
  require 'fastly/fetcher'
11
11
  require 'fastly/client'
@@ -409,13 +409,14 @@ class Fastly
409
409
  return options unless File.exist?(file)
410
410
 
411
411
  File.open(file, "r") do |infile|
412
- while (line = infile.gets.chomp) do
412
+ while (line = infile.gets) do
413
+ line.chomp!
413
414
  next if line =~ /^#/;
414
415
  next if line =~ /^\s*$/;
415
416
  next unless line =~ /=/;
416
417
  line.strip!
417
418
  key, val = line.split(/\s*=\s*/, 2)
418
- options[key] = val;
419
+ options[key.to_sym] = val;
419
420
  end
420
421
  end
421
422
  options;
@@ -430,16 +431,16 @@ class Fastly
430
431
  #
431
432
  # --<key>=<value>
432
433
  #
433
- def self.get_options(files)
434
+ def self.get_options(*files)
434
435
  options = {}
435
436
  files.each do |file|
436
437
  next unless File.exist?(file)
437
- options = load_options(file)
438
+ options = load_config(file)
438
439
  break
439
440
  end
440
441
 
441
442
  while (ARGV.size>0 && ARGV[0] =~ /^-+(\w+)\=(\w+)$/) do
442
- options[$1] = $2;
443
+ options[$1.to_sym] = $2;
443
444
  @ARGV.shift;
444
445
  end
445
446
  raise"Couldn't find options from command line arguments or #{files.join(', ')}" unless options.size>0
@@ -22,7 +22,7 @@ class Fastly
22
22
 
23
23
  private
24
24
 
25
- def self.get_path(service, version, name)
25
+ def self.get_path(service, version, name, options={})
26
26
  "/service/#{service}/version/#{version}/#{path}/#{name}"
27
27
  end
28
28
 
@@ -1,7 +1,7 @@
1
1
  class Fastly
2
2
  # An iteration of your configuration
3
3
  class Version < Base
4
- attr_accessor :service_id, :number, :name, :active, :locked, :staging, :testing, :deployed, :comment
4
+ attr_accessor :service_id, :number, :name, :active, :staging, :testing, :deployed, :comment
5
5
 
6
6
  ##
7
7
  # :attr: service_id
@@ -52,6 +52,15 @@ class Fastly
52
52
  #
53
53
  # a free form comment field
54
54
 
55
+ # Is this Version locked
56
+ def locked?
57
+ return @locked.to_i > 1
58
+ end
59
+
60
+ # Set whether this Version is locked
61
+ def locked=(is_locked)
62
+ @locked = is_locked ? "1" : "0"
63
+ end
55
64
 
56
65
  # Get the Service object this Version belongs to
57
66
  def service
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastly
3
3
  version: !ruby/object:Gem::Version
4
- hash: 181
4
+ hash: 203
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 95
9
- version: "0.95"
8
+ - 96
9
+ version: "0.96"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Fastly Inc
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-12-19 00:00:00 Z
17
+ date: 2012-01-17 00:00:00 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: json