zaws 0.0.3 → 0.0.4
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.
- 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
|