azdeploy 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/azdeploy.gemspec +1 -1
- data/lib/build.rb +30 -0
- data/lib/update.rb +101 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5e3771e82e654723dfdc840a58e873ade5c2bda
|
4
|
+
data.tar.gz: fe53c029d6632d4406a22045fc53a648e663ed23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 017ff1c4cea06f4a8d2f95fa6e0d7c865c06bae16641f97b1511725b4a8cb5b7881557e09dadb181a7a662a004bcab7c4ce16502401241f2d22e21e3201b079a
|
7
|
+
data.tar.gz: 4219906d1a9d11224dc33a901fd0448705f16ce112b407e344de2c6c295166d5d6fbd511e865b26244a1103b4f50480543511c617a3ae516c98a5839a7bc0ad7
|
data/azdeploy.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'azdeploy'
|
3
|
-
s.version = '1.0.
|
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'
|
data/lib/build.rb
CHANGED
@@ -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
|
data/lib/update.rb
ADDED
@@ -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
|
+
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:
|