awx 0.6.10 → 0.6.11
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/lib/aws/aws_profile.rb +1 -1
- data/lib/awx.rb +8 -8
- data/lib/core/{deployments.rb → stacks.rb} +10 -13
- data/lib/routes/cloudformation_create.rb +49 -49
- data/lib/routes/infrastructure.rb +2 -2
- data/lib/routes/upload.rb +9 -9
- data/lib/version.rb +1 -1
- data/opt/awx/{deployment-schema.yml → stacks-schema.yml} +3 -3
- data/opt/config/schema.yml +1 -1
- data/opt/config/template.yml +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 910e4c40a148fe59eec68a194f6e9b016a0b2309
|
4
|
+
data.tar.gz: 02cbf33f50a06df9da86d48b4a5e1c4d36e5ca4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19037d3497e7350d631f551ae84bef6bf02350ea00144f137afe2f4358e6c8ca2e38b7f5b30f67e58749c638717b7d29e5b026ec5386650d337b075946803010
|
7
|
+
data.tar.gz: f7359136c6337d784079ac00bb42142ffbd8872fee46515612f746a6d44ee09697779b79f32d0e5165c4e86cb91004a1622516eaef9802f92832fe33e766c217
|
data/lib/aws/aws_profile.rb
CHANGED
data/lib/awx.rb
CHANGED
@@ -108,7 +108,7 @@ TEMPLATE
|
|
108
108
|
end
|
109
109
|
|
110
110
|
# i - INFRASTRUCTURE
|
111
|
-
if ARGV[0] != 'setup' && ARGV[0] != 'x' && (profile.has_key?(
|
111
|
+
if ARGV[0] != 'setup' && ARGV[0] != 'x' && (profile.has_key?(App::AWSProfile::PROJECTS)) && (profile.has_key?(App::AWSProfile::STACKS))
|
112
112
|
awx.command :infrastructure, :aliases => [:i] do |infrastructure|
|
113
113
|
infrastructure.summary 'View, modify & deploy application(s) to pre-defined infrastructure'
|
114
114
|
infrastructure.action do |opts, args|
|
@@ -159,17 +159,17 @@ TEMPLATE
|
|
159
159
|
|
160
160
|
# u - UPLOAD
|
161
161
|
if ARGV[0] != 'setup' && ARGV[0] != 'x' && (
|
162
|
-
(profile.has_key?(App::AWSProfile::
|
162
|
+
(profile.has_key?(App::AWSProfile::STACKS) && profile[App::AWSProfile::STACKS].has_key?('Local')) ||
|
163
163
|
(profile.has_key?(App::AWSProfile::PROJECTS) && profile[App::AWSProfile::PROJECTS].has_key?('Local')) ||
|
164
164
|
(profile.has_key?(App::AWSProfile::CLOUDFORMATION) && profile[App::AWSProfile::CLOUDFORMATION]['Templates'].has_key?('Local')))
|
165
165
|
awx.command :upload, :aliases => [:u] do |upload|
|
166
166
|
upload.summary 'Upload configuration(s) to S3'
|
167
|
-
# d - UPLOAD
|
168
|
-
if profile.has_key?(App::AWSProfile::
|
169
|
-
upload.command :
|
170
|
-
|
171
|
-
|
172
|
-
args = args.unshift(AppCommand::Upload::
|
167
|
+
# d - UPLOAD STACKS
|
168
|
+
if profile.has_key?(App::AWSProfile::STACKS) && profile[App::AWSProfile::STACKS].has_key?('Local')
|
169
|
+
upload.command :stacks, :aliases => [:s] do |upload_stacks|
|
170
|
+
upload_stacks.summary 'Upload Stacks'
|
171
|
+
upload_stacks.action do |opts, args|
|
172
|
+
args = args.unshift(AppCommand::Upload::STACKS)
|
173
173
|
AppCommand::Upload.new(opts, args).execute
|
174
174
|
end
|
175
175
|
end
|
@@ -1,25 +1,25 @@
|
|
1
1
|
module App
|
2
2
|
|
3
|
-
class
|
3
|
+
class Stacks
|
4
4
|
|
5
|
-
SCHEMA_FILE = "#{App::Opt::get_base_path}#{App::Opt::OPT_PATH}/awx/
|
5
|
+
SCHEMA_FILE = "#{App::Opt::get_base_path}#{App::Opt::OPT_PATH}/awx/stacks-schema.yml"
|
6
6
|
|
7
|
-
@@
|
7
|
+
@@stacks = nil
|
8
8
|
|
9
9
|
# Takes a Hash that will have all the deployment info.
|
10
10
|
# @return void
|
11
|
-
def self.init(
|
12
|
-
raise RuntimeError, 'Cannot run App::
|
13
|
-
raise RuntimeError, "Need either a Local or S3Bucket key, found neither: #{
|
14
|
-
@@
|
11
|
+
def self.init(stacks)
|
12
|
+
raise RuntimeError, 'Cannot run App::Stacks::init() more than once.' unless @@stacks.nil?
|
13
|
+
raise RuntimeError, "Need either a Local or S3Bucket key, found neither: #{stacks.keys}" unless stacks.has_key?('Local') || stacks.has_key?('S3Bucket')
|
14
|
+
@@stacks = {}
|
15
15
|
|
16
|
-
if
|
17
|
-
source_file = File.expand_path(
|
16
|
+
if stacks.has_key?('Local')
|
17
|
+
source_file = File.expand_path(stacks['Local']['File'])
|
18
18
|
# Throw error if source file doesn't exist.
|
19
19
|
Blufin::Terminal::error("Cannot find source file: #{Blufin::Terminal::format_directory(source_file)}") unless Blufin::Files::file_exists(source_file)
|
20
20
|
# Validate the source file against the expected schema.
|
21
21
|
process_source_file(source_file)
|
22
|
-
elsif
|
22
|
+
elsif stacks.has_key?('S3Bucket')
|
23
23
|
|
24
24
|
# TODO - Finish this once we start running this on an EC2 instance (build/deploy server).
|
25
25
|
# TODO - Whatever file we validate should be available on disk locally.
|
@@ -27,9 +27,6 @@ module App
|
|
27
27
|
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
30
|
end
|
34
31
|
|
35
32
|
private
|
@@ -5,34 +5,34 @@ module AppCommand
|
|
5
5
|
|
6
6
|
class CloudFormationCreate < ::Convoy::ActionCommand::Base
|
7
7
|
|
8
|
-
DEFAULT
|
9
|
-
PARAMETERS
|
10
|
-
SPECIAL_METHODS
|
11
|
-
AWS_TAGS
|
12
|
-
RESERVED_WORDS
|
13
|
-
OPTION_PROJECT_ID
|
14
|
-
|
15
|
-
OPTION_STACK_NAME
|
16
|
-
OPTION_TIMEOUT
|
17
|
-
OPTION_DESCRIPTION
|
18
|
-
OPTION_PROJECT
|
19
|
-
OPTION_ENVIRONMENT
|
20
|
-
OPTION_REGION
|
21
|
-
OPTION_CATEGORY
|
22
|
-
OPTION_TEMPLATE
|
23
|
-
OPTION_TERM_PROTECT
|
24
|
-
OPTION_OWNER
|
25
|
-
MATCHERS
|
26
|
-
OPTIONS
|
27
|
-
SPECIAL
|
28
|
-
CACHE_UUID
|
29
|
-
TEST
|
30
|
-
SPACER
|
31
|
-
CAPABILITIES
|
32
|
-
RETURN_VALUE
|
33
|
-
SYSTEM
|
34
|
-
NESTED
|
35
|
-
STACK
|
8
|
+
DEFAULT = 'Default'
|
9
|
+
PARAMETERS = 'Parameters'
|
10
|
+
SPECIAL_METHODS = [:before_create, :after_create, :before_teardown, :after_teardown]
|
11
|
+
AWS_TAGS = %w(Environment Project Region Category Template)
|
12
|
+
RESERVED_WORDS = %w(cache_uuid category description environment owner project projectid region resource stack stackname template terminationprotection timeout)
|
13
|
+
OPTION_PROJECT_ID = 'ProjectId'
|
14
|
+
OPTION_STACK_ID = 'StackId'
|
15
|
+
OPTION_STACK_NAME = 'StackName'
|
16
|
+
OPTION_TIMEOUT = 'Timeout'
|
17
|
+
OPTION_DESCRIPTION = 'Description'
|
18
|
+
OPTION_PROJECT = 'Project'
|
19
|
+
OPTION_ENVIRONMENT = 'Environment'
|
20
|
+
OPTION_REGION = 'Region'
|
21
|
+
OPTION_CATEGORY = 'Category'
|
22
|
+
OPTION_TEMPLATE = 'Template'
|
23
|
+
OPTION_TERM_PROTECT = 'TerminationProtection'
|
24
|
+
OPTION_OWNER = 'Owner'
|
25
|
+
MATCHERS = %w(CATEGORY TEMPLATE PROJECT ENVIRONMENT REGION UUID)
|
26
|
+
OPTIONS = 'Options'
|
27
|
+
SPECIAL = 'AWS-specific'
|
28
|
+
CACHE_UUID = 'cache_uuid'
|
29
|
+
TEST = 'test'
|
30
|
+
SPACER = '<<--Spacer-->>'
|
31
|
+
CAPABILITIES = 'Capabilities'
|
32
|
+
RETURN_VALUE = 'PjNkHK33EopWxCpzOQfuku3la'
|
33
|
+
SYSTEM = 'System'
|
34
|
+
NESTED = 'nested'
|
35
|
+
STACK = 'Stack'
|
36
36
|
|
37
37
|
def execute
|
38
38
|
|
@@ -131,7 +131,7 @@ module AppCommand
|
|
131
131
|
regions = nil
|
132
132
|
timeout = nil
|
133
133
|
single_serve = false
|
134
|
-
|
134
|
+
stack_id = nil
|
135
135
|
parameters = {}
|
136
136
|
parameters_no_sort = nil
|
137
137
|
warnings_count = @warnings.length
|
@@ -266,7 +266,7 @@ module AppCommand
|
|
266
266
|
environments = Template::ENVIRONMENTS if constant == 'ENVIRONMENTS'
|
267
267
|
regions = Template::REGIONS if constant == 'REGIONS'
|
268
268
|
timeout = Template::TIMEOUT if constant == 'TIMEOUT'
|
269
|
-
|
269
|
+
stack_id = Template::STACK_ID if constant == 'STACK_ID'
|
270
270
|
parameters_no_sort = Template::PARAMETERS_NO_SORT if constant == 'PARAMETERS_NO_SORT'
|
271
271
|
end
|
272
272
|
# Validate stack name.
|
@@ -276,8 +276,8 @@ module AppCommand
|
|
276
276
|
results = App::Replacer::scan_string(stack_name)
|
277
277
|
validate_matchers(file_cloudformation, results, template_name, parameters)
|
278
278
|
# Make sure deployment stack is not a reserved word.
|
279
|
-
if
|
280
|
-
@warnings << "\x1B[38;5;196m#{template_name}\x1B[38;5;240m \xe2\x80\x94 #{Blufin::Terminal::format_highlight('
|
279
|
+
if stack_id.is_a?(String) && %w(lambda).include?(stack_id.downcase)
|
280
|
+
@warnings << "\x1B[38;5;196m#{template_name}\x1B[38;5;240m \xe2\x80\x94 #{Blufin::Terminal::format_highlight('STACK_ID')} value is a reserved word: #{Blufin::Terminal::format_invalid(stack_id)}"
|
281
281
|
end
|
282
282
|
# If any constants are missing, this should catch it.
|
283
283
|
expected_constants.each { |missing_constant| @warnings << "\x1B[38;5;196m#{template_name}\x1B[38;5;240m \xe2\x80\x94 The #{Blufin::Terminal::format_highlight('template.rb')}\x1B[38;5;240m file is missing a constant: #{Blufin::Terminal::format_invalid(missing_constant)}" }
|
@@ -352,7 +352,7 @@ module AppCommand
|
|
352
352
|
:broken => 'Broken'
|
353
353
|
}
|
354
354
|
else
|
355
|
-
@templates[category][template]
|
355
|
+
@templates[category][template] = {
|
356
356
|
:name => template,
|
357
357
|
:path => template_path,
|
358
358
|
:broken => false,
|
@@ -373,7 +373,7 @@ module AppCommand
|
|
373
373
|
:timeout => timeout,
|
374
374
|
:single_serve => single_serve
|
375
375
|
}
|
376
|
-
@templates[category][template][:
|
376
|
+
@templates[category][template][:stack_id] = stack_id unless stack_id.nil?
|
377
377
|
end
|
378
378
|
end
|
379
379
|
end
|
@@ -413,14 +413,14 @@ module AppCommand
|
|
413
413
|
puts
|
414
414
|
end
|
415
415
|
|
416
|
-
# TODO NOW - REMOVE:
|
416
|
+
# TODO NOW - REMOVE:STACK_ID - This needs to be re-instated once we have the stacks.yml parsing.
|
417
417
|
# Deployment ID needs to be handled here because we need to know what the project/region/environment is before we can display the options.
|
418
418
|
# if param_name == OPTION_PROJECT_ID
|
419
419
|
# # Figure out which deployments are eligible for this stack.
|
420
|
-
# if @template.has_key?(:
|
420
|
+
# if @template.has_key?(:stack_id)
|
421
421
|
# @projects = Blufin::Projects::get_deployments(
|
422
422
|
# @params[OPTION_PROJECT],
|
423
|
-
# @template[:
|
423
|
+
# @template[:stack_id],
|
424
424
|
# @params[OPTION_REGION],
|
425
425
|
# @params[OPTION_ENVIRONMENT]
|
426
426
|
# )
|
@@ -529,9 +529,9 @@ module AppCommand
|
|
529
529
|
output[OPTION_DESCRIPTION] = @params[OPTION_DESCRIPTION]
|
530
530
|
output[SPACER] = true
|
531
531
|
|
532
|
-
# TODO NOW - REMOVE:
|
533
|
-
# if @template.has_key?(:
|
534
|
-
# output[
|
532
|
+
# TODO NOW - REMOVE:STACK_ID - This needs to be re-instated once we have the stacks.yml parsing.
|
533
|
+
# if @template.has_key?(:stack_id) && !@params[OPTION_PROJECT_ID].nil? && @params[OPTION_PROJECT_ID].length > 0
|
534
|
+
# output[OPTION_STACK_ID] = @template[:stack_id]
|
535
535
|
# output[OPTION_PROJECT_ID] = @params[OPTION_PROJECT_ID]
|
536
536
|
# end
|
537
537
|
|
@@ -548,7 +548,7 @@ module AppCommand
|
|
548
548
|
padding = output.keys.max_by(&:length).length
|
549
549
|
spacer_passed = false
|
550
550
|
output.each do |key, value|
|
551
|
-
next if [
|
551
|
+
next if [OPTION_STACK_ID, OPTION_PROJECT_ID, OPTION_TIMEOUT, OPTION_TERM_PROTECT, CAPABILITIES].include?(key)
|
552
552
|
if key == SPACER
|
553
553
|
spacer_passed = true
|
554
554
|
next
|
@@ -560,9 +560,9 @@ module AppCommand
|
|
560
560
|
end
|
561
561
|
end
|
562
562
|
|
563
|
-
if @template.has_key?(:
|
563
|
+
if @template.has_key?(:stack_id)
|
564
564
|
params_output << "\x1B[38;5;240m#{OPTION_PROJECT_ID.rjust(padding, ' ')} : \x1B[38;5;246m#{output[OPTION_PROJECT_ID]}" if output.has_key?(OPTION_PROJECT_ID)
|
565
|
-
params_output << "\x1B[38;5;240m#{
|
565
|
+
params_output << "\x1B[38;5;240m#{OPTION_STACK_ID.rjust(padding, ' ')} : \x1B[38;5;246m#{output[OPTION_STACK_ID]}" if output.has_key?(OPTION_STACK_ID)
|
566
566
|
end
|
567
567
|
params_output << "\x1B[38;5;240m#{OPTION_TIMEOUT.rjust(padding, ' ')} : \x1B[38;5;246m#{output[OPTION_TIMEOUT]} Minute(s)\x1B[0m"
|
568
568
|
params_output << "\x1B[38;5;240m#{OPTION_TERM_PROTECT.rjust(padding, ' ')} : #{output[OPTION_TERM_PROTECT] ? "\x1B[38;5;246mYES\x1B[0m" : "\x1B[38;5;246mNO\x1B[0m"}" unless @template[:single_serve]
|
@@ -706,8 +706,8 @@ module AppCommand
|
|
706
706
|
}
|
707
707
|
end
|
708
708
|
|
709
|
-
# TODO NOW - REMOVE:
|
710
|
-
# unless @template[:
|
709
|
+
# TODO NOW - REMOVE:STACK_ID - This needs to be re-instated once we have the stacks.yml parsing.
|
710
|
+
# unless @template[:stack_id].nil?
|
711
711
|
# @template[:parameters][OPTION_PROJECT_ID] = {
|
712
712
|
# 'Type' => 'String',
|
713
713
|
# OPTION_DESCRIPTION => 'Project ID (used for associating this Stack with an existing Project).'
|
@@ -1072,11 +1072,11 @@ module AppCommand
|
|
1072
1072
|
}
|
1073
1073
|
end
|
1074
1074
|
|
1075
|
-
# TODO NOW - REMOVE:
|
1076
|
-
# if @template.has_key?(:
|
1075
|
+
# TODO NOW - REMOVE:STACK_ID - This needs to be re-instated once we have the deployments.yml parsing.
|
1076
|
+
# if @template.has_key?(:stack_id) && params.has_key?(OPTION_PROJECT_ID)
|
1077
1077
|
# output << {
|
1078
|
-
# 'Key' =>
|
1079
|
-
# 'Value' => @template[:
|
1078
|
+
# 'Key' => OPTION_STACK_ID,
|
1079
|
+
# 'Value' => @template[:stack_id].to_s
|
1080
1080
|
# }
|
1081
1081
|
# output << {
|
1082
1082
|
# 'Key' => OPTION_PROJECT_ID,
|
@@ -11,8 +11,8 @@ module AppCommand
|
|
11
11
|
|
12
12
|
@profile = App::AWSProfile::get_profile
|
13
13
|
|
14
|
-
Blufin::Projects::init(@profile[
|
15
|
-
App::
|
14
|
+
Blufin::Projects::init(@profile[App::AWSProfile::PROJECTS])
|
15
|
+
App::Stacks::init(@profile[App::AWSProfile::STACKS])
|
16
16
|
|
17
17
|
opts_validate
|
18
18
|
opts_routing
|
data/lib/routes/upload.rb
CHANGED
@@ -2,9 +2,9 @@ module AppCommand
|
|
2
2
|
|
3
3
|
class Upload < ::Convoy::ActionCommand::Base
|
4
4
|
|
5
|
-
|
6
|
-
PROJECTS
|
7
|
-
TEMPLATES
|
5
|
+
STACKS = 'Stacks'
|
6
|
+
PROJECTS = 'Projects'
|
7
|
+
TEMPLATES = 'Templates'
|
8
8
|
|
9
9
|
def execute
|
10
10
|
|
@@ -35,11 +35,11 @@ module AppCommand
|
|
35
35
|
# Get the local path based on upload action.
|
36
36
|
# @profile keys DO NOT need to be validated because we already check them in the awx.rb routing code.
|
37
37
|
case @action
|
38
|
-
when
|
39
|
-
local_path = @profile[App::AWSProfile::
|
40
|
-
s3_bucket = @profile[App::AWSProfile::
|
41
|
-
s3_path = @profile[App::AWSProfile::
|
42
|
-
s3_region = @profile[App::AWSProfile::
|
38
|
+
when STACKS
|
39
|
+
local_path = @profile[App::AWSProfile::STACKS]['Local']['File']
|
40
|
+
s3_bucket = @profile[App::AWSProfile::STACKS]['S3Bucket']['Name']
|
41
|
+
s3_path = @profile[App::AWSProfile::STACKS]['S3Bucket']['File']
|
42
|
+
s3_region = @profile[App::AWSProfile::STACKS]['S3Bucket']['Region']
|
43
43
|
when PROJECTS
|
44
44
|
local_path = @profile[App::AWSProfile::PROJECTS]['Local']['File']
|
45
45
|
s3_bucket = @profile[App::AWSProfile::PROJECTS]['S3Bucket']['Name']
|
@@ -83,7 +83,7 @@ module AppCommand
|
|
83
83
|
# @return void
|
84
84
|
def determine_action
|
85
85
|
action = @args.shift
|
86
|
-
raise RuntimeError, "Invalid action: #{action}. This is an error with your code not your input." unless [
|
86
|
+
raise RuntimeError, "Invalid action: #{action}. This is an error with your code not your input." unless [STACKS, PROJECTS, TEMPLATES].include?(action)
|
87
87
|
action
|
88
88
|
end
|
89
89
|
|
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
AWX_VERSION = '0.6.
|
1
|
+
AWX_VERSION = '0.6.11'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
type: map
|
2
2
|
mapping:
|
3
|
-
|
3
|
+
DeploymentScripts:
|
4
4
|
type: seq
|
5
5
|
required: yes
|
6
6
|
sequence:
|
@@ -30,7 +30,7 @@ mapping:
|
|
30
30
|
Region:
|
31
31
|
required: yes
|
32
32
|
pattern: /^[a-z]{2}-[a-z]{2,20}-\d$/
|
33
|
-
|
33
|
+
Stacks:
|
34
34
|
type: seq
|
35
35
|
required: yes
|
36
36
|
sequence:
|
@@ -45,7 +45,7 @@ mapping:
|
|
45
45
|
- type: str
|
46
46
|
Script:
|
47
47
|
required: yes
|
48
|
-
|
48
|
+
StackId:
|
49
49
|
required: yes
|
50
50
|
StackParameters:
|
51
51
|
type: seq
|
data/opt/config/schema.yml
CHANGED
data/opt/config/template.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Albert Rannetsperger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blufin-lib
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.7.
|
19
|
+
version: 1.7.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.7.
|
26
|
+
version: 1.7.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,9 +98,9 @@ files:
|
|
98
98
|
- lib/aws/aws_reports.rb
|
99
99
|
- lib/aws/aws_validator.rb
|
100
100
|
- lib/awx.rb
|
101
|
-
- lib/core/deployments.rb
|
102
101
|
- lib/core/opt.rb
|
103
102
|
- lib/core/replacer.rb
|
103
|
+
- lib/core/stacks.rb
|
104
104
|
- lib/routes/cloudformation_create.rb
|
105
105
|
- lib/routes/cloudformation_delete.rb
|
106
106
|
- lib/routes/cloudformation_detect_drift.rb
|
@@ -112,8 +112,8 @@ files:
|
|
112
112
|
- lib/routes/switch.rb
|
113
113
|
- lib/routes/upload.rb
|
114
114
|
- lib/version.rb
|
115
|
-
- opt/awx/deployment-schema.yml
|
116
115
|
- opt/awx/reports.yml
|
116
|
+
- opt/awx/stacks-schema.yml
|
117
117
|
- opt/config/schema.yml
|
118
118
|
- opt/config/template.yml
|
119
119
|
- opt/shell/ec2-check
|