a2zdeploy 1.0.18 → 1.0.19
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.
- 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
|