docker-deploy 0.0.2 → 0.0.3

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: be91539004a67fa213f2b5c2149bb1a89ddb4ac4
4
- data.tar.gz: af40b92261584748ebeb054b8b0c4f10c22b207a
3
+ metadata.gz: 0435a79eec7d832534bd04cea705966e574ce363
4
+ data.tar.gz: a70b934b9c33bc3e0b23189b3ac1cf7eaced8f6a
5
5
  SHA512:
6
- metadata.gz: 5d8dd51c9ba0ba78cad337fad556e943db52edbfb14f6bd81a7658f4c6a8a03f02086e82ee52a1a404d202df078e7a4b823448c9b3069ab8a101b3cbffdae1b8
7
- data.tar.gz: a935045a142c753f4a6add279c4347504680e0b23614559b39d823ca827e76797f742e3b0d39bd48c7e7b05bb9c56de0c9bf56bb8efd7add12afe10dfb29845c
6
+ metadata.gz: ab66dcafe582866d4a4ecb42daffa23fd8b2e07d8d4c4c2c41f5070aa8b70487f54db577110ad0810cc257e02d75813f71c35ff891ab6fc6c8608522285995e7
7
+ data.tar.gz: 5915dc05e964e77ba1aadffa0114d50aa7d696c806502bca8c9fc319e05390a67d2a0c6d93ef39074caf3beb6f844a3d9b3b77bf59385bb554ad5f1d8a466c9b
@@ -5,36 +5,37 @@ class GoogleCloudPlatform
5
5
  def initialize(project_name, app_name, credentials)
6
6
  @project_name = project_name
7
7
  @app_name = app_name
8
- @storage = Gcloud.storage "#{project_name}" "#{credentials}"
9
- @bucket = self.get_bucket
8
+ # assume we already logged in (GCE instance or GCloud SDK)
9
+ puts project_name
10
+
11
+ @storage = Gcloud.storage project_name, credentials
12
+ buckets = @storage.buckets
13
+ buckets.each do |bucket|
14
+ if bucket.name == @app_name
15
+ @bucket = bucket
16
+ end
17
+ end
18
+
19
+ unless @bucket
20
+ @bucket = @storage.create_bucket @app_name, retries: 3
21
+ end
10
22
  end
11
23
 
12
- def self.get_yaml_filename(duty, latest=false)
24
+ def get_yaml_filename(duty, latest=false)
13
25
  branch = `git rev-parse --abbrev-ref HEAD`.strip
14
26
  commit = 'latest'
15
27
  unless latest
16
28
  commit = `git rev-parse --short HEAD`.strip
17
29
  end
18
30
 
19
- return "#{@app_name}-#{branch}-#{commit}_#{duty}.yaml"
31
+ "#{@app_name}-#{branch}-#{commit}_#{duty}.yaml"
20
32
  end
21
33
 
22
- private
23
- def self.get_bucket
24
- buckets = @storage.buckets
25
- buckets.each do |bucket|
26
- if bucket.name == @app_name
27
- return bucket
28
- end
29
- end
30
-
31
- return @storage.create_bucket @app_name, retries: 3
32
- end
33
-
34
- def self.generate_startup_script
34
+ def generate_startup_script
35
35
  branch = `git rev-parse --abbrev-ref HEAD`.strip
36
36
 
37
- dist = %w{#!/bin/bash
37
+ dist = <<-EOF
38
+ #!/bin/bash
38
39
 
39
40
  gsutil cp gs://<app_name>/docker-compose/<primary_yaml> .
40
41
  gsutil cp gs://<app_name>/docker-compose/<backup_yaml> .
@@ -46,7 +47,7 @@ docker-compose up -p <app_name> -f <primary_yaml> -d
46
47
  # Pull Backup containers and start them
47
48
  docker-compose pull -p <app_name> -f <backup_yaml>
48
49
  docker-compose up -p <app_name> -f <backup_yaml> -d
49
- }
50
+ EOF
50
51
 
51
52
  dist = dist.gsub('<app_name>', @app_name)
52
53
  dist = dist.gsub('<primary_yaml>', self.get_yaml_filename('primary', true))
@@ -60,15 +61,16 @@ docker-compose up -p <app_name> -f <backup_yaml> -d
60
61
  puts "Generated: #{filename} \n Contents: #{dist}"
61
62
 
62
63
  puts "Putting #{filename} on Google Cloud Storage"
63
- return @bucket.create_file filename "scripts/#{filename}"
64
+ @bucket.create_file filename, "scripts/#{filename}"
64
65
  end
65
66
 
66
- def self.put_production_yaml(filename)
67
+ def put_production_yaml(filename)
67
68
  puts "Putting #{filename} on Google Cloud Storage"
68
- return @bucket.create_file filename "docker-compose/#{filename}"
69
+
70
+ @bucket.create_file filename, "docker-compose/#{filename}"
69
71
  end
70
72
 
71
- def self.make_latest_production_yaml(duty)
73
+ def make_latest_production_yaml(duty)
72
74
  existing_file = @bucket.find_file "docker-compose/#{self.get_yaml_filename(duty)}"
73
75
 
74
76
  puts "Making #{existing_file} latest"
@@ -1,7 +1,12 @@
1
1
  class Infrastructure
2
2
 
3
- def self.google_cloud_platform(project_name, app_name, credentials=nil)
4
- GoogleCloudPlatform(project_name, app_name, credentials)
3
+ def self.google_cloud_platform(project_name, app_name)
4
+ credentials = ENV['GOOGLE_CLOUD_KEYFILE']
5
+ unless credentials
6
+ puts 'Google Cloud credentials file not set. Run export GOOGLE_CLOUD_KEYFILE=<your_keyfile>.json'
7
+ exit 1
8
+ end
9
+ GoogleCloudPlatform.new(project_name, app_name, credentials)
5
10
  end
6
11
  end
7
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - VJ Patel