Changeset 1666:f575ab714505
- Timestamp:
- 06/20/08 17:16:32 (2 months ago)
- Author:
- hadoopsandholm@…
- Branch:
- default
- Message:
-
fixed compliance issued with EC2 protosol to support firefox plugin
- Location:
- src/grid/hadoop/ec2
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r1665
|
r1666
|
|
| 80 | 80 | """ |
| 81 | 81 | self.send_response(200) |
| 82 | | self.send_header("Content-type", "text/plain") |
| | 82 | self.send_header("Content-type", "text/xml") |
| 83 | 83 | self.end_headers() |
| 84 | 84 | |
| … |
… |
|
| 91 | 91 | self.end_headers() |
| 92 | 92 | |
| | 93 | def method_DescribeAvailabilityZones(self, options): |
| | 94 | self.text_headers() |
| | 95 | self.wfile.write('<DescribeAvailabilityZonesResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\"\>\n') |
| | 96 | |
| | 97 | def method_DescribeKeyPairs(self, options): |
| | 98 | self.text_headers() |
| | 99 | self.wfile.write('<DescribeKeyPairsResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\"\>\n') |
| | 100 | |
| | 101 | def method_DescribeSecurityGroups(self, options): |
| | 102 | self.text_headers() |
| | 103 | self.wfile.write('<DescribeSecurityGroupsResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\"\>\n') |
| | 104 | |
| 93 | 105 | def method_DescribeImages(self, options): |
| 94 | 106 | cmd = "tycoon_hadoop get-images" |
| … |
… |
|
| 103 | 115 | images = stdout.read().split('\n') |
| 104 | 116 | hadoop_image = 'centos.5-0.gridmix.0-15-0.ext3.bz2' |
| 105 | | self.wfile.write('<DescribeImagesResponse hadoopimage=\"%s\" xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01\">\n' % hadoop_image) |
| | 117 | self.wfile.write('<DescribeImagesResponse hadoopimage=\"%s\" xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\">\n' % hadoop_image) |
| | 118 | self.wfile.write('<imagesSet>\n') |
| 106 | 119 | for image in images: |
| 107 | 120 | if image == "": |
| 108 | 121 | continue |
| 109 | 122 | self.wfile.write('<item>\n') |
| 110 | | self.wfile.write('<imageId>%s</imageId>"/>\n' % image) |
| | 123 | self.wfile.write('<imageId>ami-%s</imageId>"/>\n' % image) |
| | 124 | self.wfile.write('<imageLocation>http://tycoon.hpl.hp.com/~tycoon/dl/images</imageLocation>"/>\n') |
| 111 | 125 | self.wfile.write('<imageState>available</imageState>"/>\n') |
| 112 | | self.wfile.write('<imageLocation>http://tycoon.hpl.hp.com/~tycoon/dl/images</imageLocation>"/>\n') |
| 113 | 126 | self.wfile.write('<imageOwnerId>tycoon</imageOwnerId>"/>\n') |
| 114 | 127 | self.wfile.write('<isPublic>true</isPublic>"/>\n') |
| … |
… |
|
| 118 | 131 | self.wfile.write('<kernelId>0</kernelId>\n') |
| 119 | 132 | self.wfile.write('</item>\n') |
| | 133 | self.wfile.write('</imagesSet>\n') |
| 120 | 134 | self.wfile.write('</DescribeImagesResponse>\n') |
| 121 | 135 | |
| … |
… |
|
| 128 | 142 | config = "nodes " + options['MaxCount'] + '\n' |
| 129 | 143 | elif line.split(' ')[0] == "image_file": |
| | 144 | if options['ImageId'].startswith('ami-'): |
| | 145 | options['ImageId'] = options['ImageId'].split('ami-')[1] |
| 130 | 146 | config = "image_file " + options['ImageId'] + '\n' |
| 131 | 147 | else: |
| … |
… |
|
| 145 | 161 | return |
| 146 | 162 | self.text_headers() |
| 147 | | self.wfile.write('<RunInstancesResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01\">\n') |
| 148 | | self.wfile.write('<reservationId>0</reservationId>\n') |
| | 163 | self.wfile.write('<RunInstancesResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\">\n') |
| | 164 | self.wfile.write('<reservationId>r-0</reservationId>\n') |
| 149 | 165 | self.wfile.write('<ownerId>%s</ownerId>\n' % options['AWSAccessKeyId']) |
| 150 | 166 | self.wfile.write('<groupSet><item><groupId>default</groupId></item></groupSet>\n') |
| … |
… |
|
| 153 | 169 | for i in range(0,n): |
| 154 | 170 | self.wfile.write('<item>') |
| 155 | | self.wfile.write('<instanceId>%d</instanceId>' % i) |
| | 171 | self.wfile.write('<instanceId>i-%d</instanceId>' % i) |
| 156 | 172 | self.wfile.write('<imageId>%s</imageId>' % options['ImageId']) |
| 157 | 173 | self.wfile.write('<instanceState><code>0</code><name>pending</name></instanceState>') |
| 158 | | self.wfile.write('<privateDnsName/><dnsName/><keyName/><amiLaunchIndex/><instanceType>m1.small</instanceType><launchTime>%s</launchTime><placement/>' % time.strftime('%Y-%m-%dT%H:%M:%S-0008')) |
| | 174 | self.wfile.write('<privateDnsName/><dnsName/><keyName/><amiLaunchIndex/><instanceType>m1.small</instanceType><launchTime>%s</launchTime><placement><availabilityZone>HPL-PA</availabilityZone></placement>' % time.strftime('%Y-%m-%dT%H:%M:%S-0008')) |
| 159 | 175 | self.wfile.write('</item>\n') |
| 160 | 176 | self.wfile.write('</instancesSet>\n') |
| … |
… |
|
| 183 | 199 | i = 0 |
| 184 | 200 | self.text_headers() |
| 185 | | self.wfile.write('<TerminateInstancesResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01\">\n') |
| | 201 | self.wfile.write('<TerminateInstancesResponse xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\">\n') |
| | 202 | self.wfile.write('<instancesSet>\n') |
| 186 | 203 | for slave in slaves: |
| 187 | 204 | if slave.strip() == "": |
| 188 | 205 | continue |
| 189 | | self.wfile.write('<item><instanceId>%d</instanceId></item>\n' % i) |
| | 206 | self.wfile.write('<item><instanceId>i-%d</instanceId></item>\n' % i) |
| 190 | 207 | i += 1 |
| | 208 | self.wfile.write('</instancesSet>\n') |
| 191 | 209 | self.wfile.write('</TerminateInstancesResponse>\n') |
| 192 | 210 | |
| … |
… |
|
| 244 | 262 | self.text_headers() |
| 245 | 263 | streamjar = "/home/guest/hadoop/build/contrib/streaming/hadoop-streaming.jar" |
| 246 | | self.wfile.write('<DescribeInstancesResponse master=\"%s\" streamjar=\"%s\" status=\"%s\" xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01\">\n' % (master,streamjar,status)) |
| | 264 | self.wfile.write('<DescribeInstancesResponse master=\"%s\" streamjar=\"%s\" status=\"%s\" xmlns=\"http://ec2.amazonaws.com/doc/2008-02-01/\">\n' % (master,streamjar,status)) |
| 247 | 265 | self.wfile.write('<reservationSet>\n') |
| 248 | 266 | self.wfile.write('<item>\n') |
| 249 | | self.wfile.write('<reservationId>0</reservationId>\n') |
| | 267 | self.wfile.write('<reservationId>r-0</reservationId>\n') |
| 250 | 268 | self.wfile.write('<ownerId>%s</ownerId>\n' % options['AWSAccessKeyId']) |
| 251 | 269 | self.wfile.write('<groupSet><item><groupId>default</groupId></item></groupSet>\n') |
| … |
… |
|
| 259 | 277 | continue |
| 260 | 278 | self.wfile.write('<item>') |
| 261 | | self.wfile.write('<instanceId>%d</instanceId>' % i) |
| | 279 | self.wfile.write('<instanceId>i-%d</instanceId>' % i) |
| 262 | 280 | self.wfile.write('<imageId>%s</imageId>' % image) |
| 263 | 281 | self.wfile.write('<instanceState><code>0</code><name>%s</name></instanceState>' % aws_status) |
| 264 | | self.wfile.write('<privateDnsName>%s</privateDnsName><dnsName>%s</dnsName>' % (slaves[i],master)) |
| 265 | | self.wfile.write('<keyName/><amiLaunchIndex/><instanceType>m1.small</instanceType><launchTime>%s</launchTime><placement/>' % launch) |
| | 282 | self.wfile.write('<privateDnsName>%s</privateDnsName><dnsName>%s</dnsName>' % (master,slaves[i])) |
| | 283 | self.wfile.write('<keyName/><amiLaunchIndex/><instanceType>m1.small</instanceType><launchTime>%s</launchTime><placement><availabilityZone>HPL-PA</availabilityZone></placement>' % launch) |
| 266 | 284 | self.wfile.write('</item>\n') |
| 267 | 285 | self.wfile.write('</instancesSet>\n') |