azdeploy 1.0.19 → 1.0.20
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/azdeploy.gemspec +2 -2
- data/lib/transform.rb +77 -51
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f44fe4d7f6c34024cc9807e921bc5e3474bc7404
|
4
|
+
data.tar.gz: fa1d0b6b5f31843d4ae7a9ce625f73e283a7a3ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5740cfe22441487a334a8cfcf1b0c36cf91454f4d27f2aa3b9730a0194ea35014430471496bccdd92f339b0775a419368707da8129d1fc63fdb019d0e494954c
|
7
|
+
data.tar.gz: 54d83b7dbcf8a783584c134c7e936f5201fa4ebb8ccd9b841ce565554831c060f522523b90086042bc33118caa7f03480e5b19c83c71ac84d43bd56d6ca708df
|
data/azdeploy.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'azdeploy'
|
3
|
-
s.version = '1.0.
|
4
|
-
s.date = '2015-08-
|
3
|
+
s.version = '1.0.20'
|
4
|
+
s.date = '2015-08-06'
|
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'
|
7
7
|
s.authors = ['Suresh Batta']
|
data/lib/transform.rb
CHANGED
@@ -37,6 +37,9 @@ class Transform
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def get_value(key)
|
40
|
+
if (@settings.nil?)
|
41
|
+
return
|
42
|
+
end
|
40
43
|
value = ''
|
41
44
|
@settings.each { |i|
|
42
45
|
if i.properties[ROWKEY] == key
|
@@ -47,36 +50,38 @@ class Transform
|
|
47
50
|
|
48
51
|
value
|
49
52
|
end
|
50
|
-
|
51
|
-
def transform_connstring(connstr)
|
52
|
-
@config_files.each{|file|
|
53
|
-
doc = Nokogiri::XML(File.read(file))
|
54
|
-
puts "Processing file: #{file}"
|
55
|
-
node = doc.at_css "appSettings/add[@key='connectionString']"
|
56
|
-
if !node.nil?
|
57
|
-
node[VALUE] = connstr
|
58
|
-
File.write(file, doc.to_xml)
|
59
|
-
end
|
60
|
-
}
|
61
|
-
end
|
62
53
|
|
63
|
-
def transform_appsettings
|
54
|
+
def transform_appsettings(key = '', value = '')
|
64
55
|
# go to each file and replace value of matching appSettings key
|
65
56
|
@config_files.each{|file|
|
66
57
|
doc = Nokogiri::XML(File.read(file))
|
67
58
|
puts "Processing file: #{file}"
|
68
|
-
@settings.
|
69
|
-
key
|
70
|
-
|
59
|
+
if (@settings.nil?)
|
60
|
+
if (key.to_s == '')
|
61
|
+
k = NO
|
62
|
+
else
|
63
|
+
k = key
|
64
|
+
end
|
65
|
+
if (value.to_s == '')
|
66
|
+
v = NO
|
67
|
+
else
|
68
|
+
v = value
|
69
|
+
end
|
70
|
+
else
|
71
|
+
@settings.each { |i|
|
72
|
+
k = i.properties[ROWKEY] || NO
|
73
|
+
v = i.properties[SETTING] || NO
|
74
|
+
}
|
75
|
+
end
|
76
|
+
if (k != NO && v != NO)
|
77
|
+
node = doc.at_css "appSettings/add[@key='#{k}']"
|
71
78
|
if !node.nil?
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
newVal = node[VALUE]
|
76
|
-
#puts "New value: #{newVal}"
|
79
|
+
#puts "Old value: #{node[VALUE]}"
|
80
|
+
node[VALUE] = v
|
81
|
+
#puts "New value: #{v}"
|
77
82
|
File.write(file, doc.to_xml)
|
78
83
|
end
|
79
|
-
|
84
|
+
end
|
80
85
|
}
|
81
86
|
end
|
82
87
|
|
@@ -175,7 +180,13 @@ class Transform
|
|
175
180
|
|
176
181
|
node = doc.at_css 'InstrumentationKey'
|
177
182
|
if (!node.nil?)
|
178
|
-
|
183
|
+
val_from_settings = get_value('AI_InstrumentationKey')
|
184
|
+
if (val_from_settings.to_s == '')
|
185
|
+
aikey = ENV['AI_InstrumentationKey'] || NO
|
186
|
+
end
|
187
|
+
if (aikey != NO)
|
188
|
+
node.content = aikey
|
189
|
+
end
|
179
190
|
end
|
180
191
|
|
181
192
|
File.write(file, doc.to_xml)
|
@@ -212,12 +223,17 @@ class Transform
|
|
212
223
|
end
|
213
224
|
|
214
225
|
def transform
|
215
|
-
|
216
|
-
#
|
217
|
-
@
|
218
|
-
@
|
219
|
-
|
220
|
-
|
226
|
+
|
227
|
+
# --- Get environment invoked
|
228
|
+
@env = ENV['env'] || NO
|
229
|
+
if @env == NO
|
230
|
+
puts 'Environment name required to transform. No configuration changes will be done...'
|
231
|
+
return false
|
232
|
+
else
|
233
|
+
puts "Transforming config for environment: #{@env} ..."
|
234
|
+
end
|
235
|
+
|
236
|
+
# --- Get Settings Account Name, Key and Table from Environment variables
|
221
237
|
settings_account_name = ENV['SettingsAccount'] || ENV['StorageAccount'] || NO
|
222
238
|
if (settings_account_name == NO)
|
223
239
|
puts "No settings storage account name found"
|
@@ -233,28 +249,14 @@ class Transform
|
|
233
249
|
puts "No configuration table found"
|
234
250
|
return false
|
235
251
|
end
|
236
|
-
|
237
|
-
puts 'updating settings connection string...'
|
238
|
-
settings_connstr = "DefaultEndpointsProtocol=https;AccountName=#{settings_account_name};AccountKey=#{settings_access_key}"
|
239
|
-
should_update_settings_connstr = ENV['should_update_settings_connstr'] || NO
|
240
|
-
if should_update_settings_connstr == NO
|
241
|
-
puts 'Flag for Setttings Connection String Update not set.'
|
242
|
-
else
|
243
|
-
transform_connstring(settings_connstr)
|
244
|
-
end
|
245
|
-
|
246
|
-
# environment invoked
|
247
|
-
@env = ENV['env'] || NO
|
248
|
-
if @env == NO
|
249
|
-
puts 'Environment name required to transform. No configuration changes will be done...'
|
250
|
-
return false
|
251
|
-
end
|
252
|
-
|
253
|
-
is_service = ENV['ServiceName'] || NO
|
254
|
-
puts 'Target to transform is not a service...' if is_service == NO
|
255
252
|
|
256
|
-
|
253
|
+
# --- Collect config files to transform
|
254
|
+
# find all App.config and web.config files
|
255
|
+
@config_files = Dir.glob('**/app.config')
|
256
|
+
@config_files.concat(Dir.glob('**/appSettings.config'))
|
257
|
+
@config_files.concat(Dir.glob('**/web.config'))
|
257
258
|
|
259
|
+
# --- Load Settings from storage
|
258
260
|
# azure table storage account where settings reside
|
259
261
|
Azure.config.storage_account_name = settings_account_name
|
260
262
|
Azure.config.storage_access_key = settings_access_key
|
@@ -266,8 +268,31 @@ class Transform
|
|
266
268
|
# get all settings for environment
|
267
269
|
@settings = get_all
|
268
270
|
|
269
|
-
|
271
|
+
# --- Start Transformations ---
|
272
|
+
puts 'updating settings connection string...'
|
273
|
+
settings_connstr = "DefaultEndpointsProtocol=https;AccountName=#{settings_account_name};AccountKey=#{settings_access_key}"
|
274
|
+
should_update_settings_connstr = ENV['should_update_settings_connstr'] || NO
|
275
|
+
if should_update_settings_connstr == NO
|
276
|
+
puts 'Flag for Setttings Connection String Update not set.'
|
277
|
+
else
|
278
|
+
puts settings_connstr
|
279
|
+
transform_appsettings('connectionString', settings_connstr)
|
280
|
+
end
|
281
|
+
|
282
|
+
puts 'updating unit test connection string...'
|
283
|
+
unitest_connstr = "DefaultEndpointsProtocol=https;AccountName=#{settings_account_name};AccountKey=#{settings_access_key}"
|
284
|
+
unitest_connstr = ENV['unitestconnectionString'] || NO
|
285
|
+
if unitest_connstr == NO
|
286
|
+
puts 'No unit test connection string found.'
|
287
|
+
else
|
288
|
+
transform_appsettings('unitestconnectionString', unitest_connstr)
|
289
|
+
end
|
290
|
+
|
291
|
+
is_service = ENV['ServiceName'] || NO
|
270
292
|
|
293
|
+
if is_service != NO
|
294
|
+
puts "Transforming config for service: #{ENV['ServiceName']}"
|
295
|
+
|
271
296
|
puts 'Obtaining cloud configuration templates...'
|
272
297
|
csdefTemplate = get_value('ServiceDefinitionTemplate')
|
273
298
|
File.write('ServiceDefinition.csdef', csdefTemplate)
|
@@ -288,7 +313,8 @@ class Transform
|
|
288
313
|
|
289
314
|
puts 'Replacing service model settings...'
|
290
315
|
transform_servicemodelconfig
|
291
|
-
|
316
|
+
else
|
317
|
+
puts 'Target to transform is not a service...'
|
292
318
|
end
|
293
319
|
|
294
320
|
puts 'Replacing app settings...'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Suresh Batta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Azure Deployment Gem. Provides easy setup and deployment scripting support
|
14
14
|
for .Net project builds
|