zaws 0.0.5 → 0.1.1
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 +7 -0
- data/.gitignore +2 -0
- data/.travis.yml +9 -18
- data/Gemfile +0 -0
- data/Gemfile.lock +26 -35
- data/Gemfile.lock.linux +69 -0
- data/Gemfile.lock.mac +81 -0
- data/Gemfile.lock.windows +77 -0
- data/LICENSE +0 -0
- data/README.md +11 -0
- data/Rakefile +1 -7
- data/archive/cloud_trail/cloud_trail.feature +124 -0
- data/bin/win_zaws.bat +2 -0
- data/lib/zaws.rb +54 -41
- data/lib/zaws/command/ai.rb +34 -0
- data/lib/zaws/command/bucket.rb +35 -0
- data/lib/zaws/command/cloud_trail.rb +43 -0
- data/lib/zaws/command/compute.rb +152 -87
- data/lib/zaws/command/config.rb +42 -0
- data/lib/zaws/command/elasticip.rb +19 -9
- data/lib/zaws/command/hosted_zone.rb +31 -18
- data/lib/zaws/command/iam.rb +37 -0
- data/lib/zaws/command/load_balancer.rb +54 -51
- data/lib/zaws/command/nessus.rb +41 -0
- data/lib/zaws/command/newrelic.rb +30 -0
- data/lib/zaws/command/route_table.rb +135 -122
- data/lib/zaws/command/security_group.rb +95 -82
- data/lib/zaws/command/subnet.rb +58 -46
- data/lib/zaws/command/sumo.rb +34 -0
- data/lib/zaws/command/vpc.rb +53 -0
- data/lib/zaws/external/awscli/awscli.rb +65 -0
- data/lib/zaws/external/awscli/commands.rb +10 -0
- data/lib/zaws/external/awscli/commands/aws.rb +40 -0
- data/lib/zaws/external/awscli/commands/ec2.rb +74 -0
- data/lib/zaws/external/awscli/commands/ec2/allocate_address.rb +42 -0
- data/lib/zaws/external/awscli/commands/ec2/assign_private_ip_addresses.rb +49 -0
- data/lib/zaws/external/awscli/commands/ec2/associate_address.rb +48 -0
- data/lib/zaws/external/awscli/commands/ec2/associate_route_table.rb +48 -0
- data/lib/zaws/external/awscli/commands/ec2/authorize_security_group_ingress.rb +70 -0
- data/lib/zaws/external/awscli/commands/ec2/create_route.rb +60 -0
- data/lib/zaws/external/awscli/commands/ec2/create_route_table.rb +40 -0
- data/lib/zaws/external/awscli/commands/ec2/create_security_group.rb +58 -0
- data/lib/zaws/external/awscli/commands/ec2/create_subnet.rb +62 -0
- data/lib/zaws/external/awscli/commands/ec2/create_tags.rb +53 -0
- data/lib/zaws/external/awscli/commands/ec2/create_vpc.rb +21 -0
- data/lib/zaws/external/awscli/commands/ec2/delete_route.rb +54 -0
- data/lib/zaws/external/awscli/commands/ec2/delete_route_table.rb +46 -0
- data/lib/zaws/external/awscli/commands/ec2/delete_security_group.rb +46 -0
- data/lib/zaws/external/awscli/commands/ec2/delete_subnet.rb +46 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_addresses.rb +41 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_images.rb +58 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_instances.rb +56 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_route_tables.rb +44 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_security_groups.rb +50 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_subnets.rb +48 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_vpc_peering_connections.rb +23 -0
- data/lib/zaws/external/awscli/commands/ec2/describe_vpcs.rb +26 -0
- data/lib/zaws/external/awscli/commands/ec2/disable_vgw_route_propagation.rb +48 -0
- data/lib/zaws/external/awscli/commands/ec2/disassociate-address.rb +42 -0
- data/lib/zaws/external/awscli/commands/ec2/disassociate_route_table.rb +41 -0
- data/lib/zaws/external/awscli/commands/ec2/enable_vgw_route_propagation.rb +48 -0
- data/lib/zaws/external/awscli/commands/ec2/filter.rb +115 -0
- data/lib/zaws/external/awscli/commands/ec2/modify_instance_attribute.rb +62 -0
- data/lib/zaws/external/awscli/commands/ec2/network_interfaces.rb +63 -0
- data/lib/zaws/external/awscli/commands/ec2/release_address.rb +42 -0
- data/lib/zaws/external/awscli/commands/ec2/revoke_security_group_ingress.rb +70 -0
- data/lib/zaws/external/awscli/commands/ec2/run_instances.rb +21 -0
- data/lib/zaws/external/awscli/commands/ec2/stop_instances.rb +21 -0
- data/lib/zaws/external/awscli/commands/ec2/terminate_instances.rb +40 -0
- data/lib/zaws/external/awscli/commands/ec2/unassign_private_ip_addresses.rb +49 -0
- data/lib/zaws/external/awscli/commands/elb.rb +19 -0
- data/lib/zaws/external/awscli/commands/elb/create_load_balancer.rb +64 -0
- data/lib/zaws/external/awscli/commands/elb/create_load_balancer_listeners.rb +47 -0
- data/lib/zaws/external/awscli/commands/elb/delete_load_balancer.rb +40 -0
- data/lib/zaws/external/awscli/commands/elb/delete_load_balancer_listeners.rb +49 -0
- data/lib/zaws/external/awscli/commands/elb/deregister_instances_with_load_balancer.rb +49 -0
- data/lib/zaws/external/awscli/commands/elb/describe_load_balancers.rb +30 -0
- data/lib/zaws/external/awscli/commands/elb/register_instances_with_load_balancer.rb +49 -0
- data/lib/zaws/external/awscli/commands/iam.rb +31 -0
- data/lib/zaws/external/awscli/commands/iam/GetPolicy.rb +21 -0
- data/lib/zaws/external/awscli/commands/iam/GetPolicyVersion.rb +21 -0
- data/lib/zaws/external/awscli/commands/iam/GetRolePolicy.rb +21 -0
- data/lib/zaws/external/awscli/commands/route53.rb +19 -0
- data/lib/zaws/external/awscli/commands/route53/list_hosted_zones.rb +30 -0
- data/lib/zaws/external/awscli/commands/route53/list_resource_record_sets.rb +41 -0
- data/lib/zaws/external/awscli/commands/s3/ls.rb +34 -0
- data/lib/zaws/external/awscli/commands/s3/mb.rb +41 -0
- data/lib/zaws/external/awscli/commands/s3/sync.rb +48 -0
- data/lib/zaws/external/awscli/credentials.rb +22 -0
- data/lib/zaws/external/awscli/data.rb +10 -0
- data/lib/zaws/external/awscli/data/ec2.rb +33 -0
- data/lib/zaws/external/awscli/data/ec2/instance.rb +162 -0
- data/lib/zaws/external/awscli/data/ec2/security_group.rb +51 -0
- data/lib/zaws/external/awscli/data/ec2/subnet.rb +59 -0
- data/lib/zaws/external/awscli/data/ec2/vpc.rb +85 -0
- data/lib/zaws/external/awscli/data/iam.rb +34 -0
- data/lib/zaws/external/awscli/data/iam/policy.rb +42 -0
- data/lib/zaws/external/awscli/data/iam/policy_document.rb +52 -0
- data/lib/zaws/external/awscli/data/iam/policy_version.rb +42 -0
- data/lib/zaws/external/awscli/data/iam/role_policy.rb +52 -0
- data/lib/zaws/external/awscli/generators/result/ec2/addresses.rb +70 -0
- data/lib/zaws/external/awscli/generators/result/ec2/allocation_id.rb +39 -0
- data/lib/zaws/external/awscli/generators/result/ec2/association_id.rb +29 -0
- data/lib/zaws/external/awscli/generators/result/ec2/images.rb +46 -0
- data/lib/zaws/external/awscli/generators/result/ec2/instances.rb +57 -0
- data/lib/zaws/external/awscli/generators/result/ec2/ip_permissions.rb +70 -0
- data/lib/zaws/external/awscli/generators/result/ec2/network_interfaces.rb +53 -0
- data/lib/zaws/external/awscli/generators/result/ec2/private_ip_addresses.rb +41 -0
- data/lib/zaws/external/awscli/generators/result/ec2/route_tables.rb +80 -0
- data/lib/zaws/external/awscli/generators/result/ec2/routes.rb +58 -0
- data/lib/zaws/external/awscli/generators/result/ec2/security_groups.rb +73 -0
- data/lib/zaws/external/awscli/generators/result/ec2/subnets.rb +88 -0
- data/lib/zaws/external/awscli/generators/result/ec2/tags.rb +34 -0
- data/lib/zaws/external/awscli/generators/result/ec2/virtual_gateway.rb +32 -0
- data/lib/zaws/external/awscli/generators/result/elb/listeners.rb +65 -0
- data/lib/zaws/external/awscli/generators/result/elb/load_balancers.rb +61 -0
- data/lib/zaws/external/awscli/generators/result/route53/hosted_zones.rb +52 -0
- data/lib/zaws/external/awscli/regions.rb +13 -0
- data/lib/zaws/external/nessusapi/data/agents.rb +36 -0
- data/lib/zaws/external/nessusapi/data/scanners.rb +35 -0
- data/lib/zaws/external/nessusapi/nessusapi.rb +57 -0
- data/lib/zaws/external/nessusapi/reources.rb +10 -0
- data/lib/zaws/external/nessusapi/resources/agents.rb +18 -0
- data/lib/zaws/external/nessusapi/resources/agents/list.rb +20 -0
- data/lib/zaws/external/nessusapi/resources/scanners.rb +18 -0
- data/lib/zaws/external/nessusapi/resources/scanners/list.rb +20 -0
- data/lib/zaws/external/newrelicapi/data/servers.rb +36 -0
- data/lib/zaws/external/newrelicapi/newrelic_client.rb +64 -0
- data/lib/zaws/external/newrelicapi/newrelic_creds.rb +60 -0
- data/lib/zaws/external/newrelicapi/newrelicapi.rb +46 -0
- data/lib/zaws/external/newrelicapi/resources/servers.rb +18 -0
- data/lib/zaws/external/newrelicapi/resources/servers/list.rb +20 -0
- data/lib/zaws/external/sumoapi/data/collectors.rb +35 -0
- data/lib/zaws/external/sumoapi/data/sources.rb +35 -0
- data/lib/zaws/external/sumoapi/resources/collectors.rb +18 -0
- data/lib/zaws/external/sumoapi/resources/collectors/list.rb +20 -0
- data/lib/zaws/external/sumoapi/resources/sources.rb +18 -0
- data/lib/zaws/external/sumoapi/resources/sources/list.rb +20 -0
- data/lib/zaws/external/sumoapi/sumo_client.rb +63 -0
- data/lib/zaws/external/sumoapi/sumo_creds.rb +67 -0
- data/lib/zaws/external/sumoapi/sumoapi.rb +56 -0
- data/lib/zaws/helper/data_lattice.rb +22 -0
- data/lib/zaws/helper/filestore.rb +48 -0
- data/lib/zaws/helper/filter.rb +15 -0
- data/lib/zaws/helper/inifile.rb +632 -0
- data/lib/zaws/helper/nessus_client.rb +143 -0
- data/lib/zaws/helper/nessus_creds.rb +67 -0
- data/lib/zaws/helper/option.rb +14 -15
- data/lib/zaws/helper/output.rb +81 -29
- data/lib/zaws/helper/process_hash.rb +47 -0
- data/lib/zaws/helper/shell.rb +0 -0
- data/lib/zaws/helper/verbose.rb +15 -0
- data/lib/zaws/helper/zfile.rb +8 -8
- data/lib/zaws/services/ai.rb +35 -0
- data/lib/zaws/services/ai/query.rb +135 -0
- data/lib/zaws/services/aws.rb +41 -0
- data/lib/zaws/services/chef.rb +0 -0
- data/lib/zaws/services/cloud_trail.rb +76 -0
- data/lib/zaws/services/config.rb +31 -0
- data/lib/zaws/services/ec2.rb +47 -0
- data/lib/zaws/services/ec2/compute.rb +352 -0
- data/lib/zaws/services/ec2/elasticip.rb +82 -0
- data/lib/zaws/services/ec2/route_table.rb +210 -0
- data/lib/zaws/services/ec2/security_group.rb +186 -0
- data/lib/zaws/services/ec2/subnet.rb +111 -0
- data/lib/zaws/services/ec2/vpc.rb +69 -0
- data/lib/zaws/{elb.rb → services/elb.rb} +3 -2
- data/lib/zaws/services/elb/load_balancer.rb +160 -0
- data/lib/zaws/services/iam.rb +25 -0
- data/lib/zaws/services/iam/policy.rb +25 -0
- data/lib/zaws/services/iam/role.rb +23 -0
- data/lib/zaws/services/nessus.rb +24 -0
- data/lib/zaws/services/nessus/agents.rb +19 -0
- data/lib/zaws/services/nessus/scanners.rb +19 -0
- data/lib/zaws/services/newrelic.rb +21 -0
- data/lib/zaws/services/newrelic/servers.rb +19 -0
- data/lib/zaws/{route53.rb → services/route53.rb} +1 -1
- data/lib/zaws/services/route53/hosted_zone.rb +36 -0
- data/lib/zaws/services/s3.rb +15 -0
- data/lib/zaws/services/s3/bucket.rb +42 -0
- data/lib/zaws/services/sumo.rb +21 -0
- data/lib/zaws/services/sumo/collectors.rb +19 -0
- data/lib/zaws/services/vmware.rb +0 -0
- data/lib/zaws/version.rb +1 -1
- data/shove_all.sh +6 -0
- data/shove_all_mac.sh +6 -0
- data/shove_all_windows.sh +6 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/zaws/command/ec2/compute/assoc_security_group_spec.rb +135 -0
- data/spec/zaws/command/ec2/compute/compute_spec.rb +321 -0
- data/spec/zaws/command/ec2/compute/images_spec.rb +69 -0
- data/spec/zaws/command/ec2/compute/management_spec.rb +364 -0
- data/spec/zaws/command/ec2/compute/network_spec.rb +93 -0
- data/spec/zaws/command/ec2/compute/node_spec.rb +70 -0
- data/spec/zaws/command/ec2/compute/secondary_ip_spec.rb +212 -0
- data/spec/zaws/command/ec2/compute/storage_spec.rb +63 -0
- data/spec/zaws/command/ec2/elasticip_spec.rb +271 -0
- data/spec/zaws/command/ec2/route_table_spec.rb +844 -0
- data/spec/zaws/command/ec2/security_group_spec.rb +710 -0
- data/spec/zaws/command/ec2/subnet_spec.rb +273 -0
- data/spec/zaws/command/ec2/vpc_spec.rb +180 -0
- data/spec/zaws/command/elb/load_balancer_spec.rb +633 -0
- data/spec/zaws/command/iam/policy_spec.rb +101 -0
- data/spec/zaws/command/iam/role_policy_spec.rb +35 -0
- data/spec/zaws/command/route53/hosted_zone_spec.rb +100 -0
- data/spec/zaws/command/s3/bucket_spec.rb +70 -0
- data/spec/zaws/external/awscli/data/ec2/instance_spec.rb +90 -0
- data/spec/zaws/external/awscli/data/iam/policy_document_spec.rb +56 -0
- data/spec/zaws/external/awscli/data/iam/role_policy_spec.rb +54 -0
- data/spec/zaws/external/awscli/get_aws_version_spec.rb +18 -0
- data/spec/zaws/helper/option_spec.rb +54 -0
- data/spec/zaws/helper/output_spec.rb +144 -0
- data/spec/zaws/helper/process_hash_spec.rb +48 -0
- data/spec/zaws/helper/shell_spec.rb +56 -0
- data/spec/zaws/nessus/scanners.json +0 -0
- data/spec/zaws/version_spec.rb +18 -0
- data/zaws.gemspec +1 -3
- metadata +260 -189
- data/feature/compute/assoc_security_group.feature +0 -55
- data/feature/compute/compute.feature +0 -138
- data/feature/compute/secondary_ip.feature +0 -107
- data/feature/compute/view.feature +0 -23
- data/feature/compute/view_images.feature +0 -24
- data/feature/elasticip/elasticip.feature +0 -138
- data/feature/elasticip/view.feature +0 -18
- data/feature/hosted_zone/view.feature +0 -17
- data/feature/hosted_zone/view_record.feature +0 -29
- data/feature/load_balancer/instance_registration.feature +0 -120
- data/feature/load_balancer/listener.feature +0 -86
- data/feature/load_balancer/load_balancer.feature +0 -101
- data/feature/load_balancer/view.feature +0 -18
- data/feature/route_table/assoc_subnet.feature +0 -128
- data/feature/route_table/route_propagation.feature +0 -93
- data/feature/route_table/route_table.feature +0 -91
- data/feature/route_table/route_to_gateway.feature +0 -69
- data/feature/route_table/route_to_instance.feature +0 -115
- data/feature/route_table/view.feature +0 -25
- data/feature/security_group/ingress_cidr.feature +0 -144
- data/feature/security_group/ingress_group.feature +0 -184
- data/feature/security_group/security_group.feature +0 -107
- data/feature/security_group/view.feature +0 -23
- data/feature/subnet/subnet.feature +0 -94
- data/feature/subnet/view.feature +0 -24
- data/feature/support/env.rb +0 -14
- data/feature/version.feature +0 -6
- data/lib/zaws/aws.rb +0 -26
- data/lib/zaws/ec2.rb +0 -40
- data/lib/zaws/ec2/compute.rb +0 -247
- data/lib/zaws/ec2/elasticip.rb +0 -79
- data/lib/zaws/ec2/route_table.rb +0 -207
- data/lib/zaws/ec2/security_group.rb +0 -154
- data/lib/zaws/ec2/subnet.rb +0 -109
- data/lib/zaws/elb/load_balancer.rb +0 -157
- data/lib/zaws/route53/hosted_zone.rb +0 -36
- data/spec/zaws/ec2/compute/add_volume_spec.rb +0 -39
- data/spec/zaws/ec2/compute/block_device_mapping_spec.rb +0 -31
- data/spec/zaws/ec2/compute/instance_id_by_external_id_spec.rb +0 -23
- data/spec/zaws/ec2/compute/instance_ping_spec.rb +0 -34
- data/spec/zaws/ec2/compute/instance_running_spec.rb +0 -47
- data/spec/zaws/ec2/compute/network_interface_json_spec.rb +0 -57
- data/spec/zaws/ec2/compute/nosdcheck_spec.rb +0 -17
- data/spec/zaws/ec2/compute/tag_instance_spec.rb +0 -21
- data/spec/zaws/ec2/security_group/id_by_name_spec.rb +0 -32
- data/spec/zaws/ec2/subnet/available_spec.rb +0 -22
- data/spec/zaws/ec2/subnet/declare_spec.rb +0 -31
- data/spec/zaws/ec2/subnet/exists_spec.rb +0 -33
- data/spec/zaws/ec2/subnet/id_array_by_cidrblock_array_spec.rb +0 -48
- data/spec/zaws/ec2/subnet/id_by_cidrblock_spec.rb +0 -35
- data/spec/zaws/ec2/subnet/id_by_ip_spec.rb +0 -42
- data/spec/zaws/ec2/subnet/view_spec.rb +0 -34
- data/spec/zaws/elb/load_balancer/calculated_listener_spec.rb +0 -18
- data/spec/zaws/helper/option/absent_spec.rb +0 -14
- data/spec/zaws/helper/option/exclusive_spec.rb +0 -14
- data/spec/zaws/helper/option/exists_spec.rb +0 -18
- data/spec/zaws/helper/option/minimum_spec.rb +0 -14
- data/spec/zaws/helper/output/binary_nagios_check_spec.rb +0 -19
- data/spec/zaws/helper/output/colorize_spec.rb +0 -30
- data/spec/zaws/helper/output/opt_exclusive_spec.rb +0 -14
- data/spec/zaws/helper/output/opt_minimum_spec.rb +0 -15
- data/spec/zaws/helper/output/opt_required_spec.rb +0 -12
- data/spec/zaws/helper/shell/cli_spec.rb +0 -33
- data/spec/zaws/helper/shell/if_then_spec.rb +0 -24
@@ -1,184 +0,0 @@
|
|
1
|
-
Feature: Security Group
|
2
|
-
Security Group(s) are viewable
|
3
|
-
|
4
|
-
Scenario: Determine a vpc securiry group ingress group rule identified by source and target has NOT been created
|
5
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
6
|
-
"""
|
7
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
8
|
-
"""
|
9
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
10
|
-
"""
|
11
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
12
|
-
"""
|
13
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
14
|
-
"""
|
15
|
-
{ "SecurityGroups": [] }
|
16
|
-
"""
|
17
|
-
When I run `bundle exec zaws security_group ingress_group_exists target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
18
|
-
Then the output should contain "false\n"
|
19
|
-
|
20
|
-
Scenario: Determine a vpc security group ingress group rule identified by source and target has been created
|
21
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
22
|
-
"""
|
23
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
24
|
-
"""
|
25
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
26
|
-
"""
|
27
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
28
|
-
"""
|
29
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
30
|
-
"""
|
31
|
-
{ "SecurityGroups": [ {
|
32
|
-
"GroupName": "target_group_name",
|
33
|
-
"GroupId": "X_target_group_name",
|
34
|
-
"IpPermissions": [ {
|
35
|
-
"ToPort": 443,
|
36
|
-
"IpProtocol": "tcp",
|
37
|
-
"IpRanges": [],
|
38
|
-
"UserIdGroupPairs": [ {
|
39
|
-
"UserId": "958601521864",
|
40
|
-
"GroupId": "X_source_group_name" } ],
|
41
|
-
"FromPort": 443 } ] } ] }
|
42
|
-
"""
|
43
|
-
When I run `bundle exec zaws security_group ingress_group_exists target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
44
|
-
Then the output should contain "true\n"
|
45
|
-
|
46
|
-
Scenario: Declare a new vpc security group ingress group rule identified by source and target. Create it cause it doesn't exist. Also, should append the command to remove the security group to file.
|
47
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
48
|
-
"""
|
49
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
50
|
-
"""
|
51
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
52
|
-
"""
|
53
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
54
|
-
"""
|
55
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
56
|
-
"""
|
57
|
-
{ "SecurityGroups": [] }
|
58
|
-
"""
|
59
|
-
And I double `aws --region us-west-1 ec2 authorize-security-group-ingress --group-id X_target_group_name --source-security-group-owner-id X_source_group_name --protocol tcp --port 443` with stdout:
|
60
|
-
"""
|
61
|
-
{ "return": "true" }
|
62
|
-
"""
|
63
|
-
When I run `bundle exec zaws security_group declare_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
64
|
-
Then the output should contain "Ingress group rule created.\n"
|
65
|
-
|
66
|
-
Scenario: Declare a new vpc security group ingress group rule identified by source and target. Do not create it because it does exist.
|
67
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
68
|
-
"""
|
69
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
70
|
-
"""
|
71
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
72
|
-
"""
|
73
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
74
|
-
"""
|
75
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
76
|
-
"""
|
77
|
-
{ "SecurityGroups": [ {
|
78
|
-
"GroupName": "target_group_name",
|
79
|
-
"GroupId": "X_target_group_name",
|
80
|
-
"IpPermissions": [ {
|
81
|
-
"ToPort": 443,
|
82
|
-
"IpProtocol": "tcp",
|
83
|
-
"IpRanges": [],
|
84
|
-
"UserIdGroupPairs": [ {
|
85
|
-
"UserId": "958601521864",
|
86
|
-
"GroupId": "X_source_group_name" } ],
|
87
|
-
"FromPort": 443 } ] } ] }
|
88
|
-
"""
|
89
|
-
Given an empty file named "undo.sh.1"
|
90
|
-
When I run `bundle exec zaws security_group declare_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id --undofile undo.sh.1`
|
91
|
-
Then the output should contain "Ingress group rule not created. Exists already.\n"
|
92
|
-
And the file "undo.sh.1" should contain "zaws security_group delete_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id $XTRA_OPTS"
|
93
|
-
|
94
|
-
Scenario: Perform a nagios check, with the result indicatin OK (exit 0), indicating declaring a vpc security group ingress group requires no action because it exists.
|
95
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
96
|
-
"""
|
97
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
98
|
-
"""
|
99
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
100
|
-
"""
|
101
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
102
|
-
"""
|
103
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
104
|
-
"""
|
105
|
-
{ "SecurityGroups": [ {
|
106
|
-
"GroupName": "target_group_name",
|
107
|
-
"GroupId": "X_target_group_name",
|
108
|
-
"IpPermissions": [ {
|
109
|
-
"ToPort": 443,
|
110
|
-
"IpProtocol": "tcp",
|
111
|
-
"IpRanges": [],
|
112
|
-
"UserIdGroupPairs": [ {
|
113
|
-
"UserId": "958601521864",
|
114
|
-
"GroupId": "X_source_group_name" } ],
|
115
|
-
"FromPort": 443 } ] } ] }
|
116
|
-
"""
|
117
|
-
When I run `bundle exec zaws security_group declare_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id --nagios`
|
118
|
-
Then the output should contain "OK: Security group ingress group rule exists.\n"
|
119
|
-
And the exit status should be 0
|
120
|
-
|
121
|
-
Scenario: Perform a nagios check, with the result indicatin CRITICAL (exit 2), indicating declaring a security group ingress group requires action because it does not exist.
|
122
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
123
|
-
"""
|
124
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
125
|
-
"""
|
126
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
127
|
-
"""
|
128
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
129
|
-
"""
|
130
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
131
|
-
"""
|
132
|
-
{ "SecurityGroups": [] }
|
133
|
-
"""
|
134
|
-
When I run `bundle exec zaws security_group declare_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id --nagios`
|
135
|
-
Then the output should contain "CRITICAL: Security group ingress group rule does not exist.\n"
|
136
|
-
And the exit status should be 2
|
137
|
-
|
138
|
-
Scenario: Delete a vpc security group ingress group rule, but skip it cause it does not exist
|
139
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
140
|
-
"""
|
141
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
142
|
-
"""
|
143
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
144
|
-
"""
|
145
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
146
|
-
"""
|
147
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
148
|
-
"""
|
149
|
-
{ "SecurityGroups": [] }
|
150
|
-
"""
|
151
|
-
When I run `bundle exec zaws security_group delete_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
152
|
-
Then the output should contain "Security group ingress group rule does not exist. Skipping deletion.\n"
|
153
|
-
|
154
|
-
Scenario: Delete a vpc security group ingress group rule
|
155
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=target_group_name'` with stdout:
|
156
|
-
"""
|
157
|
-
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
158
|
-
"""
|
159
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=source_group_name'` with stdout:
|
160
|
-
"""
|
161
|
-
{ "SecurityGroups": [ { "GroupName": "source_group_name","GroupId": "X_source_group_name" } ] }
|
162
|
-
"""
|
163
|
-
And I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-id,Values=X_target_group_name' 'Name=ip-permission.group-id,Values=X_source_group_name' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
164
|
-
"""
|
165
|
-
{ "SecurityGroups": [ {
|
166
|
-
"GroupName": "target_group_name",
|
167
|
-
"GroupId": "X_target_group_name",
|
168
|
-
"IpPermissions": [ {
|
169
|
-
"ToPort": 443,
|
170
|
-
"IpProtocol": "tcp",
|
171
|
-
"IpRanges": [],
|
172
|
-
"UserIdGroupPairs": [ {
|
173
|
-
"UserId": "958601521864",
|
174
|
-
"GroupId": "X_source_group_name" } ],
|
175
|
-
"FromPort": 443 } ] } ] }
|
176
|
-
"""
|
177
|
-
And I double `aws --region us-west-1 ec2 revoke-security-group-ingress --group-id X_target_group_name --source-security-group-owner-id X_source_group_name --protocol tcp --port 443` with stdout:
|
178
|
-
"""
|
179
|
-
{ "return": "true" }
|
180
|
-
"""
|
181
|
-
When I run `bundle exec zaws security_group delete_ingress_group target_group_name source_group_name tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
182
|
-
Then the output should contain "Security group ingress group rule deleted.\n"
|
183
|
-
|
184
|
-
|
@@ -1,107 +0,0 @@
|
|
1
|
-
Feature: Security Group
|
2
|
-
Security Group(s) are viewable
|
3
|
-
|
4
|
-
Scenario: Determine a security group identified by name and vpc has NOT been created
|
5
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
6
|
-
"""
|
7
|
-
{ "SecurityGroups": [] }
|
8
|
-
"""
|
9
|
-
When I run `bundle exec zaws security_group exists_by_name my_security_group_name --region us-west-1 --vpcid my_vpc_id`
|
10
|
-
Then the output should contain "false\n"
|
11
|
-
|
12
|
-
Scenario: Determine a security group identified by name and vpc has been created
|
13
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
14
|
-
"""
|
15
|
-
{ "SecurityGroups": [ { "GroupName": "my_security_group_name" } ] }
|
16
|
-
"""
|
17
|
-
When I run `bundle exec zaws security_group exists_by_name my_security_group_name --region us-west-1 --vpcid my_vpc_id`
|
18
|
-
Then the output should contain "true\n"
|
19
|
-
|
20
|
-
Scenario: Determine a security group identified by name has NOT been created
|
21
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=group-name,Values=my_security_group_name'` with stdout:
|
22
|
-
"""
|
23
|
-
{ "SecurityGroups": [] }
|
24
|
-
"""
|
25
|
-
When I run `bundle exec zaws security_group exists_by_name my_security_group_name --region us-west-1`
|
26
|
-
Then the output should contain "false\n"
|
27
|
-
|
28
|
-
Scenario: Determine a security group identified by name has been created
|
29
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=group-name,Values=my_security_group_name'` with stdout:
|
30
|
-
"""
|
31
|
-
{ "SecurityGroups": [ { "GroupName": "my_security_group_name" } ] }
|
32
|
-
"""
|
33
|
-
When I run `bundle exec zaws security_group exists_by_name my_security_group_name --region us-west-1`
|
34
|
-
Then the output should contain "true\n"
|
35
|
-
|
36
|
-
Scenario: Delete a security group in a vpc, but skip it cause it does not exist
|
37
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
38
|
-
"""
|
39
|
-
{ "SecurityGroups": [] }
|
40
|
-
"""
|
41
|
-
When I run `bundle exec zaws security_group delete my_security_group_name --region us-west-1 --vpcid my_vpc_id`
|
42
|
-
Then the output should contain "Security Group does not exist. Skipping deletion.\n"
|
43
|
-
|
44
|
-
Scenario: Delete a security group in a vpc
|
45
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
46
|
-
"""
|
47
|
-
{ "SecurityGroups": [ { "GroupName": "my_security_group_name","GroupId": "sg-abcd1234" } ] }
|
48
|
-
"""
|
49
|
-
And I double `aws --region us-west-1 ec2 delete-security-group --group-id sg-abcd1234` with stdout:
|
50
|
-
"""
|
51
|
-
{ "return": "true" }
|
52
|
-
"""
|
53
|
-
When I run `bundle exec zaws security_group delete my_security_group_name --region us-west-1 --vpcid my_vpc_id`
|
54
|
-
Then the output should contain "Security Group deleted.\n"
|
55
|
-
|
56
|
-
Scenario: Declare a new security group in vpc, but don't create it cause it exists
|
57
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
58
|
-
"""
|
59
|
-
{ "SecurityGroups": [ { "GroupName": "my_security_group_name" } ] }
|
60
|
-
"""
|
61
|
-
When I run `bundle exec zaws security_group declare my_security_group_name 'My security gorup' --region us-west-1 --vpcid my_vpc_id`
|
62
|
-
Then the output should contain "Security Group Exists Already. Skipping Creation.\n"
|
63
|
-
|
64
|
-
Scenario: Declare a new security group in vpc
|
65
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
66
|
-
"""
|
67
|
-
{ "SecurityGroups": [] }
|
68
|
-
"""
|
69
|
-
And I double `aws --output json --region us-west-1 ec2 create-security-group --vpc-id my_vpc_id --group-name my_security_group_name --description 'My security group'` with stdout:
|
70
|
-
"""
|
71
|
-
{ "return": "true" }
|
72
|
-
"""
|
73
|
-
When I run `bundle exec zaws security_group declare my_security_group_name 'My security group' --region us-west-1 --vpcid my_vpc_id`
|
74
|
-
Then the output should contain "Security Group Created.\n"
|
75
|
-
|
76
|
-
Scenario: Perform a nagios check, with the result indicatin OK (exit 0), indicating declaring a security group requires no action because it exists.
|
77
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
78
|
-
"""
|
79
|
-
{ "SecurityGroups": [ { "GroupName": "my_security_group_name" } ] }
|
80
|
-
"""
|
81
|
-
When I run `bundle exec zaws security_group declare my_security_group_name 'My security gorup' --region us-west-1 --vpcid my_vpc_id --nagios`
|
82
|
-
Then the output should contain "OK: Security Group Exists.\n"
|
83
|
-
And the exit status should be 0
|
84
|
-
|
85
|
-
Scenario: Perform a nagios check, with the result indicatin CRITICAL (exit 2), indicating declaring a security group requires action because it does not exist.
|
86
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
87
|
-
"""
|
88
|
-
{ "SecurityGroups": [] }
|
89
|
-
"""
|
90
|
-
When I run `bundle exec zaws security_group declare my_security_group_name 'My security group' --region us-west-1 --vpcid my_vpc_id --nagios`
|
91
|
-
Then the output should contain "CRITICAL: Security Group Does Not Exist.\n"
|
92
|
-
And the exit status should be 2
|
93
|
-
|
94
|
-
Scenario: Declaring a security group, should append the command to remove the security group to file.
|
95
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=group-name,Values=my_security_group_name'` with stdout:
|
96
|
-
"""
|
97
|
-
{ "SecurityGroups": [] }
|
98
|
-
"""
|
99
|
-
And I double `aws --output json --region us-west-1 ec2 create-security-group --vpc-id my_vpc_id --group-name my_security_group_name --description 'My security group'` with stdout:
|
100
|
-
"""
|
101
|
-
{ "return": "true" }
|
102
|
-
"""
|
103
|
-
Given an empty file named "undo.sh.1"
|
104
|
-
When I run `bundle exec zaws security_group declare my_security_group_name 'My security group' --region us-west-1 --vpcid my_vpc_id --undofile undo.sh.1`
|
105
|
-
Then the output should contain "Security Group Created.\n"
|
106
|
-
And the file "undo.sh.1" should contain "zaws security_group delete my_security_group_name --region us-west-1 --vpcid my_vpc_id $XTRA_OPTS"
|
107
|
-
|
@@ -1,23 +0,0 @@
|
|
1
|
-
Feature: Security Group
|
2
|
-
Security Group(s) are viewable
|
3
|
-
|
4
|
-
Scenario: Get security groups in a human readable table.
|
5
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-security-groups` with "AWS Security Group Table Output"
|
6
|
-
When I run `bundle exec zaws security_group view --region us-west-1 --viewtype table`
|
7
|
-
Then the stdout should contain "AWS Security Group Table Output\n"
|
8
|
-
|
9
|
-
Scenario: Get security groups in a human readable table form by default
|
10
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-security-groups` with "AWS Security Group Table Output"
|
11
|
-
When I run `bundle exec zaws security_group view --region us-west-1`
|
12
|
-
Then the stdout should contain "AWS Security Group Table Output\n"
|
13
|
-
|
14
|
-
Scenario: Get security groups in JSON form
|
15
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-security-groups` with "AWS Security Group JSON Output"
|
16
|
-
When I run `bundle exec zaws security_group view --region us-west-1 --viewtype json`
|
17
|
-
Then the stdout should contain "AWS Security Group JSON Output\n"
|
18
|
-
|
19
|
-
Scenario: Get security groups from specified vpcid
|
20
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-security-groups --filter 'Name=vpc-id,Values=my_vpc_id'` with "AWS Security Group Table Output"
|
21
|
-
When I run `bundle exec zaws security_group view --region us-west-1 --vpcid my_vpc_id`
|
22
|
-
Then the stdout should contain "AWS Security Group Table Output\n"
|
23
|
-
|
@@ -1,94 +0,0 @@
|
|
1
|
-
Feature: Subnet
|
2
|
-
Subnets should be createable once in a specific availability zone.
|
3
|
-
|
4
|
-
Scenario: Determine a subnet has NOT been created in vpc
|
5
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
6
|
-
"""
|
7
|
-
{ "Subnets": [] }
|
8
|
-
"""
|
9
|
-
When I run `bundle exec zaws subnet exists my_cidr_block my_vpc_id --region us-west-1`
|
10
|
-
Then the output should contain "false\n"
|
11
|
-
|
12
|
-
Scenario: Determine a subnet has been created in vpc
|
13
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
14
|
-
"""
|
15
|
-
{ "Subnets": [ { "SubnetId" : "X" } ] }
|
16
|
-
"""
|
17
|
-
When I run `bundle exec zaws subnet exists my_cidr_block my_vpc_id --region us-west-1`
|
18
|
-
Then the output should contain "true\n"
|
19
|
-
|
20
|
-
Scenario: Declare a subnet but do not create it if it exists
|
21
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
22
|
-
"""
|
23
|
-
{ "Subnets": [ { "SubnetId" : "X" } ] }
|
24
|
-
"""
|
25
|
-
When I run `bundle exec zaws subnet declare my_cidr_block us-west-1a my_vpc_id --region us-west-1`
|
26
|
-
Then the output should contain "No action needed. Subnet exists already.\n"
|
27
|
-
And the exit status should be 0
|
28
|
-
|
29
|
-
Scenario: Declare a subnet and create it
|
30
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
31
|
-
"""
|
32
|
-
{ "Subnets": [] }
|
33
|
-
"""
|
34
|
-
And I double `aws --output json --region us-west-1 ec2 create-subnet --vpc-id my_vpc_id --cidr-block my_cidr_block --availability-zone us-west-1a` with stdout:
|
35
|
-
"""
|
36
|
-
{ "Subnet": { "State": "available" } }
|
37
|
-
"""
|
38
|
-
When I run `bundle exec zaws subnet declare my_cidr_block us-west-1a my_vpc_id --region us-west-1`
|
39
|
-
Then the output should contain "Subnet created.\n"
|
40
|
-
And the exit status should be 0
|
41
|
-
|
42
|
-
Scenario: Delete a subnet, but skip it cause it does not exist
|
43
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
44
|
-
"""
|
45
|
-
{ "Subnets": [] }
|
46
|
-
"""
|
47
|
-
When I run `bundle exec zaws subnet delete my_cidr_block my_vpc_id --region us-west-1`
|
48
|
-
Then the output should contain "Subnet does not exist. Skipping deletion.\n"
|
49
|
-
|
50
|
-
Scenario: Delete a subnet
|
51
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
52
|
-
"""
|
53
|
-
{ "Subnets": [ { "SubnetId" : "X" } ] }
|
54
|
-
"""
|
55
|
-
And I double `aws --region us-west-1 ec2 delete-subnet --subnet-id X` with stdout:
|
56
|
-
"""
|
57
|
-
{ "return": "true" }
|
58
|
-
"""
|
59
|
-
When I run `bundle exec zaws subnet delete my_cidr_block my_vpc_id --region us-west-1`
|
60
|
-
Then the output should contain "Subnet deleted.\n"
|
61
|
-
|
62
|
-
Scenario: Perform a nagios check, with the result indicatin OK (exit 0), indicating declaring a subnet requires no action because it exists.
|
63
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
64
|
-
"""
|
65
|
-
{ "Subnets": [ { "SubnetId" : "X" } ] }
|
66
|
-
"""
|
67
|
-
When I run `bundle exec zaws subnet declare my_cidr_block us-west-1a my_vpc_id --region us-west-1 --nagios`
|
68
|
-
Then the output should contain "OK: Subnet Exists.\n"
|
69
|
-
And the exit status should be 0
|
70
|
-
|
71
|
-
Scenario: Perform a nagios check, with the result indicatin CRITICAL (exit 2), indicating declaring a subnet requires action because it does not exist.
|
72
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
73
|
-
"""
|
74
|
-
{ "Subnets": [] }
|
75
|
-
"""
|
76
|
-
When I run `bundle exec zaws subnet declare my_cidr_block us-west-1a my_vpc_id --region us-west-1 --nagios`
|
77
|
-
Then the output should contain "CRITICAL: Subnet Does Not Exist.\n"
|
78
|
-
And the exit status should be 2
|
79
|
-
|
80
|
-
Scenario: Declaring a subnet, should append the command to remove the subnet to file.
|
81
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id' 'Name=cidr,Values=my_cidr_block'` with stdout:
|
82
|
-
"""
|
83
|
-
{ "Subnets": [] }
|
84
|
-
"""
|
85
|
-
And I double `aws --output json --region us-west-1 ec2 create-subnet --vpc-id my_vpc_id --cidr-block my_cidr_block --availability-zone us-west-1a` with stdout:
|
86
|
-
"""
|
87
|
-
{ "Subnet": { "State": "available" } }
|
88
|
-
"""
|
89
|
-
Given an empty file named "undo.sh.1"
|
90
|
-
When I run `bundle exec zaws subnet declare my_cidr_block us-west-1a my_vpc_id --region us-west-1 --undofile undo.sh.1`
|
91
|
-
Then the output should contain "Subnet created.\n"
|
92
|
-
And the file "undo.sh.1" should contain "zaws subnet delete my_cidr_block my_vpc_id --region us-west-1 $XTRA_OPTS"
|
93
|
-
|
94
|
-
|
data/feature/subnet/view.feature
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
Feature: Subnet
|
2
|
-
Subnets should be createable once in a specific availability zone.
|
3
|
-
|
4
|
-
Scenario: Get subnets in json
|
5
|
-
Given I double `aws --output json --region us-west-1 ec2 describe-subnets` with "< AWS Subnet Json Output >"
|
6
|
-
When I run `bundle exec zaws subnet view --region us-west-1 --viewtype json`
|
7
|
-
Then the stdout should contain "< AWS Subnet Json Output >\n"
|
8
|
-
|
9
|
-
Scenario: Get subnets in table form by default
|
10
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-subnets` with "< AWS Subnet Table Output >"
|
11
|
-
When I run `bundle exec zaws subnet view --region us-west-1`
|
12
|
-
Then the stdout should contain "< AWS Subnet Table Output >\n"
|
13
|
-
|
14
|
-
Scenario: Get subnets in table form when specified
|
15
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-subnets` with "< AWS Subnet Table Output >"
|
16
|
-
When I run `bundle exec zaws subnet view --region us-west-1 --viewtype table`
|
17
|
-
Then the output should contain "< AWS Subnet Table Output >\n"
|
18
|
-
|
19
|
-
Scenario: Get subnets from specified vpcid
|
20
|
-
Given I double `aws --output table --region us-west-1 ec2 describe-subnets --filter 'Name=vpc-id,Values=my_vpc_id'` with "< AWS Subnet Table Output >"
|
21
|
-
When I run `bundle exec zaws subnet view --region us-west-1 --vpcid my_vpc_id`
|
22
|
-
Then the output should contain "< AWS Subnet Table Output >\n"
|
23
|
-
|
24
|
-
|
data/feature/support/env.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'coveralls'
|
2
|
-
Coveralls.wear_merged!
|
3
|
-
SimpleCov.merge_timeout 3600
|
4
|
-
|
5
|
-
require 'aruba/cucumber'
|
6
|
-
require 'aruba-doubles/cucumber'
|
7
|
-
|
8
|
-
Before do
|
9
|
-
@aruba_timeout_seconds = 8
|
10
|
-
# This is using the aruba helper,
|
11
|
-
# cf. https://github.com/cucumber/aruba/blob/master/lib/aruba/api.rb
|
12
|
-
set_env('COVERAGE', 'true')
|
13
|
-
# This could also be accomplished with the "I set the environment variables to:" step
|
14
|
-
end
|