scout-camp 0.1.6 → 0.1.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.vimproject +63 -7
  3. data/VERSION +1 -1
  4. data/lib/scout/aws/s3.rb +54 -12
  5. data/lib/scout/offsite/resource.rb +34 -0
  6. data/lib/scout/offsite/ssh.rb +2 -0
  7. data/lib/scout/offsite/sync.rb +2 -0
  8. data/lib/scout/terraform_dsl/util.rb +2 -2
  9. data/lib/scout/terraform_dsl.rb +58 -0
  10. data/lib/scout-camp.rb +1 -0
  11. data/scout-camp.gemspec +37 -4
  12. data/scout_commands/sync +33 -0
  13. data/scout_commands/terraform/lambda_task +9 -5
  14. data/scout_commands/terraform/list +11 -3
  15. data/scout_commands/terraform/outputs +33 -0
  16. data/share/aws/lambda_function.rb +34 -7
  17. data/share/terraform/aws/container_lambda/data.tf +15 -0
  18. data/share/terraform/aws/container_lambda/locals.tf +8 -0
  19. data/share/terraform/aws/container_lambda/main.tf +47 -0
  20. data/share/terraform/aws/container_lambda/variables.tf +44 -0
  21. data/share/terraform/aws/efs/data.tf +12 -0
  22. data/share/terraform/aws/efs/locals.tf +6 -0
  23. data/share/terraform/aws/efs/main.tf +14 -0
  24. data/share/terraform/aws/efs/output.tf +3 -0
  25. data/share/terraform/aws/efs/variables.tf +9 -0
  26. data/share/terraform/aws/efs_host/data.tf +11 -0
  27. data/share/terraform/aws/efs_host/locals.tf +8 -0
  28. data/share/terraform/aws/efs_host/main.tf +32 -0
  29. data/share/terraform/aws/efs_host/output.tf +3 -0
  30. data/share/terraform/aws/efs_host/variables.tf +28 -0
  31. data/share/terraform/aws/fargate/locals.tf +8 -0
  32. data/share/terraform/aws/fargate/main.tf +41 -0
  33. data/share/terraform/aws/fargate/variables.tf +84 -0
  34. data/share/terraform/aws/iam_instance_profile/main.tf +5 -0
  35. data/share/terraform/aws/iam_instance_profile/output.tf +15 -0
  36. data/share/terraform/aws/iam_instance_profile/variables.tf +9 -0
  37. data/share/terraform/aws/lambda/main.tf +1 -1
  38. data/share/terraform/aws/lambda/variables.tf +3 -4
  39. data/share/terraform/aws/network/data.tf +15 -0
  40. data/share/terraform/aws/network/main.tf +41 -0
  41. data/share/terraform/aws/network/output.tf +7 -0
  42. data/share/terraform/aws/network/variables.tf +0 -0
  43. data/share/terraform/aws/policy/main.tf +8 -0
  44. data/share/terraform/aws/policy/output.tf +15 -0
  45. data/share/terraform/aws/policy/variables.tf +12 -0
  46. data/share/terraform/aws/role/main.tf +1 -1
  47. data/share/terraform/aws/role/output.tf +1 -1
  48. data/share/terraform/aws/role/variables.tf +4 -1
  49. data/share/terraform/aws/role_policy/main.tf +9 -0
  50. data/share/terraform/aws/role_policy/variables.tf +16 -0
  51. data/test/scout/aws/test_s3.rb +14 -1
  52. data/test/scout/offsite/test_resource.rb +46 -0
  53. data/test/scout/offsite/test_sync.rb +1 -0
  54. metadata +36 -3
