summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bzrignore1
-rw-r--r--Authors1
-rwxr-xr-xbin/nova-ajax-console-proxy14
-rwxr-xr-xbin/nova-api2
-rwxr-xr-xbin/nova-manage2
-rw-r--r--doc/.autogenerated406
-rw-r--r--doc/build/html/.buildinfo4
-rw-r--r--doc/source/adminguide/distros/others.rst88
-rw-r--r--doc/source/adminguide/distros/ubuntu.10.04.rst40
-rw-r--r--doc/source/adminguide/distros/ubuntu.10.10.rst41
-rw-r--r--doc/source/adminguide/flags.rst23
-rw-r--r--doc/source/adminguide/multi.node.install.rst392
-rw-r--r--doc/source/adminguide/single.node.install.rst362
-rw-r--r--doc/source/api/autoindex.rst138
-rw-r--r--doc/source/api/nova..adminclient.rst6
-rw-r--r--doc/source/api/nova..api.direct.rst6
-rw-r--r--doc/source/api/nova..api.ec2.admin.rst6
-rw-r--r--doc/source/api/nova..api.ec2.apirequest.rst6
-rw-r--r--doc/source/api/nova..api.ec2.cloud.rst6
-rw-r--r--doc/source/api/nova..api.ec2.metadatarequesthandler.rst6
-rw-r--r--doc/source/api/nova..api.openstack.auth.rst6
-rw-r--r--doc/source/api/nova..api.openstack.backup_schedules.rst6
-rw-r--r--doc/source/api/nova..api.openstack.common.rst6
-rw-r--r--doc/source/api/nova..api.openstack.consoles.rst6
-rw-r--r--doc/source/api/nova..api.openstack.faults.rst6
-rw-r--r--doc/source/api/nova..api.openstack.flavors.rst6
-rw-r--r--doc/source/api/nova..api.openstack.images.rst6
-rw-r--r--doc/source/api/nova..api.openstack.servers.rst6
-rw-r--r--doc/source/api/nova..api.openstack.shared_ip_groups.rst6
-rw-r--r--doc/source/api/nova..api.openstack.zones.rst6
-rw-r--r--doc/source/api/nova..auth.dbdriver.rst6
-rw-r--r--doc/source/api/nova..auth.fakeldap.rst6
-rw-r--r--doc/source/api/nova..auth.ldapdriver.rst6
-rw-r--r--doc/source/api/nova..auth.manager.rst6
-rw-r--r--doc/source/api/nova..auth.signer.rst6
-rw-r--r--doc/source/api/nova..cloudpipe.pipelib.rst6
-rw-r--r--doc/source/api/nova..compute.api.rst6
-rw-r--r--doc/source/api/nova..compute.instance_types.rst6
-rw-r--r--doc/source/api/nova..compute.manager.rst6
-rw-r--r--doc/source/api/nova..compute.monitor.rst6
-rw-r--r--doc/source/api/nova..compute.power_state.rst6
-rw-r--r--doc/source/api/nova..console.api.rst6
-rw-r--r--doc/source/api/nova..console.fake.rst6
-rw-r--r--doc/source/api/nova..console.manager.rst6
-rw-r--r--doc/source/api/nova..console.xvp.rst6
-rw-r--r--doc/source/api/nova..context.rst6
-rw-r--r--doc/source/api/nova..crypto.rst6
-rw-r--r--doc/source/api/nova..db.api.rst6
-rw-r--r--doc/source/api/nova..db.base.rst6
-rw-r--r--doc/source/api/nova..db.migration.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.api.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migrate_repo.manage.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.migration.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.models.rst6
-rw-r--r--doc/source/api/nova..db.sqlalchemy.session.rst6
-rw-r--r--doc/source/api/nova..exception.rst6
-rw-r--r--doc/source/api/nova..fakememcache.rst6
-rw-r--r--doc/source/api/nova..fakerabbit.rst6
-rw-r--r--doc/source/api/nova..flags.rst6
-rw-r--r--doc/source/api/nova..image.glance.rst6
-rw-r--r--doc/source/api/nova..image.local.rst6
-rw-r--r--doc/source/api/nova..image.s3.rst6
-rw-r--r--doc/source/api/nova..image.service.rst6
-rw-r--r--doc/source/api/nova..log.rst6
-rw-r--r--doc/source/api/nova..manager.rst6
-rw-r--r--doc/source/api/nova..network.api.rst6
-rw-r--r--doc/source/api/nova..network.linux_net.rst6
-rw-r--r--doc/source/api/nova..network.manager.rst6
-rw-r--r--doc/source/api/nova..objectstore.bucket.rst6
-rw-r--r--doc/source/api/nova..objectstore.handler.rst6
-rw-r--r--doc/source/api/nova..objectstore.image.rst6
-rw-r--r--doc/source/api/nova..objectstore.stored.rst6
-rw-r--r--doc/source/api/nova..quota.rst6
-rw-r--r--doc/source/api/nova..rpc.rst6
-rw-r--r--doc/source/api/nova..scheduler.chance.rst6
-rw-r--r--doc/source/api/nova..scheduler.driver.rst6
-rw-r--r--doc/source/api/nova..scheduler.manager.rst6
-rw-r--r--doc/source/api/nova..scheduler.simple.rst6
-rw-r--r--doc/source/api/nova..scheduler.zone.rst6
-rw-r--r--doc/source/api/nova..service.rst6
-rw-r--r--doc/source/api/nova..test.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.fakes.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_adminapi.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_api.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_auth.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_common.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_faults.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_flavors.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_images.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_ratelimiting.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_servers.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_shared_ip_groups.rst6
-rw-r--r--doc/source/api/nova..tests.api.openstack.test_zones.rst6
-rw-r--r--doc/source/api/nova..tests.api.test_wsgi.rst6
-rw-r--r--doc/source/api/nova..tests.db.fakes.rst6
-rw-r--r--doc/source/api/nova..tests.declare_flags.rst6
-rw-r--r--doc/source/api/nova..tests.fake_flags.rst6
-rw-r--r--doc/source/api/nova..tests.glance.stubs.rst6
-rw-r--r--doc/source/api/nova..tests.hyperv_unittest.rst6
-rw-r--r--doc/source/api/nova..tests.objectstore_unittest.rst6
-rw-r--r--doc/source/api/nova..tests.real_flags.rst6
-rw-r--r--doc/source/api/nova..tests.runtime_flags.rst6
-rw-r--r--doc/source/api/nova..tests.test_access.rst6
-rw-r--r--doc/source/api/nova..tests.test_api.rst6
-rw-r--r--doc/source/api/nova..tests.test_auth.rst6
-rw-r--r--doc/source/api/nova..tests.test_cloud.rst6
-rw-r--r--doc/source/api/nova..tests.test_compute.rst6
-rw-r--r--doc/source/api/nova..tests.test_console.rst6
-rw-r--r--doc/source/api/nova..tests.test_direct.rst6
-rw-r--r--doc/source/api/nova..tests.test_flags.rst6
-rw-r--r--doc/source/api/nova..tests.test_localization.rst6
-rw-r--r--doc/source/api/nova..tests.test_log.rst6
-rw-r--r--doc/source/api/nova..tests.test_middleware.rst6
-rw-r--r--doc/source/api/nova..tests.test_misc.rst6
-rw-r--r--doc/source/api/nova..tests.test_network.rst6
-rw-r--r--doc/source/api/nova..tests.test_quota.rst6
-rw-r--r--doc/source/api/nova..tests.test_rpc.rst6
-rw-r--r--doc/source/api/nova..tests.test_scheduler.rst6
-rw-r--r--doc/source/api/nova..tests.test_service.rst6
-rw-r--r--doc/source/api/nova..tests.test_twistd.rst6
-rw-r--r--doc/source/api/nova..tests.test_virt.rst6
-rw-r--r--doc/source/api/nova..tests.test_volume.rst6
-rw-r--r--doc/source/api/nova..tests.test_xenapi.rst6
-rw-r--r--doc/source/api/nova..tests.xenapi.stubs.rst6
-rw-r--r--doc/source/api/nova..twistd.rst6
-rw-r--r--doc/source/api/nova..utils.rst6
-rw-r--r--doc/source/api/nova..version.rst6
-rw-r--r--doc/source/api/nova..virt.connection.rst6
-rw-r--r--doc/source/api/nova..virt.disk.rst6
-rw-r--r--doc/source/api/nova..virt.fake.rst6
-rw-r--r--doc/source/api/nova..virt.hyperv.rst6
-rw-r--r--doc/source/api/nova..virt.images.rst6
-rw-r--r--doc/source/api/nova..virt.libvirt_conn.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.fake.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.network_utils.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.vm_utils.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.vmops.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.volume_utils.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi.volumeops.rst6
-rw-r--r--doc/source/api/nova..virt.xenapi_conn.rst6
-rw-r--r--doc/source/api/nova..volume.api.rst6
-rw-r--r--doc/source/api/nova..volume.driver.rst6
-rw-r--r--doc/source/api/nova..volume.manager.rst6
-rw-r--r--doc/source/api/nova..volume.san.rst6
-rw-r--r--doc/source/api/nova..wsgi.rst6
-rw-r--r--doc/source/community.rst12
-rw-r--r--doc/source/index.rst20
-rw-r--r--doc/source/object.model.rst14
-rw-r--r--doc/source/quickstart.rst2
-rw-r--r--doc/source/runnova/binaries.rst (renamed from doc/source/adminguide/binaries.rst)4
-rw-r--r--doc/source/runnova/euca2ools.rst (renamed from doc/source/adminguide/euca2ools.rst)0
-rw-r--r--doc/source/runnova/flags.rst193
-rw-r--r--doc/source/runnova/getting.started.rst (renamed from doc/source/adminguide/getting.started.rst)15
-rw-r--r--doc/source/runnova/index.rst (renamed from doc/source/adminguide/index.rst)15
-rw-r--r--doc/source/runnova/managing.images.rst (renamed from doc/source/adminguide/managing.images.rst)0
-rw-r--r--doc/source/runnova/managing.instances.rst (renamed from doc/source/adminguide/managing.instances.rst)0
-rw-r--r--doc/source/runnova/managing.networks.rst (renamed from doc/source/adminguide/managing.networks.rst)0
-rw-r--r--doc/source/runnova/managing.projects.rst (renamed from doc/source/adminguide/managing.projects.rst)0
-rw-r--r--doc/source/runnova/managing.users.rst (renamed from doc/source/adminguide/managing.users.rst)0
-rw-r--r--doc/source/runnova/managingsecurity.rst (renamed from doc/source/adminguide/managingsecurity.rst)0
-rw-r--r--doc/source/runnova/monitoring.rst (renamed from doc/source/adminguide/monitoring.rst)0
-rw-r--r--doc/source/runnova/network.flat.rst (renamed from doc/source/adminguide/network.flat.rst)0
-rw-r--r--doc/source/runnova/network.vlan.rst (renamed from doc/source/adminguide/network.vlan.rst)0
-rw-r--r--doc/source/runnova/nova.manage.rst (renamed from doc/source/adminguide/nova.manage.rst)0
-rw-r--r--nova/api/openstack/auth.py8
-rw-r--r--nova/db/api.py5
-rw-r--r--nova/db/sqlalchemy/api.py14
-rw-r--r--nova/network/manager.py143
-rw-r--r--nova/rpc.py13
-rw-r--r--nova/tests/api/openstack/test_auth.py28
-rw-r--r--nova/virt/disk.py4
175 files changed, 1731 insertions, 1083 deletions
diff --git a/.bzrignore b/.bzrignore
index b271561a3..d22b62629 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -13,3 +13,4 @@ CA/serial*
CA/newcerts/*.pem
CA/private/cakey.pem
nova/vcsversion.py
+*.DS_Store
diff --git a/Authors b/Authors
index 494e614a0..a3c06dcf5 100644
--- a/Authors
+++ b/Authors
@@ -36,6 +36,7 @@ Joshua McKenty <jmckenty@gmail.com>
Justin Santa Barbara <justin@fathomdb.com>
Kei Masumoto <masumotok@nttdata.co.jp>
Ken Pepple <ken.pepple@gmail.com>
+Kevin L. Mitchell <kevin.mitchell@rackspace.com>
Koji Iida <iida.koji@lab.ntt.co.jp>
Lorin Hochstein <lorin@isi.edu>
Matt Dietz <matt.dietz@rackspace.com>
diff --git a/bin/nova-ajax-console-proxy b/bin/nova-ajax-console-proxy
index 1e11c6d58..bbd60bade 100755
--- a/bin/nova-ajax-console-proxy
+++ b/bin/nova-ajax-console-proxy
@@ -63,10 +63,16 @@ class AjaxConsoleProxy(object):
def __call__(self, env, start_response):
try:
- req_url = '%s://%s%s?%s' % (env['wsgi.url_scheme'],
- env['HTTP_HOST'],
- env['PATH_INFO'],
- env['QUERY_STRING'])
+ if 'QUERY_STRING' in env:
+ req_url = '%s://%s%s?%s' % (env['wsgi.url_scheme'],
+ env['HTTP_HOST'],
+ env['PATH_INFO'],
+ env['QUERY_STRING'])
+ else:
+ req_url = '%s://%s%s' % (env['wsgi.url_scheme'],
+ env['HTTP_HOST'],
+ env['PATH_INFO'])
+
if 'HTTP_REFERER' in env:
auth_url = env['HTTP_REFERER']
else:
diff --git a/bin/nova-api b/bin/nova-api
index cf140570a..14be4b841 100755
--- a/bin/nova-api
+++ b/bin/nova-api
@@ -36,6 +36,7 @@ gettext.install('nova', unicode=1)
from nova import flags
from nova import log as logging
+from nova import utils
from nova import version
from nova import wsgi
@@ -80,6 +81,7 @@ def run_app(paste_config_file):
if __name__ == '__main__':
+ utils.default_flagfile()
FLAGS(sys.argv)
logging.setup()
LOG.audit(_("Starting nova-api node (version %s)"),
diff --git a/bin/nova-manage b/bin/nova-manage
index b603c8b07..89332f2af 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -553,7 +553,7 @@ class ServiceCommands(object):
args: [host] [service]"""
ctxt = context.get_admin_context()
now = datetime.datetime.utcnow()
- services = db.service_get_all(ctxt)
+ services = db.service_get_all(ctxt) + db.service_get_all(ctxt, True)
if host:
services = [s for s in services if s['host'] == host]
if service:
diff --git a/doc/.autogenerated b/doc/.autogenerated
new file mode 100644
index 000000000..e4c98ec9b
--- /dev/null
+++ b/doc/.autogenerated
@@ -0,0 +1,406 @@
+source/api/nova..adminclient.rst
+source/api/nova..api.direct.rst
+source/api/nova..api.ec2.admin.rst
+source/api/nova..api.ec2.apirequest.rst
+source/api/nova..api.ec2.cloud.rst
+source/api/nova..api.ec2.metadatarequesthandler.rst
+source/api/nova..api.openstack.auth.rst
+source/api/nova..api.openstack.backup_schedules.rst
+source/api/nova..api.openstack.common.rst
+source/api/nova..api.openstack.consoles.rst
+source/api/nova..api.openstack.faults.rst
+source/api/nova..api.openstack.flavors.rst
+source/api/nova..api.openstack.images.rst
+source/api/nova..api.openstack.servers.rst
+source/api/nova..api.openstack.shared_ip_groups.rst
+source/api/nova..api.openstack.zones.rst
+source/api/nova..auth.dbdriver.rst
+source/api/nova..auth.fakeldap.rst
+source/api/nova..auth.ldapdriver.rst
+source/api/nova..auth.manager.rst
+source/api/nova..auth.signer.rst
+source/api/nova..cloudpipe.pipelib.rst
+source/api/nova..compute.api.rst
+source/api/nova..compute.instance_types.rst
+source/api/nova..compute.manager.rst
+source/api/nova..compute.monitor.rst
+source/api/nova..compute.power_state.rst
+source/api/nova..console.api.rst
+source/api/nova..console.fake.rst
+source/api/nova..console.manager.rst
+source/api/nova..console.xvp.rst
+source/api/nova..context.rst
+source/api/nova..crypto.rst
+source/api/nova..db.api.rst
+source/api/nova..db.base.rst
+source/api/nova..db.migration.rst
+source/api/nova..db.sqlalchemy.api.rst
+source/api/nova..db.sqlalchemy.migrate_repo.manage.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
+source/api/nova..db.sqlalchemy.migration.rst
+source/api/nova..db.sqlalchemy.models.rst
+source/api/nova..db.sqlalchemy.session.rst
+source/api/nova..exception.rst
+source/api/nova..fakememcache.rst
+source/api/nova..fakerabbit.rst
+source/api/nova..flags.rst
+source/api/nova..image.glance.rst
+source/api/nova..image.local.rst
+source/api/nova..image.s3.rst
+source/api/nova..image.service.rst
+source/api/nova..log.rst
+source/api/nova..manager.rst
+source/api/nova..network.api.rst
+source/api/nova..network.linux_net.rst
+source/api/nova..network.manager.rst
+source/api/nova..objectstore.bucket.rst
+source/api/nova..objectstore.handler.rst
+source/api/nova..objectstore.image.rst
+source/api/nova..objectstore.stored.rst
+source/api/nova..quota.rst
+source/api/nova..rpc.rst
+source/api/nova..scheduler.chance.rst
+source/api/nova..scheduler.driver.rst
+source/api/nova..scheduler.manager.rst
+source/api/nova..scheduler.simple.rst
+source/api/nova..scheduler.zone.rst
+source/api/nova..service.rst
+source/api/nova..test.rst
+source/api/nova..tests.api.openstack.fakes.rst
+source/api/nova..tests.api.openstack.test_adminapi.rst
+source/api/nova..tests.api.openstack.test_api.rst
+source/api/nova..tests.api.openstack.test_auth.rst
+source/api/nova..tests.api.openstack.test_common.rst
+source/api/nova..tests.api.openstack.test_faults.rst
+source/api/nova..tests.api.openstack.test_flavors.rst
+source/api/nova..tests.api.openstack.test_images.rst
+source/api/nova..tests.api.openstack.test_ratelimiting.rst
+source/api/nova..tests.api.openstack.test_servers.rst
+source/api/nova..tests.api.openstack.test_shared_ip_groups.rst
+source/api/nova..tests.api.openstack.test_zones.rst
+source/api/nova..tests.api.test_wsgi.rst
+source/api/nova..tests.db.fakes.rst
+source/api/nova..tests.declare_flags.rst
+source/api/nova..tests.fake_flags.rst
+source/api/nova..tests.glance.stubs.rst
+source/api/nova..tests.hyperv_unittest.rst
+source/api/nova..tests.objectstore_unittest.rst
+source/api/nova..tests.real_flags.rst
+source/api/nova..tests.runtime_flags.rst
+source/api/nova..tests.test_access.rst
+source/api/nova..tests.test_api.rst
+source/api/nova..tests.test_auth.rst
+source/api/nova..tests.test_cloud.rst
+source/api/nova..tests.test_compute.rst
+source/api/nova..tests.test_console.rst
+source/api/nova..tests.test_direct.rst
+source/api/nova..tests.test_flags.rst
+source/api/nova..tests.test_localization.rst
+source/api/nova..tests.test_log.rst
+source/api/nova..tests.test_middleware.rst
+source/api/nova..tests.test_misc.rst
+source/api/nova..tests.test_network.rst
+source/api/nova..tests.test_quota.rst
+source/api/nova..tests.test_rpc.rst
+source/api/nova..tests.test_scheduler.rst
+source/api/nova..tests.test_service.rst
+source/api/nova..tests.test_twistd.rst
+source/api/nova..tests.test_virt.rst
+source/api/nova..tests.test_volume.rst
+source/api/nova..tests.test_xenapi.rst
+source/api/nova..tests.xenapi.stubs.rst
+source/api/nova..twistd.rst
+source/api/nova..utils.rst
+source/api/nova..version.rst
+source/api/nova..virt.connection.rst
+source/api/nova..virt.disk.rst
+source/api/nova..virt.fake.rst
+source/api/nova..virt.hyperv.rst
+source/api/nova..virt.images.rst
+source/api/nova..virt.libvirt_conn.rst
+source/api/nova..virt.xenapi.fake.rst
+source/api/nova..virt.xenapi.network_utils.rst
+source/api/nova..virt.xenapi.vm_utils.rst
+source/api/nova..virt.xenapi.vmops.rst
+source/api/nova..virt.xenapi.volume_utils.rst
+source/api/nova..virt.xenapi.volumeops.rst
+source/api/nova..virt.xenapi_conn.rst
+source/api/nova..volume.api.rst
+source/api/nova..volume.driver.rst
+source/api/nova..volume.manager.rst
+source/api/nova..volume.san.rst
+source/api/nova..wsgi.rst
+source/api/autoindex.rst
+source/api/nova..adminclient.rst
+source/api/nova..api.direct.rst
+source/api/nova..api.ec2.admin.rst
+source/api/nova..api.ec2.apirequest.rst
+source/api/nova..api.ec2.cloud.rst
+source/api/nova..api.ec2.metadatarequesthandler.rst
+source/api/nova..api.openstack.auth.rst
+source/api/nova..api.openstack.backup_schedules.rst
+source/api/nova..api.openstack.common.rst
+source/api/nova..api.openstack.consoles.rst
+source/api/nova..api.openstack.faults.rst
+source/api/nova..api.openstack.flavors.rst
+source/api/nova..api.openstack.images.rst
+source/api/nova..api.openstack.servers.rst
+source/api/nova..api.openstack.shared_ip_groups.rst
+source/api/nova..api.openstack.zones.rst
+source/api/nova..auth.dbdriver.rst
+source/api/nova..auth.fakeldap.rst
+source/api/nova..auth.ldapdriver.rst
+source/api/nova..auth.manager.rst
+source/api/nova..auth.signer.rst
+source/api/nova..cloudpipe.pipelib.rst
+source/api/nova..compute.api.rst
+source/api/nova..compute.instance_types.rst
+source/api/nova..compute.manager.rst
+source/api/nova..compute.monitor.rst
+source/api/nova..compute.power_state.rst
+source/api/nova..console.api.rst
+source/api/nova..console.fake.rst
+source/api/nova..console.manager.rst
+source/api/nova..console.xvp.rst
+source/api/nova..context.rst
+source/api/nova..crypto.rst
+source/api/nova..db.api.rst
+source/api/nova..db.base.rst
+source/api/nova..db.migration.rst
+source/api/nova..db.sqlalchemy.api.rst
+source/api/nova..db.sqlalchemy.migrate_repo.manage.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
+source/api/nova..db.sqlalchemy.migration.rst
+source/api/nova..db.sqlalchemy.models.rst
+source/api/nova..db.sqlalchemy.session.rst
+source/api/nova..exception.rst
+source/api/nova..fakememcache.rst
+source/api/nova..fakerabbit.rst
+source/api/nova..flags.rst
+source/api/nova..image.glance.rst
+source/api/nova..image.local.rst
+source/api/nova..image.s3.rst
+source/api/nova..image.service.rst
+source/api/nova..log.rst
+source/api/nova..manager.rst
+source/api/nova..network.api.rst
+source/api/nova..network.linux_net.rst
+source/api/nova..network.manager.rst
+source/api/nova..objectstore.bucket.rst
+source/api/nova..objectstore.handler.rst
+source/api/nova..objectstore.image.rst
+source/api/nova..objectstore.stored.rst
+source/api/nova..quota.rst
+source/api/nova..rpc.rst
+source/api/nova..scheduler.chance.rst
+source/api/nova..scheduler.driver.rst
+source/api/nova..scheduler.manager.rst
+source/api/nova..scheduler.simple.rst
+source/api/nova..scheduler.zone.rst
+source/api/nova..service.rst
+source/api/nova..test.rst
+source/api/nova..tests.api.openstack.fakes.rst
+source/api/nova..tests.api.openstack.test_adminapi.rst
+source/api/nova..tests.api.openstack.test_api.rst
+source/api/nova..tests.api.openstack.test_auth.rst
+source/api/nova..tests.api.openstack.test_common.rst
+source/api/nova..tests.api.openstack.test_faults.rst
+source/api/nova..tests.api.openstack.test_flavors.rst
+source/api/nova..tests.api.openstack.test_images.rst
+source/api/nova..tests.api.openstack.test_ratelimiting.rst
+source/api/nova..tests.api.openstack.test_servers.rst
+source/api/nova..tests.api.openstack.test_shared_ip_groups.rst
+source/api/nova..tests.api.openstack.test_zones.rst
+source/api/nova..tests.api.test_wsgi.rst
+source/api/nova..tests.db.fakes.rst
+source/api/nova..tests.declare_flags.rst
+source/api/nova..tests.fake_flags.rst
+source/api/nova..tests.glance.stubs.rst
+source/api/nova..tests.hyperv_unittest.rst
+source/api/nova..tests.objectstore_unittest.rst
+source/api/nova..tests.real_flags.rst
+source/api/nova..tests.runtime_flags.rst
+source/api/nova..tests.test_access.rst
+source/api/nova..tests.test_api.rst
+source/api/nova..tests.test_auth.rst
+source/api/nova..tests.test_cloud.rst
+source/api/nova..tests.test_compute.rst
+source/api/nova..tests.test_console.rst
+source/api/nova..tests.test_direct.rst
+source/api/nova..tests.test_flags.rst
+source/api/nova..tests.test_localization.rst
+source/api/nova..tests.test_log.rst
+source/api/nova..tests.test_middleware.rst
+source/api/nova..tests.test_misc.rst
+source/api/nova..tests.test_network.rst
+source/api/nova..tests.test_quota.rst
+source/api/nova..tests.test_rpc.rst
+source/api/nova..tests.test_scheduler.rst
+source/api/nova..tests.test_service.rst
+source/api/nova..tests.test_twistd.rst
+source/api/nova..tests.test_virt.rst
+source/api/nova..tests.test_volume.rst
+source/api/nova..tests.test_xenapi.rst
+source/api/nova..tests.xenapi.stubs.rst
+source/api/nova..twistd.rst
+source/api/nova..utils.rst
+source/api/nova..version.rst
+source/api/nova..virt.connection.rst
+source/api/nova..virt.disk.rst
+source/api/nova..virt.fake.rst
+source/api/nova..virt.hyperv.rst
+source/api/nova..virt.images.rst
+source/api/nova..virt.libvirt_conn.rst
+source/api/nova..virt.xenapi.fake.rst
+source/api/nova..virt.xenapi.network_utils.rst
+source/api/nova..virt.xenapi.vm_utils.rst
+source/api/nova..virt.xenapi.vmops.rst
+source/api/nova..virt.xenapi.volume_utils.rst
+source/api/nova..virt.xenapi.volumeops.rst
+source/api/nova..virt.xenapi_conn.rst
+source/api/nova..volume.api.rst
+source/api/nova..volume.driver.rst
+source/api/nova..volume.manager.rst
+source/api/nova..volume.san.rst
+source/api/nova..wsgi.rst
+source/api/nova..adminclient.rst
+source/api/nova..api.direct.rst
+source/api/nova..api.ec2.admin.rst
+source/api/nova..api.ec2.apirequest.rst
+source/api/nova..api.ec2.cloud.rst
+source/api/nova..api.ec2.metadatarequesthandler.rst
+source/api/nova..api.openstack.auth.rst
+source/api/nova..api.openstack.backup_schedules.rst
+source/api/nova..api.openstack.common.rst
+source/api/nova..api.openstack.consoles.rst
+source/api/nova..api.openstack.faults.rst
+source/api/nova..api.openstack.flavors.rst
+source/api/nova..api.openstack.images.rst
+source/api/nova..api.openstack.servers.rst
+source/api/nova..api.openstack.shared_ip_groups.rst
+source/api/nova..api.openstack.zones.rst
+source/api/nova..auth.dbdriver.rst
+source/api/nova..auth.fakeldap.rst
+source/api/nova..auth.ldapdriver.rst
+source/api/nova..auth.manager.rst
+source/api/nova..auth.signer.rst
+source/api/nova..cloudpipe.pipelib.rst
+source/api/nova..compute.api.rst
+source/api/nova..compute.instance_types.rst
+source/api/nova..compute.manager.rst
+source/api/nova..compute.monitor.rst
+source/api/nova..compute.power_state.rst
+source/api/nova..console.api.rst
+source/api/nova..console.fake.rst
+source/api/nova..console.manager.rst
+source/api/nova..console.xvp.rst
+source/api/nova..context.rst
+source/api/nova..crypto.rst
+source/api/nova..db.api.rst
+source/api/nova..db.base.rst
+source/api/nova..db.migration.rst
+source/api/nova..db.sqlalchemy.api.rst
+source/api/nova..db.sqlalchemy.migrate_repo.manage.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
+source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
+source/api/nova..db.sqlalchemy.migration.rst
+source/api/nova..db.sqlalchemy.models.rst
+source/api/nova..db.sqlalchemy.session.rst
+source/api/nova..exception.rst
+source/api/nova..fakememcache.rst
+source/api/nova..fakerabbit.rst
+source/api/nova..flags.rst
+source/api/nova..image.glance.rst
+source/api/nova..image.local.rst
+source/api/nova..image.s3.rst
+source/api/nova..image.service.rst
+source/api/nova..log.rst
+source/api/nova..manager.rst
+source/api/nova..network.api.rst
+source/api/nova..network.linux_net.rst
+source/api/nova..network.manager.rst
+source/api/nova..objectstore.bucket.rst
+source/api/nova..objectstore.handler.rst
+source/api/nova..objectstore.image.rst
+source/api/nova..objectstore.stored.rst
+source/api/nova..quota.rst
+source/api/nova..rpc.rst
+source/api/nova..scheduler.chance.rst
+source/api/nova..scheduler.driver.rst
+source/api/nova..scheduler.manager.rst
+source/api/nova..scheduler.simple.rst
+source/api/nova..scheduler.zone.rst
+source/api/nova..service.rst
+source/api/nova..test.rst
+source/api/nova..tests.api.openstack.fakes.rst
+source/api/nova..tests.api.openstack.test_adminapi.rst
+source/api/nova..tests.api.openstack.test_api.rst
+source/api/nova..tests.api.openstack.test_auth.rst
+source/api/nova..tests.api.openstack.test_common.rst
+source/api/nova..tests.api.openstack.test_faults.rst
+source/api/nova..tests.api.openstack.test_flavors.rst
+source/api/nova..tests.api.openstack.test_images.rst
+source/api/nova..tests.api.openstack.test_ratelimiting.rst
+source/api/nova..tests.api.openstack.test_servers.rst
+source/api/nova..tests.api.openstack.test_shared_ip_groups.rst
+source/api/nova..tests.api.openstack.test_zones.rst
+source/api/nova..tests.api.test_wsgi.rst
+source/api/nova..tests.db.fakes.rst
+source/api/nova..tests.declare_flags.rst
+source/api/nova..tests.fake_flags.rst
+source/api/nova..tests.glance.stubs.rst
+source/api/nova..tests.hyperv_unittest.rst
+source/api/nova..tests.objectstore_unittest.rst
+source/api/nova..tests.real_flags.rst
+source/api/nova..tests.runtime_flags.rst
+source/api/nova..tests.test_access.rst
+source/api/nova..tests.test_api.rst
+source/api/nova..tests.test_auth.rst
+source/api/nova..tests.test_cloud.rst
+source/api/nova..tests.test_compute.rst
+source/api/nova..tests.test_console.rst
+source/api/nova..tests.test_direct.rst
+source/api/nova..tests.test_flags.rst
+source/api/nova..tests.test_localization.rst
+source/api/nova..tests.test_log.rst
+source/api/nova..tests.test_middleware.rst
+source/api/nova..tests.test_misc.rst
+source/api/nova..tests.test_network.rst
+source/api/nova..tests.test_quota.rst
+source/api/nova..tests.test_rpc.rst
+source/api/nova..tests.test_scheduler.rst
+source/api/nova..tests.test_service.rst
+source/api/nova..tests.test_twistd.rst
+source/api/nova..tests.test_virt.rst
+source/api/nova..tests.test_volume.rst
+source/api/nova..tests.test_xenapi.rst
+source/api/nova..tests.xenapi.stubs.rst
+source/api/nova..twistd.rst
+source/api/nova..utils.rst
+source/api/nova..version.rst
+source/api/nova..virt.connection.rst
+source/api/nova..virt.disk.rst
+source/api/nova..virt.fake.rst
+source/api/nova..virt.hyperv.rst
+source/api/nova..virt.images.rst
+source/api/nova..virt.libvirt_conn.rst
+source/api/nova..virt.xenapi.fake.rst
+source/api/nova..virt.xenapi.network_utils.rst
+source/api/nova..virt.xenapi.vm_utils.rst
+source/api/nova..virt.xenapi.vmops.rst
+source/api/nova..virt.xenapi.volume_utils.rst
+source/api/nova..virt.xenapi.volumeops.rst
+source/api/nova..virt.xenapi_conn.rst
+source/api/nova..volume.api.rst
+source/api/nova..volume.driver.rst
+source/api/nova..volume.manager.rst
+source/api/nova..volume.san.rst
+source/api/nova..wsgi.rst
diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo
new file mode 100644
index 000000000..091736d4f
--- /dev/null
+++ b/doc/build/html/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 2a2fe6198f4be4a4d6f289b09d16d74a
+tags: fbb0d17656682115ca4d033fb2f83ba1
diff --git a/doc/source/adminguide/distros/others.rst b/doc/source/adminguide/distros/others.rst
deleted file mode 100644
index ec14a9abb..000000000
--- a/doc/source/adminguide/distros/others.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-Installation on other distros (like Debian, Fedora or CentOS )
-==============================================================
-
-Feel free to add additional notes for additional distributions.
-
-Nova installation on CentOS 5.5
--------------------------------
-
-These are notes for installing OpenStack Compute on CentOS 5.5 and will be updated but are NOT final. Please test for accuracy and edit as you see fit.
-
-The principle botleneck for running nova on centos in python 2.6. Nova is written in python 2.6 and CentOS 5.5. comes with python 2.4. We can not update python system wide as some core utilities (like yum) is dependent on python 2.4. Also very few python 2.6 modules are available in centos/epel repos.
-
-Pre-reqs
---------
-
-Add euca2ools and EPEL repo first.::
-
- cat >/etc/yum.repos.d/euca2ools.repo << EUCA_REPO_CONF_EOF
- [eucalyptus]
- name=euca2ools
- baseurl=http://www.eucalyptussoftware.com/downloads/repo/euca2ools/1.3.1/yum/centos/
- enabled=1
- gpgcheck=0
-
- EUCA_REPO_CONF_EOF
-
-::
-
- rpm -Uvh 'http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm'
-
-Now install python2.6, kvm and few other libraries through yum::
-
- yum -y install dnsmasq vblade kpartx kvm gawk iptables ebtables bzr screen euca2ools curl rabbitmq-server gcc gcc-c++ autoconf automake swig openldap openldap-servers nginx python26 python26-devel python26-distribute git openssl-devel python26-tools mysql-server qemu kmod-kvm libxml2 libxslt libxslt-devel mysql-devel
-
-Then download the latest aoetools and then build(and install) it, check for the latest version on sourceforge, exact url will change if theres a new release::
-
- wget -c http://sourceforge.net/projects/aoetools/files/aoetools/32/aoetools-32.tar.gz/download
- tar -zxvf aoetools-32.tar.gz
- cd aoetools-32
- make
- make install
-
-Add the udev rules for aoetools::
-
- cat > /etc/udev/rules.d/60-aoe.rules << AOE_RULES_EOF
- SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
- SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
- SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
- SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="0220"
- # aoe block devices
- KERNEL=="etherd*", NAME="%k", GROUP="disk"
- AOE_RULES_EOF
-
-Load the kernel modules::
-
- modprobe aoe
-
-::
-
- modprobe kvm
-
-Now, install the python modules using easy_install-2.6, this ensures the installation are done against python 2.6
-
-
-easy_install-2.6 twisted sqlalchemy mox greenlet carrot daemon eventlet tornado IPy routes lxml MySQL-python
-python-gflags need to be downloaded and installed manually, use these commands (check the exact url for newer releases ):
-
-::
-
- wget -c "http://python-gflags.googlecode.com/files/python-gflags-1.4.tar.gz"
- tar -zxvf python-gflags-1.4.tar.gz
- cd python-gflags-1.4
- python2.6 setup.py install
- cd ..
-
-Same for python2.6-libxml2 module, notice the --with-python and --prefix flags. --with-python ensures we are building it against python2.6 (otherwise it will build against python2.4, which is default)::
-
- wget -c "ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz"
- tar -zxvf libxml2-2.7.3.tar.gz
- cd libxml2-2.7.3
- ./configure --with-python=/usr/bin/python26 --prefix=/usr
- make all
- make install
- cd python
- python2.6 setup.py install
- cd ..
-
-Once you've done this, continue at Step 3 here: :doc:`../single.node.install`
diff --git a/doc/source/adminguide/distros/ubuntu.10.04.rst b/doc/source/adminguide/distros/ubuntu.10.04.rst
deleted file mode 100644
index bd0693c46..000000000
--- a/doc/source/adminguide/distros/ubuntu.10.04.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-Installing on Ubuntu 10.04 (Lucid)
-==================================
-
-Step 1: Install dependencies
-----------------------------
-Grab the latest code from launchpad:
-
-::
-
- bzr clone lp:nova
-
-Here's a script you can use to install (and then run) Nova on Ubuntu or Debian (when using Debian, edit nova.sh to have USE_PPA=0):
-
-.. todo:: give a link to a stable releases page
-
-Step 2: Install dependencies
-----------------------------
-
-Nova requires rabbitmq for messaging, so install that first.
-
-*Note:* You must have sudo installed to run these commands as shown here.
-
-::
-
- sudo apt-get install rabbitmq-server
-
-
-You'll see messages starting with "Reading package lists... Done" and you must confirm by typing Y that you want to continue.
-
-If you're running on Ubuntu 10.04, you'll need to install Twisted and python-gflags which is included in the OpenStack PPA.
-
-::
-
- sudo apt-get install python-software-properties
- sudo add-apt-repository ppa:nova-core/trunk
- sudo apt-get update
- sudo apt-get install python-twisted python-gflags
-
-
-Once you've done this, continue at Step 3 here: :doc:`../single.node.install`
diff --git a/doc/source/adminguide/distros/ubuntu.10.10.rst b/doc/source/adminguide/distros/ubuntu.10.10.rst
deleted file mode 100644
index a3fa2def1..000000000
--- a/doc/source/adminguide/distros/ubuntu.10.10.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-Installing on Ubuntu 10.10 (Maverick)
-=====================================
-Single Machine Installation (Ubuntu 10.10)
-
-While we wouldn't expect you to put OpenStack Compute into production on a non-LTS version of Ubuntu, these instructions are up-to-date with the latest version of Ubuntu.
-
-Make sure you are running Ubuntu 10.10 so that the packages will be available. This install requires more than 70 MB of free disk space.
-
-These instructions are based on Soren Hansen's blog entry, Openstack on Maverick. A script is in progress as well.
-
-Step 1: Install required prerequisites
---------------------------------------
-Nova requires rabbitmq for messaging and redis for storing state (for now), so we'll install these first.::
-
- sudo apt-get install rabbitmq-server redis-server
-
-You'll see messages starting with "Reading package lists... Done" and you must confirm by typing Y that you want to continue.
-
-Step 2: Install Nova packages available in Maverick Meerkat
------------------------------------------------------------
-Type or copy/paste in the following line to get the packages that you use to run OpenStack Compute.::
-
- sudo apt-get install python-nova
- sudo apt-get install nova-api nova-objectstore nova-compute nova-scheduler nova-network euca2ools unzip
-
-You'll see messages starting with "Reading package lists... Done" and you must confirm by typing Y that you want to continue. This operation may take a while as many dependent packages will be installed. Note: there is a dependency problem with python-nova which can be worked around by installing first.
-
-When the installation is complete, you'll see the following lines confirming:::
-
- Adding system user `nova' (UID 106) ...
- Adding new user `nova' (UID 106) with group `nogroup' ...
- Not creating home directory `/var/lib/nova'.
- Setting up nova-scheduler (0.9.1~bzr331-0ubuntu2) ...
- * Starting nova scheduler nova-scheduler
- WARNING:root:Starting scheduler node
- ...done.
- Processing triggers for libc-bin ...
- ldconfig deferred processing now taking place
- Processing triggers for python-support ...
-
-Once you've done this, continue at Step 3 here: :doc:`../single.node.install`
diff --git a/doc/source/adminguide/flags.rst b/doc/source/adminguide/flags.rst
deleted file mode 100644
index 072f0a1a5..000000000
--- a/doc/source/adminguide/flags.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-..
- Copyright 2010-2011 United States Government as represented by the
- Administrator of the National Aeronautics and Space Administration.
- All Rights Reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
-
-Flags and Flagfiles
-===================
-
-* python-gflags
-* flagfiles
-* list of flags by component (see concepts list)
diff --git a/doc/source/adminguide/multi.node.install.rst b/doc/source/adminguide/multi.node.install.rst
deleted file mode 100644
index c53455e3e..000000000
--- a/doc/source/adminguide/multi.node.install.rst
+++ /dev/null
@@ -1,392 +0,0 @@
-
-Installing Nova on Multiple Servers
-===================================
-
-When you move beyond evaluating the technology and into building an actual
-production environment, you will need to know how to configure your datacenter
-and how to deploy components across your clusters. This guide should help you
-through that process.
-
-You can install multiple nodes to increase performance and availability of the OpenStack Compute installation.
-
-This setup is based on an Ubuntu Lucid 10.04 installation with the latest updates. Most of this works around issues that need to be resolved either in packaging or bug-fixing. It also needs to eventually be generalized, but the intent here is to get the multi-node configuration bootstrapped so folks can move forward.
-
-For a starting architecture, these instructions describing installing a cloud controller node and a compute node. The cloud controller node contains the nova- services plus the database. The compute node installs all the nova-services but then refers to the database installation, which is hosted by the cloud controller node.
-
-Requirements for a multi-node installation
-------------------------------------------
-
-* You need a real database, compatible with SQLAlchemy (mysql, postgresql) There's not a specific reason to choose one over another, it basically depends what you know. MySQL is easier to do High Availability (HA) with, but people may already know PostgreSQL. We should document both configurations, though.
-* For a recommended HA setup, consider a MySQL master/slave replication, with as many slaves as you like, and probably a heartbeat to kick one of the slaves into being a master if it dies.
-* For performance optimization, split reads and writes to the database. MySQL proxy is the easiest way to make this work if running MySQL.
-
-Assumptions
------------
-
-* Networking is configured between/through the physical machines on a single subnet.
-* Installation and execution are both performed by ROOT user.
-
-
-Scripted Installation
----------------------
-A script available to get your OpenStack cloud running quickly. You can copy the file to the server where you want to install OpenStack Compute services - typically you would install a compute node and a cloud controller node.
-
-You must run these scripts with root permissions.
-
-From a server you intend to use as a cloud controller node, use this command to get the cloud controller script. This script is a work-in-progress and the maintainer plans to keep it up, but it is offered "as-is." Feel free to collaborate on it in GitHub - https://github.com/dubsquared/OpenStack-NOVA-Installer-Script/.
-
-::
-
- wget --no-check-certificate https://github.com/dubsquared/OpenStack-NOVA-Installer-Script/raw/master/nova-CC-install-v1.1.sh
-
-Ensure you can execute the script by modifying the permissions on the script file.
-
-::
-
- sudo chmod 755 nova-CC-install-v1.1.sh
-
-
-::
-
- sudo ./nova-CC-install-v1.1.sh
-
-Next, from a server you intend to use as a compute node (doesn't contain the database), install the nova services. You can use the nova-NODE-installer.sh script from the above github-hosted project for the compute node installation.
-
-Copy the nova.conf from the cloud controller node to the compute node.
-
-Restart related services::
-
- libvirtd restart; service nova-network restart; service nova-compute restart; service nova-api restart; service nova-objectstore restart; service nova-scheduler restart
-
-You can go to the `Configuration section`_ for next steps.
-
-Manual Installation - Step-by-Step
-----------------------------------
-The following sections show you how to install Nova manually with a cloud controller node and a separate compute node. The cloud controller node contains the database plus all nova- services, and the compute node runs nova- services only.
-
-Cloud Controller Installation
-`````````````````````````````
-On the cloud controller node, you install nova services and the related helper applications, and then configure with the nova.conf file. You will then copy the nova.conf file to the compute node, which you install as a second node in the `Compute Installation`_.
-
-Step 1 - Use apt-get to get the latest code
--------------------------------------------
-
-1. Setup Nova PPA with https://launchpad.net/~nova-core/+archive/trunk. The ‘python-software-properties’ package is a pre-requisite for setting up the nova package repo:
-
-::
-
- sudo apt-get install python-software-properties
- sudo add-apt-repository ppa:nova-core/trunk
-
-2. Run update.
-
-::
-
- sudo apt-get update
-
-3. Install python required packages, nova-packages, and helper apps.
-
-::
-
- sudo apt-get install python-greenlet python-mysqldb python-nova nova-common nova-doc nova-api nova-network nova-objectstore nova-scheduler nova-compute euca2ools unzip
-
-It is highly likely that there will be errors when the nova services come up since they are not yet configured. Don't worry, you're only at step 1!
-
-Step 2 Set up configuration file (installed in /etc/nova)
----------------------------------------------------------
-
-1. Nova development has consolidated all config files to nova.conf as of November 2010. There is a default set of options that are already configured in nova.conf:
-
-::
-
---daemonize=1
---dhcpbridge_flagfile=/etc/nova/nova.conf
---dhcpbridge=/usr/bin/nova-dhcpbridge
---logdir=/var/log/nova
---state_path=/var/lib/nova
-
-The following items ALSO need to be defined in /etc/nova/nova.conf. I’ve added some explanation of the variables, as comments CANNOT be in nova.conf. There seems to be an issue with nova-manage not processing the comments/whitespace correctly:
-
---sql_connection ### Location of Nova SQL DB
-
---s3_host ### This is where Nova is hosting the objectstore service, which will contain the VM images and buckets
-
---rabbit_host ### This is where the rabbit AMQP messaging service is hosted
-
---cc_host ### This is where the the nova-api service lives
-
---verbose ### Optional but very helpful during initial setup
-
---ec2_url ### The location to interface nova-api
-
---network_manager ### Many options here, discussed below. This is how your controller will communicate with additional Nova nodes and VMs:
-
-nova.network.manager.FlatManager # Simple, no-vlan networking type
-nova.network.manager. FlatDHCPManager # Flat networking with DHCP
-nova.network.manager.VlanManager # Vlan networking with DHCP – /DEFAULT/ if no network manager is defined in nova.conf
-
---fixed_range=<network/prefix> ### This will be the IP network that ALL the projects for future VM guests will reside on. E.g. 192.168.0.0/12
-
---network_size=<# of addrs> ### This is the total number of IP Addrs to use for VM guests, of all projects. E.g. 5000
-
-The following code can be cut and paste, and edited to your setup:
-
-Note: CC_ADDR=<the external IP address of your cloud controller>
-
-Detailed explanation of the following example is available above.
-
-::
-
---sql_connection=mysql://root:nova@<CC_ADDR>/nova
---s3_host=<CC_ADDR>
---rabbit_host=<CC_ADDR>
---cc_host=<CC_ADDR>
---verbose
---ec2_url=http://<CC_ADDR>:8773/services/Cloud
---network_manager=nova.network.manager.VlanManager
---fixed_range=<network/prefix>
---network_size=<# of addrs>
-
-2. Create a “nova” group, and set permissions::
-
- addgroup nova
-
-The Nova config file should have its owner set to root:nova, and mode set to 0644, since they contain your MySQL server's root password. ::
-
- chown -R root:nova /etc/nova
- chmod 644 /etc/nova/nova.conf
-
-Step 3 - Setup the SQL DB (MySQL for this setup)
-------------------------------------------------
-
-1. First you 'preseed' to bypass all the installation prompts::
-
- bash
- MYSQL_PASS=nova
- cat <<MYSQL_PRESEED | debconf-set-selections
- mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
- mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
- mysql-server-5.1 mysql-server/start_on_boot boolean true
- MYSQL_PRESEED
-
-2. Install MySQL::
-
- apt-get install -y mysql-server
-
-3. Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost to any::
-
- sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
- service mysql restart
-
-4. MySQL DB configuration:
-
-Create NOVA database::
-
- mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;'
-
-Update the DB to include user 'root'@'%' with super user privileges::
-
- mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;"
-
-Set mySQL root password::
-
- mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'root'@'%' = PASSWORD('$MYSQL_PASS');"
-
-Compute Node Installation
-`````````````````````````
-
-Repeat steps 1 and 2 from the Cloud Controller Installation section above, then configure the network for your Compute instances on the Compute node. Copy the nova.conf file from the Cloud Controller node to this node.
-
-Network Configuration
----------------------
-
-If you use FlatManager as your network manager (as opposed to VlanManager that is shown in the nova.conf example above), there are some additional networking changes you’ll have to make to ensure connectivity between your nodes and VMs. If you chose VlanManager or FlatDHCP, you may skip this section, as it’s set up for you automatically.
-
-Nova defaults to a bridge device named 'br100'. This needs to be created and somehow integrated into YOUR network. To keep things as simple as possible, have all the VM guests on the same network as the VM hosts (the compute nodes). To do so, set the compute node's external IP address to be on the bridge and add eth0 to that bridge. To do this, edit your network interfaces config to look like the following::
-
- < begin /etc/network/interfaces >
- # The loopback network interface
- auto lo
- iface lo inet loopback
-
- # Networking for NOVA
- auto br100
-
- iface br100 inet dhcp
- bridge_ports eth0
- bridge_stp off
- bridge_maxwait 0
- bridge_fd 0
- < end /etc/network/interfaces >
-
-Next, restart networking to apply the changes::
-
- sudo /etc/init.d/networking restart
-
-Configuration
-`````````````
-
-On the Compute node, you should continue with these configuration steps.
-
-Step 1 - Set up the Nova environment
-------------------------------------
-
-These are the commands you run to update the database if needed, and then set up a user and project::
-
- /usr/bin/python /usr/bin/nova-manage db sync
- /usr/bin/python /usr/bin/nova-manage user admin <user_name>
- /usr/bin/python /usr/bin/nova-manage project create <project_name> <user_name>
- /usr/bin/python /usr/bin/nova-manage network create <project-network> <number-of-networks-in-project> <IPs in project>
-
-Here is an example of what this looks like with real data::
-
- /usr/bin/python /usr/bin/nova-manage db sync
- /usr/bin/python /usr/bin/nova-manage user admin dub
- /usr/bin/python /usr/bin/nova-manage project create dubproject dub
- /usr/bin/python /usr/bin/nova-manage network create 192.168.0.0/24 1 255
-
-(I chose a /24 since that falls inside my /12 range I set in ‘fixed-range’ in nova.conf. Currently, there can only be one network, and I am using the max IP’s available in a /24. You can choose to use any valid amount that you would like.)
-
-Note: The nova-manage service assumes that the first IP address is your network (like 192.168.0.0), that the 2nd IP is your gateway (192.168.0.1), and that the broadcast is the very last IP in the range you defined (192.168.0.255). If this is not the case you will need to manually edit the sql db 'networks' table.o.
-
-On running the "nova-manage network create" command, entries are made in the 'networks' and 'fixed_ips' table. However, one of the networks listed in the 'networks' table needs to be marked as bridge in order for the code to know that a bridge exists. The Network is marked as bridged automatically based on the type of network manager selected. You only need to mark the network as a bridge if you chose FlatManager as your network type. More information can be found at the end of this document discussing setting up the bridge device.
-
-
-Step 2 - Create Nova certifications
------------------------------------
-
-1. Generate the certs as a zip file. These are the certs you will use to launch instances, bundle images, and all the other assorted api functions.
-
-::
-
- mkdir –p /root/creds
- /usr/bin/python /usr/bin/nova-manage project zipfile $NOVA_PROJECT $NOVA_PROJECT_USER /root/creds/novacreds.zip
-
-2. Unzip them in your home directory, and add them to your environment.
-
-::
-
- unzip /root/creds/novacreds.zip -d /root/creds/
- cat /root/creds/novarc >> ~/.bashrc
- source ~/.bashrc
-
-Step 3 - Restart all relevant services
---------------------------------------
-
-Restart all six services in total, just to cover the entire spectrum::
-
- libvirtd restart; service nova-network restart; service nova-compute restart; service nova-api restart; service nova-objectstore restart; service nova-scheduler restart
-
-Step 4 - Closing steps, and cleaning up
----------------------------------------
-
-One of the most commonly missed configuration areas is not allowing the proper access to VMs. Use the 'euca-authorize' command to enable access. Below, you will find the commands to allow 'ping' and 'ssh' to your VMs::
-
- euca-authorize -P icmp -t -1:-1 default
- euca-authorize -P tcp -p 22 default
-
-Another common issue is you cannot ping or SSH your instances after issusing the 'euca-authorize' commands. Something to look at is the amount of 'dnsmasq' processes that are running. If you have a running instance, check to see that TWO 'dnsmasq' processes are running. If not, perform the following::
-
- killall dnsmasq
- service nova-network restart
-
-To avoid issues with KVM and permissions with Nova, run the following commands to ensure we have VM's that are running optimally::
-
- chgrp kvm /dev/kvm
- chmod g+rwx /dev/kvm
-
-If you want to use the 10.04 Ubuntu Enterprise Cloud images that are readily available at http://uec-images.ubuntu.com/releases/10.04/release/, you may run into delays with booting. Any server that does not have nova-api running on it needs this iptables entry so that UEC images can get metadata info. On compute nodes, configure the iptables with this next step::
-
- # iptables -t nat -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $NOVA_API_IP:8773
-
-Testing the Installation
-````````````````````````
-
-You can confirm that your compute node is talking to your cloud controller. From the cloud controller, run this database query::
-
- mysql -u$MYSQL_USER -p$MYSQL_PASS nova -e 'select * from services;'
-
-In return, you should see something similar to this::
- +---------------------+---------------------+------------+---------+----+----------+----------------+-----------+--------------+----------+-------------------+
- | created_at | updated_at | deleted_at | deleted | id | host | binary | topic | report_count | disabled | availability_zone |
- +---------------------+---------------------+------------+---------+----+----------+----------------+-----------+--------------+----------+-------------------+
- | 2011-01-28 22:52:46 | 2011-02-03 06:55:48 | NULL | 0 | 1 | osdemo02 | nova-network | network | 46064 | 0 | nova |
- | 2011-01-28 22:52:48 | 2011-02-03 06:55:57 | NULL | 0 | 2 | osdemo02 | nova-compute | compute | 46056 | 0 | nova |
- | 2011-01-28 22:52:52 | 2011-02-03 06:55:50 | NULL | 0 | 3 | osdemo02 | nova-scheduler | scheduler | 46065 | 0 | nova |
- | 2011-01-29 23:49:29 | 2011-02-03 06:54:26 | NULL | 0 | 4 | osdemo01 | nova-compute | compute | 37050 | 0 | nova |
- | 2011-01-30 23:42:24 | 2011-02-03 06:55:44 | NULL | 0 | 9 | osdemo04 | nova-compute | compute | 28484 | 0 | nova |
- | 2011-01-30 21:27:28 | 2011-02-03 06:54:23 | NULL | 0 | 8 | osdemo05 | nova-compute | compute | 29284 | 0 | nova |
- +---------------------+---------------------+------------+---------+----+----------+----------------+-----------+--------------+----------+-------------------+
-You can see that 'osdemo0{1,2,4,5} are all running 'nova-compute.' When you start spinning up instances, they will allocate on any node that is running nova-compute from this list.
-
-You can then use `euca2ools` to test some items::
-
- euca-describe-images
- euca-describe-instances
-
-If you have issues with the API key, you may need to re-source your creds file::
-
- . /root/creds/novarc
-
-If you don’t get any immediate errors, you’re successfully making calls to your cloud!
-
-Spinning up a VM for Testing
-````````````````````````````
-
-(This excerpt is from Thierry Carrez's blog, with reference to http://wiki.openstack.org/GettingImages.)
-
-The image that you will use here will be a ttylinux image, so this is a limited function server. You will be able to ping and SSH to this instance, but it is in no way a full production VM.
-
-UPDATE: Due to `bug 661159 <https://bugs.launchpad.net/nova/+bug/661159>`_, we can’t use images without ramdisks yet, so we can’t use the classic Ubuntu cloud images from http://uec-images.ubuntu.com/releases/ yet. For the sake of this tutorial, we’ll use the `ttylinux images from Scott Moser instead <http://smoser.brickies.net/ubuntu/ttylinux-uec/>`_.
-
-Download the image, and publish to your bucket:
-
-::
-
- image="ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz"
- wget http://smoser.brickies.net/ubuntu/ttylinux-uec/$image
- uec-publish-tarball $image mybucket
-
-This will output three references, an "emi", an "eri" and an "eki." (Image, ramdisk, and kernel) The emi is the one we use to launch instances, so take note of this.
-
-Create a keypair to SSH to the server:
-
-::
-
- euca-add-keypair mykey > mykey.priv
-
- chmod 0600 mykey.priv
-
-Boot your instance:
-
-::
-
- euca-run-instances $emi -k mykey -t m1.tiny
-
-($emi is replaced with the output from the previous command)
-
-Checking status, and confirming communication:
-
-Once you have booted the instance, you can check the status the the `euca-describe-instances` command. Here you can view the instance ID, IP, and current status of the VM.
-
-::
-
- euca-describe-instances
-
-Once in a "running" state, you can use your SSH key connect:
-
-::
-
- ssh -i mykey.priv root@$ipaddress
-
-When you are ready to terminate the instance, you may do so with the `euca-terminate-instances` command:
-
-::
-
- euca-terminate-instances $instance-id
-
-You can determine the instance-id with `euca-describe-instances`, and the format is "i-" with a series of letter and numbers following: e.g. i-a4g9d.
-
-For more information in creating you own custom (production ready) instance images, please visit http://wiki.openstack.org/GettingImages for more information!
-
-Enjoy your new private cloud, and play responsibly!
diff --git a/doc/source/adminguide/single.node.install.rst b/doc/source/adminguide/single.node.install.rst
deleted file mode 100644
index ff43aa90b..000000000
--- a/doc/source/adminguide/single.node.install.rst
+++ /dev/null
@@ -1,362 +0,0 @@
-Installing Nova on a Single Host
-================================
-
-Nova can be run on a single machine, and it is recommended that new users practice managing this type of installation before graduating to multi node systems.
-
-The fastest way to get a test cloud running is through our :doc:`../quickstart`. But for more detail on installing the system read this doc.
-
-
-Step 1 and 2: Get the latest Nova code system software
-------------------------------------------------------
-
-Depending on your system, the method for accomplishing this varies
-
-.. toctree::
- :maxdepth: 1
-
- distros/ubuntu.10.04
- distros/ubuntu.10.10
- distros/others
-
-
-Step 3: Build and install Nova services
----------------------------------------
-
-Switch to the base nova source directory.
-
-Then type or copy/paste in the following line to compile the Python code for OpenStack Compute.
-
-::
-
- sudo python setup.py build
- sudo python setup.py install
-
-
-When the installation is complete, you'll see the following lines:
-
-::
-
- Installing nova-network script to /usr/local/bin
- Installing nova-volume script to /usr/local/bin
- Installing nova-objectstore script to /usr/local/bin
- Installing nova-manage script to /usr/local/bin
- Installing nova-scheduler script to /usr/local/bin
- Installing nova-dhcpbridge script to /usr/local/bin
- Installing nova-compute script to /usr/local/bin
- Installing nova-instancemonitor script to /usr/local/bin
- Installing nova-api script to /usr/local/bin
- Installing nova-import-canonical-imagestore script to /usr/local/bin
-
- Installed /usr/local/lib/python2.6/dist-packages/nova-2010.1-py2.6.egg
- Processing dependencies for nova==2010.1
- Finished processing dependencies for nova==2010.1
-
-
-Step 4: Create the Nova Database
---------------------------------
-Type or copy/paste in the following line to create your nova db::
-
- sudo nova-manage db sync
-
-Step 5: Create a Nova administrator
------------------------------------
-Type or copy/paste in the following line to create a user named "anne."::
-
- sudo nova-manage user admin anne
-
-You see an access key and a secret key export, such as these made-up ones:::
-
- export EC2_ACCESS_KEY=4e6498a2-blah-blah-blah-17d1333t97fd
- export EC2_SECRET_KEY=0a520304-blah-blah-blah-340sp34k05bbe9a7
-
-Step 6: Create the network
---------------------------
-
-Type or copy/paste in the following line to create a network prior to creating a project.
-
-::
-
- sudo nova-manage network create 10.0.0.0/8 1 64
-
-For this command, the IP address is the cidr notation for your netmask, such as 192.168.1.0/24. The value 1 is the total number of networks you want made, and the 64 value is the total number of ips in all networks.
-
-After running this command, entries are made in the 'networks' and 'fixed_ips' table in the database.
-
-Step 7: Create a project with the user you created
---------------------------------------------------
-Type or copy/paste in the following line to create a project named IRT (for Ice Road Truckers, of course) with the newly-created user named anne.
-
-::
-
- sudo nova-manage project create IRT anne
-
-::
-
- Generating RSA private key, 1024 bit long modulus
- .....++++++
- ..++++++
- e is 65537 (0x10001)
- Using configuration from ./openssl.cnf
- Check that the request matches the signature
- Signature ok
- The Subject's Distinguished Name is as follows
- countryName :PRINTABLE:'US'
- stateOrProvinceName :PRINTABLE:'California'
- localityName :PRINTABLE:'MountainView'
- organizationName :PRINTABLE:'AnsoLabs'
- organizationalUnitName:PRINTABLE:'NovaDev'
- commonName :PRINTABLE:'anne-2010-10-12T21:12:35Z'
- Certificate is to be certified until Oct 12 21:12:35 2011 GMT (365 days)
-
- Write out database with 1 new entries
- Data Base Updated
-
-
-Step 8: Unzip the nova.zip
---------------------------
-
-You should have a nova.zip file in your current working directory. Unzip it with this command:
-
-::
-
- unzip nova.zip
-
-
-You'll see these files extract.
-
-::
-
- Archive: nova.zip
- extracting: novarc
- extracting: pk.pem
- extracting: cert.pem
- extracting: nova-vpn.conf
- extracting: cacert.pem
-
-
-Step 9: Source the rc file
---------------------------
-Type or copy/paste the following to source the novarc file in your current working directory.
-
-::
-
- . novarc
-
-
-Step 10: Pat yourself on the back :)
------------------------------------
-Congratulations, your cloud is up and running, you’ve created an admin user, created a network, retrieved the user's credentials and put them in your environment.
-
-Now you need an image.
-
-
-Step 11: Get an image
---------------------
-To make things easier, we've provided a small image on the Rackspace CDN. Use this command to get it on your server.
-
-::
-
- wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz
-
-
-::
-
- --2010-10-12 21:40:55-- http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz
- Resolving cblah2.cdn.cloudfiles.rackspacecloud.com... 208.111.196.6, 208.111.196.7
- Connecting to cblah2.cdn.cloudfiles.rackspacecloud.com|208.111.196.6|:80... connected.
- HTTP request sent, awaiting response... 200 OK
- Length: 58520278 (56M) [application/x-gzip]
- Saving to: `images.tgz'
-
- 100%[======================================>] 58,520,278 14.1M/s in 3.9s
-
- 2010-10-12 21:40:59 (14.1 MB/s) - `images.tgz' saved [58520278/58520278]
-
-
-
-Step 12: Decompress the image file
-----------------------------------
-Use this command to extract the image files:::
-
- tar xvzf images.tgz
-
-You get a directory listing like so:::
-
- images
- |-- aki-lucid
- | |-- image
- | `-- info.json
- |-- ami-tiny
- | |-- image
- | `-- info.json
- `-- ari-lucid
- |-- image
- `-- info.json
-
-Step 13: Send commands to upload sample image to the cloud
-----------------------------------------------------------
-
-Type or copy/paste the following commands to create a manifest for the kernel.::
-
- euca-bundle-image -i images/aki-lucid/image -p kernel --kernel true
-
-You should see this in response:::
-
- Checking image
- Tarring image
- Encrypting image
- Splitting image...
- Part: kernel.part.0
- Generating manifest /tmp/kernel.manifest.xml
-
-Type or copy/paste the following commands to create a manifest for the ramdisk.::
-
- euca-bundle-image -i images/ari-lucid/image -p ramdisk --ramdisk true
-
-You should see this in response:::
-
- Checking image
- Tarring image
- Encrypting image
- Splitting image...
- Part: ramdisk.part.0
- Generating manifest /tmp/ramdisk.manifest.xml
-
-Type or copy/paste the following commands to upload the kernel bundle.::
-
- euca-upload-bundle -m /tmp/kernel.manifest.xml -b mybucket
-
-You should see this in response:::
-
- Checking bucket: mybucket
- Creating bucket: mybucket
- Uploading manifest file
- Uploading part: kernel.part.0
- Uploaded image as mybucket/kernel.manifest.xml
-
-Type or copy/paste the following commands to upload the ramdisk bundle.::
-
- euca-upload-bundle -m /tmp/ramdisk.manifest.xml -b mybucket
-
-You should see this in response:::
-
- Checking bucket: mybucket
- Uploading manifest file
- Uploading part: ramdisk.part.0
- Uploaded image as mybucket/ramdisk.manifest.xml
-
-Type or copy/paste the following commands to register the kernel and get its ID.::
-
- euca-register mybucket/kernel.manifest.xml
-
-You should see this in response:::
-
- IMAGE ami-fcbj2non
-
-Type or copy/paste the following commands to register the ramdisk and get its ID.::
-
- euca-register mybucket/ramdisk.manifest.xml
-
-You should see this in response:::
-
- IMAGE ami-orukptrc
-
-Type or copy/paste the following commands to create a manifest for the machine image associated with the ramdisk and kernel IDs that you got from the previous commands.::
-
- euca-bundle-image -i images/ami-tiny/image -p machine --kernel ami-fcbj2non --ramdisk ami-orukptrc
-
-You should see this in response:::
-
- Checking image
- Tarring image
- Encrypting image
- Splitting image...
- Part: machine.part.0
- Part: machine.part.1
- Part: machine.part.2
- Part: machine.part.3
- Part: machine.part.4
- Generating manifest /tmp/machine.manifest.xml
-
-Type or copy/paste the following commands to upload the machine image bundle.::
-
- euca-upload-bundle -m /tmp/machine.manifest.xml -b mybucket
-
-You should see this in response:::
-
- Checking bucket: mybucket
- Uploading manifest file
- Uploading part: machine.part.0
- Uploading part: machine.part.1
- Uploading part: machine.part.2
- Uploading part: machine.part.3
- Uploading part: machine.part.4
- Uploaded image as mybucket/machine.manifest.xml
-
-Type or copy/paste the following commands to register the machine image and get its ID.::
-
- euca-register mybucket/machine.manifest.xml
-
-You should see this in response:::
-
- IMAGE ami-g06qbntt
-
-Type or copy/paste the following commands to register a SSH keypair for use in starting and accessing the instances.::
-
- euca-add-keypair mykey > mykey.priv
- chmod 600 mykey.priv
-
-Type or copy/paste the following commands to run an instance using the keypair and IDs that we previously created.::
-
- euca-run-instances ami-g06qbntt --kernel ami-fcbj2non --ramdisk ami-orukptrc -k mykey
-
-You should see this in response:::
-
- RESERVATION r-0at28z12 IRT
- INSTANCE i-1b0bh8n ami-g06qbntt 10.0.0.3 10.0.0.3 scheduling mykey (IRT, None) m1.small 2010-10-18 19:02:10.443599
-
-Type or copy/paste the following commands to watch as the scheduler launches, and completes booting your instance.::
-
- euca-describe-instances
-
-You should see this in response:::
-
- RESERVATION r-0at28z12 IRT
- INSTANCE i-1b0bh8n ami-g06qbntt 10.0.0.3 10.0.0.3 launching mykey (IRT, cloud02) m1.small 2010-10-18 19:02:10.443599
-
-Type or copy/paste the following commands to see when loading is completed and the instance is running.::
-
- euca-describe-instances
-
-You should see this in response:::
-
- RESERVATION r-0at28z12 IRT
- INSTANCE i-1b0bh8n ami-g06qbntt 10.0.0.3 10.0.0.3 running mykey (IRT, cloud02) 0 m1.small 2010-10-18 19:02:10.443599
-
-Type or copy/paste the following commands to check that the virtual machine is running.::
-
- virsh list
-
-You should see this in response:::
-
- Id Name State
- ----------------------------------
- 1 2842445831 running
-
-Type or copy/paste the following commands to ssh to the instance using your private key.::
-
- ssh -i mykey.priv root@10.0.0.3
-
-
-Troubleshooting Installation
-----------------------------
-
-If you see an "error loading the config file './openssl.cnf'" it means you can copy the openssl.cnf file to the location where Nova expects it and reboot, then try the command again.
-
-::
-
- cp /etc/ssl/openssl.cnf ~
- sudo reboot
-
-
-
diff --git a/doc/source/api/autoindex.rst b/doc/source/api/autoindex.rst
new file mode 100644
index 000000000..41fc1f4a9
--- /dev/null
+++ b/doc/source/api/autoindex.rst
@@ -0,0 +1,138 @@
+.. toctree::
+ :maxdepth: 1
+
+ nova..adminclient.rst
+ nova..api.direct.rst
+ nova..api.ec2.admin.rst
+ nova..api.ec2.apirequest.rst
+ nova..api.ec2.cloud.rst
+ nova..api.ec2.metadatarequesthandler.rst
+ nova..api.openstack.auth.rst
+ nova..api.openstack.backup_schedules.rst
+ nova..api.openstack.common.rst
+ nova..api.openstack.consoles.rst
+ nova..api.openstack.faults.rst
+ nova..api.openstack.flavors.rst
+ nova..api.openstack.images.rst
+ nova..api.openstack.servers.rst
+ nova..api.openstack.shared_ip_groups.rst
+ nova..api.openstack.zones.rst
+ nova..auth.dbdriver.rst
+ nova..auth.fakeldap.rst
+ nova..auth.ldapdriver.rst
+ nova..auth.manager.rst
+ nova..auth.signer.rst
+ nova..cloudpipe.pipelib.rst
+ nova..compute.api.rst
+ nova..compute.instance_types.rst
+ nova..compute.manager.rst
+ nova..compute.monitor.rst
+ nova..compute.power_state.rst
+ nova..console.api.rst
+ nova..console.fake.rst
+ nova..console.manager.rst
+ nova..console.xvp.rst
+ nova..context.rst
+ nova..crypto.rst
+ nova..db.api.rst
+ nova..db.base.rst
+ nova..db.migration.rst
+ nova..db.sqlalchemy.api.rst
+ nova..db.sqlalchemy.migrate_repo.manage.rst
+ nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
+ nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
+ nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
+ nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
+ nova..db.sqlalchemy.migration.rst
+ nova..db.sqlalchemy.models.rst
+ nova..db.sqlalchemy.session.rst
+ nova..exception.rst
+ nova..fakememcache.rst
+ nova..fakerabbit.rst
+ nova..flags.rst
+ nova..image.glance.rst
+ nova..image.local.rst
+ nova..image.s3.rst
+ nova..image.service.rst
+ nova..log.rst
+ nova..manager.rst
+ nova..network.api.rst
+ nova..network.linux_net.rst
+ nova..network.manager.rst
+ nova..objectstore.bucket.rst
+ nova..objectstore.handler.rst
+ nova..objectstore.image.rst
+ nova..objectstore.stored.rst
+ nova..quota.rst
+ nova..rpc.rst
+ nova..scheduler.chance.rst
+ nova..scheduler.driver.rst
+ nova..scheduler.manager.rst
+ nova..scheduler.simple.rst
+ nova..scheduler.zone.rst
+ nova..service.rst
+ nova..test.rst
+ nova..tests.api.openstack.fakes.rst
+ nova..tests.api.openstack.test_adminapi.rst
+ nova..tests.api.openstack.test_api.rst
+ nova..tests.api.openstack.test_auth.rst
+ nova..tests.api.openstack.test_common.rst
+ nova..tests.api.openstack.test_faults.rst
+ nova..tests.api.openstack.test_flavors.rst
+ nova..tests.api.openstack.test_images.rst
+ nova..tests.api.openstack.test_ratelimiting.rst
+ nova..tests.api.openstack.test_servers.rst
+ nova..tests.api.openstack.test_shared_ip_groups.rst
+ nova..tests.api.openstack.test_zones.rst
+ nova..tests.api.test_wsgi.rst
+ nova..tests.db.fakes.rst
+ nova..tests.declare_flags.rst
+ nova..tests.fake_flags.rst
+ nova..tests.glance.stubs.rst
+ nova..tests.hyperv_unittest.rst
+ nova..tests.objectstore_unittest.rst
+ nova..tests.real_flags.rst
+ nova..tests.runtime_flags.rst
+ nova..tests.test_access.rst
+ nova..tests.test_api.rst
+ nova..tests.test_auth.rst
+ nova..tests.test_cloud.rst
+ nova..tests.test_compute.rst
+ nova..tests.test_console.rst
+ nova..tests.test_direct.rst
+ nova..tests.test_flags.rst
+ nova..tests.test_localization.rst
+ nova..tests.test_log.rst
+ nova..tests.test_middleware.rst
+ nova..tests.test_misc.rst
+ nova..tests.test_network.rst
+ nova..tests.test_quota.rst
+ nova..tests.test_rpc.rst
+ nova..tests.test_scheduler.rst
+ nova..tests.test_service.rst
+ nova..tests.test_twistd.rst
+ nova..tests.test_virt.rst
+ nova..tests.test_volume.rst
+ nova..tests.test_xenapi.rst
+ nova..tests.xenapi.stubs.rst
+ nova..twistd.rst
+ nova..utils.rst
+ nova..version.rst
+ nova..virt.connection.rst
+ nova..virt.disk.rst
+ nova..virt.fake.rst
+ nova..virt.hyperv.rst
+ nova..virt.images.rst
+ nova..virt.libvirt_conn.rst
+ nova..virt.xenapi.fake.rst
+ nova..virt.xenapi.network_utils.rst
+ nova..virt.xenapi.vm_utils.rst
+ nova..virt.xenapi.vmops.rst
+ nova..virt.xenapi.volume_utils.rst
+ nova..virt.xenapi.volumeops.rst
+ nova..virt.xenapi_conn.rst
+ nova..volume.api.rst
+ nova..volume.driver.rst
+ nova..volume.manager.rst
+ nova..volume.san.rst
+ nova..wsgi.rst
diff --git a/doc/source/api/nova..adminclient.rst b/doc/source/api/nova..adminclient.rst
new file mode 100644
index 000000000..35fa839e1
--- /dev/null
+++ b/doc/source/api/nova..adminclient.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..adminclient` Module
+==============================================================================
+.. automodule:: nova..adminclient
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.direct.rst b/doc/source/api/nova..api.direct.rst
new file mode 100644
index 000000000..a1705c707
--- /dev/null
+++ b/doc/source/api/nova..api.direct.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.direct` Module
+==============================================================================
+.. automodule:: nova..api.direct
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.ec2.admin.rst b/doc/source/api/nova..api.ec2.admin.rst
new file mode 100644
index 000000000..4e9ab308b
--- /dev/null
+++ b/doc/source/api/nova..api.ec2.admin.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.ec2.admin` Module
+==============================================================================
+.. automodule:: nova..api.ec2.admin
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.ec2.apirequest.rst b/doc/source/api/nova..api.ec2.apirequest.rst
new file mode 100644
index 000000000..c17a2ff3a
--- /dev/null
+++ b/doc/source/api/nova..api.ec2.apirequest.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.ec2.apirequest` Module
+==============================================================================
+.. automodule:: nova..api.ec2.apirequest
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.ec2.cloud.rst b/doc/source/api/nova..api.ec2.cloud.rst
new file mode 100644
index 000000000..f6145c217
--- /dev/null
+++ b/doc/source/api/nova..api.ec2.cloud.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.ec2.cloud` Module
+==============================================================================
+.. automodule:: nova..api.ec2.cloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.ec2.metadatarequesthandler.rst b/doc/source/api/nova..api.ec2.metadatarequesthandler.rst
new file mode 100644
index 000000000..75f5169e5
--- /dev/null
+++ b/doc/source/api/nova..api.ec2.metadatarequesthandler.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.ec2.metadatarequesthandler` Module
+==============================================================================
+.. automodule:: nova..api.ec2.metadatarequesthandler
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.auth.rst b/doc/source/api/nova..api.openstack.auth.rst
new file mode 100644
index 000000000..8c3f8f2da
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.auth.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.auth` Module
+==============================================================================
+.. automodule:: nova..api.openstack.auth
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.backup_schedules.rst b/doc/source/api/nova..api.openstack.backup_schedules.rst
new file mode 100644
index 000000000..6b406f12d
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.backup_schedules.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.backup_schedules` Module
+==============================================================================
+.. automodule:: nova..api.openstack.backup_schedules
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.common.rst b/doc/source/api/nova..api.openstack.common.rst
new file mode 100644
index 000000000..4fd734790
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.common.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.common` Module
+==============================================================================
+.. automodule:: nova..api.openstack.common
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.consoles.rst b/doc/source/api/nova..api.openstack.consoles.rst
new file mode 100644
index 000000000..1e3e09599
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.consoles.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.consoles` Module
+==============================================================================
+.. automodule:: nova..api.openstack.consoles
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.faults.rst b/doc/source/api/nova..api.openstack.faults.rst
new file mode 100644
index 000000000..7b25561f7
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.faults.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.faults` Module
+==============================================================================
+.. automodule:: nova..api.openstack.faults
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.flavors.rst b/doc/source/api/nova..api.openstack.flavors.rst
new file mode 100644
index 000000000..0deb724de
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.flavors.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.flavors` Module
+==============================================================================
+.. automodule:: nova..api.openstack.flavors
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.images.rst b/doc/source/api/nova..api.openstack.images.rst
new file mode 100644
index 000000000..82bd5f1e8
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.images.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.images` Module
+==============================================================================
+.. automodule:: nova..api.openstack.images
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.servers.rst b/doc/source/api/nova..api.openstack.servers.rst
new file mode 100644
index 000000000..c36856ea2
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.servers.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.servers` Module
+==============================================================================
+.. automodule:: nova..api.openstack.servers
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.shared_ip_groups.rst b/doc/source/api/nova..api.openstack.shared_ip_groups.rst
new file mode 100644
index 000000000..4b1f44efe
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.shared_ip_groups.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.shared_ip_groups` Module
+==============================================================================
+.. automodule:: nova..api.openstack.shared_ip_groups
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..api.openstack.zones.rst b/doc/source/api/nova..api.openstack.zones.rst
new file mode 100644
index 000000000..ebe4569c5
--- /dev/null
+++ b/doc/source/api/nova..api.openstack.zones.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..api.openstack.zones` Module
+==============================================================================
+.. automodule:: nova..api.openstack.zones
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..auth.dbdriver.rst b/doc/source/api/nova..auth.dbdriver.rst
new file mode 100644
index 000000000..7de68b6e0
--- /dev/null
+++ b/doc/source/api/nova..auth.dbdriver.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..auth.dbdriver` Module
+==============================================================================
+.. automodule:: nova..auth.dbdriver
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..auth.fakeldap.rst b/doc/source/api/nova..auth.fakeldap.rst
new file mode 100644
index 000000000..ca8a3ad4d
--- /dev/null
+++ b/doc/source/api/nova..auth.fakeldap.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..auth.fakeldap` Module
+==============================================================================
+.. automodule:: nova..auth.fakeldap
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..auth.ldapdriver.rst b/doc/source/api/nova..auth.ldapdriver.rst
new file mode 100644
index 000000000..c44463522
--- /dev/null
+++ b/doc/source/api/nova..auth.ldapdriver.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..auth.ldapdriver` Module
+==============================================================================
+.. automodule:: nova..auth.ldapdriver
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..auth.manager.rst b/doc/source/api/nova..auth.manager.rst
new file mode 100644
index 000000000..bc5ce2ec3
--- /dev/null
+++ b/doc/source/api/nova..auth.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..auth.manager` Module
+==============================================================================
+.. automodule:: nova..auth.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..auth.signer.rst b/doc/source/api/nova..auth.signer.rst
new file mode 100644
index 000000000..aad824ead
--- /dev/null
+++ b/doc/source/api/nova..auth.signer.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..auth.signer` Module
+==============================================================================
+.. automodule:: nova..auth.signer
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..cloudpipe.pipelib.rst b/doc/source/api/nova..cloudpipe.pipelib.rst
new file mode 100644
index 000000000..054aaf484
--- /dev/null
+++ b/doc/source/api/nova..cloudpipe.pipelib.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..cloudpipe.pipelib` Module
+==============================================================================
+.. automodule:: nova..cloudpipe.pipelib
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..compute.api.rst b/doc/source/api/nova..compute.api.rst
new file mode 100644
index 000000000..caa66313a
--- /dev/null
+++ b/doc/source/api/nova..compute.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..compute.api` Module
+==============================================================================
+.. automodule:: nova..compute.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..compute.instance_types.rst b/doc/source/api/nova..compute.instance_types.rst
new file mode 100644
index 000000000..d206ff3a4
--- /dev/null
+++ b/doc/source/api/nova..compute.instance_types.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..compute.instance_types` Module
+==============================================================================
+.. automodule:: nova..compute.instance_types
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..compute.manager.rst b/doc/source/api/nova..compute.manager.rst
new file mode 100644
index 000000000..33a337c39
--- /dev/null
+++ b/doc/source/api/nova..compute.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..compute.manager` Module
+==============================================================================
+.. automodule:: nova..compute.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..compute.monitor.rst b/doc/source/api/nova..compute.monitor.rst
new file mode 100644
index 000000000..a91169ecd
--- /dev/null
+++ b/doc/source/api/nova..compute.monitor.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..compute.monitor` Module
+==============================================================================
+.. automodule:: nova..compute.monitor
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..compute.power_state.rst b/doc/source/api/nova..compute.power_state.rst
new file mode 100644
index 000000000..41b1080e5
--- /dev/null
+++ b/doc/source/api/nova..compute.power_state.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..compute.power_state` Module
+==============================================================================
+.. automodule:: nova..compute.power_state
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..console.api.rst b/doc/source/api/nova..console.api.rst
new file mode 100644
index 000000000..82a51d4c7
--- /dev/null
+++ b/doc/source/api/nova..console.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..console.api` Module
+==============================================================================
+.. automodule:: nova..console.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..console.fake.rst b/doc/source/api/nova..console.fake.rst
new file mode 100644
index 000000000..f053f85d6
--- /dev/null
+++ b/doc/source/api/nova..console.fake.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..console.fake` Module
+==============================================================================
+.. automodule:: nova..console.fake
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..console.manager.rst b/doc/source/api/nova..console.manager.rst
new file mode 100644
index 000000000..f9283a6c3
--- /dev/null
+++ b/doc/source/api/nova..console.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..console.manager` Module
+==============================================================================
+.. automodule:: nova..console.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..console.xvp.rst b/doc/source/api/nova..console.xvp.rst
new file mode 100644
index 000000000..a0887009e
--- /dev/null
+++ b/doc/source/api/nova..console.xvp.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..console.xvp` Module
+==============================================================================
+.. automodule:: nova..console.xvp
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..context.rst b/doc/source/api/nova..context.rst
new file mode 100644
index 000000000..9de1adb24
--- /dev/null
+++ b/doc/source/api/nova..context.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..context` Module
+==============================================================================
+.. automodule:: nova..context
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..crypto.rst b/doc/source/api/nova..crypto.rst
new file mode 100644
index 000000000..af9f63634
--- /dev/null
+++ b/doc/source/api/nova..crypto.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..crypto` Module
+==============================================================================
+.. automodule:: nova..crypto
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.api.rst b/doc/source/api/nova..db.api.rst
new file mode 100644
index 000000000..6d998fbb2
--- /dev/null
+++ b/doc/source/api/nova..db.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.api` Module
+==============================================================================
+.. automodule:: nova..db.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.base.rst b/doc/source/api/nova..db.base.rst
new file mode 100644
index 000000000..29fb417d6
--- /dev/null
+++ b/doc/source/api/nova..db.base.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.base` Module
+==============================================================================
+.. automodule:: nova..db.base
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.migration.rst b/doc/source/api/nova..db.migration.rst
new file mode 100644
index 000000000..71dfea301
--- /dev/null
+++ b/doc/source/api/nova..db.migration.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.migration` Module
+==============================================================================
+.. automodule:: nova..db.migration
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.api.rst b/doc/source/api/nova..db.sqlalchemy.api.rst
new file mode 100644
index 000000000..76d0c1bd3
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.api` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migrate_repo.manage.rst b/doc/source/api/nova..db.sqlalchemy.migrate_repo.manage.rst
new file mode 100644
index 000000000..93decfb27
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migrate_repo.manage.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migrate_repo.manage` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migrate_repo.manage
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
new file mode 100644
index 000000000..4b1219edb
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migrate_repo.versions.001_austin` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migrate_repo.versions.001_austin
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
new file mode 100644
index 000000000..82f1f4680
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migrate_repo.versions.002_bexar` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migrate_repo.versions.002_bexar
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
new file mode 100644
index 000000000..98f3e8da7
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
new file mode 100644
index 000000000..5cbb81191
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.migration.rst b/doc/source/api/nova..db.sqlalchemy.migration.rst
new file mode 100644
index 000000000..3a9b01b9a
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.migration.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.migration` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.migration
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.models.rst b/doc/source/api/nova..db.sqlalchemy.models.rst
new file mode 100644
index 000000000..9c795d7f5
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.models.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.models` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.models
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..db.sqlalchemy.session.rst b/doc/source/api/nova..db.sqlalchemy.session.rst
new file mode 100644
index 000000000..cbfd6416a
--- /dev/null
+++ b/doc/source/api/nova..db.sqlalchemy.session.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..db.sqlalchemy.session` Module
+==============================================================================
+.. automodule:: nova..db.sqlalchemy.session
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..exception.rst b/doc/source/api/nova..exception.rst
new file mode 100644
index 000000000..97ac6b752
--- /dev/null
+++ b/doc/source/api/nova..exception.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..exception` Module
+==============================================================================
+.. automodule:: nova..exception
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..fakememcache.rst b/doc/source/api/nova..fakememcache.rst
new file mode 100644
index 000000000..7e7ffb98b
--- /dev/null
+++ b/doc/source/api/nova..fakememcache.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..fakememcache` Module
+==============================================================================
+.. automodule:: nova..fakememcache
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..fakerabbit.rst b/doc/source/api/nova..fakerabbit.rst
new file mode 100644
index 000000000..f1e27c266
--- /dev/null
+++ b/doc/source/api/nova..fakerabbit.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..fakerabbit` Module
+==============================================================================
+.. automodule:: nova..fakerabbit
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..flags.rst b/doc/source/api/nova..flags.rst
new file mode 100644
index 000000000..08165be44
--- /dev/null
+++ b/doc/source/api/nova..flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..flags` Module
+==============================================================================
+.. automodule:: nova..flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..image.glance.rst b/doc/source/api/nova..image.glance.rst
new file mode 100644
index 000000000..b0882d5ec
--- /dev/null
+++ b/doc/source/api/nova..image.glance.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..image.glance` Module
+==============================================================================
+.. automodule:: nova..image.glance
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..image.local.rst b/doc/source/api/nova..image.local.rst
new file mode 100644
index 000000000..b6ad5470b
--- /dev/null
+++ b/doc/source/api/nova..image.local.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..image.local` Module
+==============================================================================
+.. automodule:: nova..image.local
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..image.s3.rst b/doc/source/api/nova..image.s3.rst
new file mode 100644
index 000000000..e5b236127
--- /dev/null
+++ b/doc/source/api/nova..image.s3.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..image.s3` Module
+==============================================================================
+.. automodule:: nova..image.s3
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..image.service.rst b/doc/source/api/nova..image.service.rst
new file mode 100644
index 000000000..78ef1ecca
--- /dev/null
+++ b/doc/source/api/nova..image.service.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..image.service` Module
+==============================================================================
+.. automodule:: nova..image.service
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..log.rst b/doc/source/api/nova..log.rst
new file mode 100644
index 000000000..ff209709f
--- /dev/null
+++ b/doc/source/api/nova..log.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..log` Module
+==============================================================================
+.. automodule:: nova..log
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..manager.rst b/doc/source/api/nova..manager.rst
new file mode 100644
index 000000000..576902491
--- /dev/null
+++ b/doc/source/api/nova..manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..manager` Module
+==============================================================================
+.. automodule:: nova..manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..network.api.rst b/doc/source/api/nova..network.api.rst
new file mode 100644
index 000000000..b63be2ba3
--- /dev/null
+++ b/doc/source/api/nova..network.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..network.api` Module
+==============================================================================
+.. automodule:: nova..network.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..network.linux_net.rst b/doc/source/api/nova..network.linux_net.rst
new file mode 100644
index 000000000..7af78d5ad
--- /dev/null
+++ b/doc/source/api/nova..network.linux_net.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..network.linux_net` Module
+==============================================================================
+.. automodule:: nova..network.linux_net
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..network.manager.rst b/doc/source/api/nova..network.manager.rst
new file mode 100644
index 000000000..0ea705533
--- /dev/null
+++ b/doc/source/api/nova..network.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..network.manager` Module
+==============================================================================
+.. automodule:: nova..network.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..objectstore.bucket.rst b/doc/source/api/nova..objectstore.bucket.rst
new file mode 100644
index 000000000..3bfdf639c
--- /dev/null
+++ b/doc/source/api/nova..objectstore.bucket.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..objectstore.bucket` Module
+==============================================================================
+.. automodule:: nova..objectstore.bucket
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..objectstore.handler.rst b/doc/source/api/nova..objectstore.handler.rst
new file mode 100644
index 000000000..0eb8c4efb
--- /dev/null
+++ b/doc/source/api/nova..objectstore.handler.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..objectstore.handler` Module
+==============================================================================
+.. automodule:: nova..objectstore.handler
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..objectstore.image.rst b/doc/source/api/nova..objectstore.image.rst
new file mode 100644
index 000000000..fa4c971f1
--- /dev/null
+++ b/doc/source/api/nova..objectstore.image.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..objectstore.image` Module
+==============================================================================
+.. automodule:: nova..objectstore.image
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..objectstore.stored.rst b/doc/source/api/nova..objectstore.stored.rst
new file mode 100644
index 000000000..2b1d997a3
--- /dev/null
+++ b/doc/source/api/nova..objectstore.stored.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..objectstore.stored` Module
+==============================================================================
+.. automodule:: nova..objectstore.stored
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..quota.rst b/doc/source/api/nova..quota.rst
new file mode 100644
index 000000000..4140d95d6
--- /dev/null
+++ b/doc/source/api/nova..quota.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..quota` Module
+==============================================================================
+.. automodule:: nova..quota
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..rpc.rst b/doc/source/api/nova..rpc.rst
new file mode 100644
index 000000000..5b2a9b8e2
--- /dev/null
+++ b/doc/source/api/nova..rpc.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..rpc` Module
+==============================================================================
+.. automodule:: nova..rpc
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..scheduler.chance.rst b/doc/source/api/nova..scheduler.chance.rst
new file mode 100644
index 000000000..89c074c8f
--- /dev/null
+++ b/doc/source/api/nova..scheduler.chance.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..scheduler.chance` Module
+==============================================================================
+.. automodule:: nova..scheduler.chance
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..scheduler.driver.rst b/doc/source/api/nova..scheduler.driver.rst
new file mode 100644
index 000000000..793ed9c7b
--- /dev/null
+++ b/doc/source/api/nova..scheduler.driver.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..scheduler.driver` Module
+==============================================================================
+.. automodule:: nova..scheduler.driver
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..scheduler.manager.rst b/doc/source/api/nova..scheduler.manager.rst
new file mode 100644
index 000000000..d0fc7c423
--- /dev/null
+++ b/doc/source/api/nova..scheduler.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..scheduler.manager` Module
+==============================================================================
+.. automodule:: nova..scheduler.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..scheduler.simple.rst b/doc/source/api/nova..scheduler.simple.rst
new file mode 100644
index 000000000..dacc2cf30
--- /dev/null
+++ b/doc/source/api/nova..scheduler.simple.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..scheduler.simple` Module
+==============================================================================
+.. automodule:: nova..scheduler.simple
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..scheduler.zone.rst b/doc/source/api/nova..scheduler.zone.rst
new file mode 100644
index 000000000..54c4bf201
--- /dev/null
+++ b/doc/source/api/nova..scheduler.zone.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..scheduler.zone` Module
+==============================================================================
+.. automodule:: nova..scheduler.zone
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..service.rst b/doc/source/api/nova..service.rst
new file mode 100644
index 000000000..2d2dfcf2e
--- /dev/null
+++ b/doc/source/api/nova..service.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..service` Module
+==============================================================================
+.. automodule:: nova..service
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..test.rst b/doc/source/api/nova..test.rst
new file mode 100644
index 000000000..a6bdb6f1f
--- /dev/null
+++ b/doc/source/api/nova..test.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..test` Module
+==============================================================================
+.. automodule:: nova..test
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.fakes.rst b/doc/source/api/nova..tests.api.openstack.fakes.rst
new file mode 100644
index 000000000..4a9ff5938
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.fakes.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.fakes` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.fakes
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_adminapi.rst b/doc/source/api/nova..tests.api.openstack.test_adminapi.rst
new file mode 100644
index 000000000..19a85ca0f
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_adminapi.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_adminapi` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_adminapi
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_api.rst b/doc/source/api/nova..tests.api.openstack.test_api.rst
new file mode 100644
index 000000000..68106d221
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_api` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_auth.rst b/doc/source/api/nova..tests.api.openstack.test_auth.rst
new file mode 100644
index 000000000..9f0011669
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_auth.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_auth` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_auth
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_common.rst b/doc/source/api/nova..tests.api.openstack.test_common.rst
new file mode 100644
index 000000000..82f40ecb8
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_common.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_common` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_common
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_faults.rst b/doc/source/api/nova..tests.api.openstack.test_faults.rst
new file mode 100644
index 000000000..b839ae8a3
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_faults.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_faults` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_faults
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_flavors.rst b/doc/source/api/nova..tests.api.openstack.test_flavors.rst
new file mode 100644
index 000000000..471fac56e
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_flavors.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_flavors` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_flavors
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_images.rst b/doc/source/api/nova..tests.api.openstack.test_images.rst
new file mode 100644
index 000000000..57ae93c8c
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_images.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_images` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_images
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_ratelimiting.rst b/doc/source/api/nova..tests.api.openstack.test_ratelimiting.rst
new file mode 100644
index 000000000..9a857f795
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_ratelimiting.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_ratelimiting` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_ratelimiting
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_servers.rst b/doc/source/api/nova..tests.api.openstack.test_servers.rst
new file mode 100644
index 000000000..ea602e6ab
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_servers.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_servers` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_servers
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_shared_ip_groups.rst b/doc/source/api/nova..tests.api.openstack.test_shared_ip_groups.rst
new file mode 100644
index 000000000..48814af00
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_shared_ip_groups.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_shared_ip_groups` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_shared_ip_groups
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.openstack.test_zones.rst b/doc/source/api/nova..tests.api.openstack.test_zones.rst
new file mode 100644
index 000000000..ba7078e63
--- /dev/null
+++ b/doc/source/api/nova..tests.api.openstack.test_zones.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.openstack.test_zones` Module
+==============================================================================
+.. automodule:: nova..tests.api.openstack.test_zones
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.api.test_wsgi.rst b/doc/source/api/nova..tests.api.test_wsgi.rst
new file mode 100644
index 000000000..8e79caa4d
--- /dev/null
+++ b/doc/source/api/nova..tests.api.test_wsgi.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.api.test_wsgi` Module
+==============================================================================
+.. automodule:: nova..tests.api.test_wsgi
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.db.fakes.rst b/doc/source/api/nova..tests.db.fakes.rst
new file mode 100644
index 000000000..cc79e55e2
--- /dev/null
+++ b/doc/source/api/nova..tests.db.fakes.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.db.fakes` Module
+==============================================================================
+.. automodule:: nova..tests.db.fakes
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.declare_flags.rst b/doc/source/api/nova..tests.declare_flags.rst
new file mode 100644
index 000000000..524e72e91
--- /dev/null
+++ b/doc/source/api/nova..tests.declare_flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.declare_flags` Module
+==============================================================================
+.. automodule:: nova..tests.declare_flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.fake_flags.rst b/doc/source/api/nova..tests.fake_flags.rst
new file mode 100644
index 000000000..a8dc3df36
--- /dev/null
+++ b/doc/source/api/nova..tests.fake_flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.fake_flags` Module
+==============================================================================
+.. automodule:: nova..tests.fake_flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.glance.stubs.rst b/doc/source/api/nova..tests.glance.stubs.rst
new file mode 100644
index 000000000..7ef5fccbe
--- /dev/null
+++ b/doc/source/api/nova..tests.glance.stubs.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.glance.stubs` Module
+==============================================================================
+.. automodule:: nova..tests.glance.stubs
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.hyperv_unittest.rst b/doc/source/api/nova..tests.hyperv_unittest.rst
new file mode 100644
index 000000000..c08443121
--- /dev/null
+++ b/doc/source/api/nova..tests.hyperv_unittest.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.hyperv_unittest` Module
+==============================================================================
+.. automodule:: nova..tests.hyperv_unittest
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.objectstore_unittest.rst b/doc/source/api/nova..tests.objectstore_unittest.rst
new file mode 100644
index 000000000..0ae252f04
--- /dev/null
+++ b/doc/source/api/nova..tests.objectstore_unittest.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.objectstore_unittest` Module
+==============================================================================
+.. automodule:: nova..tests.objectstore_unittest
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.real_flags.rst b/doc/source/api/nova..tests.real_flags.rst
new file mode 100644
index 000000000..e9c0d1abd
--- /dev/null
+++ b/doc/source/api/nova..tests.real_flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.real_flags` Module
+==============================================================================
+.. automodule:: nova..tests.real_flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.runtime_flags.rst b/doc/source/api/nova..tests.runtime_flags.rst
new file mode 100644
index 000000000..984e21199
--- /dev/null
+++ b/doc/source/api/nova..tests.runtime_flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.runtime_flags` Module
+==============================================================================
+.. automodule:: nova..tests.runtime_flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_access.rst b/doc/source/api/nova..tests.test_access.rst
new file mode 100644
index 000000000..300d8109e
--- /dev/null
+++ b/doc/source/api/nova..tests.test_access.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_access` Module
+==============================================================================
+.. automodule:: nova..tests.test_access
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_api.rst b/doc/source/api/nova..tests.test_api.rst
new file mode 100644
index 000000000..f9473062e
--- /dev/null
+++ b/doc/source/api/nova..tests.test_api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_api` Module
+==============================================================================
+.. automodule:: nova..tests.test_api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_auth.rst b/doc/source/api/nova..tests.test_auth.rst
new file mode 100644
index 000000000..ff4445ae4
--- /dev/null
+++ b/doc/source/api/nova..tests.test_auth.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_auth` Module
+==============================================================================
+.. automodule:: nova..tests.test_auth
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_cloud.rst b/doc/source/api/nova..tests.test_cloud.rst
new file mode 100644
index 000000000..7bd03db9a
--- /dev/null
+++ b/doc/source/api/nova..tests.test_cloud.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_cloud` Module
+==============================================================================
+.. automodule:: nova..tests.test_cloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_compute.rst b/doc/source/api/nova..tests.test_compute.rst
new file mode 100644
index 000000000..90fd6e9d1
--- /dev/null
+++ b/doc/source/api/nova..tests.test_compute.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_compute` Module
+==============================================================================
+.. automodule:: nova..tests.test_compute
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_console.rst b/doc/source/api/nova..tests.test_console.rst
new file mode 100644
index 000000000..f695f5d17
--- /dev/null
+++ b/doc/source/api/nova..tests.test_console.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_console` Module
+==============================================================================
+.. automodule:: nova..tests.test_console
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_direct.rst b/doc/source/api/nova..tests.test_direct.rst
new file mode 100644
index 000000000..4f7adef19
--- /dev/null
+++ b/doc/source/api/nova..tests.test_direct.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_direct` Module
+==============================================================================
+.. automodule:: nova..tests.test_direct
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_flags.rst b/doc/source/api/nova..tests.test_flags.rst
new file mode 100644
index 000000000..2ec35d6c2
--- /dev/null
+++ b/doc/source/api/nova..tests.test_flags.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_flags` Module
+==============================================================================
+.. automodule:: nova..tests.test_flags
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_localization.rst b/doc/source/api/nova..tests.test_localization.rst
new file mode 100644
index 000000000..d93c83ba7
--- /dev/null
+++ b/doc/source/api/nova..tests.test_localization.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_localization` Module
+==============================================================================
+.. automodule:: nova..tests.test_localization
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_log.rst b/doc/source/api/nova..tests.test_log.rst
new file mode 100644
index 000000000..04ff5ead1
--- /dev/null
+++ b/doc/source/api/nova..tests.test_log.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_log` Module
+==============================================================================
+.. automodule:: nova..tests.test_log
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_middleware.rst b/doc/source/api/nova..tests.test_middleware.rst
new file mode 100644
index 000000000..2f9df5832
--- /dev/null
+++ b/doc/source/api/nova..tests.test_middleware.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_middleware` Module
+==============================================================================
+.. automodule:: nova..tests.test_middleware
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_misc.rst b/doc/source/api/nova..tests.test_misc.rst
new file mode 100644
index 000000000..4975f89d7
--- /dev/null
+++ b/doc/source/api/nova..tests.test_misc.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_misc` Module
+==============================================================================
+.. automodule:: nova..tests.test_misc
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_network.rst b/doc/source/api/nova..tests.test_network.rst
new file mode 100644
index 000000000..3a4b04ea4
--- /dev/null
+++ b/doc/source/api/nova..tests.test_network.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_network` Module
+==============================================================================
+.. automodule:: nova..tests.test_network
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_quota.rst b/doc/source/api/nova..tests.test_quota.rst
new file mode 100644
index 000000000..24ebf9ca3
--- /dev/null
+++ b/doc/source/api/nova..tests.test_quota.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_quota` Module
+==============================================================================
+.. automodule:: nova..tests.test_quota
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_rpc.rst b/doc/source/api/nova..tests.test_rpc.rst
new file mode 100644
index 000000000..c141d6889
--- /dev/null
+++ b/doc/source/api/nova..tests.test_rpc.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_rpc` Module
+==============================================================================
+.. automodule:: nova..tests.test_rpc
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_scheduler.rst b/doc/source/api/nova..tests.test_scheduler.rst
new file mode 100644
index 000000000..1cd9991db
--- /dev/null
+++ b/doc/source/api/nova..tests.test_scheduler.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_scheduler` Module
+==============================================================================
+.. automodule:: nova..tests.test_scheduler
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_service.rst b/doc/source/api/nova..tests.test_service.rst
new file mode 100644
index 000000000..a264fbb55
--- /dev/null
+++ b/doc/source/api/nova..tests.test_service.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_service` Module
+==============================================================================
+.. automodule:: nova..tests.test_service
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_twistd.rst b/doc/source/api/nova..tests.test_twistd.rst
new file mode 100644
index 000000000..cae0c0a28
--- /dev/null
+++ b/doc/source/api/nova..tests.test_twistd.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_twistd` Module
+==============================================================================
+.. automodule:: nova..tests.test_twistd
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_virt.rst b/doc/source/api/nova..tests.test_virt.rst
new file mode 100644
index 000000000..9b0dc1e46
--- /dev/null
+++ b/doc/source/api/nova..tests.test_virt.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_virt` Module
+==============================================================================
+.. automodule:: nova..tests.test_virt
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_volume.rst b/doc/source/api/nova..tests.test_volume.rst
new file mode 100644
index 000000000..b5affe53c
--- /dev/null
+++ b/doc/source/api/nova..tests.test_volume.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_volume` Module
+==============================================================================
+.. automodule:: nova..tests.test_volume
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.test_xenapi.rst b/doc/source/api/nova..tests.test_xenapi.rst
new file mode 100644
index 000000000..7128baee4
--- /dev/null
+++ b/doc/source/api/nova..tests.test_xenapi.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.test_xenapi` Module
+==============================================================================
+.. automodule:: nova..tests.test_xenapi
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..tests.xenapi.stubs.rst b/doc/source/api/nova..tests.xenapi.stubs.rst
new file mode 100644
index 000000000..356eed9a7
--- /dev/null
+++ b/doc/source/api/nova..tests.xenapi.stubs.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..tests.xenapi.stubs` Module
+==============================================================================
+.. automodule:: nova..tests.xenapi.stubs
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..twistd.rst b/doc/source/api/nova..twistd.rst
new file mode 100644
index 000000000..d4145396d
--- /dev/null
+++ b/doc/source/api/nova..twistd.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..twistd` Module
+==============================================================================
+.. automodule:: nova..twistd
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..utils.rst b/doc/source/api/nova..utils.rst
new file mode 100644
index 000000000..1131d1080
--- /dev/null
+++ b/doc/source/api/nova..utils.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..utils` Module
+==============================================================================
+.. automodule:: nova..utils
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..version.rst b/doc/source/api/nova..version.rst
new file mode 100644
index 000000000..4b0fc078f
--- /dev/null
+++ b/doc/source/api/nova..version.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..version` Module
+==============================================================================
+.. automodule:: nova..version
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.connection.rst b/doc/source/api/nova..virt.connection.rst
new file mode 100644
index 000000000..caf766765
--- /dev/null
+++ b/doc/source/api/nova..virt.connection.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.connection` Module
+==============================================================================
+.. automodule:: nova..virt.connection
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.disk.rst b/doc/source/api/nova..virt.disk.rst
new file mode 100644
index 000000000..4a6c0f406
--- /dev/null
+++ b/doc/source/api/nova..virt.disk.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.disk` Module
+==============================================================================
+.. automodule:: nova..virt.disk
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.fake.rst b/doc/source/api/nova..virt.fake.rst
new file mode 100644
index 000000000..06ecdbf7d
--- /dev/null
+++ b/doc/source/api/nova..virt.fake.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.fake` Module
+==============================================================================
+.. automodule:: nova..virt.fake
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.hyperv.rst b/doc/source/api/nova..virt.hyperv.rst
new file mode 100644
index 000000000..48d89378e
--- /dev/null
+++ b/doc/source/api/nova..virt.hyperv.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.hyperv` Module
+==============================================================================
+.. automodule:: nova..virt.hyperv
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.images.rst b/doc/source/api/nova..virt.images.rst
new file mode 100644
index 000000000..4fdeb7af8
--- /dev/null
+++ b/doc/source/api/nova..virt.images.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.images` Module
+==============================================================================
+.. automodule:: nova..virt.images
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.libvirt_conn.rst b/doc/source/api/nova..virt.libvirt_conn.rst
new file mode 100644
index 000000000..7fb8aed5f
--- /dev/null
+++ b/doc/source/api/nova..virt.libvirt_conn.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.libvirt_conn` Module
+==============================================================================
+.. automodule:: nova..virt.libvirt_conn
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.fake.rst b/doc/source/api/nova..virt.xenapi.fake.rst
new file mode 100644
index 000000000..752dabb14
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.fake.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.fake` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.fake
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.network_utils.rst b/doc/source/api/nova..virt.xenapi.network_utils.rst
new file mode 100644
index 000000000..15f52973e
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.network_utils.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.network_utils` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.network_utils
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.vm_utils.rst b/doc/source/api/nova..virt.xenapi.vm_utils.rst
new file mode 100644
index 000000000..18745dc71
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.vm_utils.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.vm_utils` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.vm_utils
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.vmops.rst b/doc/source/api/nova..virt.xenapi.vmops.rst
new file mode 100644
index 000000000..30662c58d
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.vmops.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.vmops` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.vmops
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.volume_utils.rst b/doc/source/api/nova..virt.xenapi.volume_utils.rst
new file mode 100644
index 000000000..413e4dc4b
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.volume_utils.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.volume_utils` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.volume_utils
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi.volumeops.rst b/doc/source/api/nova..virt.xenapi.volumeops.rst
new file mode 100644
index 000000000..626f164df
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi.volumeops.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi.volumeops` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi.volumeops
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..virt.xenapi_conn.rst b/doc/source/api/nova..virt.xenapi_conn.rst
new file mode 100644
index 000000000..14ac5147f
--- /dev/null
+++ b/doc/source/api/nova..virt.xenapi_conn.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..virt.xenapi_conn` Module
+==============================================================================
+.. automodule:: nova..virt.xenapi_conn
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..volume.api.rst b/doc/source/api/nova..volume.api.rst
new file mode 100644
index 000000000..8ad36e049
--- /dev/null
+++ b/doc/source/api/nova..volume.api.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..volume.api` Module
+==============================================================================
+.. automodule:: nova..volume.api
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..volume.driver.rst b/doc/source/api/nova..volume.driver.rst
new file mode 100644
index 000000000..51f5c0729
--- /dev/null
+++ b/doc/source/api/nova..volume.driver.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..volume.driver` Module
+==============================================================================
+.. automodule:: nova..volume.driver
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..volume.manager.rst b/doc/source/api/nova..volume.manager.rst
new file mode 100644
index 000000000..91a192a8f
--- /dev/null
+++ b/doc/source/api/nova..volume.manager.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..volume.manager` Module
+==============================================================================
+.. automodule:: nova..volume.manager
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..volume.san.rst b/doc/source/api/nova..volume.san.rst
new file mode 100644
index 000000000..1de068928
--- /dev/null
+++ b/doc/source/api/nova..volume.san.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..volume.san` Module
+==============================================================================
+.. automodule:: nova..volume.san
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/api/nova..wsgi.rst b/doc/source/api/nova..wsgi.rst
new file mode 100644
index 000000000..0bff1c332
--- /dev/null
+++ b/doc/source/api/nova..wsgi.rst
@@ -0,0 +1,6 @@
+The :mod:`nova..wsgi` Module
+==============================================================================
+.. automodule:: nova..wsgi
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/community.rst b/doc/source/community.rst
index 4ae32f1eb..e925a47bd 100644
--- a/doc/source/community.rst
+++ b/doc/source/community.rst
@@ -18,7 +18,7 @@
Getting Involved
================
-The Nova community is a very friendly group and there are places online to join in with the
+The OpenStack community for Nova is a very friendly group and there are places online to join in with the
community. Feel free to ask questions. This document points you to some of the places where you can
communicate with people.
@@ -83,3 +83,13 @@ Twitter
Because all the cool kids do it: `@openstack <http://twitter.com/openstack>`_. Also follow the
`#openstack <http://search.twitter.com/search?q=%23openstack>`_ tag for relevant tweets.
+
+OpenStack Docs Site
+-------------------
+
+The `nova.openstack.org <http://nova.openstack.org>`_ site is geared towards developer documentation,
+and the `docs.openstack.org <http://docs.openstack.org>`_ site is intended for cloud administrators
+who are standing up and running OpenStack Compute in production. You can contribute to the Docs Site
+by using bzr and Launchpad and contributing to the openstack-manuals project at http://launchpad.net/openstack-manuals.
+
+
diff --git a/doc/source/index.rst b/doc/source/index.rst
index d337fb69f..846d3cfcd 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -32,11 +32,13 @@ Nova is written with the following design guidelines in mind:
* **API Compatibility**: Nova strives to provide API-compatible with popular systems like Amazon EC2
This documentation is generated by the Sphinx toolkit and lives in the source
-tree. Additional documentation on Nova and other components of OpenStack can
-be found on the `OpenStack wiki`_. Also see the :doc:`community` page for
-other ways to interact with the community.
+tree. Additional draft and project documentation on Nova and other components of OpenStack can
+be found on the `OpenStack wiki`_. Cloud administrators, refer to `docs.openstack.org`_.
+
+Also see the :doc:`community` page for other ways to interact with the community.
.. _`OpenStack wiki`: http://wiki.openstack.org
+.. _`docs.openstack.org`: http://docs.openstack.org
Key Concepts
@@ -50,17 +52,7 @@ Key Concepts
service.architecture
nova.object.model
swift.object.model
-
-Administrator's Documentation
-=============================
-
-.. toctree::
- :maxdepth: 1
-
- livecd
- adminguide/index
- adminguide/single.node.install
- adminguide/multi.node.install
+ runnova/index
Developer Docs
==============
diff --git a/doc/source/object.model.rst b/doc/source/object.model.rst
index d02f151fd..419e89b0c 100644
--- a/doc/source/object.model.rst
+++ b/doc/source/object.model.rst
@@ -18,8 +18,6 @@
Object Model
============
-.. todo:: Add brief description for core models
-
.. graphviz::
digraph foo {
@@ -42,27 +40,27 @@ Object Model
Users
-----
-Each Nova User is authorized based on their access key and secret key, assigned per-user. Read more at :doc:`/adminguide/managing.users`.
+Each Nova User is authorized based on their access key and secret key, assigned per-user. Read more at :doc:`/runnova/managing.users`.
Projects
--------
-For Nova, access to images is based on the project. Read more at :doc:`/adminguide/managing.projects`.
+For Nova, access to images is based on the project. Read more at :doc:`/runnova/managing.projects`.
Images
------
-Images are binary files that run the operating system. Read more at :doc:`/adminguide/managing.images`.
+Images are binary files that run the operating system. Read more at :doc:`/runnova/managing.images`.
Instances
---------
-Instances are running virtual servers. Read more at :doc:`/adminguide/managing.instances`.
+Instances are running virtual servers. Read more at :doc:`/runnova/managing.instances`.
Volumes
-------
-.. todo:: Write doc about volumes
+Volumes offer extra block level storage to instances. Read more at `Managing Volumes <http://docs.openstack.org/openstack-compute/admin/content/ch05s07.html>`_.
Security Groups
---------------
@@ -72,7 +70,7 @@ In Nova, a security group is a named collection of network access rules, like fi
VLANs
-----
-VLAN is the default network mode for Nova. Read more at :doc:`/adminguide/network.vlan`.
+VLAN is the default network mode for Nova. Read more at :doc:`/runnova/network.vlan`.
IP Addresses
------------
diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst
index 17c9e10a8..84ed3fe01 100644
--- a/doc/source/quickstart.rst
+++ b/doc/source/quickstart.rst
@@ -54,7 +54,7 @@ Environment Variables
By tweaking the environment that nova.sh run in, you can build slightly
different configurations (though for more complex setups you should see
-:doc:`/adminguide/getting.started` and :doc:`/adminguide/multi.node.install`).
+`Installing and Configuring OpenStack Compute <http://docs.openstack.org/openstack-compute/admin/content/ch03.html>`_).
* HOST_IP
* Default: address of first interface from the ifconfig command
diff --git a/doc/source/adminguide/binaries.rst b/doc/source/runnova/binaries.rst
index 5c50a51f1..023831021 100644
--- a/doc/source/adminguide/binaries.rst
+++ b/doc/source/runnova/binaries.rst
@@ -35,12 +35,12 @@ Nova api receives xml requests and sends them to the rest of the system. It is
nova-objectstore
----------------
-Nova objectstore is an ultra simple file-based storage system for images that replicates most of the S3 Api. It will soon be replaced with glance and a simple image manager.
+Nova objectstore is an ultra simple file-based storage system for images that replicates most of the S3 Api. It will soon be replaced with Glance (http://glance.openstack.org) and a simple image manager.
nova-compute
------------
-Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc.
+Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc.
nova-volume
-----------
diff --git a/doc/source/adminguide/euca2ools.rst b/doc/source/runnova/euca2ools.rst
index 6f0c57358..6f0c57358 100644
--- a/doc/source/adminguide/euca2ools.rst
+++ b/doc/source/runnova/euca2ools.rst
diff --git a/doc/source/runnova/flags.rst b/doc/source/runnova/flags.rst
new file mode 100644
index 000000000..1bfa022d9
--- /dev/null
+++ b/doc/source/runnova/flags.rst
@@ -0,0 +1,193 @@
+..
+ Copyright 2010-2011 United States Government as represented by the
+ Administrator of the National Aeronautics and Space Administration.
+ All Rights Reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
+ not use this file except in compliance with the License. You may obtain
+ a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+
+Flags and Flagfiles
+===================
+
+Nova uses a configuration file containing flags located in /etc/nova/nova.conf. You can get the most recent listing of avaialble flags by running nova-(servicename) --help, for example, nova-api --help.
+
+Here's a list of available flags and their default settings.
+
+ --ajax_console_proxy_port: port that ajax_console_proxy binds
+ (default: '8000')
+ --ajax_console_proxy_topic: the topic ajax proxy nodes listen on
+ (default: 'ajax_proxy')
+ --ajax_console_proxy_url: location of ajax console proxy, in the form
+ "http://127.0.0.1:8000"
+ (default: 'http://127.0.0.1:8000')
+ --auth_token_ttl: Seconds for auth tokens to linger
+ (default: '3600')
+ (an integer)
+ --aws_access_key_id: AWS Access ID
+ (default: 'admin')
+ --aws_secret_access_key: AWS Access Key
+ (default: 'admin')
+ --compute_manager: Manager for compute
+ (default: 'nova.compute.manager.ComputeManager')
+ --compute_topic: the topic compute nodes listen on
+ (default: 'compute')
+ --connection_type: libvirt, xenapi or fake
+ (default: 'libvirt')
+ --console_manager: Manager for console proxy
+ (default: 'nova.console.manager.ConsoleProxyManager')
+ --console_topic: the topic console proxy nodes listen on
+ (default: 'console')
+ --control_exchange: the main exchange to connect to
+ (default: 'nova')
+ --db_backend: The backend to use for db
+ (default: 'sqlalchemy')
+ --default_image: default image to use, testing only
+ (default: 'ami-11111')
+ --default_instance_type: default instance type to use, testing only
+ (default: 'm1.small')
+ --default_log_levels: list of logger=LEVEL pairs
+ (default: 'amqplib=WARN,sqlalchemy=WARN,eventlet.wsgi.server=WARN')
+ (a comma separated list)
+ --default_project: default project for openstack
+ (default: 'openstack')
+ --ec2_dmz_host: internal ip of api server
+ (default: '$my_ip')
+ --ec2_host: ip of api server
+ (default: '$my_ip')
+ --ec2_path: suffix for ec2
+ (default: '/services/Cloud')
+ --ec2_port: cloud controller port
+ (default: '8773')
+ (an integer)
+ --ec2_scheme: prefix for ec2
+ (default: 'http')
+ --[no]enable_new_services: Services to be added to the available pool on
+ create
+ (default: 'true')
+ --[no]fake_network: should we use fake network devices and addresses
+ (default: 'false')
+ --[no]fake_rabbit: use a fake rabbit
+ (default: 'false')
+ --glance_host: glance host
+ (default: '$my_ip')
+ --glance_port: glance port
+ (default: '9292')
+ (an integer)
+ -?,--[no]help: show this help
+ --[no]helpshort: show usage only for this module
+ --[no]helpxml: like --help, but generates XML output
+ --host: name of this node
+ (default: 'osdemo03')
+ --image_service: The service to use for retrieving and searching for images.
+ (default: 'nova.image.s3.S3ImageService')
+ --instance_name_template: Template string to be used to generate instance
+ names
+ (default: 'instance-%08x')
+ --logfile: output to named file
+ --logging_context_format_string: format string to use for log messages with
+ context
+ (default: '%(asctime)s %(levelname)s %(name)s [%(request_id)s %(user)s
+ %(project)s] %(message)s')
+ --logging_debug_format_suffix: data to append to log format when level is
+ DEBUG
+ (default: 'from %(processName)s (pid=%(process)d) %(funcName)s
+ %(pathname)s:%(lineno)d')
+ --logging_default_format_string: format string to use for log messages without
+ context
+ (default: '%(asctime)s %(levelname)s %(name)s [-] %(message)s')
+ --logging_exception_prefix: prefix each line of exception output with this
+ format
+ (default: '(%(name)s): TRACE: ')
+ --my_ip: host ip address
+ (default: '184.106.73.68')
+ --network_manager: Manager for network
+ (default: 'nova.network.manager.VlanManager')
+ --network_topic: the topic network nodes listen on
+ (default: 'network')
+ --node_availability_zone: availability zone of this node
+ (default: 'nova')
+ --null_kernel: kernel image that indicates not to use a kernel, but to use a
+ raw disk image instead
+ (default: 'nokernel')
+ --osapi_host: ip of api server
+ (default: '$my_ip')
+ --osapi_path: suffix for openstack
+ (default: '/v1.0/')
+ --osapi_port: OpenStack API port
+ (default: '8774')
+ (an integer)
+ --osapi_scheme: prefix for openstack
+ (default: 'http')
+ --periodic_interval: seconds between running periodic tasks
+ (default: '60')
+ (a positive integer)
+ --pidfile: pidfile to use for this service
+ --rabbit_host: rabbit host
+ (default: 'localhost')
+ --rabbit_max_retries: rabbit connection attempts
+ (default: '12')
+ (an integer)
+ --rabbit_password: rabbit password
+ (default: 'guest')
+ --rabbit_port: rabbit port
+ (default: '5672')
+ (an integer)
+ --rabbit_retry_interval: rabbit connection retry interval
+ (default: '10')
+ (an integer)
+ --rabbit_userid: rabbit userid
+ (default: 'guest')
+ --rabbit_virtual_host: rabbit virtual host
+ (default: '/')
+ --region_list: list of region=fqdn pairs separated by commas
+ (default: '')
+ (a comma separated list)
+ --report_interval: seconds between nodes reporting state to datastore
+ (default: '10')
+ (a positive integer)
+ --s3_dmz: s3 dmz ip (for instances)
+ (default: '$my_ip')
+ --s3_host: s3 host (for infrastructure)
+ (default: '$my_ip')
+ --s3_port: s3 port
+ (default: '3333')
+ (an integer)
+ --scheduler_manager: Manager for scheduler
+ (default: 'nova.scheduler.manager.SchedulerManager')
+ --scheduler_topic: the topic scheduler nodes listen on
+ (default: 'scheduler')
+ --sql_connection: connection string for sql database
+ (default: 'sqlite:///$state_path/nova.sqlite')
+ --sql_idle_timeout: timeout for idle sql database connections
+ (default: '3600')
+ --sql_max_retries: sql connection attempts
+ (default: '12')
+ (an integer)
+ --sql_retry_interval: sql connection retry interval
+ (default: '10')
+ (an integer)
+ --state_path: Top-level directory for maintaining nova's state
+ (default: '/usr/lib/pymodules/python2.6/nova/../')
+ --[no]use_syslog: output to syslog
+ (default: 'false')
+ --[no]verbose: show debug output
+ (default: 'false')
+ --volume_manager: Manager for volume
+ (default: 'nova.volume.manager.VolumeManager')
+ --volume_name_template: Template string to be used to generate instance names
+ (default: 'volume-%08x')
+ --volume_topic: the topic volume nodes listen on
+ (default: 'volume')
+ --vpn_image_id: AMI for cloudpipe vpn server
+ (default: 'ami-cloudpipe')
+ --vpn_key_suffix: Suffix to add to project name for vpn key and secgroups
+ (default: '-vpn') \ No newline at end of file
diff --git a/doc/source/adminguide/getting.started.rst b/doc/source/runnova/getting.started.rst
index 675d8e664..4cc7307b0 100644
--- a/doc/source/adminguide/getting.started.rst
+++ b/doc/source/runnova/getting.started.rst
@@ -105,11 +105,10 @@ Configuration
Configuring the host system
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-As you read through the Administration Guide you will notice configuration hints
-inline with documentation on the subsystem you are configuring. Presented in
-this "Getting Started with Nova" document, we only provide what you need to
-get started as quickly as possible. For a more detailed description of system
-configuration, start reading through :doc:`multi.node.install`.
+Nova can be configured in many different ways. In this "Getting Started with Nova" document, we only provide what you need to get started as quickly as possible. For a more detailed description of system
+configuration, start reading through `Installing and Configuring OpenStack Compute <http://docs.openstack.org/openstack-compute/admin/content/ch03.html>`_.
+
+`Detailed instructions for creating a volume group are available <http://docs.openstack.org/openstack-compute/admin/content/ch05s07.html>`_, or use these quick instructions.
* Create a volume group (you can use an actual disk for the volume group as
well)::
@@ -136,6 +135,8 @@ flagfile, so typically a file like ``nova-manage.conf`` would have as its first
line ``--flagfile=/etc/nova/nova.conf`` to load the common flags before
specifying overrides or additional options.
+To get a current comprehensive list of flag file options, run bin/nova-<servicename> --help, or refer to a static list at `Reference for Flags in nova.conf <http://docs.openstack.org/openstack-compute/admin/content/ch05s08.html>`_.
+
A sample configuration to test the system follows::
--verbose
@@ -143,13 +144,13 @@ A sample configuration to test the system follows::
--auth_driver=nova.auth.dbdriver.DbDriver
Running
----------
+-------
There are many parts to the nova system, each with a specific function. They
are built to be highly-available, so there are may configurations they can be
run in (ie: on many machines, many listeners per machine, etc). This part
of the guide only gets you started quickly, to learn about HA options, see
-:doc:`multi.node.install`.
+`Installing and Configuring OpenStack Compute <http://docs.openstack.org/openstack-compute/admin/content/ch03.html>`_.
Launch supporting services
diff --git a/doc/source/adminguide/index.rst b/doc/source/runnova/index.rst
index 3bd72cfdc..283d268ce 100644
--- a/doc/source/adminguide/index.rst
+++ b/doc/source/runnova/index.rst
@@ -15,17 +15,17 @@
License for the specific language governing permissions and limitations
under the License.
-Administration Guide
-====================
+Running Nova
+============
-This guide describes the basics of running and managing Nova.
+This guide describes the basics of running and managing Nova. For more administrator's documentation, refer to `docs.openstack.org <http://docs.openstack.org>`_.
Running the Cloud
-----------------
-The fastest way to get a test cloud running is by following the directions in the :doc:`../quickstart`.
+The fastest way to get a test cloud running is by following the directions in the :doc:`../quickstart`. It relies on a nova.sh script to run on a single machine.
-Nova's cloud works via the interaction of a series of daemon processes that reside persistently on the host machine(s). Fortunately, the :doc:`../quickstart` process launches sample versions of all these daemons for you. Once you are familiar with basic Nova usage, you can learn more about daemons by reading :doc:`../service.architecture` and :doc:`binaries`.
+Nova's cloud works via the interaction of a series of daemon processes that reside persistently on the host machine(s). Fortunately, the :doc:`../quickstart` process launches sample versions of all these daemons for you. Once you are familiar with basic Nova usage, you can learn more about daemons by reading :doc:`../service.architecture` and :doc:`binaries`.
Administration Utilities
------------------------
@@ -60,12 +60,12 @@ For background on the core objects referenced in this section, see :doc:`../obje
Deployment
----------
-For a starting multi-node architecture, you would start with two nodes - a cloud controller node and a compute node. The cloud controller node contains the nova- services plus the Nova database. The compute node installs all the nova-services but then refers to the database installation, which is hosted by the cloud controller node. Ensure that the nova.conf file is identical on each node. If you find performance issues not related to database reads or writes, but due to the messaging queue backing up, you could add additional messaging services (rabbitmq).
+For a starting multi-node architecture, you would start with two nodes - a cloud controller node and a compute node. The cloud controller node contains the nova- services plus the Nova database. The compute node installs all the nova-services but then refers to the database installation, which is hosted by the cloud controller node. Ensure that the nova.conf file is identical on each node. If you find performance issues not related to database reads or writes, but due to the messaging queue backing up, you could add additional messaging services (rabbitmq). For instructions on multi-server installations, refer to `Installing and Configuring OpenStack Compute <http://docs.openstack.org/openstack-compute/admin/content/ch03.html>`_.
+
.. toctree::
:maxdepth: 1
- multi.node.install
dbsync
@@ -75,7 +75,6 @@ Networking
.. toctree::
:maxdepth: 1
- multi.node.install
network.vlan.rst
network.flat.rst
diff --git a/doc/source/adminguide/managing.images.rst b/doc/source/runnova/managing.images.rst
index c5d93a6e8..c5d93a6e8 100644
--- a/doc/source/adminguide/managing.images.rst
+++ b/doc/source/runnova/managing.images.rst
diff --git a/doc/source/adminguide/managing.instances.rst b/doc/source/runnova/managing.instances.rst
index e62352017..e62352017 100644
--- a/doc/source/adminguide/managing.instances.rst
+++ b/doc/source/runnova/managing.instances.rst
diff --git a/doc/source/adminguide/managing.networks.rst b/doc/source/runnova/managing.networks.rst
index 9eea46d70..9eea46d70 100644
--- a/doc/source/adminguide/managing.networks.rst
+++ b/doc/source/runnova/managing.networks.rst
diff --git a/doc/source/adminguide/managing.projects.rst b/doc/source/runnova/managing.projects.rst
index 5dd7f2de9..5dd7f2de9 100644
--- a/doc/source/adminguide/managing.projects.rst
+++ b/doc/source/runnova/managing.projects.rst
diff --git a/doc/source/adminguide/managing.users.rst b/doc/source/runnova/managing.users.rst
index 392142e86..392142e86 100644
--- a/doc/source/adminguide/managing.users.rst
+++ b/doc/source/runnova/managing.users.rst
diff --git a/doc/source/adminguide/managingsecurity.rst b/doc/source/runnova/managingsecurity.rst
index 7893925e7..7893925e7 100644
--- a/doc/source/adminguide/managingsecurity.rst
+++ b/doc/source/runnova/managingsecurity.rst
diff --git a/doc/source/adminguide/monitoring.rst b/doc/source/runnova/monitoring.rst
index 2c93c71b5..2c93c71b5 100644
--- a/doc/source/adminguide/monitoring.rst
+++ b/doc/source/runnova/monitoring.rst
diff --git a/doc/source/adminguide/network.flat.rst b/doc/source/runnova/network.flat.rst
index 3d8680c6f..3d8680c6f 100644
--- a/doc/source/adminguide/network.flat.rst
+++ b/doc/source/runnova/network.flat.rst
diff --git a/doc/source/adminguide/network.vlan.rst b/doc/source/runnova/network.vlan.rst
index c06ce8e8b..c06ce8e8b 100644
--- a/doc/source/adminguide/network.vlan.rst
+++ b/doc/source/runnova/network.vlan.rst
diff --git a/doc/source/adminguide/nova.manage.rst b/doc/source/runnova/nova.manage.rst
index 0e9a29b6b..0e9a29b6b 100644
--- a/doc/source/adminguide/nova.manage.rst
+++ b/doc/source/runnova/nova.manage.rst
diff --git a/nova/api/openstack/auth.py b/nova/api/openstack/auth.py
index dff69a7f2..6011e6115 100644
--- a/nova/api/openstack/auth.py
+++ b/nova/api/openstack/auth.py
@@ -26,6 +26,7 @@ import webob.dec
from nova import auth
from nova import context
from nova import db
+from nova import exception
from nova import flags
from nova import manager
from nova import utils
@@ -103,11 +104,14 @@ class AuthMiddleware(wsgi.Middleware):
2 days ago.
"""
ctxt = context.get_admin_context()
- token = self.db.auth_token_get(ctxt, token_hash)
+ try:
+ token = self.db.auth_token_get(ctxt, token_hash)
+ except exception.NotFound:
+ return None
if token:
delta = datetime.datetime.now() - token.created_at
if delta.days >= 2:
- self.db.auth_token_destroy(ctxt, token.id)
+ self.db.auth_token_destroy(ctxt, token.token_hash)
else:
return self.auth.get_user(token.user_id)
return None
diff --git a/nova/db/api.py b/nova/db/api.py
index 4c7eb857f..dcaf55e8f 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -640,6 +640,11 @@ def auth_token_get(context, token_hash):
return IMPL.auth_token_get(context, token_hash)
+def auth_token_update(context, token_hash, values):
+ """Updates a token given the hash representing it."""
+ return IMPL.auth_token_update(context, token_hash, values)
+
+
def auth_token_create(context, token):
"""Creates a new token."""
return IMPL.auth_token_create(context, token)
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 0be08c4d1..6df2a8843 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1270,8 +1270,9 @@ def auth_token_destroy(context, token_id):
@require_admin_context
-def auth_token_get(context, token_hash):
- session = get_session()
+def auth_token_get(context, token_hash, session=None):
+ if session is None:
+ session = get_session()
tk = session.query(models.AuthToken).\
filter_by(token_hash=token_hash).\
filter_by(deleted=can_read_deleted(context)).\
@@ -1282,6 +1283,15 @@ def auth_token_get(context, token_hash):
@require_admin_context
+def auth_token_update(context, token_hash, values):
+ session = get_session()
+ with session.begin():
+ token_ref = auth_token_get(context, token_hash, session=session)
+ token_ref.update(values)
+ token_ref.save(session=session)
+
+
+@require_admin_context
def auth_token_create(_context, token):
tk = models.AuthToken()
tk.update(token)
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 12a0c5018..500f2a1e8 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -163,11 +163,22 @@ class NetworkManager(manager.Manager):
def allocate_fixed_ip(self, context, instance_id, *args, **kwargs):
"""Gets a fixed ip from the pool."""
- raise NotImplementedError()
+ # TODO(vish): when this is called by compute, we can associate compute
+ # with a network, or a cluster of computes with a network
+ # and use that network here with a method like
+ # network_get_by_compute_host
+ network_ref = self.db.network_get_by_bridge(context,
+ FLAGS.flat_network_bridge)
+ address = self.db.fixed_ip_associate_pool(context.elevated(),
+ network_ref['id'],
+ instance_id)
+ self.db.fixed_ip_update(context, address, {'allocated': True})
+ return address
def deallocate_fixed_ip(self, context, address, *args, **kwargs):
"""Returns a fixed ip to the pool."""
- raise NotImplementedError()
+ self.db.fixed_ip_update(context, address, {'allocated': False})
+ self.db.fixed_ip_disassociate(context.elevated(), address)
def setup_fixed_ip(self, context, address):
"""Sets up rules for fixed ip."""
@@ -257,12 +268,58 @@ class NetworkManager(manager.Manager):
def get_network_host(self, context):
"""Get the network host for the current context."""
- raise NotImplementedError()
+ network_ref = self.db.network_get_by_bridge(context,
+ FLAGS.flat_network_bridge)
+ # NOTE(vish): If the network has no host, use the network_host flag.
+ # This could eventually be a a db lookup of some sort, but
+ # a flag is easy to handle for now.
+ host = network_ref['host']
+ if not host:
+ topic = self.db.queue_get_for(context,
+ FLAGS.network_topic,
+ FLAGS.network_host)
+ if FLAGS.fake_call:
+ return self.set_network_host(context, network_ref['id'])
+ host = rpc.call(context,
+ FLAGS.network_topic,
+ {"method": "set_network_host",
+ "args": {"network_id": network_ref['id']}})
+ return host
def create_networks(self, context, cidr, num_networks, network_size,
- cidr_v6, *args, **kwargs):
+ cidr_v6, label, *args, **kwargs):
"""Create networks based on parameters."""
- raise NotImplementedError()
+ fixed_net = IPy.IP(cidr)
+ fixed_net_v6 = IPy.IP(cidr_v6)
+ significant_bits_v6 = 64
+ count = 1
+ for index in range(num_networks):
+ start = index * network_size
+ significant_bits = 32 - int(math.log(network_size, 2))
+ cidr = "%s/%s" % (fixed_net[start], significant_bits)
+ project_net = IPy.IP(cidr)
+ net = {}
+ net['bridge'] = FLAGS.flat_network_bridge
+ net['dns'] = FLAGS.flat_network_dns
+ net['cidr'] = cidr
+ net['netmask'] = str(project_net.netmask())
+ net['gateway'] = str(project_net[1])
+ net['broadcast'] = str(project_net.broadcast())
+ net['dhcp_start'] = str(project_net[2])
+ if num_networks > 1:
+ net['label'] = "%s_%d" % (label, count)
+ else:
+ net['label'] = label
+ count += 1
+
+ if(FLAGS.use_ipv6):
+ cidr_v6 = "%s/%s" % (fixed_net_v6[0], significant_bits_v6)
+ net['cidr_v6'] = cidr_v6
+
+ network_ref = self.db.network_create_safe(context, net)
+
+ if network_ref:
+ self._create_fixed_ips(context, network_ref['id'])
@property
def _bottom_reserved_ips(self): # pylint: disable-msg=R0201
@@ -332,84 +389,10 @@ class FlatManager(NetworkManager):
for network in self.db.host_get_networks(ctxt, self.host):
self._on_set_network_host(ctxt, network['id'])
- def allocate_fixed_ip(self, context, instance_id, *args, **kwargs):
- """Gets a fixed ip from the pool."""
- # TODO(vish): when this is called by compute, we can associate compute
- # with a network, or a cluster of computes with a network
- # and use that network here with a method like
- # network_get_by_compute_host
- network_ref = self.db.network_get_by_bridge(context,
- FLAGS.flat_network_bridge)
- address = self.db.fixed_ip_associate_pool(context.elevated(),
- network_ref['id'],
- instance_id)
- self.db.fixed_ip_update(context, address, {'allocated': True})
- return address
-
- def deallocate_fixed_ip(self, context, address, *args, **kwargs):
- """Returns a fixed ip to the pool."""
- self.db.fixed_ip_update(context, address, {'allocated': False})
- self.db.fixed_ip_disassociate(context.elevated(), address)
-
def setup_compute_network(self, context, instance_id):
"""Network is created manually."""
pass
- def create_networks(self, context, cidr, num_networks, network_size,
- cidr_v6, label, *args, **kwargs):
- """Create networks based on parameters."""
- fixed_net = IPy.IP(cidr)
- fixed_net_v6 = IPy.IP(cidr_v6)
- significant_bits_v6 = 64
- count = 1
- for index in range(num_networks):
- start = index * network_size
- significant_bits = 32 - int(math.log(network_size, 2))
- cidr = "%s/%s" % (fixed_net[start], significant_bits)
- project_net = IPy.IP(cidr)
- net = {}
- net['bridge'] = FLAGS.flat_network_bridge
- net['dns'] = FLAGS.flat_network_dns
- net['cidr'] = cidr
- net['netmask'] = str(project_net.netmask())
- net['gateway'] = str(project_net[1])
- net['broadcast'] = str(project_net.broadcast())
- net['dhcp_start'] = str(project_net[2])
- if num_networks > 1:
- net['label'] = "%s_%d" % (label, count)
- else:
- net['label'] = label
- count += 1
-
- if(FLAGS.use_ipv6):
- cidr_v6 = "%s/%s" % (fixed_net_v6[0], significant_bits_v6)
- net['cidr_v6'] = cidr_v6
-
- network_ref = self.db.network_create_safe(context, net)
-
- if network_ref:
- self._create_fixed_ips(context, network_ref['id'])
-
- def get_network_host(self, context):
- """Get the network host for the current context."""
- network_ref = self.db.network_get_by_bridge(context,
- FLAGS.flat_network_bridge)
- # NOTE(vish): If the network has no host, use the network_host flag.
- # This could eventually be a a db lookup of some sort, but
- # a flag is easy to handle for now.
- host = network_ref['host']
- if not host:
- topic = self.db.queue_get_for(context,
- FLAGS.network_topic,
- FLAGS.network_host)
- if FLAGS.fake_call:
- return self.set_network_host(context, network_ref['id'])
- host = rpc.call(context,
- FLAGS.network_topic,
- {"method": "set_network_host",
- "args": {"network_id": network_ref['id']}})
- return host
-
def _on_set_network_host(self, context, network_id):
"""Called when this host becomes the host for a network."""
net = {}
@@ -434,7 +417,7 @@ class FlatManager(NetworkManager):
raise NotImplementedError()
-class FlatDHCPManager(FlatManager):
+class FlatDHCPManager(NetworkManager):
"""Flat networking with dhcp.
FlatDHCPManager will start up one dhcp server to give out addresses.
diff --git a/nova/rpc.py b/nova/rpc.py
index 205bb524a..8fe4565dd 100644
--- a/nova/rpc.py
+++ b/nova/rpc.py
@@ -91,18 +91,19 @@ class Consumer(messaging.Consumer):
super(Consumer, self).__init__(*args, **kwargs)
self.failed_connection = False
break
- except: # Catching all because carrot sucks
+ except Exception as e: # Catching all because carrot sucks
fl_host = FLAGS.rabbit_host
fl_port = FLAGS.rabbit_port
fl_intv = FLAGS.rabbit_retry_interval
- LOG.exception(_("AMQP server on %(fl_host)s:%(fl_port)d is"
- " unreachable. Trying again in %(fl_intv)d seconds.")
+ LOG.error(_("AMQP server on %(fl_host)s:%(fl_port)d is"
+ " unreachable: %(e)s. Trying again in %(fl_intv)d"
+ " seconds.")
% locals())
self.failed_connection = True
if self.failed_connection:
- LOG.exception(_("Unable to connect to AMQP server "
- "after %d tries. Shutting down."),
- FLAGS.rabbit_max_retries)
+ LOG.error(_("Unable to connect to AMQP server "
+ "after %d tries. Shutting down."),
+ FLAGS.rabbit_max_retries)
sys.exit(1)
def fetch(self, no_ack=None, auto_ack=None, enable_callbacks=False):
diff --git a/nova/tests/api/openstack/test_auth.py b/nova/tests/api/openstack/test_auth.py
index 86dfb110f..ff8d42a14 100644
--- a/nova/tests/api/openstack/test_auth.py
+++ b/nova/tests/api/openstack/test_auth.py
@@ -26,6 +26,7 @@ import nova.api.openstack.auth
import nova.auth.manager
from nova import auth
from nova import context
+from nova import db
from nova import test
from nova.tests.api.openstack import fakes
@@ -130,6 +131,33 @@ class Test(test.TestCase):
self.assertEqual(result.status, '401 Unauthorized')
+class TestFunctional(test.TestCase):
+ def test_token_expiry(self):
+ ctx = context.get_admin_context()
+ tok = db.auth_token_create(ctx, dict(
+ token_hash='bacon',
+ cdn_management_url='',
+ server_management_url='',
+ storage_url='',
+ user_id='ham',
+ ))
+
+ db.auth_token_update(ctx, tok.token_hash, dict(
+ created_at=datetime.datetime(2000, 1, 1, 12, 0, 0),
+ ))
+
+ req = webob.Request.blank('/v1.0/')
+ req.headers['X-Auth-Token'] = 'bacon'
+ result = req.get_response(fakes.wsgi_app())
+ self.assertEqual(result.status, '401 Unauthorized')
+
+ def test_token_doesnotexist(self):
+ req = webob.Request.blank('/v1.0/')
+ req.headers['X-Auth-Token'] = 'ham'
+ result = req.get_response(fakes.wsgi_app())
+ self.assertEqual(result.status, '401 Unauthorized')
+
+
class TestLimiter(test.TestCase):
def setUp(self):
super(TestLimiter, self).setUp()
diff --git a/nova/virt/disk.py b/nova/virt/disk.py
index cb639a102..2bded07a4 100644
--- a/nova/virt/disk.py
+++ b/nova/virt/disk.py
@@ -40,6 +40,8 @@ flags.DEFINE_integer('block_size', 1024 * 1024 * 256,
'block_size to use for dd')
flags.DEFINE_integer('timeout_nbd', 10,
'time to wait for a NBD device coming up')
+flags.DEFINE_integer('max_nbd_devices', 16,
+ 'maximum number of possible nbd devices')
def extend(image, size):
@@ -141,7 +143,7 @@ def _unlink_device(device, nbd):
utils.execute('sudo losetup --detach %s' % device)
-_DEVICES = ['/dev/nbd%s' % i for i in xrange(16)]
+_DEVICES = ['/dev/nbd%s' % i for i in xrange(FLAGS.max_nbd_devices)]
def _allocate_device():