clc-promote 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/promote.rb +1 -0
- data/lib/promote/promoter.rb +25 -0
- data/lib/promote/rake_tasks.rb +12 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea9764b3bc953678d48b097a9dca0cb3efe0f0e8
|
4
|
+
data.tar.gz: 6a3a542d184ba10a432e8454c6c57396abad764f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54c999394f9ae50f659d73d459a0ebd8cdf53ff2bbf4d8ff8b3f86ed90385fcadbbdac040d9ab4a20d93c6fbd777cc5acf75229253605dfef4f0fde41fe3b751
|
7
|
+
data.tar.gz: 5dc609f13709d5595500c064f9b727ed4a2a03b2ee683ff97611433fa7da335d21a80dee845ff2633b291cb372fbe7da1303f743da66fc5a2d1862a7ba7e9be6
|
data/lib/promote.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Promote
|
4
|
+
class Promoter
|
5
|
+
attr_accessor :config
|
6
|
+
|
7
|
+
def initialize(config = Config.new)
|
8
|
+
@config = config
|
9
|
+
end
|
10
|
+
|
11
|
+
def promote_to(source_environment, destination_environment)
|
12
|
+
source_file = File.join(config.environment_directory, "#{source_environment}.json")
|
13
|
+
dest_file = File.join(config.environment_directory, "#{destination_environment}.json")
|
14
|
+
|
15
|
+
source_content = JSON.parse(File.read(source_file))
|
16
|
+
dest_content = JSON.parse(File.read(dest_file))
|
17
|
+
|
18
|
+
dest_content['cookbook_versions'] = source_content['cookbook_versions']
|
19
|
+
|
20
|
+
File.open(dest_file, 'w') do |out|
|
21
|
+
out << JSON.pretty_generate(dest_content)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/promote/rake_tasks.rb
CHANGED
@@ -10,6 +10,7 @@ module Promote
|
|
10
10
|
config = Config.new({ :repo_root => config }) if config.is_a?(String)
|
11
11
|
@versioner = Versioner.new(config)
|
12
12
|
@uploader = Uploader.new(config)
|
13
|
+
@promoter = Promoter.new(config)
|
13
14
|
yield self if block_given?
|
14
15
|
define_version_cookbook
|
15
16
|
define_version_cookbooks
|
@@ -22,6 +23,7 @@ module Promote
|
|
22
23
|
define_upload_environment
|
23
24
|
define_upload_data_bags
|
24
25
|
define_constrain_environment
|
26
|
+
define_promote_environment
|
25
27
|
end
|
26
28
|
|
27
29
|
private
|
@@ -79,6 +81,16 @@ module Promote
|
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
84
|
+
def define_promote_environment
|
85
|
+
namespace "Promote" do
|
86
|
+
desc "Promote one environment from another"
|
87
|
+
task "promote_environment", :source_environment, :destination_environment do |task, args|
|
88
|
+
puts "Promoting constraints in #{args.source_environment} to #{args.destination_environment}"
|
89
|
+
deps = @promoter.promote_environment(args.source_environment, args.destination_environment)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
82
94
|
def define_version_environments
|
83
95
|
namespace "Promote" do
|
84
96
|
desc "Version all environments"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clc-promote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink Cloud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- README.md
|
115
115
|
- lib/promote.rb
|
116
116
|
- lib/promote/config.rb
|
117
|
+
- lib/promote/promoter.rb
|
117
118
|
- lib/promote/rake_tasks.rb
|
118
119
|
- lib/promote/uploader.rb
|
119
120
|
- lib/promote/versioner.rb
|