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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7ff9f5db9e1c4b5abf2950f59f8ec2f039d89005
4
- data.tar.gz: 77c0358fd6d2078746340339eab6af166e13be03
3
+ metadata.gz: 38ba98ff95182928338ffcb4f056e71a50ed626b
4
+ data.tar.gz: 7f8566f7bd6ee26798b77ae943025d9eceeab4bd
5
5
  SHA512:
6
- metadata.gz: 472b463c92a969a930be9e6a37c811af4494e4e3ceb654f2583b257bb3bbe6495b58f746e6839d93fd0485aafad2723a2cf1c7d3fa8a60df360d5c3f61438274
7
- data.tar.gz: 4edf184f609ae730e85bb82b5a95d7bcc57d2f7379a77fa8d1d0bc1b53e7163eb07e7c661b88b871d0799508c347b3c0e41122a4199624bb0aad6c1fd6c0cf01
6
+ metadata.gz: d4d3bac9fdbe431212d12e029c06f6e59e49ff3130236df90f13ee7484f6818f527c6710d215db530f59efcb3a7602faff5b14184f1d362023f51abb14190bdf
7
+ data.tar.gz: 0412791305d2ab825f289afd002e1eb1de90db383d90c1a5bfac60ef14958fc1fe5d372be8dd288daa0b0e7dd483e23fb0e0c0b88850a79a2da1709efc935e0f
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'a2zdeploy'
3
- s.version = '1.0.18'
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'
@@ -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::ROOT, GlobalConstants::NEXT, GlobalConstants::PREVIOUS and GlobalConstants::PROJECTNAME_NAME' are self-descriptive and symbols
4
- - GlobalConstants::ROOT's GlobalConstants::PREVIOUS is always nil, so are all leaf node GlobalConstants::NEXT
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
- "GlobalConstants::ROOT" => {
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? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
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
- if @dependency_map.has_key?(GlobalConstants::ROOT)
32
- if @dependency_map[GlobalConstants::ROOT].has_key? GlobalConstants::PROJECTNAME
33
- root_node = Hashit.new @dependency_map[GlobalConstants::ROOT]
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? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
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
- next_node = @dependency_map[current][GlobalConstants::NEXT]
46
- next_node = @dependency_map[next_node]
47
- next_node = Hashit.new next_node if !next_node.nil?
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? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
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
- prev_node = @dependency_map[current][GlobalConstants::PREVIOUS]
57
- if @dependency_map[GlobalConstants::ROOT][GlobalConstants::PROJECTNAME] == prev_node
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 = GlobalConstants::ROOT
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.project_name
72
+ current = next_node current._node_name
75
73
  rescue
76
74
  #puts $!
77
75
  current = nil
@@ -1,10 +1,10 @@
1
1
  module GlobalConstants
2
2
 
3
- HASH = 'Hash'
3
+ HASH = Hash
4
4
 
5
5
  SPEC = Dir.pwd + '\src\spec'
6
6
 
7
- ROOT = 'root'
7
+ IS_ROOT = 'is_root'
8
8
  PREVIOUS = 'previous'
9
9
  NEXT = 'next'
10
10
  PROJECTNAME = 'project_name'
@@ -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
@@ -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.class.to_s != GlobalConstants::HASH
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
@@ -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['projects']['root']['metadata'].IsRollback
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.project_name
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['projects']['root']['metadata'].IsRollback = 'n'
135
+ @manifest['is_rollback'] = 'n'
139
136
  reset_status_unprocessed
140
137
 
141
138
 
@@ -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.project_name
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.18
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.0.14
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