@@ -0,0 +1,16 @@
1
+ variable "policy_name" {
2
+ type = string
3
+ }
4
+
5
+ variable "statement" {
6
+ type = list(object({
7
+ Action = any
8
+ Effect = string
9
+ Resource = string
10
+ }))
11
+ }
12
+
13
+ variable "role" {
14
+ description = "Role id to which to attach policy"
15
+ type = string
16
+ }
@@ -7,7 +7,7 @@ class TestS3 < Test::Unit::TestCase
7
7
  file = "s3://herlab/tmp/foo.txt"
8
8
 
9
9
  Open::S3.write file, "TEST"
10
-
10
+
11
11
  dir = "s3://herlab/tmp"
12
12
 
13
13
  assert_include Open::S3.glob(dir, "**/*"), file
@@ -30,6 +30,19 @@ class TestS3 < Test::Unit::TestCase
30
30
  Open::S3.rm uri
31
31
  end
32
32
 
33
+ def test_cp
34
+ uri = "s3://herlab/tmp/foo.txt"
35
+
36
+ Open::S3.write uri, "TEST"
37
+ io = Open::S3.get_stream uri
38
+ assert_equal "TEST", io.read
39
+ TmpFile.with_path do |file|
40
+ Open.cp uri, file
41
+ assert_equal "TEST", Open.read(file)
42
+ end
43
+ Open::S3.rm uri
44
+ end
45
+
33
46
  def test_write_block
34
47
  uri = "s3://herlab/tmp/foo.txt"
35
48
 
@@ -0,0 +1,46 @@
1
+ require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
2
+ require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
3
+
4
+ require 'scout'
5
+ class TestResourceSync < Test::Unit::TestCase
6
+ def test_sync_file
7
+ TmpFile.with_path do |source|
8
+ TmpFile.with_path do |target|
9
+ Open.write(source.file, 'payload')
10
+ Misc.in_dir target.find do
11
+ Resource.sync(source.file, :current)
12
+ end
13
+
14
+ assert_equal 'payload', Open.read(target[Resource.identify(source)].file)
15
+ end
16
+ end
17
+ end
18
+
19
+ def test_sync_dir
20
+ TmpFile.with_path do |source|
21
+ TmpFile.with_path do |target|
22
+ Open.write(source.file, 'payload')
23
+ Misc.in_dir target.find do
24
+ Resource.sync(source, :current)
25
+ end
26
+
27
+ assert_equal 'payload', Open.read(target[Resource.identify(source)].file)
28
+ end
29
+ end
30
+ end
31
+
32
+ def test_sync_from_localhost
33
+ TmpFile.with_path do |source|
34
+ TmpFile.with_path do |target|
35
+ Open.write(source.file, 'payload')
36
+ Misc.in_dir target.find do
37
+ sss 0
38
+ Resource.sync(source, :current, source: 'localhost')
39
+ end
40
+
41
+ assert_equal 'payload', Open.read(target[Resource.identify(source)].file)
42
+ end
43
+ end
44
+ end
45
+ end
46
+
@@ -1,6 +1,7 @@
1
1
  require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
2
2
  require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
3
3
 
4
+ require 'scout'
4
5
  class TestSync < Test::Unit::TestCase
5
6
  def test_sync
6
7
  TmpFile.with_path do |tmpdir|
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scout-camp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-08 00:00:00.000000000 Z
10
+ date: 2025-04-16 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: scout-essentials
@@ -42,6 +42,7 @@ files:
42
42
  - lib/scout/aws/s3.rb
43
43
  - lib/scout/offsite.rb
44
44
  - lib/scout/offsite/exceptions.rb
45
+ - lib/scout/offsite/resource.rb
45
46
  - lib/scout/offsite/ssh.rb
46
47
  - lib/scout/offsite/step.rb
47
48
  - lib/scout/offsite/sync.rb
@@ -50,12 +51,14 @@ files:
50
51
  - lib/scout/terraform_dsl/util.rb
51
52
  - scout-camp.gemspec
52
53
  - scout_commands/offsite
54
+ - scout_commands/sync
53
55
  - scout_commands/terraform/add/lambda
54
56
  - scout_commands/terraform/add/relay
