41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import base64
 | |
| import boto
 | |
| from boto.ec2.connection import EC2Connection
 | |
| 
 | |
| class AjaxConsole:
 | |
|     def __init__(self, parent=None):
 | |
|         self.parent = parent
 | |
|         self.instance_id = None
 | |
|         self.url = None
 | |
| 
 | |
|     def startElement(self, name, attrs, connection):
 | |
|         return None
 | |
| 
 | |
|     def endElement(self, name, value, connection):
 | |
|         if name == 'instanceId':
 | |
|             self.instance_id = value
 | |
|         elif name == 'url':
 | |
|             self.url = value
 | |
|         else:
 | |
|             setattr(self, name, value)
 | |
| 
 | |
| class NovaEC2Connection(EC2Connection):
 | |
|     def get_ajax_console(self, instance_id):
 | |
|         """
 | |
|         Retrieves a console connection for the specified instance.
 | |
| 
 | |
|         :type instance_id: string
 | |
|         :param instance_id: The instance ID of a running instance on the cloud.
 | |
| 
 | |
|         :rtype: :class:`AjaxConsole`
 | |
|         """
 | |
|         params = {}
 | |
|         self.build_list_params(params, [instance_id], 'InstanceId')
 | |
|         return self.get_object('GetAjaxConsole', params, AjaxConsole)
 | |
|     pass
 | |
| 
 | |
| def override_connect_ec2(aws_access_key_id=None, aws_secret_access_key=None, **kwargs):
 | |
|     return NovaEC2Connection(aws_access_key_id, aws_secret_access_key, **kwargs)
 | |
| 
 | |
| boto.connect_ec2 = override_connect_ec2
 | 
