cps-property-generator 0.2.5 → 0.2.10
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/bin/cps-property-generator +0 -1
- data/lib/generator/generator.rb +9 -2
- data/lib/generator/service.rb +11 -2
- data/lib/helpers/helpers.rb +8 -3
- data/lib/linter/config_linter.rb +3 -3
- data/lib/linter/services_linter.rb +2 -2
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e314fd422a95671a8a8b436c13d350cf0c2eb469
|
4
|
+
data.tar.gz: 7ca938a07e15d3411b7bcd5e9aed9b13004f4b5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d118ae143395ba549dade258fe38dce125a74742f4533407ed3a05e782ca6fffaee5c6791bb98c6c14771bc92a1124ec91de2e5460475572d91b5acd56a01f1d
|
7
|
+
data.tar.gz: e8720c045795c043c0f932386cf5d7694f7d50c6ef04d5ed374f1478c6f898b37d5e519cc4f5c7c7eb3b851f670cb4f434e50f045eb99c1d81f7e746f89c56cf
|
data/bin/cps-property-generator
CHANGED
data/lib/generator/generator.rb
CHANGED
@@ -15,10 +15,11 @@ module PropertyGenerator
|
|
15
15
|
@configs = PropertyGenerator::Config.new(project_path)
|
16
16
|
@globals = PropertyGenerator::Globals.new(project_path, @configs)
|
17
17
|
@globals = @globals.globals
|
18
|
+
@accounts = @configs.accounts
|
19
|
+
|
18
20
|
@output_path = "#{File.expand_path(options['output'])}/properties/#{SecureRandom.hex}"
|
19
21
|
puts "Properties will be output here #{@output_path}"
|
20
22
|
@service_list = PropertyGenerator.read_services(project_path)
|
21
|
-
|
22
23
|
end
|
23
24
|
|
24
25
|
def generate
|
@@ -29,13 +30,19 @@ module PropertyGenerator
|
|
29
30
|
service_instance.service
|
30
31
|
service_instance.interpolate
|
31
32
|
|
32
|
-
out = PropertyGenerator.writer(service, service_instance.service, @configs, @output_path)
|
33
|
+
out = PropertyGenerator.writer(service, service_instance.service, @configs, @output_path, service_instance.configmap_name)
|
33
34
|
(output << out).flatten!
|
34
35
|
end
|
35
36
|
output
|
36
37
|
end
|
37
38
|
|
38
39
|
def upload(out, config)
|
40
|
+
account = config['upload_account']
|
41
|
+
|
42
|
+
if !@accounts.include?(account.to_i)
|
43
|
+
abort("The specified account (#{account}) is not configured, please add it to config/config.yml")
|
44
|
+
end
|
45
|
+
|
39
46
|
upload_account = config['upload_account']
|
40
47
|
upload_region = config['upload_region']
|
41
48
|
upload_bucket = config['upload_bucket']
|
data/lib/generator/service.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
module PropertyGenerator
|
2
|
+
|
2
3
|
class Service
|
4
|
+
require 'active_support/core_ext/hash'
|
5
|
+
|
3
6
|
attr_accessor :service
|
7
|
+
|
4
8
|
def initialize(service_data, config, globals)
|
5
9
|
@service_data = service_data
|
6
10
|
@environments = config.environments
|
7
11
|
@globals = globals
|
8
12
|
@environment_configs = config.environment_configs
|
13
|
+
@configmapname = service_data['configname'].nil? ? nil : service_data['configname']
|
9
14
|
set_service
|
10
15
|
end
|
11
16
|
|
@@ -18,6 +23,10 @@ module PropertyGenerator
|
|
18
23
|
@service
|
19
24
|
end
|
20
25
|
|
26
|
+
def configmap_name
|
27
|
+
@configmapname
|
28
|
+
end
|
29
|
+
|
21
30
|
def interpolate
|
22
31
|
environments = @environments
|
23
32
|
#read in config
|
@@ -57,7 +66,7 @@ module PropertyGenerator
|
|
57
66
|
environment_data = data['environments'][env].dup
|
58
67
|
if data['encrypted']
|
59
68
|
encrypted = data['encrypted'][env].dup unless data['encrypted'][env].nil?
|
60
|
-
environment_data = data['environments'][env].
|
69
|
+
environment_data = data['environments'][env].deep_merge(encrypted) unless encrypted.nil?
|
61
70
|
end
|
62
71
|
if default_clone.nil?
|
63
72
|
merged = environment_data
|
@@ -85,6 +94,6 @@ module PropertyGenerator
|
|
85
94
|
output
|
86
95
|
end
|
87
96
|
|
88
|
-
|
89
97
|
end
|
98
|
+
|
90
99
|
end
|
data/lib/helpers/helpers.rb
CHANGED
@@ -54,24 +54,29 @@ module PropertyGenerator
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
def writer(service_name, finalized, configs, output_path)
|
57
|
+
def writer(service_name, finalized, configs, output_path, configmap_name)
|
58
58
|
output = []
|
59
59
|
envs = configs.environments
|
60
60
|
environmental_configs = configs.environment_configs
|
61
61
|
envs.each do | env|
|
62
62
|
account = environmental_configs[env]["account"]
|
63
63
|
region = environmental_configs[env]["region"]
|
64
|
-
json =
|
64
|
+
json = if configmap_name
|
65
|
+
JSON.pretty_generate({"properties" => finalized[env],"configname" => configmap_name})
|
66
|
+
else
|
67
|
+
JSON.pretty_generate({"properties" => finalized[env]})
|
68
|
+
end
|
65
69
|
#IF users are specifing a vpc then we will drop property files under the dir that corresponds to the vpc
|
66
70
|
if environmental_configs[env].key?("vpc") && !environmental_configs[env]["vpc"].nil?
|
67
71
|
vpc_dir = "#{output_path}/#{account}/#{region}/#{environmental_configs[env]["vpc"]}"
|
68
72
|
FileUtils.mkdir_p("#{vpc_dir}/") unless Dir.exist?(vpc_dir)
|
69
73
|
File.write("#{output_path}/#{account}/#{region}/#{environmental_configs[env]["vpc"]}/#{service_name}.json", json)
|
74
|
+
output << "#{output_path}/#{account}/#{region}/#{environmental_configs[env]["vpc"]}/#{service_name}.json"
|
70
75
|
else
|
71
76
|
FileUtils.mkdir_p("#{output_path}/#{account}/#{region}/") unless Dir.exist?("#{output_path}/#{account}/#{region}/")
|
72
77
|
File.write("#{output_path}/#{account}/#{region}/#{service_name}.json", json)
|
78
|
+
output << "#{output_path}/#{account}/#{region}/#{service_name}.json"
|
73
79
|
end
|
74
|
-
output << "#{output_path}/#{account}/#{region}/#{service_name}.json"
|
75
80
|
end
|
76
81
|
output
|
77
82
|
end
|
data/lib/linter/config_linter.rb
CHANGED
@@ -14,7 +14,7 @@ module PropertyGenerator
|
|
14
14
|
else
|
15
15
|
tests = ['config_has_correct_keys',
|
16
16
|
'environment_configs_match_environments_list',
|
17
|
-
'
|
17
|
+
'environment_configs_have_valid_region_and_account_values',
|
18
18
|
'environment_configs_have_well_formatted_interpolations',
|
19
19
|
'config_file_is_present']
|
20
20
|
end
|
@@ -61,12 +61,12 @@ module PropertyGenerator
|
|
61
61
|
status
|
62
62
|
end
|
63
63
|
|
64
|
-
def
|
64
|
+
def environment_configs_have_valid_region_and_account_values
|
65
65
|
status = {status: 'pass', error: ''}
|
66
66
|
environments_missmatch_values = []
|
67
67
|
any_missmatches = false
|
68
68
|
@configs['environment_configs'].keys.each do |environment|
|
69
|
-
unless
|
69
|
+
unless (@configs['environment_configs'][environment].key?('region')) && @configs['accounts'].include?(@configs['environment_configs'][environment]['account'])
|
70
70
|
environments_missmatch_values << environment
|
71
71
|
any_missmatches = true
|
72
72
|
end
|
@@ -48,7 +48,7 @@ module PropertyGenerator
|
|
48
48
|
|
49
49
|
def services_have_accepted_keys
|
50
50
|
status = {status: 'pass', error: ''}
|
51
|
-
accepted_keys = ['default', 'environments', 'encrypted']
|
51
|
+
accepted_keys = ['default', 'environments', 'encrypted', 'configname']
|
52
52
|
services_with_unacceptable_keys = []
|
53
53
|
@services.each do |path, loaded|
|
54
54
|
loaded.keys.each do |service_key|
|
@@ -59,7 +59,7 @@ module PropertyGenerator
|
|
59
59
|
end
|
60
60
|
if services_with_unacceptable_keys != []
|
61
61
|
status[:status] = 'fail'
|
62
|
-
status[:error] = "Service files: #{services_with_unacceptable_keys} have keys other than 'default', 'environments', or '
|
62
|
+
status[:error] = "Service files: #{services_with_unacceptable_keys} have keys other than 'default', 'environments', 'encrypted', or 'configname'."
|
63
63
|
end
|
64
64
|
status
|
65
65
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cps-property-generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Call
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.2.11.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.2.11.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: terminal-table
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|