Changeset 1666:f575ab714505

Show
Ignore:
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:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • src/grid/hadoop/ec2/aws-server

    r1665 r1666  
    8080        """ 
    8181        self.send_response(200) 
    82         self.send_header("Content-type", "text/plain") 
     82        self.send_header("Content-type", "text/xml") 
    8383        self.end_headers() 
    8484 
     
    9191        self.end_headers() 
    9292 
     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 
    93105    def method_DescribeImages(self, options): 
    94106        cmd = "tycoon_hadoop get-images" 
     
    103115        images = stdout.read().split('\n') 
    104116        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') 
    106119        for image in images: 
    107120            if image == "": 
    108121                continue 
    109122            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') 
    111125            self.wfile.write('<imageState>available</imageState>"/>\n') 
    112             self.wfile.write('<imageLocation>http://tycoon.hpl.hp.com/~tycoon/dl/images</imageLocation>"/>\n') 
    113126            self.wfile.write('<imageOwnerId>tycoon</imageOwnerId>"/>\n') 
    114127            self.wfile.write('<isPublic>true</isPublic>"/>\n') 
     
    118131            self.wfile.write('<kernelId>0</kernelId>\n') 
    119132            self.wfile.write('</item>\n') 
     133        self.wfile.write('</imagesSet>\n') 
    120134        self.wfile.write('</DescribeImagesResponse>\n') 
    121135 
     
    128142                config = "nodes " + options['MaxCount'] + '\n' 
    129143            elif line.split(' ')[0] == "image_file": 
     144                if options['ImageId'].startswith('ami-'): 
     145                    options['ImageId'] = options['ImageId'].split('ami-')[1] 
    130146                config = "image_file " + options['ImageId'] + '\n' 
    131147            else: 
     
    145161                    return 
    146162        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') 
    149165        self.wfile.write('<ownerId>%s</ownerId>\n' % options['AWSAccessKeyId']) 
    150166        self.wfile.write('<groupSet><item><groupId>default</groupId></item></groupSet>\n') 
     
    153169        for i in range(0,n): 
    154170            self.wfile.write('<item>')     
    155             self.wfile.write('<instanceId>%d</instanceId>' % i)     
     171            self.wfile.write('<instanceId>i-%d</instanceId>' % i)     
    156172            self.wfile.write('<imageId>%s</imageId>' % options['ImageId'])     
    157173            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')) 
    159175            self.wfile.write('</item>\n')     
    160176        self.wfile.write('</instancesSet>\n') 
     
    183199        i = 0 
    184200        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') 
    186203        for slave in slaves: 
    187204            if slave.strip() == "": 
    188205                continue 
    189             self.wfile.write('<item><instanceId>%d</instanceId></item>\n' % i) 
     206            self.wfile.write('<item><instanceId>i-%d</instanceId></item>\n' % i) 
    190207            i += 1 
     208        self.wfile.write('</instancesSet>\n') 
    191209        self.wfile.write('</TerminateInstancesResponse>\n') 
    192210 
     
    244262        self.text_headers() 
    245263        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)) 
    247265        self.wfile.write('<reservationSet>\n') 
    248266        self.wfile.write('<item>\n') 
    249         self.wfile.write('<reservationId>0</reservationId>\n') 
     267        self.wfile.write('<reservationId>r-0</reservationId>\n') 
    250268        self.wfile.write('<ownerId>%s</ownerId>\n' % options['AWSAccessKeyId']) 
    251269        self.wfile.write('<groupSet><item><groupId>default</groupId></item></groupSet>\n') 
     
    259277                continue 
    260278            self.wfile.write('<item>')     
    261             self.wfile.write('<instanceId>%d</instanceId>' % i)     
     279            self.wfile.write('<instanceId>i-%d</instanceId>' % i)     
    262280            self.wfile.write('<imageId>%s</imageId>' % image)     
    263281            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) 
    266284            self.wfile.write('</item>\n')     
    267285        self.wfile.write('</instancesSet>\n')