Kashyap & Venu | user data or config drive fn. added and working

This commit is contained in:
new 2014-09-18 16:37:46 +05:30
parent 2785010240
commit 3b887709a6
2 changed files with 18 additions and 4 deletions

View File

@ -33,6 +33,7 @@ from nova.openstack.common import loopingcall
from nova.virt import driver
from nova.virt import virtapi
from nova.compute import flavors
import base64
LOG = logging.getLogger(__name__)
@ -191,16 +192,24 @@ class EC2Driver(driver.ComputeDriver):
timer = loopingcall.FixedIntervalLoopingCall(_wait_for_state)
timer.start(interval=0.5).wait()
def spawn(self, context, instance, image_meta, injected_files,
admin_password, network_info=None, block_device_info=None):
LOG.info("***** Calling SPAWN *******************")
LOG.info("****** %s" % instance._user_data)
LOG.info("****** Allocating an elastic IP *********")
elastic_ip_address = self.ec2_conn.allocate_address(domain='vpc')
#Creating the EC2 instance
instance_type = flavor_map[instance.get_flavor().name]
reservation = self.ec2_conn.run_instances(aws_ami, instance_type=instance_type)
flavor_type = flavor_map[instance.get_flavor().name]
#passing user_data from the openstack instance which is Base64 encoded after decoding it.
user_data = instance._user_data
if user_data:
user_data = base64.b64decode(user_data)
reservation = self.ec2_conn.run_instances(aws_ami, instance_type=flavor_type, user_data=user_data)
ec2_instance = reservation.instances
instance['metadata'].update({'ec2_id':ec2_instance[0].id, 'public_ip_address':elastic_ip_address.public_ip})

View File

@ -20,13 +20,18 @@ aws_region = "us-east-1"
aws_access_key_id = "AKIAIZJDDRNNJUWZ3LXA"
aws_secret_access_key = "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"
aws_ami = "ami-864d84ee"
#Adding a Red Hat Linux image below
aws_ami = "ami-785bae10"
#aws_ami = "ami-864d84ee"
instance_type = "t2.micro"
flavor_map = {'m1.tiny': 't2.micro', 'm1.small': 't2.small', 'm1.medium': 't2.medium', 'm1.large': 'c3.xlarge',
'm1.xlarge': 'c3.2xlarge'}
#Add image maps key: image in openstack, Value: EC2_AMI_ID
image_map = {}
keypair_map = {}
# The limit on maximum resources you could have in the AWS EC2.
cpu_units = 100