zaws 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/feature/compute/compute.feature +2 -2
- data/feature/security_group/ingress_cidr.feature +144 -0
- data/feature/security_group/{ingress.feature → ingress_group.feature} +0 -0
- data/feature/version.feature +1 -1
- data/lib/zaws.rb +1 -1
- data/lib/zaws/command/compute.rb +1 -1
- data/lib/zaws/command/route_table.rb +1 -1
- data/lib/zaws/command/security_group.rb +24 -0
- data/lib/zaws/ec2/compute.rb +4 -4
- data/lib/zaws/ec2/elasticip.rb +1 -1
- data/lib/zaws/ec2/route_table.rb +10 -5
- data/lib/zaws/ec2/security_group.rb +44 -6
- data/lib/zaws/ec2/subnet.rb +1 -1
- data/lib/zaws/elb/load_balancer.rb +3 -3
- data/lib/zaws/helper/{file.rb → zfile.rb} +4 -4
- data/lib/zaws/version.rb +1 -1
- data/spec/zaws/ec2/compute/network_interface_json_spec.rb +1 -1
- metadata +7 -6
data/Gemfile.lock
CHANGED
@@ -68,7 +68,7 @@ Feature: Compute
|
|
68
68
|
]
|
69
69
|
}
|
70
70
|
"""
|
71
|
-
And I double `aws --region us-west-1 ec2 run-instances --image-id ami-abc123 --key-name sshkey --instance-type x1-large --placement AvailabilityZone=us-west-1a --block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"DeleteOnTermination":true,"SnapshotId":"snap-XXX","VolumeSize":70,"VolumeType":"standard"}}]' --enable-api-termination --client-token test_token --network-interfaces '[{"Groups":["sg-903004f8"],"PrivateIpAddress":"10.0.0.6","DeviceIndex":
|
71
|
+
And I double `aws --region us-west-1 ec2 run-instances --image-id ami-abc123 --key-name sshkey --instance-type x1-large --placement AvailabilityZone=us-west-1a --block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"DeleteOnTermination":true,"SnapshotId":"snap-XXX","VolumeSize":70,"VolumeType":"standard"}}]' --enable-api-termination --client-token test_token --network-interfaces '[{"Groups":["sg-903004f8"],"PrivateIpAddress":"10.0.0.6","DeviceIndex":0,"SubnetId":"subnet-YYYYYY"}]' --ebs-optimized` with stdout:
|
72
72
|
"""
|
73
73
|
{ "Instances" : [ {"InstanceId": "i-XXXXXXX","Tags": [ ] } ] }
|
74
74
|
"""
|
@@ -85,7 +85,7 @@ Feature: Compute
|
|
85
85
|
{ "return":"true" }
|
86
86
|
"""
|
87
87
|
Given an empty file named "undo.sh.1"
|
88
|
-
When I run `bundle exec zaws compute declare my_instance ami-abc123 self x1-large 70 us-west-1a sshkey mysecuritygroup --privateip "10.0.0.6" --region us-west-1 --vpcid my_vpc_id --optimized --apiterminate --clienttoken test_token --undofile undo.sh.1 --skipruncheck`
|
88
|
+
When I run `bundle exec zaws compute declare my_instance ami-abc123 self x1-large 70 us-west-1a sshkey mysecuritygroup --privateip "10.0.0.6" --region us-west-1 --vpcid my_vpc_id --optimized --apiterminate --clienttoken test_token --undofile undo.sh.1 --skipruncheck --verbose`
|
89
89
|
Then the output should contain "Instance created.\n"
|
90
90
|
And the file "undo.sh.1" should contain "zaws compute delete my_instance --region us-west-1 --vpcid my_vpc_id $XTRA_OPTS"
|
91
91
|
|
@@ -0,0 +1,144 @@
|
|
1
|
+
Feature: Security Group
|
2
|
+
Security Group(s) are viewable
|
3
|
+
|
4
|
+
Scenario: Determine a vpc securiry group ingress cidr rule identified by cidr 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-id,Values=X_target_group_name' 'Name=ip-permission.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
10
|
+
"""
|
11
|
+
{ "SecurityGroups": [] }
|
12
|
+
"""
|
13
|
+
When I run `bundle exec zaws security_group ingress_cidr_exists target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
14
|
+
Then the output should contain "false\n"
|
15
|
+
|
16
|
+
Scenario: Determine a vpc security group ingress cidr rule identified by cidr and target has been created
|
17
|
+
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:
|
18
|
+
"""
|
19
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
20
|
+
"""
|
21
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
22
|
+
"""
|
23
|
+
{ "SecurityGroups": [ {
|
24
|
+
"GroupName": "target_group_name",
|
25
|
+
"GroupId": "X_target_group_name",
|
26
|
+
"IpPermissions": [ {
|
27
|
+
"ToPort": 443,
|
28
|
+
"IpProtocol": "tcp",
|
29
|
+
"IpRanges": [ { "CidrIp" : "0.0.0.0/0" } ],
|
30
|
+
"UserIdGroupPairs": [ ],
|
31
|
+
"FromPort": 443 } ] } ] }
|
32
|
+
"""
|
33
|
+
When I run `bundle exec zaws security_group ingress_cidr_exists target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
34
|
+
Then the output should contain "true\n"
|
35
|
+
|
36
|
+
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.
|
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=target_group_name'` with stdout:
|
38
|
+
"""
|
39
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
40
|
+
"""
|
41
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
42
|
+
"""
|
43
|
+
{ "SecurityGroups": [] }
|
44
|
+
"""
|
45
|
+
And I double `aws --region us-west-1 ec2 authorize-security-group-ingress --group-id X_target_group_name --cidr 0.0.0.0/0 --protocol tcp --port 443` with stdout:
|
46
|
+
"""
|
47
|
+
{ "return": "true" }
|
48
|
+
"""
|
49
|
+
When I run `bundle exec zaws security_group declare_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
50
|
+
Then the output should contain "Ingress cidr rule created.\n"
|
51
|
+
|
52
|
+
Scenario: Declare a new vpc security group ingress group rule identified by source and target. Do not create it because it does exist.
|
53
|
+
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:
|
54
|
+
"""
|
55
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
56
|
+
"""
|
57
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
58
|
+
"""
|
59
|
+
{ "SecurityGroups": [ {
|
60
|
+
"GroupName": "target_group_name",
|
61
|
+
"GroupId": "X_target_group_name",
|
62
|
+
"IpPermissions": [ {
|
63
|
+
"ToPort": 443,
|
64
|
+
"IpProtocol": "tcp",
|
65
|
+
"IpRanges": [ { "CidrIp" : "0.0.0.0/0" } ],
|
66
|
+
"UserIdGroupPairs": [ ],
|
67
|
+
"FromPort": 443 } ] } ] }
|
68
|
+
"""
|
69
|
+
Given an empty file named "undo.sh.1"
|
70
|
+
When I run `bundle exec zaws security_group declare_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id --undofile undo.sh.1`
|
71
|
+
Then the output should contain "Ingress cidr rule not created. Exists already.\n"
|
72
|
+
And the file "undo.sh.1" should contain "zaws security_group delete_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id $XTRA_OPTS"
|
73
|
+
|
74
|
+
Scenario: Perform a nagios check, with the result indicatin OK (exit 0), indicating declaring a vpc security group ingress cidr requires no action because it exists.
|
75
|
+
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:
|
76
|
+
"""
|
77
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
78
|
+
"""
|
79
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
80
|
+
"""
|
81
|
+
{ "SecurityGroups": [ {
|
82
|
+
"GroupName": "target_group_name",
|
83
|
+
"GroupId": "X_target_group_name",
|
84
|
+
"IpPermissions": [ {
|
85
|
+
"ToPort": 443,
|
86
|
+
"IpProtocol": "tcp",
|
87
|
+
"IpRanges": [ { "CidrIp" : "0.0.0.0/0" } ],
|
88
|
+
"UserIdGroupPairs": [ ],
|
89
|
+
"FromPort": 443 } ] } ] }
|
90
|
+
"""
|
91
|
+
When I run `bundle exec zaws security_group declare_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id --nagios`
|
92
|
+
Then the output should contain "OK: Security group ingress cidr rule exists.\n"
|
93
|
+
And the exit status should be 0
|
94
|
+
|
95
|
+
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.
|
96
|
+
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:
|
97
|
+
"""
|
98
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
99
|
+
"""
|
100
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
101
|
+
"""
|
102
|
+
{ "SecurityGroups": [] }
|
103
|
+
"""
|
104
|
+
When I run `bundle exec zaws security_group declare_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id --nagios`
|
105
|
+
Then the output should contain "CRITICAL: Security group ingress cidr rule does not exist.\n"
|
106
|
+
And the exit status should be 2
|
107
|
+
|
108
|
+
Scenario: Delete a vpc security group ingress cidr rule, but skip it cause it does not exist
|
109
|
+
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:
|
110
|
+
"""
|
111
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
112
|
+
"""
|
113
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
114
|
+
"""
|
115
|
+
{ "SecurityGroups": [] }
|
116
|
+
"""
|
117
|
+
When I run `bundle exec zaws security_group delete_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
118
|
+
Then the output should contain "Security group ingress cidr rule does not exist. Skipping deletion.\n"
|
119
|
+
|
120
|
+
Scenario: Delete a vpc security group ingress cidr rule
|
121
|
+
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:
|
122
|
+
"""
|
123
|
+
{ "SecurityGroups": [ { "GroupName": "target_group_name","GroupId": "X_target_group_name" } ] }
|
124
|
+
"""
|
125
|
+
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.cidr,Values=0.0.0.0/0' 'Name=ip-permission.protocol,Values=tcp' 'Name=ip-permission.to-port,Values=443'` with stdout:
|
126
|
+
"""
|
127
|
+
{ "SecurityGroups": [ {
|
128
|
+
"GroupName": "target_group_name",
|
129
|
+
"GroupId": "X_target_group_name",
|
130
|
+
"IpPermissions": [ {
|
131
|
+
"ToPort": 443,
|
132
|
+
"IpProtocol": "tcp",
|
133
|
+
"IpRanges": [ { "CidrIp" : "0.0.0.0/0" } ],
|
134
|
+
"UserIdGroupPairs": [ ],
|
135
|
+
"FromPort": 443 } ] } ] }
|
136
|
+
"""
|
137
|
+
And I double `aws --region us-west-1 ec2 revoke-security-group-ingress --group-id X_target_group_name --cidr 0.0.0.0/0 --protocol tcp --port 443` with stdout:
|
138
|
+
"""
|
139
|
+
{ "return": "true" }
|
140
|
+
"""
|
141
|
+
When I run `bundle exec zaws security_group delete_ingress_cidr target_group_name 0.0.0.0/0 tcp 443 --region us-west-1 --vpcid my_vpc_id`
|
142
|
+
Then the output should contain "Security group ingress cidr rule deleted.\n"
|
143
|
+
|
144
|
+
|
File without changes
|
data/feature/version.feature
CHANGED
data/lib/zaws.rb
CHANGED
@@ -2,7 +2,7 @@ require "zaws/version"
|
|
2
2
|
require "zaws/helper/option"
|
3
3
|
require "zaws/helper/output"
|
4
4
|
require "zaws/helper/shell"
|
5
|
-
require "zaws/helper/
|
5
|
+
require "zaws/helper/zfile"
|
6
6
|
require "zaws/command/subnet"
|
7
7
|
require "zaws/command/security_group"
|
8
8
|
require "zaws/command/route_table"
|
data/lib/zaws/command/compute.rb
CHANGED
@@ -31,7 +31,7 @@ module ZAWS
|
|
31
31
|
return val
|
32
32
|
end
|
33
33
|
|
34
|
-
desc "declare EXTERNAL_ID IMAGE TYPE ROOT_SIZE ZONE KEY SECURITY_GROUP","Declare a compute instance."
|
34
|
+
desc "declare EXTERNAL_ID IMAGE OWNER TYPE ROOT_SIZE ZONE KEY SECURITY_GROUP","Declare a compute instance."
|
35
35
|
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
36
36
|
option :privateip, :type => :array, :desc => "array of private ip addresses, in vpc, each given a network interface", :banner => "<privateip>", :aliases => :p, :default => nil
|
37
37
|
option :optimized, :type => :string, :desc => "ebs optimized", :banner => "<optimized>", :aliases => :i, :default => false
|
@@ -68,7 +68,7 @@ module ZAWS
|
|
68
68
|
aws.ec2.route_table.route_exists_by_gatewayid(options[:region],$stdout,(options[:verbose]?$stdout:nil),options[:vpcid],routetable,cidrblock,gatewayid)
|
69
69
|
end
|
70
70
|
|
71
|
-
desc "
|
71
|
+
desc "declare_route_to_gateway ROUTE_TABLE CIDR_BLOCK GATEWAY_ID","Declare a new route to GATEWAY_ID, but skip creating it if it exists."
|
72
72
|
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
73
73
|
option :nagios, :type => :boolean, :desc => "Returns a nagios check result", :aliases => :n, :default => false
|
74
74
|
option :undofile, :type => :string, :desc => "File for undo commands", :banner => "<undofile>", :aliases => :f, :default => nil
|
@@ -45,6 +45,13 @@ module ZAWS
|
|
45
45
|
aws.ec2.security_group.ingress_group_exists(options[:region],options[:vpcid],target,source,protocol,port,$stdout,(options[:verbose]?$stdout:nil))
|
46
46
|
end
|
47
47
|
|
48
|
+
desc "ingress_cidr_exists TARGET_GROUP_NAME CIDR PROTOCOL PORT","Determine if an ingress CIDR rule exists."
|
49
|
+
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
50
|
+
def ingress_cidr_exists(target,cidr,protocol,port)
|
51
|
+
aws=(ZAWS::AWS.new(ZAWS::Helper::Shell.new))
|
52
|
+
aws.ec2.security_group.ingress_cidr_exists(options[:region],options[:vpcid],target,cidr,protocol,port,$stdout,(options[:verbose]?$stdout:nil))
|
53
|
+
end
|
54
|
+
|
48
55
|
desc "declare_ingress_group TARGET_GROUP_NAME SOURCE_GROUP_NAME PROTOCOL PORT","Declare an ingress security group rule."
|
49
56
|
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
50
57
|
option :nagios, :type => :boolean, :desc => "Returns a nagios check result", :aliases => :n, :default => false
|
@@ -55,6 +62,16 @@ module ZAWS
|
|
55
62
|
exit exitcode
|
56
63
|
end
|
57
64
|
|
65
|
+
desc "declare_ingress_cidr TARGET_GROUP_NAME CIDR PROTOCOL PORT","Declare an ingress CIDR rule."
|
66
|
+
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
67
|
+
option :nagios, :type => :boolean, :desc => "Returns a nagios check result", :aliases => :n, :default => false
|
68
|
+
option :undofile, :type => :string, :desc => "File for undo commands", :banner => "<undofile>", :aliases => :f, :default => nil
|
69
|
+
def declare_ingress_cidr(target,cidr,protocol,port)
|
70
|
+
aws=(ZAWS::AWS.new(ZAWS::Helper::Shell.new))
|
71
|
+
exitcode = aws.ec2.security_group.declare_ingress_cidr(options[:region],options[:vpcid],target,cidr,protocol,port,options[:nagios],$stdout,(options[:verbose]?$stdout:nil),options[:undofile])
|
72
|
+
exit exitcode
|
73
|
+
end
|
74
|
+
|
58
75
|
desc "delete_ingress_group TARGET_GROUP_NAME SOURCE_GROUP_NAME PROTOCOL PORT","Delete an ingress security group rule."
|
59
76
|
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
60
77
|
def delete_ingress_group(target,source,protocol,port)
|
@@ -62,6 +79,13 @@ module ZAWS
|
|
62
79
|
aws.ec2.security_group.delete_ingress_group(options[:region],options[:vpcid],target,source,protocol,port,$stdout,(options[:verbose]?$stdout:nil))
|
63
80
|
end
|
64
81
|
|
82
|
+
desc "delete_ingress_cidr TARGET_GROUP_NAME CIDR PROTOCOL PORT","Delete an ingress security cidr rule."
|
83
|
+
option :vpcid, :type => :string, :desc => "AWS VPC id", :banner => "<vpcid>", :aliases => :v, :default => nil
|
84
|
+
def delete_ingress_cidr(target,cidr,protocol,port)
|
85
|
+
aws=(ZAWS::AWS.new(ZAWS::Helper::Shell.new))
|
86
|
+
aws.ec2.security_group.delete_ingress_cidr(options[:region],options[:vpcid],target,cidr,protocol,port,$stdout,(options[:verbose]?$stdout:nil))
|
87
|
+
end
|
88
|
+
|
65
89
|
end
|
66
90
|
end
|
67
91
|
end
|
data/lib/zaws/ec2/compute.rb
CHANGED
@@ -27,7 +27,6 @@ module ZAWS
|
|
27
27
|
comline="aws --output #{viewtype} --region #{region} ec2 describe-images"
|
28
28
|
comline = "#{comline} --owner #{owner}" if owner
|
29
29
|
comline = "#{comline} --image-ids #{imageid}" if imageid
|
30
|
-
verbose.puts comline if verbose
|
31
30
|
images=@shellout.cli(comline,verbose)
|
32
31
|
textout.puts(images) if textout
|
33
32
|
return images
|
@@ -52,7 +51,7 @@ module ZAWS
|
|
52
51
|
ip_to_subnet_id = @aws.ec2.subnet.id_by_ip(region,nil,verbose,vpcid,ip)
|
53
52
|
subnet_id=ip_to_subnet_id
|
54
53
|
security_group_id= @aws.ec2.security_group.id_by_name(region,nil,verbose,vpcid,groupname)
|
55
|
-
new_hash= [{ "Groups"=> [security_group_id], "PrivateIpAddress"=>"#{ip}","DeviceIndex"=>
|
54
|
+
new_hash= [{ "Groups"=> [security_group_id], "PrivateIpAddress"=>"#{ip}","DeviceIndex"=>0,"SubnetId"=> ip_to_subnet_id }]
|
56
55
|
return new_hash.to_json
|
57
56
|
end
|
58
57
|
|
@@ -67,6 +66,7 @@ module ZAWS
|
|
67
66
|
exit 1
|
68
67
|
end
|
69
68
|
x["Ebs"]["VolumeSize"]=rootsize.to_i
|
69
|
+
x["Ebs"].delete("Encrypted") if x["Ebs"]["SnapshotId"] #You cannot specify the encrypted flag if specifying a snapshot id in a block device mapping. -AWS
|
70
70
|
end
|
71
71
|
end
|
72
72
|
return image_mappings.to_json
|
@@ -78,7 +78,7 @@ module ZAWS
|
|
78
78
|
|
79
79
|
def declare(externalid,image,owner,nodetype,root,zone,key,sgroup,privateip,optimized,apiterminate,clienttoken,region,textout,verbose,vpcid,nagios,ufile,no_sdcheck,skip_running_check,volsize,volume)
|
80
80
|
if ufile
|
81
|
-
ZAWS::Helper::
|
81
|
+
ZAWS::Helper::ZFile.prepend("zaws compute delete #{externalid} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete instance',ufile)
|
82
82
|
end
|
83
83
|
compute_exists,instance_id,sgroups = exists(region,nil,verbose,vpcid,externalid)
|
84
84
|
return ZAWS::Helper::Output.binary_nagios_check(compute_exists,"OK: Instance already exists.","CRITICAL: Instance does not exist.",textout) if nagios
|
@@ -214,7 +214,7 @@ module ZAWS
|
|
214
214
|
|
215
215
|
def declare_secondary_ip(region,ip,textout,verbose,vpcid,externalid,nagios,ufile)
|
216
216
|
if ufile
|
217
|
-
ZAWS::Helper::
|
217
|
+
ZAWS::Helper::ZFile.prepend("zaws compute delete_secondary_ip #{externalid} #{ip} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete secondary ip',ufile)
|
218
218
|
end
|
219
219
|
compute_exists,instance_id,sgroups = exists(region,nil,verbose,vpcid,externalid)
|
220
220
|
secondary_ip_exists,compute_exists,network_interface = exists_secondary_ip(region,ip,nil,verbose,vpcid,externalid)
|
data/lib/zaws/ec2/elasticip.rb
CHANGED
@@ -45,7 +45,7 @@ module ZAWS
|
|
45
45
|
|
46
46
|
def declare(region,externalid,textout=nil,verbose=nil,vpcid=nil,nagios=nil,ufile=nil)
|
47
47
|
if ufile
|
48
|
-
ZAWS::Helper::
|
48
|
+
ZAWS::Helper::ZFile.prepend("zaws elasticip release #{externalid} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Release elastic ip.',ufile)
|
49
49
|
end
|
50
50
|
elasticip_exists,instance_id,association_id,allocation_id,ip=assoc_exists(region,externalid,nil,verbose,vpcid)
|
51
51
|
return ZAWS::Helper::Output.binary_nagios_check(elasticip_exists,"OK: Elastic Ip exists.","CRITICAL: Elastic Ip DOES NOT EXIST.",textout) if nagios
|
data/lib/zaws/ec2/route_table.rb
CHANGED
@@ -33,7 +33,7 @@ module ZAWS
|
|
33
33
|
|
34
34
|
def declare(region,vpcid,externalid,nagios,textout=nil,verbose=nil,ufile=nil)
|
35
35
|
if ufile
|
36
|
-
ZAWS::Helper::
|
36
|
+
ZAWS::Helper::ZFile.prepend("zaws route_table delete #{externalid} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete route table',ufile)
|
37
37
|
end
|
38
38
|
rtable_exists, rtable_id = exists(region,nil,verbose,vpcid,externalid)
|
39
39
|
return ZAWS::Helper::Output.binary_nagios_check(rtable_exists,"OK: Route table exists.","CRITICAL: Route table does not exist.",textout) if nagios
|
@@ -47,6 +47,7 @@ module ZAWS
|
|
47
47
|
else
|
48
48
|
textout.puts "Route table exists already. Skipping Creation."
|
49
49
|
end
|
50
|
+
return 0
|
50
51
|
end
|
51
52
|
|
52
53
|
def delete(region,textout=nil,verbose=nil,vpcid,externalid)
|
@@ -73,7 +74,7 @@ module ZAWS
|
|
73
74
|
|
74
75
|
def declare_route(region,textout=nil,verbose=nil,vpcid,routetable,cidrblock,externalid,nagios,ufile)
|
75
76
|
if ufile
|
76
|
-
ZAWS::Helper::
|
77
|
+
ZAWS::Helper::ZFile.prepend("zaws route_table delete_route #{routetable} #{cidrblock} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete route',ufile)
|
77
78
|
end
|
78
79
|
# TODO: Route exists already of a different type?
|
79
80
|
route_exists, instance_id, rtable_id = route_exists_by_instance(region,nil,verbose,vpcid,routetable,cidrblock,externalid)
|
@@ -85,6 +86,7 @@ module ZAWS
|
|
85
86
|
else
|
86
87
|
textout.puts "Route not created to instance. Skip creation."
|
87
88
|
end
|
89
|
+
return 0
|
88
90
|
end
|
89
91
|
|
90
92
|
def delete_route(region,textout=nil,verbose=nil,vpcid,routetable,cidrblock)
|
@@ -112,7 +114,7 @@ module ZAWS
|
|
112
114
|
|
113
115
|
def declare_route_to_gateway(region,textout=nil,verbose=nil,vpcid,routetable,cidrblock,gatewayid,nagios,ufile)
|
114
116
|
if ufile
|
115
|
-
ZAWS::Helper::
|
117
|
+
ZAWS::Helper::ZFile.prepend("zaws route_table delete_route #{routetable} #{cidrblock} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete route',ufile)
|
116
118
|
end
|
117
119
|
# TODO: Route exists already of a different type?
|
118
120
|
route_exists, rtable_id = route_exists_by_gatewayid(region,nil,verbose,vpcid,routetable,cidrblock,gatewayid)
|
@@ -124,6 +126,7 @@ module ZAWS
|
|
124
126
|
else
|
125
127
|
textout.puts "Route to gateway exists. Skipping creation."
|
126
128
|
end
|
129
|
+
return 0
|
127
130
|
end
|
128
131
|
|
129
132
|
def subnet_assoc_exists(region,textout=nil,verbose=nil,vpcid,rtable_externalid,cidrblock)
|
@@ -138,7 +141,7 @@ module ZAWS
|
|
138
141
|
|
139
142
|
def assoc_subnet(region,textout=nil,verbose=nil,vpcid,routetable,cidrblock,nagios,ufile)
|
140
143
|
if ufile
|
141
|
-
ZAWS::Helper::
|
144
|
+
ZAWS::Helper::ZFile.prepend("zaws route_table delete_assoc_subnet #{routetable} #{cidrblock} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete route table association to subnet',ufile)
|
142
145
|
end
|
143
146
|
assoc_exists, subnetid, rtableid, rtassocid = subnet_assoc_exists(region,nil,verbose,vpcid,routetable,cidrblock)
|
144
147
|
return ZAWS::Helper::Output.binary_nagios_check(assoc_exists,"OK: Route table association to subnet exists.","CRITICAL: Route table association to subnet does not exist.",textout) if nagios
|
@@ -149,6 +152,7 @@ module ZAWS
|
|
149
152
|
else
|
150
153
|
textout.puts "Route table already associated to subnet. Skipping association."
|
151
154
|
end
|
155
|
+
return 0
|
152
156
|
end
|
153
157
|
|
154
158
|
def delete_assoc_subnet(region,textout=nil,verbose=nil,vpcid,rtable_externalid,cidrblock)
|
@@ -172,7 +176,7 @@ module ZAWS
|
|
172
176
|
|
173
177
|
def declare_propagation_from_gateway(region,textout=nil,verbose=nil,vpcid,routetable,vgatewayid,nagios,ufile)
|
174
178
|
if ufile
|
175
|
-
ZAWS::Helper::
|
179
|
+
ZAWS::Helper::ZFile.prepend("zaws route_table delete_propagation_from_gateway my_route_table vgw-???????? --region us-west-1 --vpcid my_vpc_id $XTRA_OPTS",'#Delete route propagation',ufile)
|
176
180
|
end
|
177
181
|
propagation_exists,rtableid = propagation_exists_from_gateway(region,nil,verbose,vpcid,routetable,vgatewayid)
|
178
182
|
return ZAWS::Helper::Output.binary_nagios_check(propagation_exists,"OK: Route propagation from gateway enabled.","CRITICAL: Route propagation from gateway not enabled.",textout) if nagios
|
@@ -183,6 +187,7 @@ module ZAWS
|
|
183
187
|
else
|
184
188
|
textout.puts "Route propagation from gateway already enabled. Skipping propagation."
|
185
189
|
end
|
190
|
+
return 0
|
186
191
|
end
|
187
192
|
|
188
193
|
def delete_propagation_from_gateway(region,textout=nil,verbose=nil,vpcid,rtable_externalid,vgatewayid)
|
@@ -11,7 +11,7 @@ module ZAWS
|
|
11
11
|
@aws=aws
|
12
12
|
end
|
13
13
|
|
14
|
-
def view(region,view,textout=nil,verbose=nil,vpcid=nil,groupname=nil,groupid=nil,perm_groupid=nil,perm_protocol=nil,perm_toport=nil)
|
14
|
+
def view(region,view,textout=nil,verbose=nil,vpcid=nil,groupname=nil,groupid=nil,perm_groupid=nil,perm_protocol=nil,perm_toport=nil,cidr=nil)
|
15
15
|
comline="aws --output #{view} --region #{region} ec2 describe-security-groups"
|
16
16
|
if vpcid || groupname
|
17
17
|
comline = comline + " --filter"
|
@@ -20,6 +20,7 @@ module ZAWS
|
|
20
20
|
comline = comline + " 'Name=group-name,Values=#{groupname}'" if groupname
|
21
21
|
comline = comline + " 'Name=group-id,Values=#{groupid}'" if groupid
|
22
22
|
comline = comline + " 'Name=ip-permission.group-id,Values=#{perm_groupid}'" if perm_groupid
|
23
|
+
comline = comline + " 'Name=ip-permission.cidr,Values=#{cidr}'" if cidr
|
23
24
|
comline = comline + " 'Name=ip-permission.protocol,Values=#{perm_protocol}'" if perm_protocol
|
24
25
|
comline = comline + " 'Name=ip-permission.to-port,Values=#{perm_toport}'" if perm_toport
|
25
26
|
sgroups=@shellout.cli(comline,verbose)
|
@@ -37,7 +38,7 @@ module ZAWS
|
|
37
38
|
|
38
39
|
def declare(region,vpcid,groupname,description,nagios,textout=nil,verbose=nil,ufile=nil)
|
39
40
|
if ufile
|
40
|
-
ZAWS::Helper::
|
41
|
+
ZAWS::Helper::ZFile.prepend("zaws security_group delete #{groupname} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete security group',ufile)
|
41
42
|
end
|
42
43
|
sgroup_exists,sgroupid = exists(region,nil,verbose,vpcid,groupname)
|
43
44
|
return ZAWS::Helper::Output.binary_nagios_check(sgroup_exists,"OK: Security Group Exists.","CRITICAL: Security Group Does Not Exist.",textout) if nagios
|
@@ -48,6 +49,7 @@ module ZAWS
|
|
48
49
|
else
|
49
50
|
textout.puts "Security Group Exists Already. Skipping Creation."
|
50
51
|
end
|
52
|
+
return 0
|
51
53
|
end
|
52
54
|
|
53
55
|
def id_by_name(region,textout=nil,verbose=nil,vpcid,groupname)
|
@@ -81,15 +83,23 @@ module ZAWS
|
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
86
|
+
def ingress_cidr_exists(region,vpcid,target,cidr,protocol,port,textout=nil,verbose=nil)
|
87
|
+
verbose=$stdout
|
88
|
+
targetid=id_by_name(region,nil,nil,vpcid,target)
|
89
|
+
if targetid
|
90
|
+
sgroups=JSON.parse(view(region,'json',nil,verbose,vpcid,nil,targetid,nil,protocol,port,cidr))
|
91
|
+
val = (sgroups["SecurityGroups"].count > 0)
|
92
|
+
textout.puts val.to_s if textout
|
93
|
+
return val, targetid
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
84
97
|
def declare_ingress_group(region,vpcid,target,source,protocol,port,nagios,textout=nil,verbose=nil,ufile=nil)
|
85
98
|
if ufile
|
86
|
-
ZAWS::Helper::
|
99
|
+
ZAWS::Helper::ZFile.prepend("zaws security_group delete_ingress_group #{target} #{source} #{protocol} #{port} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete security group ingress group rule',ufile)
|
87
100
|
end
|
88
|
-
|
89
101
|
ingress_exists,targetid,sourceid = ingress_group_exists(region,vpcid,target,source,protocol,port,nil,verbose)
|
90
|
-
|
91
102
|
return ZAWS::Helper::Output.binary_nagios_check(ingress_exists,"OK: Security group ingress group rule exists.","CRITICAL: Security group ingress group rule does not exist.",textout) if nagios
|
92
|
-
|
93
103
|
if not ingress_exists
|
94
104
|
comline="aws --region #{region} ec2 authorize-security-group-ingress --group-id #{targetid} --source-security-group-owner-id #{sourceid} --protocol #{protocol} --port #{port}"
|
95
105
|
ingressrule=JSON.parse(@shellout.cli(comline,verbose))
|
@@ -97,6 +107,23 @@ module ZAWS
|
|
97
107
|
else
|
98
108
|
textout.puts "Ingress group rule not created. Exists already."
|
99
109
|
end
|
110
|
+
return 0
|
111
|
+
end
|
112
|
+
|
113
|
+
def declare_ingress_cidr(region,vpcid,target,cidr,protocol,port,nagios,textout=nil,verbose=nil,ufile=nil)
|
114
|
+
if ufile
|
115
|
+
ZAWS::Helper::ZFile.prepend("zaws security_group delete_ingress_cidr #{target} #{cidr} #{protocol} #{port} --region #{region} --vpcid #{vpcid} $XTRA_OPTS",'#Delete cidr ingress group rule',ufile)
|
116
|
+
end
|
117
|
+
ingress_exists,targetid = ingress_cidr_exists(region,vpcid,target,cidr,protocol,port,nil,verbose)
|
118
|
+
return ZAWS::Helper::Output.binary_nagios_check(ingress_exists,"OK: Security group ingress cidr rule exists.","CRITICAL: Security group ingress cidr rule does not exist.",textout) if nagios
|
119
|
+
if not ingress_exists
|
120
|
+
comline="aws --region #{region} ec2 authorize-security-group-ingress --group-id #{targetid} --cidr #{cidr} --protocol #{protocol} --port #{port}"
|
121
|
+
ingressrule=JSON.parse(@shellout.cli(comline,verbose))
|
122
|
+
textout.puts "Ingress cidr rule created." if ingressrule["return"] == "true"
|
123
|
+
else
|
124
|
+
textout.puts "Ingress cidr rule not created. Exists already."
|
125
|
+
end
|
126
|
+
return 0
|
100
127
|
end
|
101
128
|
|
102
129
|
def delete_ingress_group(region,vpcid,target,source,protocol,port,textout=nil,verbose=nil)
|
@@ -110,6 +137,17 @@ module ZAWS
|
|
110
137
|
end
|
111
138
|
end
|
112
139
|
|
140
|
+
def delete_ingress_cidr(region,vpcid,target,cidr,protocol,port,textout=nil,verbose=nil)
|
141
|
+
ingress_exists,targetid = ingress_cidr_exists(region,vpcid,target,cidr,protocol,port,nil,verbose)
|
142
|
+
if ingress_exists
|
143
|
+
comline="aws --region #{region} ec2 revoke-security-group-ingress --group-id #{targetid} --cidr #{cidr} --protocol #{protocol} --port #{port}"
|
144
|
+
val=JSON.parse(@shellout.cli(comline,verbose))
|
145
|
+
textout.puts "Security group ingress cidr rule deleted." if val["return"] == "true"
|
146
|
+
else
|
147
|
+
textout.puts "Security group ingress cidr rule does not exist. Skipping deletion."
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
113
151
|
end
|
114
152
|
end
|
115
153
|
end
|
data/lib/zaws/ec2/subnet.rb
CHANGED
@@ -50,7 +50,7 @@ module ZAWS
|
|
50
50
|
|
51
51
|
def declare(region,vpcid,cidrblock,availabilityzone,statetimeout,textout=nil,verbose=nil,nagios=false,ufile=nil)
|
52
52
|
if ufile
|
53
|
-
ZAWS::Helper::
|
53
|
+
ZAWS::Helper::ZFile.prepend("zaws subnet delete #{cidrblock} #{vpcid} --region #{region} $XTRA_OPTS",'#Delete subnet',ufile)
|
54
54
|
end
|
55
55
|
if not exists(region,nil,verbose,vpcid,cidrblock)
|
56
56
|
if nagios
|
@@ -41,7 +41,7 @@ module ZAWS
|
|
41
41
|
|
42
42
|
def create_in_subnet(region,lbname,lbprotocol,lbport,inprotocol,inport,securitygroup,cidrblocks,vpcid,nagios=false,textout=nil,verbose=nil,ufile=nil)
|
43
43
|
if ufile
|
44
|
-
ZAWS::Helper::
|
44
|
+
ZAWS::Helper::ZFile.prepend("zaws load_balancer delete #{lbname} --region #{region} $XTRA_OPTS",'#Delete load balancer',ufile)
|
45
45
|
end
|
46
46
|
lbexists,instances,ldescriptions=exists(region,lbname,nil,verbose)
|
47
47
|
return ZAWS::Helper::Output.binary_nagios_check(lbexists,"OK: Load Balancer Exists.","CRITICAL: Load Balancer does not exist.",textout) if nagios
|
@@ -81,7 +81,7 @@ module ZAWS
|
|
81
81
|
|
82
82
|
def register_instance(region,lbname,instance_external_id,vpcid,nagios=false,textout=nil,verbose=nil,ufile=nil)
|
83
83
|
if ufile
|
84
|
-
ZAWS::Helper::
|
84
|
+
ZAWS::Helper::ZFile.prepend("zaws load_balancer deregister_instance #{lbname} #{instance_external_id} --region #{region} --vpcid my_vpc_id $XTRA_OPTS",'#Deregister instance',ufile)
|
85
85
|
end
|
86
86
|
instance_registered,instance_id = exists_instance(region,lbname,instance_external_id,vpcid,nil,verbose)
|
87
87
|
return ZAWS::Helper::Output.binary_nagios_check(instance_registered,"OK: Instance registerd.","CRITICAL: Instance not registered.",textout) if nagios
|
@@ -121,7 +121,7 @@ module ZAWS
|
|
121
121
|
|
122
122
|
def declare_listener(region,lbname,lbprotocol,lbport,inprotocol,inport,nagios=false,textout=nil,verbose=nil,ufile=nil)
|
123
123
|
if ufile
|
124
|
-
ZAWS::Helper::
|
124
|
+
ZAWS::Helper::ZFile.prepend("zaws load_balancer delete_listener #{lbname} #{lbprotocol} #{lbport} #{inprotocol} #{inport} --region #{region} $XTRA_OPTS",'#Delete listener',ufile)
|
125
125
|
end
|
126
126
|
lexists=exists_listener(region,lbname,lbprotocol,lbport,inprotocol,inport,nil,verbose)
|
127
127
|
return ZAWS::Helper::Output.binary_nagios_check(lexists,"OK: Listerner exists.","CRITICAL: Listener does not exist.",textout) if nagios
|
@@ -1,20 +1,20 @@
|
|
1
1
|
module ZAWS
|
2
2
|
module Helper
|
3
|
-
class
|
3
|
+
class ZFile
|
4
4
|
|
5
5
|
# This prepend function not currently unit tested,
|
6
6
|
# see "thor/spec/actions/file_manipulation_spec"
|
7
7
|
# for ideas on how to accomplish this.
|
8
8
|
def self.prepend(command,description,filepath)
|
9
9
|
new_file=filepath + ".new"
|
10
|
-
|
10
|
+
File.open(new_file, 'w') do |fo|
|
11
11
|
fo.puts description
|
12
12
|
fo.puts command
|
13
|
-
|
13
|
+
File.foreach(filepath) do |li|
|
14
14
|
fo.puts li
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
17
|
+
File.rename(new_file, filepath)
|
18
18
|
end
|
19
19
|
|
20
20
|
end
|
data/lib/zaws/version.rb
CHANGED
@@ -47,7 +47,7 @@ describe ZAWS::EC2Services::Compute do
|
|
47
47
|
expect(shellout).to receive(:cli).with("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'",nil).and_return(sgroups)
|
48
48
|
aws=ZAWS::AWS.new(shellout)
|
49
49
|
bdm = aws.ec2.compute.network_interface_json('us-west-1',nil,'my_vpc_id','10.0.0.6','my_security_group_name')
|
50
|
-
expect(bdm).to eq('[{"Groups":["sg-903004f8"],"PrivateIpAddress":"10.0.0.6","DeviceIndex":
|
50
|
+
expect(bdm).to eq('[{"Groups":["sg-903004f8"],"PrivateIpAddress":"10.0.0.6","DeviceIndex":0,"SubnetId":"subnet-YYYYYY"}]')
|
51
51
|
|
52
52
|
end
|
53
53
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zaws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
12
|
+
date: 2014-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -226,7 +226,8 @@ files:
|
|
226
226
|
- feature/route_table/route_to_gateway.feature
|
227
227
|
- feature/route_table/route_to_instance.feature
|
228
228
|
- feature/route_table/view.feature
|
229
|
-
- feature/security_group/
|
229
|
+
- feature/security_group/ingress_cidr.feature
|
230
|
+
- feature/security_group/ingress_group.feature
|
230
231
|
- feature/security_group/security_group.feature
|
231
232
|
- feature/security_group/view.feature
|
232
233
|
- feature/subnet/subnet.feature
|
@@ -250,10 +251,10 @@ files:
|
|
250
251
|
- lib/zaws/ec2/subnet.rb
|
251
252
|
- lib/zaws/elb.rb
|
252
253
|
- lib/zaws/elb/load_balancer.rb
|
253
|
-
- lib/zaws/helper/file.rb
|
254
254
|
- lib/zaws/helper/option.rb
|
255
255
|
- lib/zaws/helper/output.rb
|
256
256
|
- lib/zaws/helper/shell.rb
|
257
|
+
- lib/zaws/helper/zfile.rb
|
257
258
|
- lib/zaws/route53.rb
|
258
259
|
- lib/zaws/route53/hosted_zone.rb
|
259
260
|
- lib/zaws/version.rb
|
@@ -302,7 +303,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
302
303
|
version: '0'
|
303
304
|
segments:
|
304
305
|
- 0
|
305
|
-
hash:
|
306
|
+
hash: -2074333485879354907
|
306
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
307
308
|
none: false
|
308
309
|
requirements:
|
@@ -311,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
311
312
|
version: '0'
|
312
313
|
segments:
|
313
314
|
- 0
|
314
|
-
hash:
|
315
|
+
hash: -2074333485879354907
|
315
316
|
requirements: []
|
316
317
|
rubyforge_project:
|
317
318
|
rubygems_version: 1.8.24
|