azdeploy 1.0.4 → 1.0.5

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/azdeploy.gemspec +1 -1
  3. data/lib/build.rb +30 -0
  4. data/lib/update.rb +101 -0
  5. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 568d52c0cf58f450921d0c2a230008cf3e9c07ae
4
- data.tar.gz: 46f4a975b55a31ee59505564c20cee1d2e2806a7
3
+ metadata.gz: d5e3771e82e654723dfdc840a58e873ade5c2bda
4
+ data.tar.gz: fe53c029d6632d4406a22045fc53a648e663ed23
5
5
  SHA512:
6
- metadata.gz: e0233f3afcd694be9d466e0576dc8582570fae1c262134dfc4df3e7f84aa2587fa24d127a8dca1ff014489c42bbd7f54d3c83f48b226d5a912bdaa4d5b51ff50
7
- data.tar.gz: 7aaad78029ced4b08490dcfa539cde948a24614443559039331336cfef6abd30cefeae4a81b8622c9eaa19ac91b1f9a451cd1196459c0043aca9581d1e34701b
6
+ metadata.gz: 017ff1c4cea06f4a8d2f95fa6e0d7c865c06bae16641f97b1511725b4a8cb5b7881557e09dadb181a7a662a004bcab7c4ce16502401241f2d22e21e3201b079a
7
+ data.tar.gz: 4219906d1a9d11224dc33a901fd0448705f16ce112b407e344de2c6c295166d5d6fbd511e865b26244a1103b4f50480543511c617a3ae516c98a5839a7bc0ad7
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'azdeploy'
3
- s.version = '1.0.4'
3
+ s.version = '1.0.5'
4
4
  s.date = '2015-02-04'
5
5
  s.summary = 'Setup and scripting support for .Net project builds'
6
6
  s.description = 'Azure Deployment Gem. Provides easy setup and deployment scripting support for .Net project builds'
@@ -129,4 +129,34 @@ def set_version(asm, version, file_version, assembly_version, output_file)
129
129
  asm.copyright = COPYRIGHT
130
130
  asm.output_file = "src/#{output_file}Version.cs"
131
131
  asm.namespaces 'System', 'System.Reflection', 'System.Runtime.InteropServices'
132
+ end
133
+
134
+ # checks nuget dependency
135
+ def check_package_version_dependency(package_uri, package)
136
+ # retrieve package version info
137
+ version = ''
138
+ response = Net::HTTP.get_response(URI.parse(package_uri.sub('pkg', package))) # get_response takes a URI object
139
+ package_info = response.body
140
+ xml = Nokogiri::XML(package_info)
141
+ xml.xpath('//m:properties/d:IsLatestVersion').each { |e|
142
+ if e.text.to_s == 'true'
143
+ version = e.parent.xpath('d:Version').text
144
+ end
145
+ }
146
+
147
+ # grab all packages.config files
148
+ config_files = Dir.glob('**/packages.config')
149
+
150
+ # for each file match version. Return false is check fails
151
+ config_files.each{ |file|
152
+ doc = Nokogiri::XML(File.read(file))
153
+ node = doc.xpath("//*[@id=\"#{package}\"]")
154
+ if (!node.nil?)
155
+ config_version = node.attr('version').value
156
+ puts "Package: #{package} Latest Version: #{version} File: #{file} File package version: #{config_version}"
157
+ return false unless config_version.to_s == version
158
+ end
159
+ }
160
+
161
+ return true
132
162
  end
@@ -0,0 +1,101 @@
1
+ class Update
2
+
3
+ attr_accessor :dry_run
4
+ attr_accessor :env
5
+ attr_accessor :settings
6
+ attr_accessor :svc
7
+ attr_accessor :table
8
+
9
+ def initialize(env, settings, dry_run = nil)
10
+ @env = env || 'noenv'
11
+ @settings = settings
12
+ @dry_run = dry_run
13
+ end
14
+
15
+ def update
16
+ if @env == 'noenv'
17
+ puts 'Environment name required to update settings.'
18
+ return false
19
+ end
20
+
21
+ # error thrown by azure gem if these are bad
22
+ Azure.config.storage_account_name = ENV['StorageAccount']
23
+ Azure.config.storage_access_key = ENV['StorageAccountKey']
24
+ @table = ENV['ConfigSettingsTable']
25
+
26
+ puts
27
+ puts 'Updating config table...'
28
+ puts
29
+
30
+ @svc = create_table_if_not_exists
31
+
32
+ upsert_all(@settings)
33
+ end
34
+
35
+ def create_table_if_not_exists
36
+ azure_table_service = Azure::TableService.new
37
+ begin
38
+ azure_table_service.create_table(@table)
39
+ rescue
40
+ puts $!
41
+ puts "table : #{@table}"
42
+ puts
43
+ end
44
+ azure_table_service
45
+ end
46
+
47
+ def upsert_all(settings)
48
+ settings.map {|k,v|
49
+ upsert(k, v)
50
+ #echo(k)
51
+ }
52
+ end
53
+
54
+ def upsert(key, value)
55
+
56
+ # check if setting exists
57
+ result = get(key)
58
+
59
+ entity = {
60
+ "setting" => value,
61
+ :PartitionKey => @env,
62
+ :RowKey => key
63
+ }
64
+
65
+ if (result.nil?)
66
+ @svc.insert_entity(@table, entity) if @dry_run.nil?
67
+ puts ">>>>> inserted entity key: #{key} value: #{value}"
68
+ else
69
+ # don't reinsert same value
70
+ if (result.properties['setting'] != value)
71
+ @svc.delete_entity(@table, @env, key) if @dry_run.nil?
72
+ @svc.insert_entity(@table, entity) if @dry_run.nil?
73
+ puts ">>>>> Updated entity - key: #{key} value: #{value}"
74
+ else
75
+ puts "Same value: #{value} found for key: #{key}" if @dry_run.nil?
76
+ end
77
+ end
78
+
79
+ end
80
+
81
+ def get(key)
82
+
83
+ begin
84
+ result = @svc.get_entity(@table, @env, key)
85
+ rescue
86
+ puts $!
87
+ puts "key : #{key}"
88
+ puts
89
+ end
90
+
91
+ result
92
+ end
93
+
94
+ def echo(key)
95
+ entity = get(key)
96
+ if !entity.nil?
97
+ puts "echo: "
98
+ p entity.properties
99
+ end
100
+ end
101
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azdeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Suresh Batta
@@ -22,6 +22,7 @@ files:
22
22
  - lib/build.rb
23
23
  - lib/install.rb
24
24
  - lib/transform.rb
25
+ - lib/update.rb
25
26
  - azdeploy.gemspec
26
27
  homepage: http://rubygems.org/gems/azdeploy
27
28
  licenses: