nirvdrum-amazon-ec2 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +9 -0
  2. data/.yardopts +1 -0
  3. data/ChangeLog +304 -0
  4. data/LICENSE +66 -0
  5. data/README.rdoc +359 -0
  6. data/README_dev.rdoc +10 -0
  7. data/Rakefile +70 -0
  8. data/VERSION +1 -0
  9. data/amazon-ec2.gemspec +142 -0
  10. data/bin/ec2-gem-example.rb +137 -0
  11. data/bin/ec2-gem-profile.rb +10 -0
  12. data/bin/ec2sh +62 -0
  13. data/bin/setup.rb +29 -0
  14. data/deps.rip +1 -0
  15. data/lib/AWS.rb +321 -0
  16. data/lib/AWS/Autoscaling.rb +70 -0
  17. data/lib/AWS/Autoscaling/autoscaling.rb +273 -0
  18. data/lib/AWS/Cloudwatch.rb +32 -0
  19. data/lib/AWS/Cloudwatch/monitoring.rb +80 -0
  20. data/lib/AWS/EC2.rb +33 -0
  21. data/lib/AWS/EC2/availability_zones.rb +29 -0
  22. data/lib/AWS/EC2/console.rb +25 -0
  23. data/lib/AWS/EC2/devpay.rb +18 -0
  24. data/lib/AWS/EC2/elastic_ips.rb +86 -0
  25. data/lib/AWS/EC2/image_attributes.rb +133 -0
  26. data/lib/AWS/EC2/images.rb +117 -0
  27. data/lib/AWS/EC2/instances.rb +234 -0
  28. data/lib/AWS/EC2/keypairs.rb +47 -0
  29. data/lib/AWS/EC2/products.rb +21 -0
  30. data/lib/AWS/EC2/security_groups.rb +164 -0
  31. data/lib/AWS/EC2/snapshots.rb +102 -0
  32. data/lib/AWS/EC2/spot_instance_requests.rb +105 -0
  33. data/lib/AWS/EC2/volumes.rb +100 -0
  34. data/lib/AWS/ELB.rb +71 -0
  35. data/lib/AWS/ELB/load_balancers.rb +178 -0
  36. data/lib/AWS/RDS.rb +73 -0
  37. data/lib/AWS/RDS/rds.rb +522 -0
  38. data/lib/AWS/exceptions.rb +200 -0
  39. data/lib/AWS/responses.rb +21 -0
  40. data/perftools/ec2prof +0 -0
  41. data/perftools/ec2prof-results.dot +132 -0
  42. data/perftools/ec2prof-results.txt +100 -0
  43. data/perftools/ec2prof.symbols +102 -0
  44. data/test/test_Autoscaling_groups.rb +337 -0
  45. data/test/test_EC2.rb +68 -0
  46. data/test/test_EC2_availability_zones.rb +49 -0
  47. data/test/test_EC2_console.rb +54 -0
  48. data/test/test_EC2_elastic_ips.rb +144 -0
  49. data/test/test_EC2_image_attributes.rb +238 -0
  50. data/test/test_EC2_images.rb +229 -0
  51. data/test/test_EC2_instances.rb +611 -0
  52. data/test/test_EC2_keypairs.rb +123 -0
  53. data/test/test_EC2_products.rb +48 -0
  54. data/test/test_EC2_responses.rb +53 -0
  55. data/test/test_EC2_s3_xmlsimple.rb +80 -0
  56. data/test/test_EC2_security_groups.rb +205 -0
  57. data/test/test_EC2_snapshots.rb +83 -0
  58. data/test/test_EC2_spot_instance_requests.rb +178 -0
  59. data/test/test_EC2_volumes.rb +142 -0
  60. data/test/test_ELB_load_balancers.rb +239 -0
  61. data/test/test_RDS.rb +354 -0
  62. data/test/test_helper.rb +23 -0
  63. data/wsdl/2007-08-29.ec2.wsdl +1269 -0
  64. data/wsdl/2008-02-01.ec2.wsdl +1614 -0
  65. data/wsdl/2008-05-05.ec2.wsdl +2052 -0
  66. data/wsdl/2008-12-01.ec2.wsdl +2354 -0
  67. data/wsdl/2009-10-31.ec2.wsdl +4261 -0
  68. data/wsdl/2009-11-30.ec2.wsdl +4668 -0
  69. 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
+
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