awspec 0.63.1 → 0.64.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9cf4ffa1ceda0700903c6dba019a5042d320961a
4
- data.tar.gz: 8035a957857f5b40627a5fab18623cccebb6968a
3
+ metadata.gz: d070c1be2beec227b12d8cd6a53b0d3ac4aba8d0
4
+ data.tar.gz: 783e7fe04360753de3e60680ece3a3861f4f8cb2
5
5
  SHA512:
6
- metadata.gz: 5d7b8a29b1438eb273e119ee7df7620ec0c257cc48021e50675b493065be9c33dc90f6dae543d7afc46b8241277b455a64db1b8f8741f30ddf0432b03c72e279
7
- data.tar.gz: 2cfb0fa533d5e935185cebe892832cf68051a06d4ed4382fa392e7b2b03cf3624f538ab077250ef652b9f7393a4f1a08d87b242dcc5efe9d8fd48dcb75385868
6
+ metadata.gz: d73b5dbae0739a79209634ed275c35b2625ad05fe5fadbe4075bce94ba32d8ac327c9ff0f17f3114cea4d0cb088ee56b36e920fdc9085cb010be1da6bfc0789d
7
+ data.tar.gz: aeaa99517adefad8f1929096332883781caa2f492527ad1febd50d2e8d3ff2440090f28757f34efc40705131abc2714c807d3792e5f43fda859b824f4c32d380
@@ -0,0 +1,15 @@
1
+ ### exist
2
+
3
+ ```ruby
4
+ describe efs('my-efs') do
5
+ it { should exist }
6
+ end
7
+ ```
8
+
9
+ ### have_tag
10
+
11
+ ```ruby
12
+ describe efs('my-efs') do
13
+ it { should have_tag('my-key').value('my-value') }
14
+ end
15
+ ```
@@ -14,6 +14,7 @@
14
14
  | [ecs_container_instance](#ecs_container_instance)
15
15
  | [ecs_service](#ecs_service)
16
16
  | [ecs_task_definition](#ecs_task_definition)
17
+ | [efs](#efs)
17
18
  | [elasticache](#elasticache)
18
19
  | [elasticache_cache_parameter_group](#elasticache_cache_parameter_group)
19
20
  | [elasticsearch](#elasticsearch)
@@ -521,6 +522,28 @@ EcsTaskDefinition resource type.
521
522
  ### be_inactive
522
523
 
523
524
 
525
+ ## <a name="efs">efs</a>
526
+
527
+ EFS resource type.
528
+
529
+ ### exist
530
+
531
+ ```ruby
532
+ describe efs('my-efs') do
533
+ it { should exist }
534
+ end
535
+ ```
536
+
537
+
538
+ ### have_tag
539
+
540
+ ```ruby
541
+ describe efs('my-efs') do
542
+ it { should have_tag('my-key').value('my-value') }
543
+ end
544
+ ```
545
+
546
+ ### its(:owner_id), its(:creation_token), its(:file_system_id), its(:creation_time), its(:life_cycle_state), its(:name), its(:number_of_mount_targets), its(:performance_mode)
524
547
  ## <a name="elasticache">elasticache</a>
525
548
 
526
549
  Elasticache resource type.
@@ -25,7 +25,7 @@ module Awspec
25
25
  puts Awspec::Generator::Spec::Route53HostedZone.new.generate_by_domain_name(hosted_zone)
26
26
  end
27
27
 
28
- desc 's3_bucket [backet_name]', 'Generate s3_bucket spec from S3 bucket name. if NO args, Generate all.'
28
+ desc 's3_bucket [bucket_name]', 'Generate s3_bucket spec from S3 bucket name. if NO args, Generate all.'
29
29
  def s3_bucket(bucket_name = nil)
30
30
  Awsecrets.load(profile: options[:profile], region: options[:region], secrets_path: options[:secrets_path])
31
31
  if bucket_name
@@ -36,8 +36,8 @@ module Awspec
36
36
  end
37
37
 
38
38
  types_for_generate_all = %w(
39
- cloudwatch_alarm cloudwatch_event directconnect elasticsearch
40
- ebs iam_group iam_policy iam_role iam_user kms lambda
39
+ cloudwatch_alarm cloudwatch_event directconnect ebs efs
40
+ elasticsearch iam_group iam_policy iam_role iam_user kms lambda
41
41
  )
42
42
 
43
43
  types_for_generate_all.each do |type|
@@ -4,6 +4,7 @@ require 'awspec/generator/spec/rds'
4
4
  require 'awspec/generator/spec/vpc'
5
5
  require 'awspec/generator/spec/security_group'
6
6
  require 'awspec/generator/spec/route53_hosted_zone'
7
+ require 'awspec/generator/spec/efs'
7
8
  require 'awspec/generator/spec/elb'
8
9
  require 'awspec/generator/spec/iam_policy'
9
10
  require 'awspec/generator/spec/kms'
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class Efs < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'EFS'
8
+ @type = Awspec::Type::Efs.new('my-efs')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ module Awspec::Generator
2
+ module Spec
3
+ class Efs
4
+ include Awspec::Helper::Finder
5
+ def generate_all
6
+ file_systems = select_all_file_systems
7
+ raise 'EFS not found' if file_systems.empty?
8
+ specs = file_systems.map do |file_system|
9
+ file_system.name = get_name_by_id(file_system.file_system_id)
10
+ content = ERB.new(file_system_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
11
+ end
12
+ specs.join("\n")
13
+ end
14
+
15
+ def file_system_spec_template
16
+ template = <<-'EOF'
17
+ describe efs('<%= file_system.name %>') do
18
+ it { should exist }
19
+ its(:number_of_mount_targets) { should eq <%= file_system.number_of_mount_targets %> }
20
+ its(:life_cycle_state) { should eq '<%= file_system.life_cycle_state %>' }
21
+ its(:performance_mode) { should eq '<%= file_system.performance_mode %>' }
22
+ end
23
+ EOF
24
+ template
25
+ end
26
+ end
27
+ end
28
+ end
@@ -87,9 +87,10 @@ EOF
87
87
  def self.put_message
88
88
  content = <<-"EOF"
89
89
 
90
- Genarate #{@type.camelize} template files.
90
+ Generate #{@type.camelize} template files.
91
91
 
92
92
  * !! AND add '#{@type.underscore}' to Awspec::Helper::Type::TYPES in lib/awspec/helper/type.rb *
93
+ * !! AND add '#{@type.underscore}' client to lib/awspec/helper/finder.rb *
93
94
 
94
95
  EOF
95
96
  end
@@ -5,6 +5,7 @@ require 'awspec/helper/finder/subnet'
5
5
  require 'awspec/helper/finder/ec2'
6
6
  require 'awspec/helper/finder/ecr'
7
7
  require 'awspec/helper/finder/ecs'
8
+ require 'awspec/helper/finder/efs'
8
9
  require 'awspec/helper/finder/security_group'
9
10
  require 'awspec/helper/finder/rds'
10
11
  require 'awspec/helper/finder/route53'
@@ -35,6 +36,7 @@ module Awspec::Helper
35
36
  include Awspec::Helper::Finder::Ec2
36
37
  include Awspec::Helper::Finder::Ecr
37
38
  include Awspec::Helper::Finder::Ecs
39
+ include Awspec::Helper::Finder::Efs
38
40
  include Awspec::Helper::Finder::SecurityGroup
39
41
  include Awspec::Helper::Finder::Rds
40
42
  include Awspec::Helper::Finder::Route53
@@ -61,6 +63,7 @@ module Awspec::Helper
61
63
  ec2_client: Aws::EC2::Client,
62
64
  ecr_client: Aws::ECR::Client,
63
65
  ecs_client: Aws::ECS::Client,
66
+ efs_client: Aws::EFS::Client,
64
67
  rds_client: Aws::RDS::Client,
65
68
  route53_client: Aws::Route53::Client,
66
69
  s3_client: Aws::S3::Client,
@@ -0,0 +1,62 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Efs
4
+ def find_efs(id)
5
+ begin
6
+ res = efs_client.describe_file_systems({
7
+ file_system_id: id,
8
+ max_items: 1
9
+ })
10
+ rescue
11
+ # Aws::EFS::Errors::BadRequest (invalid file system ID: my-efs)
12
+ file_system_id = get_id_by_name_tag(id)
13
+ res = efs_client.describe_file_systems({
14
+ file_system_id: file_system_id,
15
+ max_items: 1
16
+ })
17
+ end
18
+ res.file_systems.single_resource(id)
19
+ end
20
+
21
+ def find_tags(id, tag_key)
22
+ begin
23
+ tag_set = efs_client.describe_tags({ file_system_id: id })
24
+ rescue
25
+ # Aws::EFS::Errors::BadRequest (invalid file system ID: my-efs)
26
+ file_system_id = get_id_by_name_tag(id)
27
+ tag_set = efs_client.describe_tags({
28
+ file_system_id: file_system_id
29
+ })
30
+ end
31
+ tag_query = tag_set.tags.find { |tag| tag.key == tag_key }
32
+ return tag_query if tag_query
33
+ end
34
+
35
+ def get_id_by_name_tag(name)
36
+ # takes a name tag and iterates inventory and returns file_system obj
37
+ inventory = efs_client.describe_file_systems
38
+ inventory.file_systems.each do |fs|
39
+ tag_query = efs_client.describe_tags({
40
+ file_system_id: fs.file_system_id
41
+ })
42
+ name_tag = tag_query.find { |tag| tag.key == 'Name' }
43
+ return fs.file_system_id if name_tag.value == name
44
+ end
45
+ end
46
+
47
+ def get_name_by_id(id)
48
+ tag_query = efs_client.describe_tags({
49
+ file_system_id: id
50
+ })
51
+ name_tag = tag_query.tags.find { |tag| tag.key == 'Name' }
52
+ return name_tag.value if name_tag
53
+ end
54
+
55
+ def select_all_file_systems
56
+ file_systems_query = efs_client.describe_file_systems
57
+ file_systems = file_systems_query.file_systems
58
+ file_systems
59
+ end
60
+ end
61
+ end
62
+ end
@@ -6,7 +6,7 @@ module Awspec
6
6
  TYPES = %w(
7
7
  alb ami autoscaling_group cloudtrail cloudwatch_alarm cloudwatch_event directconnect_virtual_interface
8
8
  ebs ec2 ecr_repository ecs_cluster ecs_container_instance ecs_service ecs_task_definition
9
- elasticache elasticache_cache_parameter_group elasticsearch elb iam_group
9
+ efs elasticache elasticache_cache_parameter_group elasticsearch elb iam_group
10
10
  iam_policy iam_role iam_user kms lambda launch_configuration nat_gateway
11
11
  network_acl network_interface rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
12
12
  route_table s3_bucket security_group ses_identity subnet vpc cloudfront_distribution
@@ -0,0 +1,33 @@
1
+ Aws.config[:efs] = {
2
+ stub_responses: {
3
+ describe_file_systems: {
4
+ file_systems: [
5
+ {
6
+ size_in_bytes: {
7
+ timestamp: Time.new(2017, 1, 2, 10, 0, 0, '+00:00'),
8
+ value: 6144
9
+ },
10
+ creation_token: 'console-1234abcd-1234-abcd-1234-abcd56789012',
11
+ creation_time: Time.new(2017, 1, 2, 10, 0, 0, '+00:00'),
12
+ file_system_id: 'fs-5678acdc',
13
+ number_of_mount_targets: 1,
14
+ life_cycle_state: 'available',
15
+ owner_id: '123456789012',
16
+ performance_mode: 'generalPurpose'
17
+ }
18
+ ]
19
+ },
20
+ describe_tags: {
21
+ tags: [
22
+ {
23
+ value: 'my-value',
24
+ key: 'my-key'
25
+ },
26
+ {
27
+ value: 'my-efs',
28
+ key: 'Name'
29
+ }
30
+ ]
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,22 @@
1
+ module Awspec::Type
2
+ class Efs < Base
3
+ def initialize(file_system_id)
4
+ super
5
+ @display_name = file_system_id
6
+ end
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_efs(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.file_system_id if resource_via_client
14
+ end
15
+
16
+ def has_tag?(tag_key, tag_value)
17
+ tag = find_tags(@display_name, tag_key)
18
+ return nil if tag.value != tag_value
19
+ tag
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '0.63.1'
2
+ VERSION = '0.64.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.63.1
4
+ version: 0.64.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-11 00:00:00.000000000 Z
11
+ date: 2017-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -216,6 +216,7 @@ files:
216
216
  - doc/_resource_types/directconnect_virtual_interface.md
217
217
  - doc/_resource_types/ebs.md
218
218
  - doc/_resource_types/ec2.md
219
+ - doc/_resource_types/efs.md
219
220
  - doc/_resource_types/elasticache.md
220
221
  - doc/_resource_types/elasticache_cache_parameter_group.md
221
222
  - doc/_resource_types/elasticsearch.md
@@ -273,6 +274,7 @@ files:
273
274
  - lib/awspec/generator/doc/type/ecs_container_instance.rb
274
275
  - lib/awspec/generator/doc/type/ecs_service.rb
275
276
  - lib/awspec/generator/doc/type/ecs_task_definition.rb
277
+ - lib/awspec/generator/doc/type/efs.rb
276
278
  - lib/awspec/generator/doc/type/elasticache.rb
277
279
  - lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb
278
280
  - lib/awspec/generator/doc/type/elasticsearch.rb
@@ -306,6 +308,7 @@ files:
306
308
  - lib/awspec/generator/spec/directconnect.rb
307
309
  - lib/awspec/generator/spec/ebs.rb
308
310
  - lib/awspec/generator/spec/ec2.rb
311
+ - lib/awspec/generator/spec/efs.rb
309
312
  - lib/awspec/generator/spec/elasticsearch.rb
310
313
  - lib/awspec/generator/spec/elb.rb
311
314
  - lib/awspec/generator/spec/iam_group.rb
@@ -340,6 +343,7 @@ files:
340
343
  - lib/awspec/helper/finder/ec2.rb
341
344
  - lib/awspec/helper/finder/ecr.rb
342
345
  - lib/awspec/helper/finder/ecs.rb
346
+ - lib/awspec/helper/finder/efs.rb
343
347
  - lib/awspec/helper/finder/elasticache.rb
344
348
  - lib/awspec/helper/finder/elasticsearch.rb
345
349
  - lib/awspec/helper/finder/elastictranscoder.rb
@@ -400,6 +404,7 @@ files:
400
404
  - lib/awspec/stub/ecs_container_instance.rb
401
405
  - lib/awspec/stub/ecs_service.rb
402
406
  - lib/awspec/stub/ecs_task_definition.rb
407
+ - lib/awspec/stub/efs.rb
403
408
  - lib/awspec/stub/elasticache.rb
404
409
  - lib/awspec/stub/elasticache_cache_parameter_group.rb
405
410
  - lib/awspec/stub/elasticsearch.rb
@@ -446,6 +451,7 @@ files:
446
451
  - lib/awspec/type/ecs_container_instance.rb
447
452
  - lib/awspec/type/ecs_service.rb
448
453
  - lib/awspec/type/ecs_task_definition.rb
454
+ - lib/awspec/type/efs.rb
449
455
  - lib/awspec/type/elasticache.rb
450
456
  - lib/awspec/type/elasticache_cache_parameter_group.rb
451
457
  - lib/awspec/type/elasticsearch.rb