nirvdrum-amazon-ec2 0.7.9
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +9 -0
- data/.yardopts +1 -0
- data/ChangeLog +304 -0
- data/LICENSE +66 -0
- data/README.rdoc +359 -0
- data/README_dev.rdoc +10 -0
- data/Rakefile +70 -0
- data/VERSION +1 -0
- data/amazon-ec2.gemspec +142 -0
- data/bin/ec2-gem-example.rb +137 -0
- data/bin/ec2-gem-profile.rb +10 -0
- data/bin/ec2sh +62 -0
- data/bin/setup.rb +29 -0
- data/deps.rip +1 -0
- data/lib/AWS.rb +321 -0
- data/lib/AWS/Autoscaling.rb +70 -0
- data/lib/AWS/Autoscaling/autoscaling.rb +273 -0
- data/lib/AWS/Cloudwatch.rb +32 -0
- data/lib/AWS/Cloudwatch/monitoring.rb +80 -0
- data/lib/AWS/EC2.rb +33 -0
- data/lib/AWS/EC2/availability_zones.rb +29 -0
- data/lib/AWS/EC2/console.rb +25 -0
- data/lib/AWS/EC2/devpay.rb +18 -0
- data/lib/AWS/EC2/elastic_ips.rb +86 -0
- data/lib/AWS/EC2/image_attributes.rb +133 -0
- data/lib/AWS/EC2/images.rb +117 -0
- data/lib/AWS/EC2/instances.rb +234 -0
- data/lib/AWS/EC2/keypairs.rb +47 -0
- data/lib/AWS/EC2/products.rb +21 -0
- data/lib/AWS/EC2/security_groups.rb +164 -0
- data/lib/AWS/EC2/snapshots.rb +102 -0
- data/lib/AWS/EC2/spot_instance_requests.rb +105 -0
- data/lib/AWS/EC2/volumes.rb +100 -0
- data/lib/AWS/ELB.rb +71 -0
- data/lib/AWS/ELB/load_balancers.rb +178 -0
- data/lib/AWS/RDS.rb +73 -0
- data/lib/AWS/RDS/rds.rb +522 -0
- data/lib/AWS/exceptions.rb +200 -0
- data/lib/AWS/responses.rb +21 -0
- data/perftools/ec2prof +0 -0
- data/perftools/ec2prof-results.dot +132 -0
- data/perftools/ec2prof-results.txt +100 -0
- data/perftools/ec2prof.symbols +102 -0
- data/test/test_Autoscaling_groups.rb +337 -0
- data/test/test_EC2.rb +68 -0
- data/test/test_EC2_availability_zones.rb +49 -0
- data/test/test_EC2_console.rb +54 -0
- data/test/test_EC2_elastic_ips.rb +144 -0
- data/test/test_EC2_image_attributes.rb +238 -0
- data/test/test_EC2_images.rb +229 -0
- data/test/test_EC2_instances.rb +611 -0
- data/test/test_EC2_keypairs.rb +123 -0
- data/test/test_EC2_products.rb +48 -0
- data/test/test_EC2_responses.rb +53 -0
- data/test/test_EC2_s3_xmlsimple.rb +80 -0
- data/test/test_EC2_security_groups.rb +205 -0
- data/test/test_EC2_snapshots.rb +83 -0
- data/test/test_EC2_spot_instance_requests.rb +178 -0
- data/test/test_EC2_volumes.rb +142 -0
- data/test/test_ELB_load_balancers.rb +239 -0
- data/test/test_RDS.rb +354 -0
- data/test/test_helper.rb +23 -0
- data/wsdl/2007-08-29.ec2.wsdl +1269 -0
- data/wsdl/2008-02-01.ec2.wsdl +1614 -0
- data/wsdl/2008-05-05.ec2.wsdl +2052 -0
- data/wsdl/2008-12-01.ec2.wsdl +2354 -0
- data/wsdl/2009-10-31.ec2.wsdl +4261 -0
- data/wsdl/2009-11-30.ec2.wsdl +4668 -0
- metadata +199 -0
@@ -0,0 +1,200 @@
|
|
1
|
+
#--
|
2
|
+
# AWS ERROR CODES
|
3
|
+
# AWS can throw error exceptions that contain a '.' in them.
|
4
|
+
# since we can't name an exception class with that '.' I compressed
|
5
|
+
# each class name into the non-dot version which allows us to retain
|
6
|
+
# the granularity of the exception.
|
7
|
+
#++
|
8
|
+
|
9
|
+
module AWS
|
10
|
+
|
11
|
+
# All AWS errors are superclassed by Error < RuntimeError
|
12
|
+
class Error < RuntimeError; end
|
13
|
+
|
14
|
+
# CLIENT : A client side argument error
|
15
|
+
class ArgumentError < Error; end
|
16
|
+
|
17
|
+
# Elastic Compute Cloud
|
18
|
+
############################
|
19
|
+
|
20
|
+
# EC2 : User has the maximum number of allowed IP addresses.
|
21
|
+
class AddressLimitExceeded < Error; end
|
22
|
+
|
23
|
+
# EC2 : The limit on the number of Amazon EBS volumes attached to one instance has been exceeded.
|
24
|
+
class AttachmentLimitExceeded < Error; end
|
25
|
+
|
26
|
+
# EC2 : User not authorized.
|
27
|
+
class AuthFailure < Error; end
|
28
|
+
|
29
|
+
# EC2 : Volume is in incorrect state
|
30
|
+
class IncorrectState < Error; end
|
31
|
+
|
32
|
+
# EC2 : User has max allowed concurrent running instances.
|
33
|
+
class InstanceLimitExceeded < Error; end
|
34
|
+
|
35
|
+
# EC2 : The value of an item added to, or removed from, an image attribute is invalid.
|
36
|
+
class InvalidAMIAttributeItemValue < Error; end
|
37
|
+
|
38
|
+
# EC2 : Specified AMI ID is not valid.
|
39
|
+
class InvalidAMIIDMalformed < Error; end
|
40
|
+
|
41
|
+
# EC2 : Specified AMI ID does not exist.
|
42
|
+
class InvalidAMIIDNotFound < Error; end
|
43
|
+
|
44
|
+
# EC2 : Specified AMI ID has been deregistered and is no longer available.
|
45
|
+
class InvalidAMIIDUnavailable < Error; end
|
46
|
+
|
47
|
+
# EC2 : The instance cannot detach from a volume to which it is not attached.
|
48
|
+
class InvalidAttachmentNotFound < Error; end
|
49
|
+
|
50
|
+
# EC2 : The device to which you are trying to attach (i.e. /dev/sdh) is already in use on the instance.
|
51
|
+
class InvalidDeviceInUse < Error; end
|
52
|
+
|
53
|
+
# EC2 : Specified instance ID is not valid.
|
54
|
+
class InvalidInstanceIDMalformed < Error; end
|
55
|
+
|
56
|
+
# EC2 : Specified instance ID does not exist.
|
57
|
+
class InvalidInstanceIDNotFound < Error; end
|
58
|
+
|
59
|
+
# EC2 : Specified keypair name does not exist.
|
60
|
+
class InvalidKeyPairNotFound < Error; end
|
61
|
+
|
62
|
+
# EC2 : Attempt to create a duplicate keypair.
|
63
|
+
class InvalidKeyPairDuplicate < Error; end
|
64
|
+
|
65
|
+
# EC2 : Specified group name does not exist.
|
66
|
+
class InvalidGroupNotFound < Error; end
|
67
|
+
|
68
|
+
# EC2 : Attempt to create a duplicate group.
|
69
|
+
class InvalidGroupDuplicate < Error; end
|
70
|
+
|
71
|
+
# EC2 : Specified group can not be deleted because it is in use.
|
72
|
+
class InvalidGroupInUse < Error; end
|
73
|
+
|
74
|
+
# EC2 : Specified group name is a reserved name.
|
75
|
+
class InvalidGroupReserved < Error; end
|
76
|
+
|
77
|
+
# EC2 : Specified AMI has an unparsable manifest.
|
78
|
+
class InvalidManifest < Error; end
|
79
|
+
|
80
|
+
# EC2 : RunInstances was called with minCount and maxCount set to 0 or minCount > maxCount.
|
81
|
+
class InvalidParameterCombination < Error; end
|
82
|
+
|
83
|
+
# EC2 : The value supplied for a parameter was invalid.
|
84
|
+
class InvalidParameterValue < Error; end
|
85
|
+
|
86
|
+
# EC2 : Attempt to authorize a permission that has already been authorized.
|
87
|
+
class InvalidPermissionDuplicate < Error; end
|
88
|
+
|
89
|
+
# EC2 : Specified permission is invalid.
|
90
|
+
class InvalidPermissionMalformed < Error; end
|
91
|
+
|
92
|
+
# EC2 : Specified reservation ID is invalid.
|
93
|
+
class InvalidReservationIDMalformed < Error; end
|
94
|
+
|
95
|
+
# EC2 : Specified reservation ID does not exist.
|
96
|
+
class InvalidReservationIDNotFound < Error; end
|
97
|
+
|
98
|
+
# EC2 : The snapshot ID that was passed as an argument was malformed.
|
99
|
+
class InvalidSnapshotIDMalformed < Error; end
|
100
|
+
|
101
|
+
# EC2 : The specified snapshot does not exist.
|
102
|
+
class InvalidSnapshotIDNotFound < Error; end
|
103
|
+
|
104
|
+
# EC2 : The user ID is neither in the form of an AWS account ID or one
|
105
|
+
# of the special values accepted by the owner or executableBy flags
|
106
|
+
# in the DescribeImages call.
|
107
|
+
class InvalidUserIDMalformed < Error; end
|
108
|
+
|
109
|
+
# EC2 : Reserved Instances ID not found.
|
110
|
+
class InvalidReservedInstancesId < Error; end
|
111
|
+
|
112
|
+
# EC2 : Reserved Instances Offering ID not found.
|
113
|
+
class InvalidReservedInstancesOfferingId < Error; end
|
114
|
+
|
115
|
+
# EC2 : The volume ID that was passed as an argument was malformed.
|
116
|
+
class InvalidVolumeIDMalformed < Error; end
|
117
|
+
|
118
|
+
# EC2 : The volume specified does not exist.
|
119
|
+
class InvalidVolumeIDNotFound < Error; end
|
120
|
+
|
121
|
+
# EC2 : The volume already exists in the system.
|
122
|
+
class InvalidVolumeIDDuplicate < Error; end
|
123
|
+
|
124
|
+
# EC2 : The specified volume ID and instance ID are in different Availability Zones.
|
125
|
+
class InvalidVolumeIDZoneMismatch < Error; end
|
126
|
+
|
127
|
+
# EC2 : The zone specified does not exist.
|
128
|
+
class InvalidZoneNotFound < Error; end
|
129
|
+
|
130
|
+
# EC2 : Insufficient Reserved Instances capacity.
|
131
|
+
class InsufficientReservedInstancesCapacity < Error; end
|
132
|
+
|
133
|
+
# EC2 : The instance specified does not support EBS.
|
134
|
+
class NonEBSInstance < Error; end
|
135
|
+
|
136
|
+
# EC2 : The limit on the number of Amazon EBS snapshots in the pending state has been exceeded.
|
137
|
+
class PendingSnapshotLimitExceeded < Error; end
|
138
|
+
|
139
|
+
# EC2 : Your current quota does not allow you to purchase the required number of reserved instances.
|
140
|
+
class ReservedInstancesLimitExceeded < Error; end
|
141
|
+
|
142
|
+
# EC2 : The limit on the number of Amazon EBS snapshots has been exceeded.
|
143
|
+
class SnapshotLimitExceeded < Error; end
|
144
|
+
|
145
|
+
# EC2 : An unknown parameter was passed as an argument
|
146
|
+
class UnknownParameter < Error; end
|
147
|
+
|
148
|
+
# EC2 : The limit on the number of Amazon EBS volumes has been exceeded.
|
149
|
+
class VolumeLimitExceeded < Error; end
|
150
|
+
|
151
|
+
# Server Error Codes
|
152
|
+
###
|
153
|
+
|
154
|
+
# Server : Internal Error.
|
155
|
+
class InternalError < Error; end
|
156
|
+
|
157
|
+
# Server : Not enough available addresses to satisfy your minimum request.
|
158
|
+
class InsufficientAddressCapacity < Error; end
|
159
|
+
|
160
|
+
# Server : There are not enough available instances to satisfy your minimum request.
|
161
|
+
class InsufficientInstanceCapacity < Error; end
|
162
|
+
|
163
|
+
# Server : There are not enough available reserved instances to satisfy your minimum request.
|
164
|
+
class InsufficientReservedInstanceCapacity < Error; end
|
165
|
+
|
166
|
+
# Server : The server is overloaded and cannot handle the request.
|
167
|
+
class Unavailable < Error; end
|
168
|
+
|
169
|
+
# Elastic Load Balancer
|
170
|
+
############################
|
171
|
+
|
172
|
+
# ELB : The Load balancer specified was not found.
|
173
|
+
class LoadBalancerNotFound < Error; end
|
174
|
+
|
175
|
+
# ELB :
|
176
|
+
class ValidationError < Error; end
|
177
|
+
|
178
|
+
# ELB :
|
179
|
+
class DuplicateLoadBalancerName < Error; end
|
180
|
+
|
181
|
+
# ELB :
|
182
|
+
class TooManyLoadBalancers < Error; end
|
183
|
+
|
184
|
+
# ELB :
|
185
|
+
class InvalidInstance < Error; end
|
186
|
+
|
187
|
+
# ELB :
|
188
|
+
class InvalidConfigurationRequest < Error; end
|
189
|
+
|
190
|
+
# API Errors
|
191
|
+
############################
|
192
|
+
|
193
|
+
# Server : Invalid AWS Account
|
194
|
+
class InvalidClientTokenId < Error; end
|
195
|
+
|
196
|
+
# Server : The provided signature does not match.
|
197
|
+
class SignatureDoesNotMatch < Error; end
|
198
|
+
|
199
|
+
end
|
200
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module AWS
|
2
|
+
|
3
|
+
class Response
|
4
|
+
|
5
|
+
# Parse the XML response from AWS
|
6
|
+
#
|
7
|
+
# @option options [String] :xml The XML response from AWS that we want to parse
|
8
|
+
# @option options [Hash] :parse_options Override the options for XmlSimple.
|
9
|
+
# @return [Hash] the input :xml converted to a custom Ruby Hash by XmlSimple.
|
10
|
+
def self.parse(options = {})
|
11
|
+
options = {
|
12
|
+
:xml => "",
|
13
|
+
:parse_options => { 'forcearray' => ['item', 'member'], 'suppressempty' => nil, 'keeproot' => false }
|
14
|
+
}.merge(options)
|
15
|
+
response = XmlSimple.xml_in(options[:xml], options[:parse_options])
|
16
|
+
end
|
17
|
+
|
18
|
+
end # class Response
|
19
|
+
|
20
|
+
end # module AWS
|
21
|
+
|
data/perftools/ec2prof
ADDED
Binary file
|
@@ -0,0 +1,132 @@
|
|
1
|
+
digraph "/usr/bin/ruby; 2043 samples" {
|
2
|
+
node [width=0.375,height=0.25];
|
3
|
+
Legend [shape=box,fontsize=24,shape=plaintext,label="/usr/bin/ruby\lTotal samples: 2043\lFocusing on: 2035\lDropped nodes with <= 10 abs(samples)\lDropped edges with <= 2 samples\l"];
|
4
|
+
N1 [label="garbage_collector\n1298 (63.5%)\r",shape=box,fontsize=47.9];
|
5
|
+
N2 [label="XmlSimple#xml_in\n0 (0.0%)\rof 507 (24.8%)\r",shape=box,fontsize=8.0];
|
6
|
+
N3 [label="XmlSimple.xml_in\n0 (0.0%)\rof 469 (23.0%)\r",shape=box,fontsize=8.0];
|
7
|
+
N4 [label="AWS\nResponse.parse\n0 (0.0%)\rof 442 (21.6%)\r",shape=box,fontsize=8.0];
|
8
|
+
N5 [label="AWS\nBase#response_generator\n0 (0.0%)\rof 431 (21.1%)\r",shape=box,fontsize=8.0];
|
9
|
+
N6 [label="AWS\nEC2\nBase#describe_images\n0 (0.0%)\rof 422 (20.7%)\r",shape=box,fontsize=8.0];
|
10
|
+
N7 [label="Class#new\n142 (7.0%)\rof 371 (18.2%)\r",shape=box,fontsize=21.2];
|
11
|
+
N8 [label="REXML\nDocument#build\n14 (0.7%)\rof 370 (18.1%)\r",shape=box,fontsize=12.1];
|
12
|
+
N9 [label="REXML\nDocument#initialize\n0 (0.0%)\rof 370 (18.1%)\r",shape=box,fontsize=8.0];
|
13
|
+
N10 [label="XmlSimple#parse\n0 (0.0%)\rof 370 (18.1%)\r",shape=box,fontsize=8.0];
|
14
|
+
N11 [label="REXML\nParsers\nTreeParser#parse\n65 (3.2%)\rof 355 (17.4%)\r",shape=box,fontsize=16.9];
|
15
|
+
N12 [label="REXML\nElement#each_element\n5 (0.2%)\rof 338 (16.5%)\r",shape=box,fontsize=10.5];
|
16
|
+
N13 [label="REXML\nElements#each\n11 (0.5%)\rof 338 (16.5%)\r",shape=box,fontsize=11.7];
|
17
|
+
N14 [label="REXML\nXPath.each\n4 (0.2%)\rof 338 (16.5%)\r",shape=box,fontsize=10.2];
|
18
|
+
N15 [label="XmlSimple#collapse\n45 (2.2%)\rof 338 (16.5%)\r",shape=box,fontsize=15.4];
|
19
|
+
N16 [label="REXML\nParsers\nBaseParser#pull\n14 (0.7%)\rof 107 (5.2%)\r",shape=box,fontsize=12.1];
|
20
|
+
N17 [label="XmlSimple#collapse_text_node\n20 (1.0%)\rof 97 (4.7%)\r",shape=box,fontsize=13.0];
|
21
|
+
N18 [label="REXML\nElement#add_element\n2 (0.1%)\rof 94 (4.6%)\r",shape=box,fontsize=9.6];
|
22
|
+
N19 [label="REXML\nElements#add\n2 (0.1%)\rof 92 (4.5%)\r",shape=box,fontsize=9.6];
|
23
|
+
N20 [label="REXML\nElement#initialize\n18 (0.9%)\rof 81 (4.0%)\r",shape=box,fontsize=12.7];
|
24
|
+
N21 [label="XmlSimple#node_to_text\n6 (0.3%)\rof 76 (3.7%)\r",shape=box,fontsize=10.7];
|
25
|
+
N22 [label="REXML\nText#value\n19 (0.9%)\rof 74 (3.6%)\r",shape=box,fontsize=12.8];
|
26
|
+
N23 [label="REXML\nElement#has_elements?\n0 (0.0%)\rof 55 (2.7%)\r",shape=box,fontsize=8.0];
|
27
|
+
N24 [label="REXML\nElement#has_text?\n3 (0.1%)\rof 55 (2.7%)\r",shape=box,fontsize=9.9];
|
28
|
+
N25 [label="REXML\nElements#empty?\n2 (0.1%)\rof 55 (2.7%)\r",shape=box,fontsize=9.6];
|
29
|
+
N26 [label="REXML\nChild#find\n50 (2.4%)\rof 54 (2.6%)\r",shape=box,fontsize=15.8];
|
30
|
+
N27 [label="REXML\nElement#text\n5 (0.2%)\rof 52 (2.5%)\r",shape=box,fontsize=10.5];
|
31
|
+
N28 [label="REXML\nElement#texts\n5 (0.2%)\rof 45 (2.2%)\r",shape=box,fontsize=10.5];
|
32
|
+
N29 [label="REXML\nSource#match\n44 (2.2%)\r",shape=box,fontsize=15.4];
|
33
|
+
N30 [label="REXML\nChild#find_all\n37 (1.8%)\rof 40 (2.0%)\r",shape=box,fontsize=14.7];
|
34
|
+
N31 [label="Array#map\n2 (0.1%)\rof 36 (1.8%)\r",shape=box,fontsize=9.6];
|
35
|
+
N32 [label="Array#each\n7 (0.3%)\rof 33 (1.6%)\r",shape=box,fontsize=10.9];
|
36
|
+
N33 [label="REXML\nElement#document\n11 (0.5%)\rof 29 (1.4%)\r",shape=box,fontsize=11.7];
|
37
|
+
N34 [label="XmlSimple#has_mixed_content?\n3 (0.1%)\rof 29 (1.4%)\r",shape=box,fontsize=9.9];
|
38
|
+
N35 [label="REXML\nXPathParser#parse\n0 (0.0%)\rof 23 (1.1%)\r",shape=box,fontsize=8.0];
|
39
|
+
N36 [label="REXML\nParent#initialize\n17 (0.8%)\rof 22 (1.1%)\r",shape=box,fontsize=12.6];
|
40
|
+
N37 [label="Set#initialize\n2 (0.1%)\rof 22 (1.1%)\r",shape=box,fontsize=9.6];
|
41
|
+
N38 [label="XmlSimple#merge\n13 (0.6%)\rof 21 (1.0%)\r",shape=box,fontsize=12.0];
|
42
|
+
N39 [label="AWS\nBase#make_request\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
43
|
+
N40 [label="Net\nHTTP#request\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
44
|
+
N41 [label="Net\nHTTP#start\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
45
|
+
N42 [label="Net\nHTTPResponse#body\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
46
|
+
N43 [label="Net\nHTTPResponse#read_body\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
47
|
+
N44 [label="Net\nHTTPResponse#read_body_0\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
48
|
+
N45 [label="Net\nHTTPResponse#read_chunked\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
49
|
+
N46 [label="Net\nHTTPResponse#reading_body\n0 (0.0%)\rof 20 (1.0%)\r",shape=box,fontsize=8.0];
|
50
|
+
N47 [label="Net\nBufferedIO#read\n5 (0.2%)\rof 19 (0.9%)\r",shape=box,fontsize=10.5];
|
51
|
+
N48 [label="REXML\nText#initialize\n17 (0.8%)\rof 19 (0.9%)\r",shape=box,fontsize=12.6];
|
52
|
+
N49 [label="REXML\nElement#root\n18 (0.9%)\r",shape=box,fontsize=12.7];
|
53
|
+
N50 [label="REXML\nText.unnormalize\n16 (0.8%)\rof 18 (0.9%)\r",shape=box,fontsize=12.4];
|
54
|
+
N51 [label="REXML\nParent#each\n2 (0.1%)\rof 16 (0.8%)\r",shape=box,fontsize=9.6];
|
55
|
+
N52 [label="REXML\nParsers\nXPathParser#parse\n4 (0.2%)\rof 15 (0.7%)\r",shape=box,fontsize=10.2];
|
56
|
+
N53 [label="Net\nBufferedIO#rbuf_fill\n13 (0.6%)\rof 14 (0.7%)\r",shape=box,fontsize=12.0];
|
57
|
+
N54 [label="Object#timeout\n0 (0.0%)\rof 14 (0.7%)\r",shape=box,fontsize=8.0];
|
58
|
+
N55 [label="Timeout.timeout\n1 (0.0%)\rof 14 (0.7%)\r",shape=box,fontsize=9.1];
|
59
|
+
N56 [label="REXML\nParsers\nXPathParser#OrExpr\n2 (0.1%)\rof 11 (0.5%)\r",shape=box,fontsize=9.6];
|
60
|
+
N22 -> N50 [label=18, weight=7, style="setlinewidth(0.053071)"];
|
61
|
+
N13 -> N14 [label=911, weight=117, style="setlinewidth(2.000000)"];
|
62
|
+
N20 -> N7 [label=32, weight=11, style="setlinewidth(0.094349)"];
|
63
|
+
N21 -> N31 [label=36, weight=12, style="setlinewidth(0.106143)"];
|
64
|
+
N14 -> N13 [label=904, weight=117, style="setlinewidth(2.000000)"];
|
65
|
+
N7 -> N48 [label=19, weight=7, style="setlinewidth(0.056020)"];
|
66
|
+
N22 -> N33 [label=29, weight=10, style="setlinewidth(0.085504)"];
|
67
|
+
N44 -> N45 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
68
|
+
N51 -> N32 [label=14, weight=6, style="setlinewidth(0.041278)"];
|
69
|
+
N16 -> N7 [label=43, weight=13, style="setlinewidth(0.126781)"];
|
70
|
+
N20 -> N36 [label=22, weight=8, style="setlinewidth(0.064865)"];
|
71
|
+
N7 -> N20 [label=81, weight=21, style="setlinewidth(0.238821)"];
|
72
|
+
N34 -> N28 [label=7, weight=3, style="setlinewidth(0.020639)"];
|
73
|
+
N15 -> N34 [label=29, weight=10, style="setlinewidth(0.085504)"];
|
74
|
+
N16 -> N29 [label=44, weight=14, style="setlinewidth(0.129730)"];
|
75
|
+
N27 -> N22 [label=44, weight=14, style="setlinewidth(0.129730)"];
|
76
|
+
N32 -> N26 [label=7, weight=3, style="setlinewidth(0.020639)"];
|
77
|
+
N25 -> N26 [label=54, weight=16, style="setlinewidth(0.159214)"];
|
78
|
+
N15 -> N17 [label=97, weight=24, style="setlinewidth(0.285995)"];
|
79
|
+
N26 -> N51 [label=10, weight=5, style="setlinewidth(0.029484)"];
|
80
|
+
N4 -> N3 [label=442, weight=71, style="setlinewidth(1.303194)"];
|
81
|
+
N54 -> N55 [label=14, weight=6, style="setlinewidth(0.041278)"];
|
82
|
+
N15 -> N23 [label=46, weight=14, style="setlinewidth(0.135627)"];
|
83
|
+
N45 -> N47 [label=19, weight=7, style="setlinewidth(0.056020)"];
|
84
|
+
N9 -> N8 [label=370, weight=62, style="setlinewidth(1.090909)"];
|
85
|
+
N7 -> N9 [label=370, weight=62, style="setlinewidth(1.090909)"];
|
86
|
+
N37 -> N7 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
87
|
+
N55 -> N53 [label=13, weight=6, style="setlinewidth(0.038329)"];
|
88
|
+
N24 -> N27 [label=52, weight=15, style="setlinewidth(0.153317)"];
|
89
|
+
N11 -> N7 [label=77, weight=20, style="setlinewidth(0.227027)"];
|
90
|
+
N40 -> N46 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
91
|
+
N21 -> N28 [label=38, weight=12, style="setlinewidth(0.112039)"];
|
92
|
+
N43 -> N44 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
93
|
+
N5 -> N39 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
94
|
+
N13 -> N15 [label=922, weight=118, style="setlinewidth(2.000000)"];
|
95
|
+
N10 -> N7 [label=370, weight=62, style="setlinewidth(1.090909)"];
|
96
|
+
N5 -> N4 [label=411, weight=67, style="setlinewidth(1.211794)"];
|
97
|
+
N15 -> N15 [label=892, weight=116, style="setlinewidth(2.000000)"];
|
98
|
+
N15 -> N12 [label=801, weight=107, style="setlinewidth(2.000000)"];
|
99
|
+
N17 -> N21 [label=76, weight=20, style="setlinewidth(0.224079)"];
|
100
|
+
N14 -> N35 [label=23, weight=8, style="setlinewidth(0.067813)"];
|
101
|
+
N30 -> N51 [label=6, weight=3, style="setlinewidth(0.017690)"];
|
102
|
+
N52 -> N56 [label=11, weight=5, style="setlinewidth(0.032432)"];
|
103
|
+
N39 -> N40 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
104
|
+
N8 -> N11 [label=355, weight=60, style="setlinewidth(1.046683)"];
|
105
|
+
N2 -> N15 [label=137, weight=31, style="setlinewidth(0.403931)"];
|
106
|
+
N34 -> N23 [label=9, weight=4, style="setlinewidth(0.026536)"];
|
107
|
+
N39 -> N41 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
108
|
+
N12 -> N13 [label=857, weight=113, style="setlinewidth(2.000000)"];
|
109
|
+
N11 -> N16 [label=107, weight=26, style="setlinewidth(0.315479)"];
|
110
|
+
N2 -> N10 [label=370, weight=62, style="setlinewidth(1.090909)"];
|
111
|
+
N19 -> N7 [label=91, weight=23, style="setlinewidth(0.268305)"];
|
112
|
+
N34 -> N24 [label=9, weight=4, style="setlinewidth(0.026536)"];
|
113
|
+
N15 -> N38 [label=21, weight=8, style="setlinewidth(0.061916)"];
|
114
|
+
N21 -> N22 [label=30, weight=10, style="setlinewidth(0.088452)"];
|
115
|
+
N53 -> N54 [label=14, weight=6, style="setlinewidth(0.041278)"];
|
116
|
+
N46 -> N42 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
117
|
+
N31 -> N21 [label=34, weight=11, style="setlinewidth(0.100246)"];
|
118
|
+
N41 -> N39 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
119
|
+
N23 -> N25 [label=55, weight=16, style="setlinewidth(0.162162)"];
|
120
|
+
N7 -> N37 [label=22, weight=8, style="setlinewidth(0.064865)"];
|
121
|
+
N3 -> N2 [label=469, weight=74, style="setlinewidth(1.382801)"];
|
122
|
+
N35 -> N52 [label=15, weight=6, style="setlinewidth(0.044226)"];
|
123
|
+
N47 -> N53 [label=14, weight=6, style="setlinewidth(0.041278)"];
|
124
|
+
N6 -> N5 [label=422, weight=68, style="setlinewidth(1.244226)"];
|
125
|
+
N32 -> N30 [label=3, weight=2, style="setlinewidth(0.008845)"];
|
126
|
+
N42 -> N43 [label=20, weight=8, style="setlinewidth(0.058968)"];
|
127
|
+
N33 -> N49 [label=18, weight=7, style="setlinewidth(0.053071)"];
|
128
|
+
N11 -> N18 [label=94, weight=24, style="setlinewidth(0.277150)"];
|
129
|
+
N28 -> N30 [label=40, weight=13, style="setlinewidth(0.117936)"];
|
130
|
+
N18 -> N19 [label=92, weight=23, style="setlinewidth(0.271253)"];
|
131
|
+
N15 -> N24 [label=46, weight=14, style="setlinewidth(0.135627)"];
|
132
|
+
}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
Total: 2043 samples
|
2
|
+
1298 63.5% 63.5% 1298 63.5% garbage_collector
|
3
|
+
142 7.0% 70.5% 371 18.2% Class#new
|
4
|
+
65 3.2% 73.7% 355 17.4% REXML::Parsers::TreeParser#parse
|
5
|
+
50 2.4% 76.1% 54 2.6% REXML::Child#find
|
6
|
+
45 2.2% 78.3% 338 16.5% XmlSimple#collapse
|
7
|
+
44 2.2% 80.5% 44 2.2% REXML::Source#match
|
8
|
+
37 1.8% 82.3% 40 2.0% REXML::Child#find_all
|
9
|
+
20 1.0% 83.3% 97 4.7% XmlSimple#collapse_text_node
|
10
|
+
19 0.9% 84.2% 74 3.6% REXML::Text#value
|
11
|
+
18 0.9% 85.1% 81 4.0% REXML::Element#initialize
|
12
|
+
18 0.9% 86.0% 18 0.9% REXML::Element#root
|
13
|
+
17 0.8% 86.8% 22 1.1% REXML::Parent#initialize
|
14
|
+
17 0.8% 87.6% 19 0.9% REXML::Text#initialize
|
15
|
+
16 0.8% 88.4% 18 0.9% REXML::Text.unnormalize
|
16
|
+
14 0.7% 89.1% 370 18.1% REXML::Document#build
|
17
|
+
14 0.7% 89.8% 107 5.2% REXML::Parsers::BaseParser#pull
|
18
|
+
13 0.6% 90.4% 14 0.7% Net::BufferedIO#rbuf_fill
|
19
|
+
13 0.6% 91.0% 21 1.0% XmlSimple#merge
|
20
|
+
11 0.5% 91.6% 29 1.4% REXML::Element#document
|
21
|
+
11 0.5% 92.1% 338 16.5% REXML::Elements#each
|
22
|
+
9 0.4% 92.6% 9 0.4% REXML::Parent#name=
|
23
|
+
8 0.4% 93.0% 8 0.4% REXML::Parent#add
|
24
|
+
8 0.4% 93.3% 8 0.4% XmlSimple#force_array?
|
25
|
+
7 0.3% 93.7% 33 1.6% Array#each
|
26
|
+
6 0.3% 94.0% 9 0.4% Kernel#gem_original_require
|
27
|
+
6 0.3% 94.3% 10 0.5% Object#find
|
28
|
+
6 0.3% 94.6% 76 3.7% XmlSimple#node_to_text
|
29
|
+
5 0.2% 94.8% 19 0.9% Net::BufferedIO#read
|
30
|
+
5 0.2% 95.1% 338 16.5% REXML::Element#each_element
|
31
|
+
5 0.2% 95.3% 52 2.5% REXML::Element#text
|
32
|
+
5 0.2% 95.5% 45 2.2% REXML::Element#texts
|
33
|
+
5 0.2% 95.8% 6 0.3% REXML::Parsers::BaseParser#empty?
|
34
|
+
4 0.2% 96.0% 4 0.2% Hash#[]
|
35
|
+
4 0.2% 96.2% 4 0.2% Object#clone
|
36
|
+
4 0.2% 96.4% 15 0.7% REXML::Parsers::XPathParser#parse
|
37
|
+
4 0.2% 96.6% 338 16.5% REXML::XPath.each
|
38
|
+
4 0.2% 96.8% 6 0.3% XmlSimple#get_attributes
|
39
|
+
3 0.1% 96.9% 6 0.3% Array#delete_if
|
40
|
+
3 0.1% 97.1% 3 0.1% Hash#each
|
41
|
+
3 0.1% 97.2% 55 2.7% REXML::Element#has_text?
|
42
|
+
3 0.1% 97.4% 7 0.3% REXML::XPathParser#expr
|
43
|
+
3 0.1% 97.5% 29 1.4% XmlSimple#has_mixed_content?
|
44
|
+
2 0.1% 97.6% 36 1.8% Array#map
|
45
|
+
2 0.1% 97.7% 9 0.4% Object#require
|
46
|
+
2 0.1% 97.8% 5 0.2% REXML::Child#initialize
|
47
|
+
2 0.1% 97.9% 8 0.4% REXML::Document#doctype
|
48
|
+
2 0.1% 98.0% 94 4.6% REXML::Element#add_element
|
49
|
+
2 0.1% 98.1% 3 0.1% REXML::Element#get_text
|
50
|
+
2 0.1% 98.2% 3 0.1% REXML::Element#whitespace
|
51
|
+
2 0.1% 98.3% 92 4.5% REXML::Elements#add
|
52
|
+
2 0.1% 98.4% 55 2.7% REXML::Elements#empty?
|
53
|
+
2 0.1% 98.5% 2 0.1% REXML::Parent#<<
|
54
|
+
2 0.1% 98.6% 16 0.8% REXML::Parent#each
|
55
|
+
2 0.1% 98.7% 9 0.4% REXML::Parsers::XPathParser#AdditiveExpr
|
56
|
+
2 0.1% 98.8% 2 0.1% REXML::Parsers::XPathParser#FilterExpr
|
57
|
+
2 0.1% 98.9% 7 0.3% REXML::Parsers::XPathParser#MultiplicativeExpr
|
58
|
+
2 0.1% 99.0% 11 0.5% REXML::Parsers::XPathParser#OrExpr
|
59
|
+
2 0.1% 99.1% 5 0.2% REXML::Parsers::XPathParser#UnionExpr
|
60
|
+
2 0.1% 99.2% 22 1.1% Set#initialize
|
61
|
+
1 0.0% 99.2% 1 0.0% Array#join
|
62
|
+
1 0.0% 99.3% 1 0.0% Net::BufferedIO#readline
|
63
|
+
1 0.0% 99.3% 1 0.0% REXML::Attributes#each_attribute
|
64
|
+
1 0.0% 99.4% 1 0.0% REXML::Parsers::XPathParser#RelativeLocationPath
|
65
|
+
1 0.0% 99.4% 1 0.0% REXML::Source#empty?
|
66
|
+
1 0.0% 99.5% 1 0.0% REXML::Source#initialize
|
67
|
+
1 0.0% 99.5% 8 0.4% REXML::XPathParser#match
|
68
|
+
1 0.0% 99.6% 1 0.0% REXML::XPathParser#variables=
|
69
|
+
1 0.0% 99.6% 14 0.7% Timeout.timeout
|
70
|
+
0 0.0% 99.6% 20 1.0% AWS::Base#make_request
|
71
|
+
0 0.0% 99.6% 431 21.1% AWS::Base#response_generator
|
72
|
+
0 0.0% 99.6% 422 20.7% AWS::EC2::Base#describe_images
|
73
|
+
0 0.0% 99.6% 442 21.6% AWS::Response.parse
|
74
|
+
0 0.0% 99.6% 20 1.0% Net::HTTP#request
|
75
|
+
0 0.0% 99.6% 20 1.0% Net::HTTP#start
|
76
|
+
0 0.0% 99.6% 20 1.0% Net::HTTPResponse#body
|
77
|
+
0 0.0% 99.6% 20 1.0% Net::HTTPResponse#read_body
|
78
|
+
0 0.0% 99.6% 20 1.0% Net::HTTPResponse#read_body_0
|
79
|
+
0 0.0% 99.6% 20 1.0% Net::HTTPResponse#read_chunked
|
80
|
+
0 0.0% 99.6% 20 1.0% Net::HTTPResponse#reading_body
|
81
|
+
0 0.0% 99.6% 14 0.7% Object#timeout
|
82
|
+
0 0.0% 99.6% 1 0.0% REXML::Attributes#each
|
83
|
+
0 0.0% 99.6% 370 18.1% REXML::Document#initialize
|
84
|
+
0 0.0% 99.6% 55 2.7% REXML::Element#has_elements?
|
85
|
+
0 0.0% 99.6% 1 0.0% REXML::Element#ignore_whitespace_nodes
|
86
|
+
0 0.0% 99.6% 1 0.0% REXML::Parsers::BaseParser#initialize
|
87
|
+
0 0.0% 99.6% 1 0.0% REXML::Parsers::BaseParser#stream=
|
88
|
+
0 0.0% 99.6% 1 0.0% REXML::Parsers::TreeParser#initialize
|
89
|
+
0 0.0% 99.6% 9 0.4% REXML::Parsers::XPathParser#AndExpr
|
90
|
+
0 0.0% 99.6% 9 0.4% REXML::Parsers::XPathParser#EqualityExpr
|
91
|
+
0 0.0% 99.6% 1 0.0% REXML::Parsers::XPathParser#LocationPath
|
92
|
+
0 0.0% 99.6% 3 0.1% REXML::Parsers::XPathParser#PathExpr
|
93
|
+
0 0.0% 99.6% 9 0.4% REXML::Parsers::XPathParser#RelationalExpr
|
94
|
+
0 0.0% 99.6% 5 0.2% REXML::Parsers::XPathParser#UnaryExpr
|
95
|
+
0 0.0% 99.6% 1 0.0% REXML::SourceFactory.create_from
|
96
|
+
0 0.0% 99.6% 23 1.1% REXML::XPathParser#parse
|
97
|
+
0 0.0% 99.6% 3 0.1% XmlSimple#fold_arrays
|
98
|
+
0 0.0% 99.6% 370 18.1% XmlSimple#parse
|
99
|
+
0 0.0% 99.6% 507 24.8% XmlSimple#xml_in
|
100
|
+
0 0.0% 99.6% 469 23.0% XmlSimple.xml_in
|