Compute driver that uses BOTO API to utilize EC2.
Go to file
Ed Thome 7abd25d739 Ed & Cam | Fix string comparison when terminating instances in tests 2014-10-27 10:40:13 -05:00
tests Ed & Cam | Fix string comparison when terminating instances in tests 2014-10-27 10:40:13 -05:00
.gitignore kashyap | spawn now specifies availability zone, added test for detach volume 2014-10-24 15:32:09 +05:30
README.md Ed & Cam | Update README 2014-10-22 11:38:42 -05:00
Vagrantfile Kashyap | Changed the provider box name to point to the new dev box which has Cinder 2014-09-23 17:42:50 +05:30
__init__.py Kashyap | Corrected import to be just ec2 2014-08-12 10:13:45 +00:00
credentials.py Kashyap | added test for attach volume and modified the volume_map to support default values 2014-10-21 12:46:33 +05:30
ec2driver.py kashyap | spawn now specifies availability zone, added test for detach volume 2014-10-24 15:32:09 +05:30
ec2driver_config.py Cam & Ed | Change name of TEST environment variable to MOCK_EC2 2014-10-22 11:38:43 -05:00
ec2driver_standard_config.py Cam & Ed | Fix endpoint/host/port config for ec2 connection 2014-10-22 11:38:43 -05:00
ec2driver_test_config.py Cam & Ed | Fix endpoint/host/port config for ec2 connection 2014-10-22 11:38:43 -05:00

README.md

ThoughtWorks OpenStack to EC2 Driver

Enjoy the benefits of the private cloud without being limited by it. Just like the present drivers let you leverage the various bankends like VMWare and Xen, this driver will let you use the public cloud to burst your cloud to. For now we are focusing on being able to burst to Amazon EC2.

Using the native OpenStack Dashboard or APIs you would be able to manage the EC2 cloud.

Getting Started

  • OpenStack Icehouse
  • Python 2.7 and above
  • Amazon Web Service (AWS) SDK for Python -- Boto 2.31.1
  1. In the config file set the number of CPU units, Memory and storage that you would like to allocate in EC2 at the disposal.

##Dev Environment Setup

###Requirements

  • Git
  • VirtualBox
  • Vagrant

###Instructions

  1. Clone this repository: git clone https://github.com/ThoughtWorksInc/OpenStack-EC2-Driver.git
  2. Runvagrant up from within the repository to create an Ubuntu virtualbox that will install devstack. This will take a couple minutes.
  3. vagrant ssh to ssh into the new machine
  4. Use vim /etc/nova/nova.conf to edit the nova configuration so that
    • the compute_driver is set to ec2.EC2Driver
    • under the [conductor] section, add the following line use_local = True
  5. Restart nova
  • ~/devstack/rejoin-stack.sh
  • go to the nova-cpu screen (ctrl+a, 6)
  • restart the process with ctrl+c, press up, and then enter
  • go to nova-api (screen 5), and repeat

The driver should now be loaded. The contents of the repository is mapped to /opt/stack/nova/nova/virt/ec2/, and you can edit it directly from your host computer with an IDE of your choice.

###Running Tests

  1. Moto can be used to mock the EC2 server. To install moto, run pip install moto.
  2. To optionally use Moto, run source /opt/stack/nova/nova/virt/ec2/tests/setup_moto.sh.
  3. ~/devstack/rejoin-stack.sh
  4. cd /opt/stack/nova/nova/virt/ec2/tests
  5. Use nosetests -s test_ec2driver.py
  6. To stop Moto, run source /opt/stack/nova/nova/virt/ec2/tests/shutdown_moto.sh.

###Important Notes In Amazons EC2 there is no concept of suspend and resume on instances. Therefore, we simply stop EC2 instances when suspended and start the instances when resumed, we do the same on pause and un-pause.

##To Be Continued