55
57
  - scout_commands/terraform/apply
56
58
  - scout_commands/terraform/destroy
57
59
  - scout_commands/terraform/lambda_task
58
60
  - scout_commands/terraform/list
61
+ - scout_commands/terraform/outputs
59
62
  - scout_commands/terraform/plan
60
63
  - scout_commands/terraform/remove
61
64
  - scout_commands/terraform/status
@@ -67,12 +70,39 @@ files:
67
70
  - share/terraform/aws/cluster/main.tf
68
71
  - share/terraform/aws/cluster/output.tf
69
72
  - share/terraform/aws/cluster/variables.tf
73
+ - share/terraform/aws/container_lambda/data.tf
74
+ - share/terraform/aws/container_lambda/locals.tf
75
+ - share/terraform/aws/container_lambda/main.tf
76
+ - share/terraform/aws/container_lambda/variables.tf
77
+ - share/terraform/aws/efs/data.tf
78
+ - share/terraform/aws/efs/locals.tf
79
+ - share/terraform/aws/efs/main.tf
80
+ - share/terraform/aws/efs/output.tf
81
+ - share/terraform/aws/efs/variables.tf
82
+ - share/terraform/aws/efs_host/data.tf
83
+ - share/terraform/aws/efs_host/locals.tf
84
+ - share/terraform/aws/efs_host/main.tf
85
+ - share/terraform/aws/efs_host/output.tf
86
+ - share/terraform/aws/efs_host/variables.tf
87
+ - share/terraform/aws/fargate/locals.tf
88
+ - share/terraform/aws/fargate/main.tf
89
+ - share/terraform/aws/fargate/variables.tf
70
90
  - share/terraform/aws/host/locals.tf
71
91
  - share/terraform/aws/host/main.tf
72
92
  - share/terraform/aws/host/output.tf
73
93
  - share/terraform/aws/host/variables.tf
94
+ - share/terraform/aws/iam_instance_profile/main.tf
95
+ - share/terraform/aws/iam_instance_profile/output.tf
96
+ - share/terraform/aws/iam_instance_profile/variables.tf
74
97
  - share/terraform/aws/lambda/main.tf
75
98
  - share/terraform/aws/lambda/variables.tf
99
+ - share/terraform/aws/network/data.tf
100
+ - share/terraform/aws/network/main.tf
101
+ - share/terraform/aws/network/output.tf
102
+ - share/terraform/aws/network/variables.tf
103
+ - share/terraform/aws/policy/main.tf
104
+ - share/terraform/aws/policy/output.tf
105
+ - share/terraform/aws/policy/variables.tf
76
106
  - share/terraform/aws/policy_attachment/main.tf
77
107
  - share/terraform/aws/policy_attachment/variables.tf
78
108
  - share/terraform/aws/provider/data.tf
@@ -80,9 +110,12 @@ files:
80
110
  - share/terraform/aws/role/main.tf
81
111
  - share/terraform/aws/role/output.tf
82
112
  - share/terraform/aws/role/variables.tf
113
+ - share/terraform/aws/role_policy/main.tf
114
+ - share/terraform/aws/role_policy/variables.tf
83
115
  - share/terraform/ssh/cmd/main.tf
84
116
  - share/terraform/ssh/cmd/variables.tf
85
117
  - test/scout/aws/test_s3.rb
118
+ - test/scout/offsite/test_resource.rb
86
119
  - test/scout/offsite/test_ssh.rb
87
120
  - test/scout/offsite/test_step.rb
88
121
  - test/scout/offsite/test_sync.rb
@@ -106,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
139
  - !ruby/object:Gem::Version
107
140
  version: '0'
108
141
  requirements: []
109
- rubygems_version: 3.6.5
142
+ rubygems_version: 3.6.6
110
143
  specification_version: 4
111
144
  summary: Deploy you scouts
112
145
  test_files: []