a2zdeploy 1.0.18 → 1.0.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/a2zdeploy.gemspec +1 -1
- data/lib/dependency_tree.rb +23 -25
- data/lib/global_constants.rb +2 -2
- data/lib/hash_extensions.rb +9 -4
- data/lib/input_validator.rb +1 -1
- data/lib/rollbackall.rb +3 -6
- data/lib/upgradeall.rb +1 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38ba98ff95182928338ffcb4f056e71a50ed626b
|
4
|
+
data.tar.gz: 7f8566f7bd6ee26798b77ae943025d9eceeab4bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4d3bac9fdbe431212d12e029c06f6e59e49ff3130236df90f13ee7484f6818f527c6710d215db530f59efcb3a7602faff5b14184f1d362023f51abb14190bdf
|
7
|
+
data.tar.gz: 0412791305d2ab825f289afd002e1eb1de90db383d90c1a5bfac60ef14958fc1fe5d372be8dd288daa0b0e7dd483e23fb0e0c0b88850a79a2da1709efc935e0f
|
data/a2zdeploy.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'a2zdeploy'
|
3
|
-
s.version = '1.0.
|
3
|
+
s.version = '1.0.19'
|
4
4
|
s.date = '2016-02-15'
|
5
5
|
s.summary = 'Given a project dependency chain, updates versions, builds, tests, manages service and cloud settings as well as build environment configuration'
|
6
6
|
s.description = 'Automated Upgrades Gem. Provides version upgrades, build and deployment configuration management'
|
data/lib/dependency_tree.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
=begin
|
2
2
|
Defines a simple dependency tree in a has map and allows accessing top and GlobalConstants::NEXT item in the tree.
|
3
|
-
- The keys 'GlobalConstants::
|
4
|
-
- GlobalConstants::
|
3
|
+
- The keys 'GlobalConstants::NEXT, GlobalConstants::PREVIOUS and GlobalConstants::PROJECTNAME_NAME' are self-descriptive and symbols
|
4
|
+
- GlobalConstants::IS_ROOT's project GlobalConstants::PREVIOUS is always nil, so are all leaf node GlobalConstants::NEXT
|
5
5
|
{
|
6
|
-
"
|
6
|
+
"Ontology" => {
|
7
7
|
"GlobalConstants::PROJECTNAME" => "Ontology",
|
8
|
+
"GlobalConstants::IS_ROOT" => "y",
|
8
9
|
"GlobalConstants::NEXT" => "FhirWalker",
|
9
10
|
"GlobalConstants::PREVIOUS" => nil,
|
10
11
|
"metadata" => "[json or another hash]"
|
@@ -23,55 +24,52 @@ class DependencyTree
|
|
23
24
|
|
24
25
|
def initialize dependency_map
|
25
26
|
@dependency_map = dependency_map
|
27
|
+
@root_node = nil
|
26
28
|
end
|
27
29
|
|
28
30
|
def root
|
29
|
-
return nil if @dependency_map.nil? ||
|
31
|
+
return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
|
32
|
+
return @root_node if !@root_node.nil?
|
30
33
|
|
31
|
-
|
32
|
-
if
|
33
|
-
root_node = Hashit.new
|
34
|
-
root_node
|
34
|
+
@dependency_map.each do |k,v|
|
35
|
+
if v.has_key?(GlobalConstants::IS_ROOT) && v[GlobalConstants::IS_ROOT].downcase == 'y'
|
36
|
+
root_node = Hashit.new v, k
|
37
|
+
@root_node = root_node
|
38
|
+
return @root_node
|
35
39
|
end
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
39
43
|
def next_node current
|
40
44
|
return nil if current.to_s.strip.length == 0
|
41
|
-
return nil if @dependency_map.nil? ||
|
45
|
+
return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
|
42
46
|
|
43
|
-
current = GlobalConstants::ROOT if @dependency_map[GlobalConstants::ROOT][GlobalConstants::PROJECTNAME] == current
|
44
47
|
if @dependency_map[current].has_key? GlobalConstants::NEXT
|
45
|
-
|
46
|
-
next_node = @dependency_map[
|
47
|
-
|
48
|
+
next_node_name = @dependency_map[current][GlobalConstants::NEXT]
|
49
|
+
next_node = @dependency_map[next_node_name]
|
50
|
+
return nil if next_node.nil?
|
51
|
+
return Hashit.new next_node, next_node_name
|
48
52
|
end
|
49
53
|
end
|
50
54
|
|
51
55
|
def previous_node current
|
52
56
|
return nil if current.to_s.strip.length == 0
|
53
|
-
return nil if @dependency_map.nil? ||
|
57
|
+
return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
|
54
58
|
|
55
59
|
if @dependency_map[current].has_key? GlobalConstants::PREVIOUS
|
56
|
-
|
57
|
-
|
58
|
-
prev_node = @dependency_map[GlobalConstants::ROOT]
|
59
|
-
else
|
60
|
-
prev_node = @dependency_map[prev_node]
|
61
|
-
end
|
60
|
+
prev_node_name = @dependency_map[current][GlobalConstants::PREVIOUS]
|
61
|
+
prev_node = @dependency_map[prev_node_name]
|
62
62
|
return nil if prev_node.nil?
|
63
|
-
return Hashit.new prev_node
|
63
|
+
return Hashit.new prev_node, prev_node_name
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
def traverse
|
68
|
-
current =
|
69
|
-
current = @dependency_map[current]
|
70
|
-
current = Hashit.new current
|
68
|
+
current = root
|
71
69
|
yield current
|
72
70
|
while current != nil
|
73
71
|
begin
|
74
|
-
current = next_node current.
|
72
|
+
current = next_node current._node_name
|
75
73
|
rescue
|
76
74
|
#puts $!
|
77
75
|
current = nil
|
data/lib/global_constants.rb
CHANGED
data/lib/hash_extensions.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
class Hashit
|
2
|
-
def initialize(hash)
|
2
|
+
def initialize(hash, node_name=nil)
|
3
|
+
if !node_name.nil?
|
4
|
+
self.instance_variable_set("@_node_name", node_name)
|
5
|
+
self.class.send(:define_method, "_node_name", proc{self.instance_variable_get("@_node_name")}) if !self.respond_to?("_node_name")
|
6
|
+
self.class.send(:define_method, "_node_name=", proc{|node_name| self.instance_variable_set("@_node_name", node_name)}) if !self.respond_to?("_node_name=")
|
7
|
+
end
|
3
8
|
hash.each do |k,v|
|
4
|
-
self.instance_variable_set("@#{k}", v.is_a?(Hash) ? Hashit.new(v) : v)
|
5
|
-
self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
|
6
|
-
self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
|
9
|
+
self.instance_variable_set("@#{k}", v.is_a?(Hash) ? Hashit.new(v, k) : v)
|
10
|
+
self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")}) if !self.respond_to?("#{k}")
|
11
|
+
self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)}) if !self.respond_to?("#{k}=")
|
7
12
|
end
|
8
13
|
end
|
9
14
|
end
|
data/lib/input_validator.rb
CHANGED
@@ -12,7 +12,7 @@ class InputValidator
|
|
12
12
|
#if project publishes nuget we need to check if major /minor/patch incrmeented but not all 3
|
13
13
|
|
14
14
|
def validate_version_map version_map
|
15
|
-
if version_map.nil? || version_map.
|
15
|
+
if version_map.nil? || !version_map.is_a?(GlobalConstants::HASH)
|
16
16
|
yield 'Version map must be a non-empty ' + GlobalConstants::HASH
|
17
17
|
end
|
18
18
|
end
|
data/lib/rollbackall.rb
CHANGED
@@ -82,7 +82,7 @@ class RollbackAll
|
|
82
82
|
nuget_targets = []
|
83
83
|
|
84
84
|
# TODO: This validation could probably go in an input validator specifically for rollback
|
85
|
-
rollback_config = @manifest['
|
85
|
+
rollback_config = @manifest['is_rollback'].IsRollback
|
86
86
|
rollback = !rollback_config.nil? and rollback_config.downcase == 'y'
|
87
87
|
if !rollback
|
88
88
|
puts 'IsRollback not set in manifest, aborting rollback.'
|
@@ -110,10 +110,7 @@ class RollbackAll
|
|
110
110
|
upgrade_status = upgrader.Do node, nuget_targets, is_local_run
|
111
111
|
|
112
112
|
# save node name to use for status update
|
113
|
-
node_name = node.
|
114
|
-
if (node.respond_to?('is_root') && node.is_root == 'true')
|
115
|
-
node_name = GlobalConstants::ROOT
|
116
|
-
end
|
113
|
+
node_name = node._node_name
|
117
114
|
|
118
115
|
# project status set in json
|
119
116
|
if upgrade_status
|
@@ -135,7 +132,7 @@ class RollbackAll
|
|
135
132
|
end
|
136
133
|
|
137
134
|
# upgrade completed successfully, set rollback to 'n' state, update status as unprocessed and save version map and manifest, push
|
138
|
-
@manifest['
|
135
|
+
@manifest['is_rollback'] = 'n'
|
139
136
|
reset_status_unprocessed
|
140
137
|
|
141
138
|
|
data/lib/upgradeall.rb
CHANGED
@@ -95,8 +95,7 @@ class UpgradeAll
|
|
95
95
|
upgrade_status = upgrader.Do node, nuget_targets, is_local_run
|
96
96
|
|
97
97
|
# save node name to use for status update
|
98
|
-
node_name = node.
|
99
|
-
node_name = GlobalConstants::ROOT if (node.respond_to?('is_root') && node.is_root)
|
98
|
+
node_name = node._node_name
|
100
99
|
|
101
100
|
# set project status in json
|
102
101
|
if upgrade_status
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: a2zdeploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Suresh Batta
|
@@ -17,6 +17,10 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- Gemfile
|
21
|
+
- Gemfile.lock
|
22
|
+
- ReadMe.md
|
23
|
+
- a2zdeploy.gemspec
|
20
24
|
- lib/a2zdeploy.rb
|
21
25
|
- lib/dependency_tree.rb
|
22
26
|
- lib/github_api.rb
|
@@ -30,10 +34,6 @@ files:
|
|
30
34
|
- lib/upgrade.rb
|
31
35
|
- lib/upgradeall.rb
|
32
36
|
- lib/version_map.rb
|
33
|
-
- a2zdeploy.gemspec
|
34
|
-
- ReadMe.md
|
35
|
-
- Gemfile
|
36
|
-
- Gemfile.lock
|
37
37
|
homepage: http://rubygems.org/gems/a2zdeploy
|
38
38
|
licenses:
|
39
39
|
- MIT
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
version: '0'
|
55
55
|
requirements: []
|
56
56
|
rubyforge_project:
|
57
|
-
rubygems_version: 2.
|
57
|
+
rubygems_version: 2.4.6
|
58
58
|
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: Given a project dependency chain, updates versions, builds, tests, manages
|