From fcb0e910458a2fde904730d719011168a8d23f32 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Mon, 25 Oct 2010 13:51:09 -0700 Subject: nova-debug, relaunch an instance with a serial console --- tools/nova-debug | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100755 tools/nova-debug diff --git a/tools/nova-debug b/tools/nova-debug new file mode 100755 index 000000000..3ff68ca35 --- /dev/null +++ b/tools/nova-debug @@ -0,0 +1,92 @@ +#!/usr/bin/env bash +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2010 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. + +INSTANCES_PATH=${INSTANCES_PATH:-/var/lib/nova/instances} +if [ -z "$1" ]; then echo "specify an instance id to debug"; exit; fi + +if [ -n "$3" ]; then DEVICE=$3; fi + +CMD="all" +if [ -n "$2" ]; then CMD=$2; fi + +cd $INSTANCES_PATH/$1 + +if [ $CMD != "umount" ] && [ $CMD != "launch" ]; then +# destroy the instance +virsh destroy $1 + +# mount the filesystem +mkdir t +DEVICE=`losetup --show -f disk` +echo $DEVICE +kpartx -a $DEVICE +mount /dev/mapper/${DEVICE:4}p1 t + +fi +if [ $CMD != "mount" ] && [ $CMD != "umount" ]; then + +# make serial console listen on ttyS0 +cat >t/etc/init/ttyS0.conf < debug.xml +sed -i "s/.*<\/serial>/<\/serial>/g" debug.xml + +umount t + +virsh create debug.xml +virsh console $1 +virsh destroy $1 + +mount /dev/mapper/${DEVICE:4}p1 t + +# clear debug root password +chroot t passwd -l root + +# remove the serial console conf +rm -f t/etc/init/ttyS0.conf + +fi +if [ $CMD != "mount" ] && [ $CMD != "launch" ]; then + +# unmount the filesystem +umount t +kpartx -d $DEVICE +losetup -d $DEVICE +rmdir t + +# recreate the instance +virsh create libvirt.xml +fi -- cgit From 7c5c8bc2cfc90a17f88a768610fa1bb286b8c05c Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Mon, 25 Oct 2010 14:02:32 -0700 Subject: add nova-debug to setup.py --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a333fbf64..9525fde09 100644 --- a/setup.py +++ b/setup.py @@ -55,4 +55,5 @@ setup(name='nova', 'bin/nova-network', 'bin/nova-objectstore', 'bin/nova-scheduler', - 'bin/nova-volume']) + 'bin/nova-volume', + 'tools/nova-debug']) -- cgit From dfe98891b46c4f02f13ea2686979ca7ff4547bd3 Mon Sep 17 00:00:00 2001 From: Ryan Lane Date: Mon, 25 Oct 2010 23:10:51 +0000 Subject: Making net injection create /etc/network if non-existant --- nova/compute/disk.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nova/compute/disk.py b/nova/compute/disk.py index e362b4507..f2e5f8570 100644 --- a/nova/compute/disk.py +++ b/nova/compute/disk.py @@ -171,6 +171,9 @@ def _inject_key_into_fs(key, fs, execute=None): @defer.inlineCallbacks def _inject_net_into_fs(net, fs, execute=None): - netfile = os.path.join(os.path.join(os.path.join( - fs, 'etc'), 'network'), 'interfaces') + netdir = os.path.join(os.path.join(fs, 'etc'), 'network') + yield execute('sudo mkdir -p %s' % netdir) # existing dir doesn't matter + yield execute('sudo chown root:root %s' % netdir) + yield execute('sudo chmod 755 %s' % netdir) + netfile = os.path.join(netdir, 'interfaces') yield execute('sudo tee %s' % netfile, net) -- cgit From 8e12d65af48e69f6ad211c6b880a3162e1d03e78 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Wed, 27 Oct 2010 00:05:42 -0400 Subject: New structure for documentation. --- doc/source/administration.guide.rst | 31 ++++++++ doc/source/concepts.and.introduction.rst | 123 +++++++++++++++++++++++++++++++ doc/source/development.guide.rst | 49 ++++++++++++ doc/source/index.rst | 52 ++++++------- 4 files changed, 226 insertions(+), 29 deletions(-) create mode 100644 doc/source/administration.guide.rst create mode 100644 doc/source/concepts.and.introduction.rst create mode 100644 doc/source/development.guide.rst diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst new file mode 100644 index 000000000..9bea5e2dd --- /dev/null +++ b/doc/source/administration.guide.rst @@ -0,0 +1,31 @@ +.. + Copyright 2010 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. + +Administration Guide +==================== + +How to deploy, monitor, and debug Nova. + + +Contents +-------- + +.. toctree:: + :maxdepth: 1 + + getting.started + diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst new file mode 100644 index 000000000..fc4ebed21 --- /dev/null +++ b/doc/source/concepts.and.introduction.rst @@ -0,0 +1,123 @@ +.. + Copyright 2010 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. + +Concepts and Introduction +========================= + + +Introduction +------------ + +Nova is the software that controls your Infrastructure as as Service (IaaS) +cloud computing platform. It is similar in scope to Amazon EC2 and Rackspace +CloudServers. Nova does not include any virtualization software, rather it +defines drivers that interact with underlying virtualization mechanisms that +run on your host operating system, and exposes functionality over a web API. + +This document does not attempt to explain fundamental concepts of cloud +computing, IaaS, virtualization, or other related technologies. Instead, it +focues on describing how Nova's implementation of those concepts is achieved. + + +Concept: Projects +----------------- + +Projects + + +Concept: Virtualization +----------------------- + +* KVM +* UML +* XEN +* HyperV + + +Concept: Volumes +---------------- + +Volumes + + +Concept: Quotas +--------------- + +* Defaults +* Override for project + + +Concept: API +------------ + +* EC2 +* OpenStack / Rackspace + + +Concept: Networking +------------------- + +* Simple networking +* NASA-Style Networking + + +Concept: Services +----------------- + +Services + + +Concept: Flags +-------------- + +python-gflags + + +Concept: Plugins +---------------- + +LazyPluggable + + +Concept: IPC +------------ + +Rabbit! + + +Concept: Fakes +-------------- + +Fakes + + +Concept: Scheduler +------------------ + +Scheduler + + +Concept: ORM +------------ + +ORM + + +Concept: Manager Pattern +------------------------ + +Managers diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst new file mode 100644 index 000000000..18b08d6fe --- /dev/null +++ b/doc/source/development.guide.rst @@ -0,0 +1,49 @@ +.. + Copyright 2010 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. + +Nova Development Guide +====================== + +Nova is written in python + + +Contents +-------- + +.. toctree:: + :maxdepth: 1 + + architecture + network + storage + auth + compute + endpoint + nova + fakes + binaries + modules + packages + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/doc/source/index.rst b/doc/source/index.rst index 1109e9011..d4cdd1408 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -18,37 +18,31 @@ Welcome to Nova's documentation! ================================ -Nova is a cloud computing fabric controller (the main part of an IaaS system). -It is written in Python and relies on the standard AMQP messaging protocol, uses the Twisted framework, -and optionally uses the Redis distributed key value store for authorization. - -Nova is intended to be easy to extend and adapt. For example, authentication and authorization -requests by default use an RDBMS-backed datastore driver. However, there is already support -for using LDAP backing authentication (slapd) and if you wish to "fake" LDAP, there is a module -available that uses ReDIS to store authentication information in an LDAP-like backing datastore. -It has extensive test coverage, and uses the Sphinx toolkit (the same as Python itself) for code -and developer documentation. Additional documentation is available on the -'OpenStack wiki '_. -While Nova is currently in Beta use within several organizations, the codebase -is very much under active development - please test it and log bugs! - -Contents: +Nova is a cloud computing fabric controller, the main part of an IaaS system. + +Nova is written with the following design guidelines in mind: + +* Component based architecture: Quickly add new behaviors +* Highly available: Scale to very serious workloads +* Fault-Tollerant: Isloated processes avoid cascading failures +* Recoverable: Failures should be easy to diagnose, debug, and rectify +* Open Standards: Be a reference implementation for a community-driven api + +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 '. + + +Contents +-------- .. toctree:: - :maxdepth: 2 - - getting.started - architecture - network - storage - auth - compute - endpoint - nova - fakes - binaries - modules - packages + :maxdepth: 1 + + concepts.and.introduction + administration.guide + development.guide + Indices and tables ================== -- cgit From 32a75c0181524a0d369419495f9a6e3d67d0e1e2 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Wed, 27 Oct 2010 13:49:27 -0400 Subject: Doc updates. --- doc/source/administration.guide.rst | 6 ++++-- doc/source/concepts.and.introduction.rst | 25 ++++++++++++++++++++----- doc/source/flags.rst | 23 +++++++++++++++++++++++ doc/source/multi.node.install.rst | 21 +++++++++++++++++++++ doc/source/quickstart.rst | 21 +++++++++++++++++++++ 5 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 doc/source/flags.rst create mode 100644 doc/source/multi.node.install.rst create mode 100644 doc/source/quickstart.rst diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst index 9bea5e2dd..4ff1afc9a 100644 --- a/doc/source/administration.guide.rst +++ b/doc/source/administration.guide.rst @@ -27,5 +27,7 @@ Contents .. toctree:: :maxdepth: 1 - getting.started - + quickstart + getting.started + multi.node.install + flags diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index fc4ebed21..701e43dfb 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -15,6 +15,7 @@ License for the specific language governing permissions and limitations under the License. + Concepts and Introduction ========================= @@ -32,9 +33,17 @@ This document does not attempt to explain fundamental concepts of cloud computing, IaaS, virtualization, or other related technologies. Instead, it focues on describing how Nova's implementation of those concepts is achieved. +This page outlines concepts that you will need to understand as a user or +administrator of an OpenStack installation. Each section links to more more +detailed information in the `Administration Guide`_, but you'll probably want +to read this section straight-through before tackling the specifics presented +in the administration guide. + +.. _`Administration Guide`: administration.guide.html -Concept: Projects ------------------ + +Concept: Users and Projects +--------------------------- Projects @@ -72,7 +81,7 @@ Concept: Networking ------------------- * Simple networking -* NASA-Style Networking +* VLAN Networking Concept: Services @@ -93,8 +102,8 @@ Concept: Plugins LazyPluggable -Concept: IPC ------------- +Concept: IPC/RPC +---------------- Rabbit! @@ -121,3 +130,9 @@ Concept: Manager Pattern ------------------------ Managers + + +Concept: Security Groups +------------------------ + +Security groups diff --git a/doc/source/flags.rst b/doc/source/flags.rst new file mode 100644 index 000000000..4c950aa88 --- /dev/null +++ b/doc/source/flags.rst @@ -0,0 +1,23 @@ +.. + Copyright 2010 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/multi.node.install.rst b/doc/source/multi.node.install.rst new file mode 100644 index 000000000..443e2c4c3 --- /dev/null +++ b/doc/source/multi.node.install.rst @@ -0,0 +1,21 @@ +.. + Copyright 2010 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. + +Multi-Node Nova +=============== + +http://etherpad.openstack.org/NovaMultinodeInstall diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst new file mode 100644 index 000000000..7a41d4be6 --- /dev/null +++ b/doc/source/quickstart.rst @@ -0,0 +1,21 @@ +.. + Copyright 2010 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. + +Nova Quickstart +========================= + +http://github.com/vishvananda/novascript -- cgit From 55a0cfc96b92bd050115244c850f4ad58791c83f Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Wed, 27 Oct 2010 15:52:06 -0400 Subject: Doc skeleton from collaborative etherpad hack session. --- doc/source/administration.guide.rst | 2 + doc/source/auth.rst | 15 +++++++ doc/source/compute.rst | 21 ++++++++++ doc/source/concepts.and.introduction.rst | 70 ++++++++++++++++++++++++-------- doc/source/development.guide.rst | 15 +++++-- doc/source/monitoring.rst | 27 ++++++++++++ doc/source/multi.node.install.rst | 4 ++ doc/source/network.rst | 19 +++++++++ doc/source/services.rst | 31 ++++++++++++++ doc/source/storage.rst | 16 ++++++++ 10 files changed, 201 insertions(+), 19 deletions(-) create mode 100644 doc/source/monitoring.rst create mode 100644 doc/source/services.rst diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst index 4ff1afc9a..789e97381 100644 --- a/doc/source/administration.guide.rst +++ b/doc/source/administration.guide.rst @@ -30,4 +30,6 @@ Contents quickstart getting.started multi.node.install + services flags + monitoring diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 3fcb309cd..2b8ad7924 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -18,6 +18,21 @@ Auth Documentation ================== + +from etherpad todo +------------------ + +:: + * FIX RST IMPORT ERRORS + * Manager + * Driver + * ldap + * fakeldap + * redisectomy + +legacy docs +----------- + Nova provides RBAC (Role-based access control) of the AWS-type APIs. We define the following roles: Roles-Based Access Control of AWS-style APIs using SAML Assertions diff --git a/doc/source/compute.rst b/doc/source/compute.rst index 5b08dbd5b..76957f316 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -18,6 +18,27 @@ Compute Documentation ===================== + +from etherpad todo +------------------ + +:: + * FIX RST IMPORT ERRORS + * Compute Manager + * public methods + * responsibilities + * Compute Driver + * public methods + * libvirt implementation + - kvm/qemu + - uml + * xen implementation + * hyperv implementation + + +legacy docs +----------- + This page contains the Compute Package documentation. diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 701e43dfb..5c006454d 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -45,7 +45,10 @@ in the administration guide. Concept: Users and Projects --------------------------- -Projects +* access to images is limited by project +* access/secret are per user +* keypairs are per user +* quotas are per project Concept: Virtualization @@ -55,6 +58,7 @@ Concept: Virtualization * UML * XEN * HyperV +* qemu Concept: Volumes @@ -70,6 +74,13 @@ Concept: Quotas * Override for project +Concept: RBAC +------------- + +* Intersecting Roles +* cloudadmin vs. user admin flag + + Concept: API ------------ @@ -80,14 +91,30 @@ Concept: API Concept: Networking ------------------- -* Simple networking -* VLAN Networking +* VLAN + * Cloudpipe + * Certificates (See also: CA) +* Flat Networking +* Flat with DHCP +* How to generate addresses +* Floating Addresses Concept: Services ----------------- -Services +* nova-api +* nova-scheduler +* nova-compute +* nova-volume +* nova-network +* nova-instancemonitor + + +Concept: nova-manage +-------------------- + +nova manage Concept: Flags @@ -99,7 +126,13 @@ python-gflags Concept: Plugins ---------------- -LazyPluggable +* Managers/Drivers: utils.import_object from string flag +* virt/connections: conditional loading from string flag +* db: LazyPluggable via string flag +* auth_manager: utils.import_class based on string flag +* Volumes: moving to pluggable driver instead of manager +* Network: pluggable managers +* Compute: same driver used, but pluggable at connection Concept: IPC/RPC @@ -111,28 +144,33 @@ Rabbit! Concept: Fakes -------------- -Fakes +* auth +* ldap Concept: Scheduler ------------------ -Scheduler +* simple +* random -Concept: ORM ------------- +Concept: Security Groups +------------------------ -ORM +Security groups -Concept: Manager Pattern ------------------------- +Concept: Certificate Authority +------------------------------ -Managers +Per-project CA +* Images +* VPNs -Concept: Security Groups ------------------------- +Concept: Images +--------------- -Security groups +* launching +* bundling diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 18b08d6fe..2c8fa86f9 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -27,11 +27,20 @@ Contents .. toctree:: :maxdepth: 1 - architecture - network + database storage - auth compute + network + auth + + +Older Contents +-------------- + +.. toctree:: + :maxdepth: 1 + + architecture endpoint nova fakes diff --git a/doc/source/monitoring.rst b/doc/source/monitoring.rst new file mode 100644 index 000000000..e7766a6e7 --- /dev/null +++ b/doc/source/monitoring.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Monitoring +========== + +* components +* throughput +* exceptions +* hardware + +* ganglia +* syslog diff --git a/doc/source/multi.node.install.rst b/doc/source/multi.node.install.rst index 443e2c4c3..dad9dcd01 100644 --- a/doc/source/multi.node.install.rst +++ b/doc/source/multi.node.install.rst @@ -19,3 +19,7 @@ Multi-Node Nova =============== http://etherpad.openstack.org/NovaMultinodeInstall + +* Puppet +* Chef +* PXE diff --git a/doc/source/network.rst b/doc/source/network.rst index 357a0517f..ef374a726 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -18,6 +18,25 @@ nova Networking ================ + +from etherpad todo +------------------ +:: + * Network Manager + * overview (use vish email) + * public methods + * responsibilities + * Vlan + DHCP implementation + * Flat + DHCP implementation + * Flat impleplementation + * Network Driver + * public methods + * hardware specific commands + + +legacy docs +----------- + The nova networking components manage private networks, public IP addressing, VPN connectivity, and firewall rules. Components diff --git a/doc/source/services.rst b/doc/source/services.rst new file mode 100644 index 000000000..7ff8fa6c3 --- /dev/null +++ b/doc/source/services.rst @@ -0,0 +1,31 @@ +.. + Copyright 2010 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. + +Services +======== + +Admin guide should go beyoned concepts & introduction by talking about how +each service interacts with each other, what requirements for deployment are, +monotoring, logging, etc + + +* nova-api +* nova-scheduler +* nova-compute +* nova-volume +* nova-network +* nova-instancemonitor diff --git a/doc/source/storage.rst b/doc/source/storage.rst index f77e5f0e5..72880a4a1 100644 --- a/doc/source/storage.rst +++ b/doc/source/storage.rst @@ -18,6 +18,22 @@ Storage in the Nova Cloud ========================= + +from etherpad todo +------------------- +:: + * Volume Manager + * public methods + * responsibilities + * Volume Driver + * public methods + * AoE implementation + * ISCSI implementation + + +legacy docs +----------- + There are three primary classes of storage in a nova cloud environment: * Ephemeral Storage (local disk within an instance) -- cgit From a1287cf4e15d469163ec6465ea5f6ce200c20543 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Wed, 27 Oct 2010 17:31:46 -0400 Subject: cleanup rrd doc generation. --- doc/source/auth.rst | 26 +++++++++++++++++++----- doc/source/compute.rst | 54 ++++++++++++++++++++++---------------------------- doc/source/conf.py | 2 +- nova/auth/fakeldap.py | 1 - nova/auth/manager.py | 3 +-- 5 files changed, 47 insertions(+), 39 deletions(-) diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 2b8ad7924..d739e4b8e 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -195,18 +195,34 @@ The :mod:`signer` Module :undoc-members: :show-inheritance: -The :mod:`users` Module ------------------------ +The :mod:`manager` Module +------------------------- -.. automodule:: nova.auth.users +.. automodule:: nova.auth.manager :members: :undoc-members: :show-inheritance: -The :mod:`users_unittest` Module +The :mod:`ldapdriver` Module +---------------------------- + +.. automodule:: nova.auth.ldapdriver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`dbdriver` Module +---------------------------- + +.. automodule:: nova.auth.dbdriver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`auth_unittest` Module -------------------------------- -.. automodule:: nova.tests.users_unittest +.. automodule:: nova.tests.auth_unittest :members: :undoc-members: :show-inheritance: diff --git a/doc/source/compute.rst b/doc/source/compute.rst index 76957f316..93070fa88 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -15,80 +15,74 @@ License for the specific language governing permissions and limitations under the License. -Compute Documentation -===================== - from etherpad todo ------------------ -:: * FIX RST IMPORT ERRORS * Compute Manager * public methods * responsibilities * Compute Driver * public methods - * libvirt implementation - - kvm/qemu - - uml + * libvirt implementation (kvm/qemu vs uml) * xen implementation * hyperv implementation -legacy docs ------------ +Compute Documentation +===================== This page contains the Compute Package documentation. -The :mod:`disk` Module ----------------------- +The :mod:`manager` Module +------------------------- -.. automodule:: nova.compute.disk +.. automodule:: nova.compute.manager :members: :undoc-members: :show-inheritance: -The :mod:`exception` Module ---------------------------- +The :mod:`disk` Module +---------------------- -.. automodule:: nova.compute.exception +.. automodule:: nova.compute.disk :members: :undoc-members: :show-inheritance: -The :mod:`model` Module -------------------------- +The :mod:`instance_types` Module +-------------------------------- -.. automodule:: nova.compute.model +.. automodule:: nova.compute.instance_types :members: :undoc-members: :show-inheritance: - -The :mod:`network` Module -------------------------- -.. automodule:: nova.compute.network +The :mod:`power_state` Module +----------------------------- + +.. automodule:: nova.compute.power_state :members: :undoc-members: :show-inheritance: -The :mod:`node` Module ----------------------- +The :mod:`monitor` Module +------------------------- -.. automodule:: nova.compute.node +.. automodule:: nova.compute.monitor :members: :undoc-members: :show-inheritance: - + RELATED TESTS ---------------- +------------- -The :mod:`node_unittest` Module -------------------------------- +The :mod:`compute_unittest` Module +---------------------------------- -.. automodule:: nova.tests.node_unittest +.. automodule:: nova.tests.compute_unittest :members: :undoc-members: :show-inheritance: diff --git a/doc/source/conf.py b/doc/source/conf.py index 505771ff8..3cf79503a 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -16,7 +16,7 @@ import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.append([os.path.abspath('../nova'), os.path.abspath('..'), os.path.abspath('../bin')]) +sys.path.insert(0, '../..') # -- General configuration ----------------------------------------------------- diff --git a/nova/auth/fakeldap.py b/nova/auth/fakeldap.py index cf3a84a5d..1a49b73fe 100644 --- a/nova/auth/fakeldap.py +++ b/nova/auth/fakeldap.py @@ -79,7 +79,6 @@ def _match_query(query, attrs): &, |, and ! are supported in the query. No syntax checking is performed, so malformed querys will not work correctly. - """ # cut off the parentheses inner = query[1:-1] diff --git a/nova/auth/manager.py b/nova/auth/manager.py index 001a96875..7b2b68161 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -84,12 +84,11 @@ class AuthBase(object): @classmethod def safe_id(cls, obj): - """Safe get object id + """Safely get object id. This method will return the id of the object if the object is of this class, otherwise it will return the original object. This allows methods to accept objects or ids as paramaters. - """ if isinstance(obj, cls): return obj.id -- cgit From 0211ec7d61bea7e818418b6f17fdd45770ca9337 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 27 Oct 2010 16:33:25 -0700 Subject: updates to auth, concepts, and network, fix of docstring --- doc/source/auth.rst | 46 ++++++++++++++++----------- doc/source/concepts.and.introduction.rst | 53 +++++++++++++++++++++++-------- doc/source/conf.py | 2 +- doc/source/images/cloudpipe.png | Bin 0 -> 89812 bytes doc/source/network.rst | 34 ++++++++++---------- nova/auth/manager.py | 1 - 6 files changed, 85 insertions(+), 51 deletions(-) create mode 100644 doc/source/images/cloudpipe.png diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 2b8ad7924..0e3303949 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,9 +15,10 @@ License for the specific language governing permissions and limitations under the License. -Auth Documentation -================== +.. _auth: +Auth Documentation +================== from etherpad todo ------------------ @@ -39,7 +40,7 @@ Roles-Based Access Control of AWS-style APIs using SAML Assertions “Achieving FIPS 199 Moderate certification of a hybrid cloud environment using CloudAudit and declarative C.I.A. classifications” Introduction --------------- +------------ We will investigate one method for integrating an AWS-style API with US eAuthentication-compatible federated authentication systems, to achieve access controls and limits based on traditional operational roles. Additionally, we will look at how combining this approach, with an implementation of the CloudAudit APIs, will allow us to achieve a certification under FIPS 199 Moderate classification for a hybrid cloud environment. @@ -54,24 +55,26 @@ Typical implementations of US eAuth authentication systems are structured as fol [ SUN Identity Manager or other SAML Policy Controller ] --> maps URLs to groups… [ Apache Policy Agent in front of eAuth-secured Web Application ] - + In more ideal implementations, the remainder of the application-specific account information is stored either in extended schema on the LDAP server itself, via the use of a translucent LDAP proxy, or in an independent datastore keyed off of the UID provided via SAML assertion. -Basic AWS API call structure ----------------------------- +.. _auth_roles: + +Roles +----- -AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: +AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: * System User * System Administrator * Network Administrator * Project Manager * Cloud Administrator -* (IT-Sec?) +* IT-Security -There is an additional, conceptual end-user that may or may not have API access: +There is an additional, conceptual end-user that may or may not have API access: -* (EXTERNAL) End-user / Third-party User +* (EXTERNAL) End-user / Third-party User Basic operations are available to any System User: @@ -106,7 +109,7 @@ Cloud Administrator: Enhancements ------------ -* SAML Token passing +* SAML Token passing * REST interfaces * SOAP interfaces @@ -151,7 +154,7 @@ Dirty Cloud – Hybrid Data Centers * CloudAudit bridge interfaces * Anything in the ARP table -A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network. +A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network. This interconnect is typically a bridged VPN connection. Any machines that can be bridged into a hybrid environment in this fashion (at Layer 2) must implement a minimum version of the CloudAudit spec, such that they can be queried to provide a complete picture of the IT-sec runtime environment. @@ -167,7 +170,7 @@ The Details System limits ------------- -The following limits need to be defined and enforced: +The following limits need to be defined and enforced: * Total number of instances allowed (user / project) * Total number of instances, per instance type (user / project) @@ -195,18 +198,18 @@ The :mod:`signer` Module :undoc-members: :show-inheritance: -The :mod:`users` Module +The :mod:`auth` Module ----------------------- -.. automodule:: nova.auth.users +.. automodule:: nova.auth.manager :members: :undoc-members: :show-inheritance: -The :mod:`users_unittest` Module +The :mod:`auth_unittest` Module -------------------------------- -.. automodule:: nova.tests.users_unittest +.. automodule:: nova.tests.auth_unittest :members: :undoc-members: :show-inheritance: @@ -219,4 +222,11 @@ The :mod:`access_unittest` Module :undoc-members: :show-inheritance: +The :mod:`ec2` Module +------------------------ + +.. automodule:: nova.api.ec2 + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 5c006454d..54a9c7ccd 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -61,25 +61,33 @@ Concept: Virtualization * qemu +Concept: Instances +------------------ + +An 'instance' is a word for a virtual machine that runs inside the cloud. + Concept: Volumes ---------------- -Volumes +A 'volume' is a detachable block storage device. You can think of it as a usb hard drive. It can only be attached to one instance at a time, and it behaves Concept: Quotas --------------- -* Defaults -* Override for project +Nova supports per-project quotas. There are currently quotas for number of instances, total number of cores, number of volumes, total number of gigabytes, and number of floating ips. Concept: RBAC ------------- -* Intersecting Roles -* cloudadmin vs. user admin flag +Nova provides roles based access control (RBAC) for access to api commands. A user can have a number of different :ref:`roles `. Roles define which api_commands a user can perform. + +It is important to know that there are user-specific (sometimes called global) roles and project-specific roles. A user's actual permissions in a particular project are the INTERSECTION of his user-specific roles and is project-specific roles. +For example: A user can access api commands allowed to the netadmin role (like allocate_address) only if he has the user-specific netadmin role AND the project-specific netadmin role. + +More information about RBAC can be found in the :ref:`auth`. Concept: API ------------ @@ -91,14 +99,31 @@ Concept: API Concept: Networking ------------------- -* VLAN - * Cloudpipe - * Certificates (See also: CA) -* Flat Networking -* Flat with DHCP -* How to generate addresses -* Floating Addresses +Nova has a concept of Fixed Ips and Floating ips. Fixed ips are assigned to an instance on creation and stay the same until the instance is explicitly terminated. Floating ips are ip addresses that can be dynamically associated with an instance. This address can be disassociated and associated with another instance at any time. + +There are multiple strategies available for implementing fixed ips: + +Flat Mode +^^^^^^^^^ + +The simplest networking mode. Each instance receives a fixed ip from the pool. All instances are attached to the same bridge (br100) by default. The bridge must be configured manually. The networking configuration is injected into the instance before it is booted. Note that this currently only works on linux-style systems that keep networking configuration in /etc/network/interfaces. +Flat DHCP Mode +^^^^^^^^^^^^^^ + +This is similar to the flat mode, in that all instances are attached to the same bridge. In this mode nova does a bit more configuration, it will attempt to bridge into an ethernet device (eth0 by default). It will also run dnsmasq as a dhcpserver listening on this bridge. Instances receive their fixed ips by doing a dhcpdiscover. + +VLAN DHCP Mode +^^^^^^^^^^^^^^ + +This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code name cloudpipe) needs to be created. Nova generates a certificate and key for the userto access the vpn and starts the vpn automatically. + +The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds) + +.. image:: /images/cloudpipe.png + :width: 100% + +.. Concept: Services ----------------- @@ -114,7 +139,7 @@ Concept: Services Concept: nova-manage -------------------- -nova manage +nova-manage is a command line utility for performing administrative tasks and checking on the health of the system. Concept: Flags diff --git a/doc/source/conf.py b/doc/source/conf.py index 505771ff8..34f049362 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -16,7 +16,7 @@ import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.append([os.path.abspath('../nova'), os.path.abspath('..'), os.path.abspath('../bin')]) +sys.path.append([os.path.abspath('../../'), os.path.abspath('../../bin')]) # -- General configuration ----------------------------------------------------- diff --git a/doc/source/images/cloudpipe.png b/doc/source/images/cloudpipe.png new file mode 100644 index 000000000..ffdd181f2 Binary files /dev/null and b/doc/source/images/cloudpipe.png differ diff --git a/doc/source/network.rst b/doc/source/network.rst index ef374a726..b776ae40e 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -43,65 +43,65 @@ Components ---------- There are several key components: -* NetworkController (Manages address and vlan allocation) +* NetworkController (Manages address and vlan allocation) * RoutingNode (NATs public IPs to private IPs, and enforces firewall rules) * AddressingNode (runs DHCP services for private networks) * BridgingNode (a subclass of the basic nova ComputeNode) * TunnelingNode (provides VPN connectivity) - + Component Diagram ----------------- Overview:: - (PUBLIC INTERNET) + (PUBLIC INTERNET) | \ / \ / \ [RoutingNode] ... [RN] [TunnelingNode] ... [TN] | \ / | | | < AMQP > | | - [AddressingNode]-- (VLAN) ... | (VLAN)... (VLAN) --- [AddressingNode] + [AddressingNode]-- (VLAN) ... | (VLAN)... (VLAN) --- [AddressingNode] \ | \ / / \ / \ / \ / \ [BridgingNode] ... [BridgingNode] - - + + [NetworkController] ... [NetworkController] \ / < AMQP > | / \ - [CloudController]...[CloudController] + [CloudController]...[CloudController] -While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently). +While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently). State Model ----------- Network State consists of the following facts: * VLAN assignment (to a project) -* Private Subnet assignment (to a security group) in a VLAN +* Private Subnet assignment (to a security group) in a VLAN * Private IP assignments (to running instances) * Public IP allocations (to a project) * Public IP associations (to a private IP / running instance) -While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed "fact engine" for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash. +While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed "fact engine" for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash. The Public Traffic Path ----------------------- - + Public Traffic:: (PUBLIC INTERNET) | - <-- [RoutingNode] + <-- [RoutingNode] | [AddressingNode] --> | - ( VLAN ) + ( VLAN ) | <-- [BridgingNode] | - + -The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance. +The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance. -Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details). +Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details). diff --git a/nova/auth/manager.py b/nova/auth/manager.py index 001a96875..8388d5a5d 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -89,7 +89,6 @@ class AuthBase(object): This method will return the id of the object if the object is of this class, otherwise it will return the original object. This allows methods to accept objects or ids as paramaters. - """ if isinstance(obj, cls): return obj.id -- cgit From 938caf0eb6620599a48696e9ca14cd4013e5cffb Mon Sep 17 00:00:00 2001 From: Devin Carlen Date: Wed, 27 Oct 2010 17:14:24 -0700 Subject: added nova-manage docs --- doc/source/concepts.and.introduction.rst | 113 ++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 2 deletions(-) diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 54a9c7ccd..76db9e9f2 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -135,11 +135,120 @@ Concept: Services * nova-network * nova-instancemonitor - Concept: nova-manage -------------------- -nova-manage is a command line utility for performing administrative tasks and checking on the health of the system. +Introduction +++++++++++++ + +The nova-manage command is used to perform many essential functions for +administration and ongoing maintenance of nova, such as user creation, +vpn management, and much more. + +The standard pattern for executing a nova-manage command is: + +``nova-manage []`` + +For example, to obtain a list of all projects: + +``nova-manage project list`` + +User Maintenance +++++++++++++++++ + +* user admin: creates a new admin and prints exports + * arguments: name [access] [secret] +* user create: creates a new user and prints exports + * arguments: name [access] [secret] +* user delete: deletes an existing user + * arguments: name +* user exports: prints access and secrets for user in export format + * arguments: name +* user list: lists all users + * arguments: none +* user modify: update a users keys & admin flag + * arguments: accesskey secretkey admin + * leave any field blank to ignore it, admin should be 'T', 'F', or blank + +Project Maintenance ++++++++++++++++++++ + +* project add: Adds user to project + * arguments: project user +* project create: Creates a new project + * arguments: name project_manager [description] +* project delete: Deletes an existing project + * arguments: project_id +* project environment: Exports environment variables to an sourcable file + * arguments: project_id user_id [filename='novarc] +* project list: lists all projects + * arguments: none +* project quota: Set or display quotas for project + * arguments: project_id [key] [value] +* project remove: Removes user from project + * arguments: project user +* project scrub: Deletes data associated with project + * arguments: project +* project zipfile: Exports credentials for project to a zip file + * arguments: project_id user_id [filename='nova.zip] + +User Role Management +++++++++++++++++++++ + +* role add: adds role to user + * if project is specified, adds project specific role + * arguments: user, role [project] +* role has: checks to see if user has role + * if project is specified, returns True if user has + the global role and the project role + * arguments: user, role [project] +* role remove: removes role from user + * if project is specified, removes project specific role + * arguments: user, role [project] + + +Nova Shell +++++++++++ + +* shell bpython + * start a new bpython shell +* shell ipython + * start a new ipython shell +* shell python + * start a new python shell +* shell run + * ??? +* shell script: Runs the script from the specifed path with flags set properly. + * arguments: path + +VPN Management +++++++++++++++ + +* vpn list: Print a listing of the VPNs for all projects. + * arguments: none +* vpn run: Start the VPN for a given project. + * arguments: project +* vpn spawn: Run all VPNs. + * arguments: none + + +Floating IP Management +++++++++++++++++++++++ + +* floating create: Creates floating ips for host by range + * arguments: host ip_range +* floating delete: Deletes floating ips by range + * arguments: range +* floating list: Prints a listing of all floating ips + * arguments: none + +Network Management +++++++++++++++++++ + +* network create: Creates fixed ips for host by range + * arguments: [fixed_range=FLAG], [num_networks=FLAG], + [network_size=FLAG], [vlan_start=FLAG], + [vpn_start=FLAG] Concept: Flags -- cgit From 196ab5b15cb87ea5bfe70050bfa0f14c724e2676 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 10:39:51 -0400 Subject: Fix wiki link. --- doc/source/index.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index d4cdd1408..54cfea05a 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -30,7 +30,9 @@ Nova is written with the following design guidelines in mind: 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 '. +be found on the `OpenStack wiki`_. + +.. _`OpenStack wiki`: http://wiki.openstack.org Contents -- cgit From e85ba051c27ab7d50914c7bf91db74d7cf7faa97 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:00:25 -0400 Subject: clean up the compute documentation a bit. --- doc/source/compute.rst | 78 ++++++++++++++++++++++++++++++++++++++++++------- nova/compute/manager.py | 24 +++++++++++---- nova/virt/connection.py | 11 ++++++- 3 files changed, 96 insertions(+), 17 deletions(-) diff --git a/doc/source/compute.rst b/doc/source/compute.rst index 93070fa88..737b2de98 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -16,9 +16,17 @@ under the License. +Compute +======= + +This page contains the Compute Package documentation. + + from etherpad todo ------------------ +:: + * FIX RST IMPORT ERRORS * Compute Manager * public methods @@ -30,57 +38,105 @@ from etherpad todo * hyperv implementation -Compute Documentation -===================== +Manager +------- -This page contains the Compute Package documentation. +Documentation for the compute manager and related files. For reading about +a specific virtualization backend, read Drivers_. The :mod:`manager` Module -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.compute.manager :members: :undoc-members: :show-inheritance: + The :mod:`disk` Module ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.compute.disk :members: :undoc-members: :show-inheritance: + The :mod:`instance_types` Module --------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.compute.instance_types :members: :undoc-members: :show-inheritance: + The :mod:`power_state` Module ------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.compute.power_state :members: :undoc-members: :show-inheritance: + +Drivers +------- + + +Libvirt Implementations +~~~~~~~~~~~~~~~~~~~~~~~ + + +Libvirt: KVM +^^^^^^^^^^^^ + +KVM Driver + + +Libvirt: QEMU +^^^^^^^^^^^^^ + +QEMU Driver + + +Libvirt: UML +^^^^^^^^^^^^ + +User Mode Linux Driver + + +XEN +~~~ + +Xen Driver + + +Hyper-V +~~~~~~~ + +Hyper-V Driver + + +Monitoring +---------- + The :mod:`monitor` Module -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.compute.monitor :members: :undoc-members: :show-inheritance: -RELATED TESTS -------------- + +Tests +----- + The :mod:`compute_unittest` Module ----------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.tests.compute_unittest :members: diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 574feec7c..c5102c35a 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -17,7 +17,20 @@ # under the License. """ -Handles all code relating to instances (guest vms) +Handles all processes relating to instances (guest vms). + +The :py:class:`ComputeManager` class is a :py:class:`nova.manager.Manager` that +handles RPC calls relating to creating instances. It is responsible for +building a disk image, launching it via the underlying virtualization driver, +responding to calls to check it state, attaching persistent as well as termination. + +Related Flags +------------- +:instances_path: Where instances are kept on disk +:compute_driver: Name of class that is used to handle virtualization, loaded + by `nova.utils.import_object` +:volume_manager: Name of class that handles persistent storage, loaded by + `nova.utils.import_object` """ import datetime @@ -40,12 +53,12 @@ flags.DEFINE_string('compute_driver', 'nova.virt.connection.get_connection', class ComputeManager(manager.Manager): - """ - Manages the running instances. - """ + """Manages the running instances from creation to destruction.""" + def __init__(self, compute_driver=None, *args, **kwargs): """Load configuration options and connect to the hypervisor.""" # TODO(vish): sync driver creation logic with the rest of the system + # and redocument the module docstring if not compute_driver: compute_driver = FLAGS.compute_driver self.driver = utils.import_object(compute_driver) @@ -54,7 +67,7 @@ class ComputeManager(manager.Manager): super(ComputeManager, self).__init__(*args, **kwargs) def _update_state(self, context, instance_id): - """Update the state of an instance from the driver info""" + """Update the state of an instance from the driver info.""" # FIXME(ja): include other fields from state? instance_ref = self.db.instance_get(context, instance_id) try: @@ -67,6 +80,7 @@ class ComputeManager(manager.Manager): @defer.inlineCallbacks @exception.wrap_exception def refresh_security_group(self, context, security_group_id, **_kwargs): + """This call passes stright through to the virtualization driver.""" yield self.driver.refresh_security_group(security_group_id) @defer.inlineCallbacks diff --git a/nova/virt/connection.py b/nova/virt/connection.py index 34e37adf7..ceb7f1e4b 100644 --- a/nova/virt/connection.py +++ b/nova/virt/connection.py @@ -17,7 +17,7 @@ # License for the specific language governing permissions and limitations # under the License. -"""Abstraction of the underlying virtualization API""" +"""Abstraction of the underlying virtualization API.""" import logging import sys @@ -39,6 +39,15 @@ def get_connection(read_only=False): Any object returned here must conform to the interface documented by FakeConnection. + + Related flags + ------------- + :connection_type: A string literal that falls through a if/elif structure + to determine what virtualization mechanism to use. + Values may be: + * fake + * libvirt + * xenapi """ # TODO(termie): maybe lazy load after initial check for permissions # TODO(termie): check whether we can be disconnected -- cgit From 44885b02a6c4db9ca2cbfc4067cd37fa3c504aee Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:09:59 -0400 Subject: Add missing rst file. --- doc/source/database.rst | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 doc/source/database.rst diff --git a/doc/source/database.rst b/doc/source/database.rst new file mode 100644 index 000000000..657e4399f --- /dev/null +++ b/doc/source/database.rst @@ -0,0 +1,24 @@ +.. + Copyright 2010 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. + +Nova Database Programming Guide +=============================== + +:: + + * general interface + * sqlalchemy implementation -- cgit From 8fa3db896ca73bb8f72228afc387c9db500b9ae9 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:10:08 -0400 Subject: Clean up indentation error by preformatting. --- doc/source/concepts.and.introduction.rst | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 5c006454d..ee03bbdd5 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -91,13 +91,15 @@ Concept: API Concept: Networking ------------------- -* VLAN - * Cloudpipe - * Certificates (See also: CA) -* Flat Networking -* Flat with DHCP -* How to generate addresses -* Floating Addresses +:: + + * VLAN + * Cloudpipe + * Certificates (See also: CA) + * Flat Networking + * Flat with DHCP + * How to generate addresses + * Floating Addresses Concept: Services -- cgit From 6cbc507cd821d91a9ce21e78b50748fa59ddf356 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:14:50 -0400 Subject: Remove outdated endpoint documentation. --- doc/source/development.guide.rst | 6 ++- doc/source/endpoint.rst | 91 ---------------------------------------- doc/source/modules.rst | 6 ++- 3 files changed, 10 insertions(+), 93 deletions(-) delete mode 100644 doc/source/endpoint.rst diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 2c8fa86f9..1581b8baf 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -41,7 +41,6 @@ Older Contents :maxdepth: 1 architecture - endpoint nova fakes binaries @@ -49,6 +48,11 @@ Older Contents packages +Removed +------- + +* endpoint + Indices and tables ------------------ diff --git a/doc/source/endpoint.rst b/doc/source/endpoint.rst deleted file mode 100644 index 399df4161..000000000 --- a/doc/source/endpoint.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. - Copyright 2010 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. - -Endpoint Documentation -====================== - -This page contains the Endpoint Package documentation. - -The :mod:`admin` Module ------------------------ - -.. automodule:: nova.endpoint.admin - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api` Module ---------------------- - -.. automodule:: nova.endpoint.api - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud` Module ------------------------ - -.. automodule:: nova.endpoint.cloud - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module ------------------------- - -.. automodule:: nova.endpoint.images - :members: - :undoc-members: - :show-inheritance: - - -RELATED TESTS --------------- - -The :mod:`api_unittest` Module ------------------------------- - -.. automodule:: nova.tests.api_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api_integration` Module ---------------------------------- - -.. automodule:: nova.tests.api_integration - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud_unittest` Module --------------------------------- - -.. automodule:: nova.tests.cloud_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`network_unittest` Module ----------------------------------- - -.. automodule:: nova.tests.network_unittest - :members: - :undoc-members: - :show-inheritance: - - diff --git a/doc/source/modules.rst b/doc/source/modules.rst index 82c61f008..9b31664b6 100644 --- a/doc/source/modules.rst +++ b/doc/source/modules.rst @@ -28,7 +28,11 @@ Modules: auth compute - endpoint fakes nova volume + +Removed: +-------- + +* endpoint -- cgit From 208da85e85131a9b60a1fadea3e4242fa70dcde2 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:25:39 -0400 Subject: Whitespace and docstring cleanups --- nova/auth/fakeldap.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/nova/auth/fakeldap.py b/nova/auth/fakeldap.py index 1a49b73fe..176a00f06 100644 --- a/nova/auth/fakeldap.py +++ b/nova/auth/fakeldap.py @@ -15,12 +15,14 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. + """ -Fake LDAP server for test harnesses. +Fake LDAP server for test harness, backs to ReDIS. This class does very little error checking, and knows nothing about ldap -class definitions. It implements the minimum emulation of the python ldap +class definitions. It implements the minimum emulation of the python ldap library to work with nova. + """ import json @@ -77,8 +79,8 @@ def initialize(_uri): def _match_query(query, attrs): """Match an ldap query to an attribute dictionary. - &, |, and ! are supported in the query. No syntax checking is performed, - so malformed querys will not work correctly. + The characters &, |, and ! are supported in the query. No syntax checking + is performed, so malformed querys will not work correctly. """ # cut off the parentheses inner = query[1:-1] -- cgit From 89c881d651efcbba56406048112c3cf2cb676a8e Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:26:17 -0400 Subject: Fix underlining -> heading in rst file. --- doc/source/fakes.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/fakes.rst b/doc/source/fakes.rst index a993fb4c8..eccd4ab43 100644 --- a/doc/source/fakes.rst +++ b/doc/source/fakes.rst @@ -19,7 +19,7 @@ Nova Fakes ========== The :mod:`virt.fake` Module --------------------------- +--------------------------- .. automodule:: nova.virt.fake :members: -- cgit From 4bd42d5ee9eadb9affb40ee6ed0f98b13609c895 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 12:26:29 -0400 Subject: Another heading was too distracting, use instead. --- nova/compute/manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/compute/manager.py b/nova/compute/manager.py index c5102c35a..174fb0aca 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -24,8 +24,8 @@ handles RPC calls relating to creating instances. It is responsible for building a disk image, launching it via the underlying virtualization driver, responding to calls to check it state, attaching persistent as well as termination. -Related Flags -------------- +**Related Flags** + :instances_path: Where instances are kept on disk :compute_driver: Name of class that is used to handle virtualization, loaded by `nova.utils.import_object` -- cgit From 7d367e04c3e0dcdf7ce2121c464884c0825a552c Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 13:23:43 -0400 Subject: Clean up volumes / storage info. --- doc/source/concepts.and.introduction.rst | 6 ++-- doc/source/database.rst | 32 ++++++++++++++++++---- doc/source/development.guide.rst | 2 +- doc/source/storage.rst | 47 -------------------------------- doc/source/volume.rst | 17 ++++++++++-- 5 files changed, 46 insertions(+), 58 deletions(-) delete mode 100644 doc/source/storage.rst diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index ee03bbdd5..c3057c958 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -61,10 +61,12 @@ Concept: Virtualization * qemu -Concept: Volumes +Concept: Storage ---------------- -Volumes +* Ephemeral +* Volumes +* Swift Concept: Quotas diff --git a/doc/source/database.rst b/doc/source/database.rst index 657e4399f..f0672f608 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -15,10 +15,32 @@ License for the specific language governing permissions and limitations under the License. -Nova Database Programming Guide -=============================== +Database Programming Guide +========================== -:: +The :mod:`api` Module +--------------------- + +.. automodule:: nova.db.api + :members: + :undoc-members: + :show-inheritance: + + +Drivers +------- + +The :mod:sqlalchemy Driver +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.db.sqlalchemy.api + :members: + :undoc-members: + :show-inheritance: + + +.. automodule:: nova.db.sqlalchemy.models + :members: + :undoc-members: + :show-inheritance: - * general interface - * sqlalchemy implementation diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 1581b8baf..d9a7c46f9 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -28,7 +28,7 @@ Contents :maxdepth: 1 database - storage + volume compute network auth diff --git a/doc/source/storage.rst b/doc/source/storage.rst deleted file mode 100644 index 72880a4a1..000000000 --- a/doc/source/storage.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. - Copyright 2010 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. - -Storage in the Nova Cloud -========================= - - -from etherpad todo -------------------- -:: - * Volume Manager - * public methods - * responsibilities - * Volume Driver - * public methods - * AoE implementation - * ISCSI implementation - - -legacy docs ------------ - -There are three primary classes of storage in a nova cloud environment: - -* Ephemeral Storage (local disk within an instance) -* Volume Storage (network-attached FS) -* Object Storage (redundant KVS with locality and MR) - -.. toctree:: - :maxdepth: 2 - - volume - objectstore diff --git a/doc/source/volume.rst b/doc/source/volume.rst index 619968458..c55961a46 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -15,9 +15,20 @@ License for the specific language governing permissions and limitations under the License. -Volume Documentation -==================== - +Volume Programming Guide +========================= + +The :mod:`nova.volume.manager` Module +------------------------------------- + +.. automodule:: nova.volume.manager + :members: + :undoc-members: + :show-inheritance: + +OLDHAT +------ + Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. -- cgit From b6539d86c7217290d46682e214a9e82cfc810447 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 13:58:20 -0400 Subject: Remove objectstore, not referenced anywhere. --- doc/source/objectstore.rst | 66 ---------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 doc/source/objectstore.rst diff --git a/doc/source/objectstore.rst b/doc/source/objectstore.rst deleted file mode 100644 index 6b8d293f4..000000000 --- a/doc/source/objectstore.rst +++ /dev/null @@ -1,66 +0,0 @@ -.. - Copyright 2010 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. - -Objectstore Documentation -========================= - -This page contains the Objectstore Package documentation. - - -The :mod:`bucket` Module ------------------------- - -.. automodule:: nova.objectstore.bucket - :members: - :undoc-members: - :show-inheritance: - -The :mod:`handler` Module -------------------------- - -.. automodule:: nova.objectstore.handler - :members: - :undoc-members: - :show-inheritance: - -The :mod:`image` Module ------------------------ - -.. automodule:: nova.objectstore.image - :members: - :undoc-members: - :show-inheritance: - -The :mod:`stored` Module ------------------------- - -.. automodule:: nova.objectstore.stored - :members: - :undoc-members: - :show-inheritance: - -RELATED TESTS -------------- - -The :mod:`objectstore_unittest` Module --------------------------------------- - -.. automodule:: nova.tests.objectstore_unittest - :members: - :undoc-members: - :show-inheritance: - -- cgit From 9321ae23a1741267bc911e70b6755ac5c3251fbc Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 14:04:11 -0400 Subject: volume cleanups --- doc/source/volume.rst | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/doc/source/volume.rst b/doc/source/volume.rst index c55961a46..f83556795 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -26,31 +26,35 @@ The :mod:`nova.volume.manager` Module :undoc-members: :show-inheritance: -OLDHAT ------- - -Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. - -Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. - -AoE exports are numbered according to a "shelf and blade" syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.) - -The underlying volumes are LVM logical volumes, created on demand within a single large volume group. - - -The :mod:`storage` Module -------------------------- +The :mod:`nova.volume.driver` Module +------------------------------------- -.. automodule:: nova.volume.storage +.. automodule:: nova.volume.driver :members: :undoc-members: :show-inheritance: -The :mod:`storage_unittest` Module ----------------------------------- +Tests +----- -.. automodule:: nova.tests.storage_unittest +.. automodule:: nova.tests.volume_unittest :members: :undoc-members: :show-inheritance: +Old Docs +-------- + +:: + + TODO(todd): change for iSCSI & AoE and move to top of document + +Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. + +Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. + +AoE exports are numbered according to a "shelf and blade" syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.) + +The underlying volumes are LVM logical volumes, created on demand within a single large volume group. + + -- cgit From 39fd6f43873e6d314504f53dc4cb1c8a3a3cfbc3 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 28 Oct 2010 11:33:29 -0700 Subject: wip architecture, a few auth formatting fixes, binaries, and overview --- doc/source/architecture.rst | 20 ++++++------ doc/source/auth.rst | 45 ++++++++++++++------------- doc/source/binaries.rst | 53 ++++++++++++++++++++++++-------- doc/source/concepts.and.introduction.rst | 3 ++ doc/source/services.rst | 25 +++++++-------- 5 files changed, 91 insertions(+), 55 deletions(-) diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index 11813d2c8..eba6cbfb8 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -30,14 +30,16 @@ Below you will find a helpful explanation. :: - [ User Manager ] ---- ( LDAP ) - | - | / [ Storage ] - ( ATAoE ) - [ API server ] -> [ Cloud ] < AMQP > - | \ [ Nodes ] - ( libvirt/kvm ) - < HTTP > - | - [ S3 ] + [ Auth Manager ] ---- ( LDAP ) + | + | + | + | / [ Storage ] - ( ATAoE/iSCSI ) + [ Web Dashboard ] -> [ nova-api ] < AMQP > - + | \ [ Nodes ] - ( libvirt/kvm ) + < HTTP > + | + [ nova-objectstore ] * API: receives http requests from boto, converts commands to/from API format, and sending requests to cloud controller diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 4d3037253..adcb759a2 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -24,7 +24,7 @@ from etherpad todo ------------------ :: - * FIX RST IMPORT ERRORS + * Manager * Driver * ldap @@ -65,46 +65,47 @@ Roles AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: -* System User -* System Administrator +* Base User +* System Administrator/Developer (currently have the same permissions) * Network Administrator * Project Manager -* Cloud Administrator -* IT-Security +* Cloud Administrator/IT-Security (currently have the same permissions) There is an additional, conceptual end-user that may or may not have API access: * (EXTERNAL) End-user / Third-party User -Basic operations are available to any System User: +Basic operations are available to any : -* Launch Instance -* Terminate Instance (their own) -* Create keypair -* Delete keypair -* Create, Upload, Delete: Buckets and Keys (Object Store) – their own -* Create, Attach, Delete Volume (Block Store) – their own +* Describe Instances +* Describe Images +* Describe Volumes +* Describe Keypairs +* Create Keypair +* Delete Keypair +* Create, Upload, Delete: Buckets and Keys (Object Store) -System Administrators: +System Administrators/Developers/Project Manager: +* Create, Attach, Delete Volume (Block Store) +* Launch, Reboot, Terminate Instance * Register/Unregister Machine Image (project-wide) -* Change Machine Image properties (public / private) * Request / Review CloudAudit Scans +Project Manager: + +* Add and remove other users (currently no api) +* Set roles (currently no api) + Network Administrator: +* Change Machine Image properties (public / private) * Change Firewall Rules, define Security Groups * Allocate, Associate, Deassociate Public IP addresses -Project Manager: - -* Launch and Terminate Instances (project-wide) -* CRUD of Object and Block store (project-wide) - -Cloud Administrator: +Cloud Administrator/IT-Security: -* Register / Unregister Kernel and Ramdisk Images -* Register / Unregister Machine Image (any) +* All permissions Enhancements ------------ diff --git a/doc/source/binaries.rst b/doc/source/binaries.rst index 90a9581f7..6771f345e 100644 --- a/doc/source/binaries.rst +++ b/doc/source/binaries.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,14 +18,43 @@ Nova Binaries =============== -* nova-api -* nova-compute -* nova-manage -* nova-objectstore -* nova-volume - -The configuration of these binaries relies on "flagfiles" using the google -gflags package. If present, the nova.conf file will be used as the flagfile -- otherwise, it must be specified on the command line:: - - $ python node_worker.py --flagfile flagfile +The configuration of these binaries relies on "flagfiles" using the google +gflags package:: + + $ nova-xxxxx --flagfile flagfile + +The binaries can all run on the same machine or be spread out amongst multiple boxes in a large deployment. + +nova-manage +----------- + +Nova manage is a command line utility to administer the system. It will autmatically try to load a flagfile from /etc/nova/nova-manage.conf to save you having to type it. Info on the commands can be found :ref:`here `. + +nova-api +-------- + +Nova api receives xml requests and sends them to the rest of the system. It is a wsgi app that routes and authenticate requests. It supports the ec2 and openstack apis. + +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-compute +------------ + +Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc. + +nova-volume +----------- + +Nova volume is responsible for managing attachable block storage devices. It loads a Service object which exposes the public methods on VolumeManager via rpc. + +nova-network +------------ + +Nova network is responsible for managing floating and fixed ips, dhcp, bridging and vlans. It loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are as simple as changing the network_manager flag:: + + $ nova-network --network_manager=nova.network.manager.FlatManager + +IMPORTANT: Make sure that you also set the network_manager on nova-api and nova_compute, since make some calls to network manager in process instead of through rpc. More information on the interactions between services, managers, and drivers can be found :ref:`here ` diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 76db9e9f2..7f4aa153c 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -135,6 +135,9 @@ Concept: Services * nova-network * nova-instancemonitor + +.. _manage_usage: + Concept: nova-manage -------------------- diff --git a/doc/source/services.rst b/doc/source/services.rst index 7ff8fa6c3..607f5974b 100644 --- a/doc/source/services.rst +++ b/doc/source/services.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,17 +15,18 @@ License for the specific language governing permissions and limitations under the License. -Services -======== +.. _service_manager_driver: -Admin guide should go beyoned concepts & introduction by talking about how -each service interacts with each other, what requirements for deployment are, -monotoring, logging, etc +Services Managers and Drivers +============================= +Describe division of responsibilities for each component. -* nova-api -* nova-scheduler -* nova-compute -* nova-volume -* nova-network -* nova-instancemonitor +Service +------- + +Manager +------- + +Driver +------ -- cgit From 73773c2897894a4b7c40268f04fa100425411824 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 28 Oct 2010 11:38:43 -0700 Subject: fix title levels --- doc/source/concepts.and.introduction.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 7f4aa153c..f36949835 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -142,7 +142,7 @@ Concept: nova-manage -------------------- Introduction -++++++++++++ +^^^^^^^^^^^^ The nova-manage command is used to perform many essential functions for administration and ongoing maintenance of nova, such as user creation, @@ -157,7 +157,7 @@ For example, to obtain a list of all projects: ``nova-manage project list`` User Maintenance -++++++++++++++++ +^^^^^^^^^^^^^^^^ * user admin: creates a new admin and prints exports * arguments: name [access] [secret] @@ -174,7 +174,7 @@ User Maintenance * leave any field blank to ignore it, admin should be 'T', 'F', or blank Project Maintenance -+++++++++++++++++++ +^^^^^^^^^^^^^^^^^^^ * project add: Adds user to project * arguments: project user @@ -196,7 +196,7 @@ Project Maintenance * arguments: project_id user_id [filename='nova.zip] User Role Management -++++++++++++++++++++ +^^^^^^^^^^^^^^^^^^^^ * role add: adds role to user * if project is specified, adds project specific role @@ -211,7 +211,7 @@ User Role Management Nova Shell -++++++++++ +^^^^^^^^^^ * shell bpython * start a new bpython shell @@ -225,7 +225,7 @@ Nova Shell * arguments: path VPN Management -++++++++++++++ +^^^^^^^^^^^^^^ * vpn list: Print a listing of the VPNs for all projects. * arguments: none @@ -236,7 +236,7 @@ VPN Management Floating IP Management -++++++++++++++++++++++ +^^^^^^^^^^^^^^^^^^^^^^ * floating create: Creates floating ips for host by range * arguments: host ip_range @@ -246,7 +246,7 @@ Floating IP Management * arguments: none Network Management -++++++++++++++++++ +^^^^^^^^^^^^^^^^^^ * network create: Creates fixed ips for host by range * arguments: [fixed_range=FLAG], [num_networks=FLAG], -- cgit From 828b299a5660537062b11e6e58cfdf4c840053e1 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 14:39:25 -0400 Subject: cleanup todos --- doc/source/compute.rst | 13 +------------ doc/source/database.rst | 10 ++++++++-- doc/source/volume.rst | 10 ++++++---- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/doc/source/compute.rst b/doc/source/compute.rst index 737b2de98..f3173122a 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -22,20 +22,9 @@ Compute This page contains the Compute Package documentation. -from etherpad todo ------------------- - :: - * FIX RST IMPORT ERRORS - * Compute Manager - * public methods - * responsibilities - * Compute Driver - * public methods - * libvirt implementation (kvm/qemu vs uml) - * xen implementation - * hyperv implementation + TODO(todd): Document drivers Manager diff --git a/doc/source/database.rst b/doc/source/database.rst index f0672f608..41b362d19 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -18,6 +18,12 @@ Database Programming Guide ========================== +:: + + TODO(todd): should sqlalchemy.api be here? + pep-256 on db/api.py and models.py (periods) + document register_models (where should it be called from?) + The :mod:`api` Module --------------------- @@ -30,8 +36,8 @@ The :mod:`api` Module Drivers ------- -The :mod:sqlalchemy Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~ +The :mod:`sqlalchemy` Driver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.db.sqlalchemy.api :members: diff --git a/doc/source/volume.rst b/doc/source/volume.rst index f83556795..f4162560c 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -18,6 +18,12 @@ Volume Programming Guide ========================= +:: + + TODO(todd): document for iSCSI & AoE (see 'Old Docs') + pep-257 + + The :mod:`nova.volume.manager` Module ------------------------------------- @@ -45,10 +51,6 @@ Tests Old Docs -------- -:: - - TODO(todd): change for iSCSI & AoE and move to top of document - Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. -- cgit From 1915bb227d1eb847a681173772f4b9a769d64331 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 15:10:15 -0400 Subject: Todo cleanups in docs. --- doc/source/auth.rst | 24 +++++++++++++----------- doc/source/compute.rst | 4 ++-- doc/source/network.rst | 39 ++++++++++++++++++++++++--------------- 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/doc/source/auth.rst b/doc/source/auth.rst index d739e4b8e..f4a7e0147 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -15,20 +15,22 @@ License for the specific language governing permissions and limitations under the License. -Auth Documentation -================== +Authentication and Authorization Development Guide +================================================== +:: -from etherpad todo ------------------- + TOOD(todd); + * Authentication + * Manager + * Driver + * ldap + * fakeldap + * redisectomy + * Authorizztion + * RBAC + * Quotas -:: - * FIX RST IMPORT ERRORS - * Manager - * Driver - * ldap - * fakeldap - * redisectomy legacy docs ----------- diff --git a/doc/source/compute.rst b/doc/source/compute.rst index f3173122a..9b4d10227 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -16,8 +16,8 @@ under the License. -Compute -======= +Virtualization Programming Guide +================================ This page contains the Compute Package documentation. diff --git a/doc/source/network.rst b/doc/source/network.rst index ef374a726..f9434b453 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -15,23 +15,32 @@ License for the specific language governing permissions and limitations under the License. -nova Networking -================ +Networking Programming Guide +============================ - -from etherpad todo ------------------- :: - * Network Manager - * overview (use vish email) - * public methods - * responsibilities - * Vlan + DHCP implementation - * Flat + DHCP implementation - * Flat impleplementation - * Network Driver - * public methods - * hardware specific commands + + TODO(todd): + * document how managers work + * document backend (linux-net) + * document hardware specific commands + * pep 257 + +The :mod:`Manager` module +------------------------- + +.. automodule:: nova.network.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`LinuxNet` driver +-------------------------- + +.. automodule:: nova.network.linux_net + :members: + :undoc-members: + :show-inheritance: legacy docs -- cgit From a592636054511382105dc81d4a6b2a44df0dad9a Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 17:08:13 -0400 Subject: :func: links to python functions in the documentation. --- nova/compute/manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 174fb0aca..3346d1299 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -28,9 +28,9 @@ responding to calls to check it state, attaching persistent as well as terminati :instances_path: Where instances are kept on disk :compute_driver: Name of class that is used to handle virtualization, loaded - by `nova.utils.import_object` + by :func:`nova.utils.import_object` :volume_manager: Name of class that handles persistent storage, loaded by - `nova.utils.import_object` + :func:`nova.utils.import_object` """ import datetime -- cgit From 7dedbca140c7e923c7b2fcaa8679a19249fb8350 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 28 Oct 2010 14:27:24 -0700 Subject: link binaries section to concepts --- doc/source/binaries.rst | 2 ++ doc/source/concepts.and.introduction.rst | 10 ++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/doc/source/binaries.rst b/doc/source/binaries.rst index 6771f345e..3ea07d9c2 100644 --- a/doc/source/binaries.rst +++ b/doc/source/binaries.rst @@ -15,6 +15,8 @@ License for the specific language governing permissions and limitations under the License. +.. _binaries: + Nova Binaries =============== diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index f36949835..7f59c0c92 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -125,16 +125,10 @@ The following diagram illustrates how the communication that occurs between the .. -Concept: Services +Concept: Binaries ----------------- -* nova-api -* nova-scheduler -* nova-compute -* nova-volume -* nova-network -* nova-instancemonitor - +Nova is implemented by a number of related binaries. These binaries can run on the same machine or many machines. A detailed description of each binary is given in the :ref:`binaries section ` of the developer guide. .. _manage_usage: -- cgit From 1106d7622e9327d4db417ae8bc7a18bb5d64fa1c Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 18:59:03 -0400 Subject: A shell script for showing modules that aren't documented in .rst files. --- doc/find_undocumented_classes.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 doc/find_undocumented_classes.sh diff --git a/doc/find_undocumented_classes.sh b/doc/find_undocumented_classes.sh new file mode 100755 index 000000000..845e0b5e0 --- /dev/null +++ b/doc/find_undocumented_classes.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +NOVA_DIR='../nova/' # include trailing slash +DOCS_DIR='source' + +modules='' +for x in `find ${NOVA_DIR} -name '*.py'`; do + if [ `basename ${x} .py` == "__init__" ] ; then + continue + fi + relative=nova.`echo ${x} | sed -e 's$^'${NOVA_DIR}'$$' -e 's/.py$//' -e 's$/$.$g'` + modules="${modules} ${relative}" +done + +for mod in ${modules} ; do + op=`grep ${mod} ${DOCS_DIR}/*.rst` + if [ -z "${op}" ] ; then + echo ${mod} + fi +done -- cgit From 654a61c26d94a719e0ea665699b8075084ad79e3 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 18:59:25 -0400 Subject: Clean up todos and the like for docs. --- doc/source/auth.rst | 131 +++++++++++++++++++-------------------- doc/source/compute.rst | 5 +- doc/source/database.rst | 2 + doc/source/development.guide.rst | 9 ++- doc/source/network.rst | 1 + doc/source/volume.rst | 1 + 6 files changed, 81 insertions(+), 68 deletions(-) diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 0230ec5c4..203efe1a5 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -22,16 +22,71 @@ Authentication and Authorization Development Guide :: - TOOD(todd); - * Authentication - * Manager - * Driver - * ldap - * fakeldap - * redisectomy - * Authorizztion - * RBAC - * Quotas + TOOD(todd): * Authorizztion + * RBAC + * Quotas + + +Auth Manager +------------ + +The :mod:`manager` Module +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.manager + :members: + :undoc-members: + :show-inheritance: + +Drivers +------- + +The :mod:`ldapdriver` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.ldapdriver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`dbdriver` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.dbdriver + :members: + :undoc-members: + :show-inheritance: + +API Integration +--------------- + +The :mod:`signer` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.signer + :members: + :undoc-members: + :show-inheritance: + + +Related Tests +------------- + +The :mod:`auth_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.auth_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`access_unittest` Module +--------------------------------- + +.. automodule:: nova.tests.access_unittest + :members: + :undoc-members: + :show-inheritance: legacy docs @@ -194,59 +249,3 @@ Further Challenges -The :mod:`signer` Module ------------------------- - -.. automodule:: nova.auth.signer - :members: - :undoc-members: - :show-inheritance: - -The :mod:`manager` Module -------------------------- - -.. automodule:: nova.auth.manager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`ldapdriver` Module ----------------------------- - -.. automodule:: nova.auth.ldapdriver - :members: - :undoc-members: - :show-inheritance: - -The :mod:`dbdriver` Module ----------------------------- - -.. automodule:: nova.auth.dbdriver - :members: - :undoc-members: - :show-inheritance: - -The :mod:`auth_unittest` Module --------------------------------- - -.. automodule:: nova.tests.auth_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`access_unittest` Module ---------------------------------- - -.. automodule:: nova.tests.access_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`ec2` Module ---------------------- - -.. automodule:: nova.api.ec2 - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/source/compute.rst b/doc/source/compute.rst index 9b4d10227..d29b96781 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -24,7 +24,10 @@ This page contains the Compute Package documentation. :: - TODO(todd): Document drivers + TODO(todd): * Document drivers + * get docstrings to come in for ComputeManager + * fix formatting of ascii art in disk module + * document instance_types and power_states Manager diff --git a/doc/source/database.rst b/doc/source/database.rst index 41b362d19..bab6b472d 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -23,6 +23,8 @@ Database Programming Guide TODO(todd): should sqlalchemy.api be here? pep-256 on db/api.py and models.py (periods) document register_models (where should it be called from?) + document any relevant test cases + document flags The :mod:`api` Module --------------------- diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index d9a7c46f9..04fee329a 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -18,7 +18,14 @@ Nova Development Guide ====================== -Nova is written in python +Nova is written in python. + +:: + + TODO(todd): * API + * Exceptions + * Nova libraries (utils, etc) + * Building packages Contents diff --git a/doc/source/network.rst b/doc/source/network.rst index f53360bd7..b044c6413 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -25,6 +25,7 @@ Networking Programming Guide * document backend (linux-net) * document hardware specific commands * pep 257 + * document flags The :mod:`Manager` module ------------------------- diff --git a/doc/source/volume.rst b/doc/source/volume.rst index f4162560c..27977761a 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -22,6 +22,7 @@ Volume Programming Guide TODO(todd): document for iSCSI & AoE (see 'Old Docs') pep-257 + document flags The :mod:`nova.volume.manager` Module -- cgit From 7cc4bcd344221d517054641171f759b88112a459 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 20:13:40 -0400 Subject: Pep-257 cleanups. --- nova/db/api.py | 128 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 58 deletions(-) diff --git a/nova/db/api.py b/nova/db/api.py index 0731e2e05..7cce591ad 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -16,7 +16,7 @@ # License for the specific language governing permissions and limitations # under the License. """ -Defines interface for DB access +Defines interface for DB access. """ from nova import exception @@ -34,17 +34,17 @@ IMPL = utils.LazyPluggable(FLAGS['db_backend'], class NoMoreAddresses(exception.Error): - """No more available addresses""" + """No more available addresses.""" pass class NoMoreBlades(exception.Error): - """No more available blades""" + """No more available blades.""" pass class NoMoreNetworks(exception.Error): - """No more available networks""" + """No more available networks.""" pass @@ -62,30 +62,33 @@ def service_get(context, service_id): def service_get_all_by_topic(context, topic): - """Get all compute services for a given topic """ + """Get all compute services for a given topic.""" return IMPL.service_get_all_by_topic(context, topic) def service_get_all_compute_sorted(context): - """Get all compute services sorted by instance count + """Get all compute services sorted by instance count. + + Returns a list of (Service, instance_count) tuples. - Returns a list of (Service, instance_count) tuples """ return IMPL.service_get_all_compute_sorted(context) def service_get_all_network_sorted(context): - """Get all network services sorted by network count + """Get all network services sorted by network count. + + Returns a list of (Service, network_count) tuples. - Returns a list of (Service, network_count) tuples """ return IMPL.service_get_all_network_sorted(context) def service_get_all_volume_sorted(context): - """Get all volume services sorted by volume count + """Get all volume services sorted by volume count. + + Returns a list of (Service, volume_count) tuples. - Returns a list of (Service, volume_count) tuples """ return IMPL.service_get_all_volume_sorted(context) @@ -116,6 +119,7 @@ def floating_ip_allocate_address(context, host, project_id): """Allocate free floating ip and return the address. Raises if one is not available. + """ return IMPL.floating_ip_allocate_address(context, host, project_id) @@ -144,6 +148,7 @@ def floating_ip_disassociate(context, address): """Disassociate an floating ip from a fixed ip by address. Returns the address of the existing fixed ip. + """ return IMPL.floating_ip_disassociate(context, address) @@ -182,6 +187,7 @@ def fixed_ip_associate(context, address, instance_id): """Associate fixed ip to instance. Raises if fixed ip is not available. + """ return IMPL.fixed_ip_associate(context, address, instance_id) @@ -190,6 +196,7 @@ def fixed_ip_associate_pool(context, network_id, instance_id): """Find free ip in network and associate it to instance. Raises if one is not available. + """ return IMPL.fixed_ip_associate_pool(context, network_id, instance_id) @@ -205,7 +212,7 @@ def fixed_ip_disassociate(context, address): def fixed_ip_disassociate_all_by_timeout(context, host, time): - """Disassociate old fixed ips from host""" + """Disassociate old fixed ips from host.""" return IMPL.fixed_ip_disassociate_all_by_timeout(context, host, time) @@ -283,7 +290,7 @@ def instance_get_floating_address(context, instance_id): def instance_get_by_internal_id(context, internal_id): - """Get an instance by ec2 id.""" + """Get an instance by internal id.""" return IMPL.instance_get_by_internal_id(context, internal_id) @@ -307,7 +314,7 @@ def instance_update(context, instance_id, values): def instance_add_security_group(context, instance_id, security_group_id): - """Associate the given security group with the given instance""" + """Associate the given security group with the given instance.""" return IMPL.instance_add_security_group(context, instance_id, security_group_id) @@ -369,10 +376,12 @@ def network_count_reserved_ips(context, network_id): def network_create_safe(context, values): - """Create a network from the values dict + """Create a network from the values dict. The network is only returned if the create succeeds. If the create violates - constraints because the network already exists, no exception is raised.""" + constraints because the network already exists, no exception is raised. + + """ return IMPL.network_create_safe(context, values) @@ -413,22 +422,22 @@ def network_get_by_instance(context, instance_id): def network_get_index(context, network_id): - """Get non-conflicting index for network""" + """Get non-conflicting index for network.""" return IMPL.network_get_index(context, network_id) def network_get_vpn_ip(context, network_id): - """Get non-conflicting index for network""" + """Get non-conflicting index for network.""" return IMPL.network_get_vpn_ip(context, network_id) def network_set_cidr(context, network_id, cidr): - """Set the Classless Inner Domain Routing for the network""" + """Set the Classless Inner Domain Routing for the network.""" return IMPL.network_set_cidr(context, network_id, cidr) def network_set_host(context, network_id, host_id): - """Safely set the host for network""" + """Safely set the host for network.""" return IMPL.network_set_host(context, network_id, host_id) @@ -474,7 +483,9 @@ def export_device_create_safe(context, values): The device is not returned. If the create violates the unique constraints because the shelf_id and blade_id already exist, - no exception is raised.""" + no exception is raised. + + """ return IMPL.export_device_create_safe(context, values) @@ -482,17 +493,17 @@ def export_device_create_safe(context, values): def auth_destroy_token(context, token): - """Destroy an auth token""" + """Destroy an auth token.""" return IMPL.auth_destroy_token(context, token) def auth_get_token(context, token_hash): - """Retrieves a token given the hash representing it""" + """Retrieves a token given the hash representing it.""" return IMPL.auth_get_token(context, token_hash) def auth_create_token(context, token): - """Creates a new token""" + """Creates a new token.""" return IMPL.auth_create_token(context, token) @@ -595,47 +606,47 @@ def volume_update(context, volume_id, values): def security_group_get_all(context): - """Get all security groups""" + """Get all security groups.""" return IMPL.security_group_get_all(context) def security_group_get(context, security_group_id): - """Get security group by its internal id""" + """Get security group by its internal id.""" return IMPL.security_group_get(context, security_group_id) def security_group_get_by_name(context, project_id, group_name): - """Returns a security group with the specified name from a project""" + """Returns a security group with the specified name from a project.""" return IMPL.security_group_get_by_name(context, project_id, group_name) def security_group_get_by_project(context, project_id): - """Get all security groups belonging to a project""" + """Get all security groups belonging to a project.""" return IMPL.security_group_get_by_project(context, project_id) def security_group_get_by_instance(context, instance_id): - """Get security groups to which the instance is assigned""" + """Get security groups to which the instance is assigned.""" return IMPL.security_group_get_by_instance(context, instance_id) def security_group_exists(context, project_id, group_name): - """Indicates if a group name exists in a project""" + """Indicates if a group name exists in a project.""" return IMPL.security_group_exists(context, project_id, group_name) def security_group_create(context, values): - """Create a new security group""" + """Create a new security group.""" return IMPL.security_group_create(context, values) def security_group_destroy(context, security_group_id): - """Deletes a security group""" + """Deletes a security group.""" return IMPL.security_group_destroy(context, security_group_id) def security_group_destroy_all(context): - """Deletes a security group""" + """Deletes a security group.""" return IMPL.security_group_destroy_all(context) @@ -643,18 +654,18 @@ def security_group_destroy_all(context): def security_group_rule_create(context, values): - """Create a new security group""" + """Create a new security group.""" return IMPL.security_group_rule_create(context, values) def security_group_rule_get_by_security_group(context, security_group_id): - """Get all rules for a a given security group""" + """Get all rules for a a given security group.""" return IMPL.security_group_rule_get_by_security_group(context, security_group_id) def security_group_rule_destroy(context, security_group_rule_id): - """Deletes a security group rule""" + """Deletes a security group rule.""" return IMPL.security_group_rule_destroy(context, security_group_rule_id) @@ -662,107 +673,107 @@ def security_group_rule_destroy(context, security_group_rule_id): def user_get(context, id): - """Get user by id""" + """Get user by id.""" return IMPL.user_get(context, id) def user_get_by_uid(context, uid): - """Get user by uid""" + """Get user by uid.""" return IMPL.user_get_by_uid(context, uid) def user_get_by_access_key(context, access_key): - """Get user by access key""" + """Get user by access key.""" return IMPL.user_get_by_access_key(context, access_key) def user_create(context, values): - """Create a new user""" + """Create a new user.""" return IMPL.user_create(context, values) def user_delete(context, id): - """Delete a user""" + """Delete a user.""" return IMPL.user_delete(context, id) def user_get_all(context): - """Create a new user""" + """Create a new user.""" return IMPL.user_get_all(context) def user_add_role(context, user_id, role): - """Add another global role for user""" + """Add another global role for user.""" return IMPL.user_add_role(context, user_id, role) def user_remove_role(context, user_id, role): - """Remove global role from user""" + """Remove global role from user.""" return IMPL.user_remove_role(context, user_id, role) def user_get_roles(context, user_id): - """Get global roles for user""" + """Get global roles for user.""" return IMPL.user_get_roles(context, user_id) def user_add_project_role(context, user_id, project_id, role): - """Add project role for user""" + """Add project role for user.""" return IMPL.user_add_project_role(context, user_id, project_id, role) def user_remove_project_role(context, user_id, project_id, role): - """Remove project role from user""" + """Remove project role from user.""" return IMPL.user_remove_project_role(context, user_id, project_id, role) def user_get_roles_for_project(context, user_id, project_id): - """Return list of roles a user holds on project""" + """Return list of roles a user holds on project.""" return IMPL.user_get_roles_for_project(context, user_id, project_id) def user_update(context, user_id, values): - """Update user""" + """Update user.""" return IMPL.user_update(context, user_id, values) def project_get(context, id): - """Get project by id""" + """Get project by id.""" return IMPL.project_get(context, id) def project_create(context, values): - """Create a new project""" + """Create a new project.""" return IMPL.project_create(context, values) def project_add_member(context, project_id, user_id): - """Add user to project""" + """Add user to project.""" return IMPL.project_add_member(context, project_id, user_id) def project_get_all(context): - """Get all projects""" + """Get all projects.""" return IMPL.project_get_all(context) def project_get_by_user(context, user_id): - """Get all projects of which the given user is a member""" + """Get all projects of which the given user is a member.""" return IMPL.project_get_by_user(context, user_id) def project_remove_member(context, project_id, user_id): - """Remove the given user from the given project""" + """Remove the given user from the given project.""" return IMPL.project_remove_member(context, project_id, user_id) def project_update(context, project_id, values): - """Update Remove the given user from the given project""" + """Update Remove the given user from the given project.""" return IMPL.project_update(context, project_id, values) def project_delete(context, project_id): - """Delete project""" + """Delete project.""" return IMPL.project_delete(context, project_id) @@ -771,6 +782,7 @@ def project_delete(context, project_id): def host_get_networks(context, host): """Return all networks for which the given host is the designated - network host + network host. + """ return IMPL.host_get_networks(context, host) -- cgit From 2132c0de46fd3f1b938e4b3b01b73fb2efaf6a38 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 20:28:13 -0400 Subject: Pep-257 --- nova/db/sqlalchemy/models.py | 47 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 2a3cfa94c..894ebcddd 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -15,7 +15,6 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - """ SQLAlchemy models for nova data """ @@ -35,13 +34,13 @@ from nova import auth from nova import exception from nova import flags -FLAGS = flags.FLAGS +FLAGS = flags.FLAGS BASE = declarative_base() class NovaBase(object): - """Base class for Nova Models""" + """Base class for Nova Models.""" __table_args__ = {'mysql_engine': 'InnoDB'} __table_initialized__ = False created_at = Column(DateTime, default=datetime.datetime.utcnow) @@ -50,7 +49,7 @@ class NovaBase(object): deleted = Column(Boolean, default=False) def save(self, session=None): - """Save this object""" + """Save this object.""" if not session: session = get_session() session.add(self) @@ -63,7 +62,7 @@ class NovaBase(object): raise def delete(self, session=None): - """Delete this object""" + """Delete this object.""" self.deleted = True self.deleted_at = datetime.datetime.utcnow() self.save(session=session) @@ -128,7 +127,8 @@ class NovaBase(object): class Service(BASE, NovaBase): - """Represents a running service on a host""" + """Represents a running service on a host.""" + __tablename__ = 'services' id = Column(Integer, primary_key=True) host = Column(String(255)) # , ForeignKey('hosts.id')) @@ -139,7 +139,7 @@ class Service(BASE, NovaBase): class Instance(BASE, NovaBase): - """Represents a guest vm""" + """Represents a guest vm.""" __tablename__ = 'instances' id = Column(Integer, primary_key=True) internal_id = Column(Integer, unique=True) @@ -215,7 +215,7 @@ class Instance(BASE, NovaBase): class Volume(BASE, NovaBase): - """Represents a block storage device that can be attached to a vm""" + """Represents a block storage device that can be attached to a vm.""" __tablename__ = 'volumes' id = Column(Integer, primary_key=True) ec2_id = Column(String(12), unique=True) @@ -246,7 +246,7 @@ class Volume(BASE, NovaBase): class Quota(BASE, NovaBase): - """Represents quota overrides for a project""" + """Represents quota overrides for a project.""" __tablename__ = 'quotas' id = Column(Integer, primary_key=True) @@ -260,7 +260,7 @@ class Quota(BASE, NovaBase): class ExportDevice(BASE, NovaBase): - """Represates a shelf and blade that a volume can be exported on""" + """Represates a shelf and blade that a volume can be exported on.""" __tablename__ = 'export_devices' __table_args__ = (schema.UniqueConstraint("shelf_id", "blade_id"), {'mysql_engine': 'InnoDB'}) @@ -283,7 +283,7 @@ class SecurityGroupInstanceAssociation(BASE, NovaBase): class SecurityGroup(BASE, NovaBase): - """Represents a security group""" + """Represents a security group.""" __tablename__ = 'security_groups' id = Column(Integer, primary_key=True) @@ -313,7 +313,7 @@ class SecurityGroup(BASE, NovaBase): class SecurityGroupIngressRule(BASE, NovaBase): - """Represents a rule in a security group""" + """Represents a rule in a security group.""" __tablename__ = 'security_group_rules' id = Column(Integer, primary_key=True) @@ -335,7 +335,7 @@ class SecurityGroupIngressRule(BASE, NovaBase): class KeyPair(BASE, NovaBase): - """Represents a public key pair for ssh""" + """Represents a public key pair for ssh.""" __tablename__ = 'key_pairs' id = Column(Integer, primary_key=True) @@ -348,7 +348,7 @@ class KeyPair(BASE, NovaBase): class Network(BASE, NovaBase): - """Represents a network""" + """Represents a network.""" __tablename__ = 'networks' __table_args__ = (schema.UniqueConstraint("vpn_public_address", "vpn_public_port"), @@ -377,9 +377,12 @@ class Network(BASE, NovaBase): class AuthToken(BASE, NovaBase): - """Represents an authorization token for all API transactions. Fields - are a string representing the actual token and a user id for mapping - to the actual user""" + """Represents an authorization token for all API transactions. + + Fields are a string representing the actual token and a user id for + mapping to the actual user + + """ __tablename__ = 'auth_tokens' token_hash = Column(String(255), primary_key=True) user_id = Column(Integer) @@ -390,7 +393,7 @@ class AuthToken(BASE, NovaBase): # TODO(vish): can these both come from the same baseclass? class FixedIp(BASE, NovaBase): - """Represents a fixed ip for an instance""" + """Represents a fixed ip for an instance.""" __tablename__ = 'fixed_ips' id = Column(Integer, primary_key=True) address = Column(String(255)) @@ -409,7 +412,7 @@ class FixedIp(BASE, NovaBase): class User(BASE, NovaBase): - """Represents a user""" + """Represents a user.""" __tablename__ = 'users' id = Column(String(255), primary_key=True) @@ -421,7 +424,7 @@ class User(BASE, NovaBase): class Project(BASE, NovaBase): - """Represents a project""" + """Represents a project.""" __tablename__ = 'projects' id = Column(String(255), primary_key=True) name = Column(String(255)) @@ -469,7 +472,7 @@ class UserProjectAssociation(BASE, NovaBase): class FloatingIp(BASE, NovaBase): - """Represents a floating ip that dynamically forwards to a fixed ip""" + """Represents a floating ip that dynamically forwards to a fixed ip.""" __tablename__ = 'floating_ips' id = Column(Integer, primary_key=True) address = Column(String(255)) @@ -485,7 +488,7 @@ class FloatingIp(BASE, NovaBase): def register_models(): - """Register Models and create metadata""" + """Register Models and create metadata.""" from sqlalchemy import create_engine models = (Service, Instance, Volume, ExportDevice, FixedIp, FloatingIp, Network, SecurityGroup, -- cgit From 05ada3f47a4250fb278ecc84c16f51922106b83d Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 28 Oct 2010 20:32:32 -0400 Subject: Finished TODO item --- doc/source/database.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/source/database.rst b/doc/source/database.rst index bab6b472d..926f9be26 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -21,7 +21,6 @@ Database Programming Guide :: TODO(todd): should sqlalchemy.api be here? - pep-256 on db/api.py and models.py (periods) document register_models (where should it be called from?) document any relevant test cases document flags -- cgit From ee4ce8a55194be3fcb1e861e4206451cc7812d46 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 11:23:49 -0400 Subject: Remove "nova Packages and Dependencies" --- doc/source/development.guide.rst | 6 ------ doc/source/packages.rst | 29 ----------------------------- 2 files changed, 35 deletions(-) delete mode 100644 doc/source/packages.rst diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 04fee329a..61a664171 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -52,14 +52,8 @@ Older Contents fakes binaries modules - packages -Removed -------- - -* endpoint - Indices and tables ------------------ diff --git a/doc/source/packages.rst b/doc/source/packages.rst deleted file mode 100644 index 6029ad7d7..000000000 --- a/doc/source/packages.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. - Copyright 2010 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. - -nova Packages & Dependencies -============================ - -Nova is being built on Ubuntu Lucid. - -The following packages are required: - - apt-get install python-ipy, python-libvirt, python-boto, python-pycurl, python-twisted, python-daemon, python-redis, python-carrot, python-lockfile - -In addition you need to install python: - - * python-gflags - http://code.google.com/p/python-gflags/ -- cgit From 133cd9973e17458bea3594490e70ccd3c524cf12 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 11:58:57 -0400 Subject: Document Fakes --- doc/source/development.guide.rst | 1 + doc/source/fakes.rst | 34 ++++++++++++++++++++++++++++++++-- nova/auth/fakeldap.py | 4 +--- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 61a664171..0d852a098 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -39,6 +39,7 @@ Contents compute network auth + fakes Older Contents diff --git a/doc/source/fakes.rst b/doc/source/fakes.rst index eccd4ab43..72e5c287b 100644 --- a/doc/source/fakes.rst +++ b/doc/source/fakes.rst @@ -15,8 +15,13 @@ License for the specific language governing permissions and limitations under the License. -Nova Fakes -========== +Fakes Programming Guide +======================= + +:: + + TODO(todd): * document general info about fakes + The :mod:`virt.fake` Module --------------------------- @@ -41,3 +46,28 @@ The :mod:`fakerabbit` Module :members: :undoc-members: :show-inheritance: + +The :class:`FakeAOEDriver` Class +-------------------------------- + +.. autoclass:: nova.volume.driver.FakeAOEDriver + :members: + :undoc-members: + :show-inheritance: + +The :class:`service_unittest.FakeManager` Class +----------------------------------------------- + +.. autoclass:: nova.tests.service_unittest.FakeManager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.openstack.fakes` Module +------------------------------------------------ + +.. automodule:: nova.tests.api.openstack.fakes + :members: + :undoc-members: + :show-inheritance: + diff --git a/nova/auth/fakeldap.py b/nova/auth/fakeldap.py index 176a00f06..46e0135b4 100644 --- a/nova/auth/fakeldap.py +++ b/nova/auth/fakeldap.py @@ -15,9 +15,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - -""" -Fake LDAP server for test harness, backs to ReDIS. +"""Fake LDAP server for test harness, backs to ReDIS. This class does very little error checking, and knows nothing about ldap class definitions. It implements the minimum emulation of the python ldap -- cgit From 5feb2edcc322a8d44d3d698e2d3c27d81d16fe3f Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 12:16:49 -0400 Subject: Fakes cleanup (stop duplicate autodoc of FakeAOEDriver). --- doc/source/volume.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/source/volume.rst b/doc/source/volume.rst index 27977761a..91678d22a 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -40,6 +40,7 @@ The :mod:`nova.volume.driver` Module :members: :undoc-members: :show-inheritance: + :exclude-members: FakeAOEDriver Tests ----- -- cgit From 3ec095bed60490c844067c8d58ed43dbedee5f0a Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 12:35:46 -0400 Subject: Update database page a bit. --- doc/source/database.rst | 20 ++++++++++++++------ nova/db/sqlalchemy/api.py | 2 +- nova/db/sqlalchemy/models.py | 8 ++++++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/doc/source/database.rst b/doc/source/database.rst index 926f9be26..67f940fe1 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -20,8 +20,7 @@ Database Programming Guide :: - TODO(todd): should sqlalchemy.api be here? - document register_models (where should it be called from?) + TODO(todd): document register_models (where should it be called from?) document any relevant test cases document flags @@ -37,17 +36,26 @@ The :mod:`api` Module Drivers ------- -The :mod:`sqlalchemy` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Driver: Sqlalchemy +~~~~~~~~~~~~~~~~~~ + +The :mod:`sqlalchemy.api` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. automodule:: nova.db.sqlalchemy.api + +The :mod:`sqlalchemy.models` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.db.sqlalchemy.models :members: :undoc-members: :show-inheritance: +The :mod:`sqlalchemy.session` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: nova.db.sqlalchemy.models +.. automodule:: nova.db.sqlalchemy.session :members: :undoc-members: :show-inheritance: - diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a3d8dde2f..d9b98655e 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -16,7 +16,7 @@ # License for the specific language governing permissions and limitations # under the License. """ -Implementation of SQLAlchemy backend +Implementation of SQLAlchemy backend. """ import random diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 894ebcddd..29c3b74da 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -16,7 +16,7 @@ # License for the specific language governing permissions and limitations # under the License. """ -SQLAlchemy models for nova data +SQLAlchemy models for nova data. """ import datetime @@ -488,7 +488,11 @@ class FloatingIp(BASE, NovaBase): def register_models(): - """Register Models and create metadata.""" + """Register Models and create metadata. + + Called from nova.db.sqlalchemy.__init__ as part of loading the driver, + it will never need to be called explicitly elsewhere. + """ from sqlalchemy import create_engine models = (Service, Instance, Volume, ExportDevice, FixedIp, FloatingIp, Network, SecurityGroup, -- cgit From 489ddea1668c742f62acd6fd3e9af78f2f782912 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 15:30:39 -0400 Subject: Update database docs. --- doc/source/database.rst | 12 ++++++------ nova/db/api.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/doc/source/database.rst b/doc/source/database.rst index 67f940fe1..b58ea147d 100644 --- a/doc/source/database.rst +++ b/doc/source/database.rst @@ -18,12 +18,6 @@ Database Programming Guide ========================== -:: - - TODO(todd): document register_models (where should it be called from?) - document any relevant test cases - document flags - The :mod:`api` Module --------------------- @@ -59,3 +53,9 @@ The :mod:`sqlalchemy.session` Module :members: :undoc-members: :show-inheritance: + +Tests +----- + +Tests are lacking for the db api layer and for the sqlalchemy driver. +Failures in the drivers would be dectected in other test cases, though. diff --git a/nova/db/api.py b/nova/db/api.py index 7cce591ad..659bfd6b8 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -17,6 +17,16 @@ # under the License. """ Defines interface for DB access. + +The underlying driver is loaded as a :class:`LazyPluggable`. + +**Related Flags** + +:db_backend: string to lookup in the list of LazyPluggable backends. + `sqlalchemy` is the only supported backend right now. + +:sql_connection: string specifying the sqlalchemy connection to use, like: + `sqlite:///var/lib/nova/nova.sqlite`. """ from nova import exception -- cgit From 5ffbfdd32bda3de071f994760ab9539bed40172a Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 15:40:58 -0400 Subject: Remove fakes duplication. --- doc/source/development.guide.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 0d852a098..df8eb341a 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -50,7 +50,6 @@ Older Contents architecture nova - fakes binaries modules -- cgit From 7ca505a729ee3caae968cf25059721ab51d1327c Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 16:18:00 -0400 Subject: Volume documentation. --- nova/tests/volume_unittest.py | 21 ++++++++++++--------- nova/volume/driver.py | 24 +++++++++++++----------- nova/volume/manager.py | 39 +++++++++++++++++++++++++++++++-------- 3 files changed, 56 insertions(+), 28 deletions(-) diff --git a/nova/tests/volume_unittest.py b/nova/tests/volume_unittest.py index fdee30b48..896800cea 100644 --- a/nova/tests/volume_unittest.py +++ b/nova/tests/volume_unittest.py @@ -16,7 +16,8 @@ # License for the specific language governing permissions and limitations # under the License. """ -Tests for Volume Code +Tests for Volume Code. + """ import logging @@ -33,7 +34,8 @@ FLAGS = flags.FLAGS class VolumeTestCase(test.TrialTestCase): - """Test Case for volumes""" + """Test Case for volumes.""" + def setUp(self): logging.getLogger().setLevel(logging.DEBUG) super(VolumeTestCase, self).setUp() @@ -44,7 +46,7 @@ class VolumeTestCase(test.TrialTestCase): @staticmethod def _create_volume(size='0'): - """Create a volume object""" + """Create a volume object.""" vol = {} vol['size'] = size vol['user_id'] = 'fake' @@ -56,7 +58,7 @@ class VolumeTestCase(test.TrialTestCase): @defer.inlineCallbacks def test_create_delete_volume(self): - """Test volume can be created and deleted""" + """Test volume can be created and deleted.""" volume_id = self._create_volume() yield self.volume.create_volume(self.context, volume_id) self.assertEqual(volume_id, db.volume_get(context.get_admin_context(), @@ -70,7 +72,7 @@ class VolumeTestCase(test.TrialTestCase): @defer.inlineCallbacks def test_too_big_volume(self): - """Ensure failure if a too large of a volume is requested""" + """Ensure failure if a too large of a volume is requested.""" # FIXME(vish): validation needs to move into the data layer in # volume_create defer.returnValue(True) @@ -83,7 +85,7 @@ class VolumeTestCase(test.TrialTestCase): @defer.inlineCallbacks def test_too_many_volumes(self): - """Ensure that NoMoreBlades is raised when we run out of volumes""" + """Ensure that NoMoreBlades is raised when we run out of volumes.""" vols = [] total_slots = FLAGS.num_shelves * FLAGS.blades_per_shelf for _index in xrange(total_slots): @@ -100,7 +102,7 @@ class VolumeTestCase(test.TrialTestCase): @defer.inlineCallbacks def test_run_attach_detach_volume(self): - """Make sure volume can be attached and detached from instance""" + """Make sure volume can be attached and detached from instance.""" inst = {} inst['image_id'] = 'ami-test' inst['reservation_id'] = 'r-fakeres' @@ -149,12 +151,13 @@ class VolumeTestCase(test.TrialTestCase): @defer.inlineCallbacks def test_concurrent_volumes_get_different_blades(self): - """Ensure multiple concurrent volumes get different blades""" + """Ensure multiple concurrent volumes get different blades.""" + volume_ids = [] shelf_blades = [] def _check(volume_id): - """Make sure blades aren't duplicated""" + """Make sure blades aren't duplicated.""" volume_ids.append(volume_id) admin_context = context.get_admin_context() (shelf_id, blade_id) = db.volume_get_shelf_and_blade(admin_context, diff --git a/nova/volume/driver.py b/nova/volume/driver.py index 3fa29ba37..b99089374 100644 --- a/nova/volume/driver.py +++ b/nova/volume/driver.py @@ -15,9 +15,9 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - """ -Drivers for volumes +Drivers for volumes. + """ import logging @@ -39,7 +39,8 @@ flags.DEFINE_string('num_shell_tries', 3, class AOEDriver(object): - """Executes commands relating to AOE volumes""" + """Executes commands relating to AOE volumes.""" + def __init__(self, execute=process.simple_execute, *args, **kwargs): self._execute = execute @@ -63,7 +64,7 @@ class AOEDriver(object): @defer.inlineCallbacks def create_volume(self, volume_name, size): - """Creates a logical volume""" + """Creates a logical volume.""" # NOTE(vish): makes sure that the volume group exists yield self._execute("vgs %s" % FLAGS.volume_group) if int(size) == 0: @@ -77,14 +78,14 @@ class AOEDriver(object): @defer.inlineCallbacks def delete_volume(self, volume_name): - """Deletes a logical volume""" + """Deletes a logical volume.""" yield self._try_execute("sudo lvremove -f %s/%s" % (FLAGS.volume_group, volume_name)) @defer.inlineCallbacks def create_export(self, volume_name, shelf_id, blade_id): - """Creates an export for a logical volume""" + """Creates an export for a logical volume.""" yield self._try_execute( "sudo vblade-persist setup %s %s %s /dev/%s/%s" % (shelf_id, @@ -95,13 +96,13 @@ class AOEDriver(object): @defer.inlineCallbacks def discover_volume(self, _volume_name): - """Discover volume on a remote host""" + """Discover volume on a remote host.""" yield self._execute("sudo aoe-discover") yield self._execute("sudo aoe-stat") @defer.inlineCallbacks def remove_export(self, _volume_name, shelf_id, blade_id): - """Removes an export for a logical volume""" + """Removes an export for a logical volume.""" yield self._try_execute("sudo vblade-persist stop %s %s" % (shelf_id, blade_id)) yield self._try_execute("sudo vblade-persist destroy %s %s" % @@ -109,7 +110,7 @@ class AOEDriver(object): @defer.inlineCallbacks def ensure_exports(self): - """Runs all existing exports""" + """Runs all existing exports.""" # NOTE(vish): The standard _try_execute does not work here # because these methods throw errors if other # volumes on this host are in the process of @@ -125,11 +126,12 @@ class AOEDriver(object): class FakeAOEDriver(AOEDriver): - """Logs calls instead of executing""" + """Logs calls instead of executing.""" + def __init__(self, *args, **kwargs): super(FakeAOEDriver, self).__init__(self.fake_execute) @staticmethod def fake_execute(cmd, *_args, **_kwargs): - """Execute that simply logs the command""" + """Execute that simply logs the command.""" logging.debug("FAKE AOE: %s", cmd) diff --git a/nova/volume/manager.py b/nova/volume/manager.py index 2874459f9..f6e220c5f 100644 --- a/nova/volume/manager.py +++ b/nova/volume/manager.py @@ -15,10 +15,31 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - """ -Volume manager manages creating, attaching, detaching, and -destroying persistent storage volumes, ala EBS. +Volume manager manages creating, attaching, detaching, and persistent storage. + +Persistant storage volumes keep their state independent of instances. You can +attach to an instance, terminate the instance, spawn a new instance (even +one from a different image) and re-attach the volume with the same data +intact. + +**Related Flags** + +:volume_topic: What :mod:`rpc` topic to listen to (default: `volume`). +:volume_manager: The module name of a class derived from + :class:`manager.Manager` (default: + :class:`nova.volume.manager.AOEManager`). +:storage_availability_zone: Defaults to `nova`. +:volume_driver: Used by :class:`AOEManager`. Defaults to + :class:`nova.volume.driver.AOEDriver`. +:num_shelves: Number of shelves for AoE (default: 100). +:num_blades: Number of vblades per shelf to allocate AoE storage from + (default: 16). +:volume_group: Name of the group that will contain exported volumes (default: + `nova-volumes`) +:aoe_eth_dev: Device name the volumes will be exported on (default: `eth0`). +:num_shell_tries: Number of times to attempt to run AoE commands (default: 3) + """ import logging @@ -47,15 +68,17 @@ flags.DEFINE_integer('blades_per_shelf', class AOEManager(manager.Manager): - """Manages Ata-Over_Ethernet volumes""" + """Manages Ata-Over_Ethernet volumes.""" + def __init__(self, volume_driver=None, *args, **kwargs): + """Load the driver from the one specified in args, or from flags.""" if not volume_driver: volume_driver = FLAGS.volume_driver self.driver = utils.import_object(volume_driver) super(AOEManager, self).__init__(*args, **kwargs) def _ensure_blades(self, context): - """Ensure that blades have been created in datastore""" + """Ensure that blades have been created in datastore.""" total_blades = FLAGS.num_shelves * FLAGS.blades_per_shelf if self.db.export_device_count(context) >= total_blades: return @@ -66,7 +89,7 @@ class AOEManager(manager.Manager): @defer.inlineCallbacks def create_volume(self, context, volume_id): - """Creates and exports the volume""" + """Creates and exports the volume.""" context = context.elevated() logging.info("volume %s: creating", volume_id) @@ -104,7 +127,7 @@ class AOEManager(manager.Manager): @defer.inlineCallbacks def delete_volume(self, context, volume_id): - """Deletes and unexports volume""" + """Deletes and unexports volume.""" context = context.elevated() volume_ref = self.db.volume_get(context, volume_id) if volume_ref['attach_status'] == "attached": @@ -123,7 +146,7 @@ class AOEManager(manager.Manager): @defer.inlineCallbacks def setup_compute_volume(self, context, volume_id): - """Setup remote volume on compute host + """Setup remote volume on compute host. Returns path to device. """ -- cgit From 3bc84d66d35976794b559ad305dd10eec450216f Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 29 Oct 2010 16:19:57 -0400 Subject: Change volume TODO list. --- doc/source/volume.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/source/volume.rst b/doc/source/volume.rst index 91678d22a..39b33a500 100644 --- a/doc/source/volume.rst +++ b/doc/source/volume.rst @@ -20,9 +20,7 @@ Volume Programming Guide :: - TODO(todd): document for iSCSI & AoE (see 'Old Docs') - pep-257 - document flags + TODO(todd): rework after iSCSI merge (see 'Old Docs') The :mod:`nova.volume.manager` Module -- cgit From bf15a6eb3de8c688dc1364959dd3e00d3e26a563 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Sat, 30 Oct 2010 20:05:31 -0400 Subject: Update compute/disk.py docs. --- nova/compute/disk.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/nova/compute/disk.py b/nova/compute/disk.py index e362b4507..0b8568d33 100644 --- a/nova/compute/disk.py +++ b/nova/compute/disk.py @@ -15,10 +15,11 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - """ Utility methods to resize, repartition, and modify disk images. + Includes injection of SSH PGP keys into authorized_keys file. + """ import logging @@ -41,20 +42,23 @@ flags.DEFINE_integer('block_size', 1024 * 1024 * 256, @defer.inlineCallbacks def partition(infile, outfile, local_bytes=0, resize=True, local_type='ext2', execute=None): - """Takes a single partition represented by infile and writes a bootable - drive image into outfile. + """ + Turns a partition (infile) into a bootable drive image (outfile). The first 63 sectors (0-62) of the resulting image is a master boot record. Infile becomes the first primary partition. If local bytes is specified, a second primary partition is created and formatted as ext2. - In the diagram below, dashes represent drive sectors. - +-----+------. . .-------+------. . .------+ - | 0 a| b c|d e| - +-----+------. . .-------+------. . .------+ - | mbr | primary partiton | local partition | - +-----+------. . .-------+------. . .------+ + :: + + In the diagram below, dashes represent drive sectors. + +-----+------. . .-------+------. . .------+ + | 0 a| b c|d e| + +-----+------. . .-------+------. . .------+ + | mbr | primary partiton | local partition | + +-----+------. . .-------+------. . .------+ + """ sector_size = 512 file_size = os.path.getsize(infile) -- cgit From 878eb4d25075f8d78f24ad9f78eb5d43702192ca Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 16:13:18 -0400 Subject: Virt documentation. --- doc/source/compute.rst | 53 ++++++++++++++++++++++++----------------------- nova/virt/connection.py | 20 +++++++++++------- nova/virt/fake.py | 7 +++++-- nova/virt/libvirt_conn.py | 22 +++++++++++++++++++- nova/virt/xenapi.py | 12 +++++++++++ 5 files changed, 77 insertions(+), 37 deletions(-) diff --git a/doc/source/compute.rst b/doc/source/compute.rst index d29b96781..ba5f2917c 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -24,10 +24,7 @@ This page contains the Compute Package documentation. :: - TODO(todd): * Document drivers - * get docstrings to come in for ComputeManager - * fix formatting of ascii art in disk module - * document instance_types and power_states + TODO(todd): * document instance_types and power_states Manager @@ -45,6 +42,13 @@ The :mod:`manager` Module :undoc-members: :show-inheritance: +The :mod:`connection` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.virt.connection + :members: + :undoc-members: + :show-inheritance: The :mod:`disk` Module ~~~~~~~~~~~~~~~~~~~~~~ @@ -76,40 +80,37 @@ The :mod:`power_state` Module Drivers ------- - Libvirt Implementations ~~~~~~~~~~~~~~~~~~~~~~~ +The libvirt driver is capable of supporting KVM, QEMU, and UML. -Libvirt: KVM -^^^^^^^^^^^^ - -KVM Driver - - -Libvirt: QEMU -^^^^^^^^^^^^^ - -QEMU Driver - - -Libvirt: UML -^^^^^^^^^^^^ - -User Mode Linux Driver +The :mod:`libvirt_conn` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. automodule:: nova.virt.libvirt_conn + :members: + :undoc-members: + :show-inheritance: XEN ~~~ -Xen Driver - +The :mod:`xenapi` Module +^^^^^^^^^^^^^^^^^^^^^^^^ -Hyper-V -~~~~~~~ +.. automodule:: nova.virt.xenapi + :members: + :undoc-members: + :show-inheritance: -Hyper-V Driver +FAKE +~~~~ +.. automodule:: nova.virt.fake + :members: + :undoc-members: + :show-inheritance: Monitoring ---------- diff --git a/nova/virt/connection.py b/nova/virt/connection.py index ceb7f1e4b..11f0fa8ce 100644 --- a/nova/virt/connection.py +++ b/nova/virt/connection.py @@ -32,19 +32,23 @@ FLAGS = flags.FLAGS def get_connection(read_only=False): - """Returns an object representing the connection to a virtualization - platform. This could be nova.virt.fake.FakeConnection in test mode, - a connection to KVM or QEMU via libvirt, or a connection to XenServer - or Xen Cloud Platform via XenAPI. + """ + Returns an object representing the connection to a virtualization + platform. + + This could be :mod:`nova.virt.fake.FakeConnection` in test mode, + a connection to KVM, QEMU, or UML via :mod:`libvirt_conn`, or a connection + to XenServer or Xen Cloud Platform via :mod:`xenapi`. Any object returned here must conform to the interface documented by - FakeConnection. + :mod:`FakeConnection`. + + **Related flags** - Related flags - ------------- :connection_type: A string literal that falls through a if/elif structure to determine what virtualization mechanism to use. - Values may be: + Values may be + * fake * libvirt * xenapi diff --git a/nova/virt/fake.py b/nova/virt/fake.py index 66eff4c66..f855523d3 100644 --- a/nova/virt/fake.py +++ b/nova/virt/fake.py @@ -18,8 +18,11 @@ # under the License. """ -A fake (in-memory) hypervisor+api. Allows nova testing w/o a hypervisor. -This module also documents the semantics of real hypervisor connections. +A fake (in-memory) hypervisor+api. + +Allows nova testing w/o a hypervisor. This module also documents the +semantics of real hypervisor connections. + """ from twisted.internet import defer diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py index e32945fa5..0170fc6d1 100644 --- a/nova/virt/libvirt_conn.py +++ b/nova/virt/libvirt_conn.py @@ -18,7 +18,27 @@ # under the License. """ -A connection to a hypervisor (e.g. KVM) through libvirt. +A connection to a hypervisor through libvirt. + +Supports KVM, QEMU, UML, and XEN. + +**Related Flags** + +:libvirt_type: Libvirt domain type. Can be kvm, qemu, uml, xen + (default: kvm). +:libvirt_uri: Override for the default libvirt URI (depends on libvirt_type). +:libvirt_xml_template: Libvirt XML Template (QEmu/KVM). +:libvirt_xen_xml_template: Libvirt XML Template (Xen). +:libvirt_uml_xml_template: Libvirt XML Template (User Mode Linux). +:libvirt_rescue_xml_template: XML template for rescue mode (KVM & QEMU). +:libvirt_rescue_xen_xml_template: XML templage for rescue mode (XEN). +:libvirt_rescue_uml_xml_template: XML template for rescue mode (UML). +:rescue_image_id: Rescue ami image (default: ami-rescue). +:rescue_kernel_id: Rescue aki image (default: aki-rescue). +:rescue_ramdisk_id: Rescue ari image (default: ari-rescue). +:injected_network_template: Template file for injected network +:allow_project_net_traffic: Whether to allow in project network traffic + """ import logging diff --git a/nova/virt/xenapi.py b/nova/virt/xenapi.py index a17e405ab..0f563aa41 100644 --- a/nova/virt/xenapi.py +++ b/nova/virt/xenapi.py @@ -33,6 +33,18 @@ long-running operations. FIXME: get_info currently doesn't conform to these rules, and will block the reactor thread if the VM.get_by_name_label or VM.get_record calls block. + +**Related Flags** + +:xenapi_connection_url: URL for connection to XenServer/Xen Cloud Platform. +:xenapi_connection_username: Username for connection to XenServer/Xen Cloud + Platform (default: root). +:xenapi_connection_password: Password for connection to XenServer/Xen Cloud + Platform. +:xenapi_task_poll_interval: The interval (seconds) used for polling of + remote tasks (Async.VM.start, etc) + (default: 0.5). + """ import logging -- cgit From 501850f3d470da646378c8e7de7657024411d2e0 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 16:26:35 -0400 Subject: :noindex: on the fakes page for virt.fakes which is included in compute.rst --- doc/source/fakes.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/source/fakes.rst b/doc/source/fakes.rst index 72e5c287b..5988e2ab8 100644 --- a/doc/source/fakes.rst +++ b/doc/source/fakes.rst @@ -30,6 +30,7 @@ The :mod:`virt.fake` Module :members: :undoc-members: :show-inheritance: + :noindex: The :mod:`fakeldap` Module -------------------------- -- cgit From c8e2341c98ffacfafffbadb7d204f10ff87cf89c Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 20:33:03 -0400 Subject: API endpoint documentation. --- doc/source/api.rst | 112 +++++++++++++++++++++++++++++++++++++++ doc/source/development.guide.rst | 13 +---- doc/source/index.rst | 10 ++-- nova/api/__init__.py | 8 ++- 4 files changed, 125 insertions(+), 18 deletions(-) create mode 100644 doc/source/api.rst diff --git a/doc/source/api.rst b/doc/source/api.rst new file mode 100644 index 000000000..03ec6195d --- /dev/null +++ b/doc/source/api.rst @@ -0,0 +1,112 @@ +.. + Copyright 2010 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. + +API Endpoints +============= + +:: + + TODO(todd): get actual docstrings from ec2/osapi_verions instead of @wsgify + +Nova has a system for managing multiple APIs on different subdomains. +Currently there is support for the OpenStack API, as well as the Amazon EC2 +API. + +Common Components +----------------- + +The :mod:`nova.api` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.cloud + :members: + :undoc-members: + :show-inheritance: + +OpenStack API +------------- + +The :mod:`openstack` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack + :members: + :undoc-members: + :show-inheritance: + +The :mod:`auth` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.auth + :members: + :undoc-members: + :show-inheritance: + +The :mod:`backup_schedules` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.backup_schedules + :members: + :undoc-members: + :show-inheritance: + +The :mod:`faults` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.faults + :members: + :undoc-members: + :show-inheritance: + +The :mod:`flavors` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.flavors + :members: + :undoc-members: + :show-inheritance: + +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`ratelimiting` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.ratelimiting + :members: + :undoc-members: + :show-inheritance: + +The :mod:`servers` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.servers + :members: + :undoc-members: + :show-inheritance: + +The :mod:`sharedipgroups` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.sharedipgroups + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index df8eb341a..8addc7813 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -39,21 +39,10 @@ Contents compute network auth + api fakes -Older Contents --------------- - -.. toctree:: - :maxdepth: 1 - - architecture - nova - binaries - modules - - Indices and tables ------------------ diff --git a/doc/source/index.rst b/doc/source/index.rst index 54cfea05a..261919629 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -22,11 +22,11 @@ Nova is a cloud computing fabric controller, the main part of an IaaS system. Nova is written with the following design guidelines in mind: -* Component based architecture: Quickly add new behaviors -* Highly available: Scale to very serious workloads -* Fault-Tollerant: Isloated processes avoid cascading failures -* Recoverable: Failures should be easy to diagnose, debug, and rectify -* Open Standards: Be a reference implementation for a community-driven api +* **Component based architecture**: Quickly add new behaviors +* **Highly available**: Scale to very serious workloads +* **Fault-Tollerant**: Isloated processes avoid cascading failures +* **Recoverable**: Failures should be easy to diagnose, debug, and rectify +* **Open Standards**: Be a reference implementation for a community-driven api This documentation is generated by the Sphinx toolkit and lives in the source tree. Additional documentation on Nova and other components of OpenStack can diff --git a/nova/api/__init__.py b/nova/api/__init__.py index 8a1d9fe32..27b8199db 100644 --- a/nova/api/__init__.py +++ b/nova/api/__init__.py @@ -15,9 +15,15 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - """ Root WSGI middleware for all API controllers. + +**Related Flags** + +:osapi_subdomain: subdomain running the OpenStack API (default: api) +:ec2api_subdomain: subdomain running the EC2 API (default: ec2) +:FAKE_subdomain: set to 'api' or 'ec2', requests default to that endpoint + """ import routes -- cgit From ff588ab5baf400c243daeff82e7ca2fd27d87143 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 21:13:51 -0400 Subject: Exceptions docs. --- doc/source/development.guide.rst | 4 ++-- doc/source/exceptions.rst | 27 +++++++++++++++++++++++++++ doc/source/nova.rst | 9 +-------- 3 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 doc/source/exceptions.rst diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 8addc7813..7322545de 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -22,8 +22,7 @@ Nova is written in python. :: - TODO(todd): * API - * Exceptions + TODO(todd): * Nova libraries (utils, etc) * Building packages @@ -40,6 +39,7 @@ Contents network auth api + exceptions fakes diff --git a/doc/source/exceptions.rst b/doc/source/exceptions.rst new file mode 100644 index 000000000..aaf5b2c1a --- /dev/null +++ b/doc/source/exceptions.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Exceptions Programming Guide +============================ + +The :mod:`nova.excepton` Module +------------------------------- + +.. automodule:: nova.exception + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/nova.rst b/doc/source/nova.rst index 4b9c44a5f..a5573cb41 100644 --- a/doc/source/nova.rst +++ b/doc/source/nova.rst @@ -34,14 +34,6 @@ The :mod:`adminclient` Module :undoc-members: :show-inheritance: -The :mod:`datastore` Module ---------------------------- - -.. automodule:: nova.datastore - :members: - :undoc-members: - :show-inheritance: - The :mod:`exception` Module --------------------------- @@ -49,6 +41,7 @@ The :mod:`exception` Module :members: :undoc-members: :show-inheritance: + :noindex: The :mod:`flags` Module --------------------------- -- cgit From e0f889443f5c0732db28871f350c45e7c8e8d031 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 21:47:16 -0400 Subject: Add ec2 api docs. --- doc/source/api.rst | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ nova/api/ec2/__init__.py | 4 +++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/doc/source/api.rst b/doc/source/api.rst index 03ec6195d..75905d8b3 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -110,3 +110,54 @@ The :mod:`sharedipgroups` Module :members: :undoc-members: :show-inheritance: + +EC2 API +------- + +The :mod:`nova.api.ec2` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2 + :members: + :undoc-members: + :show-inheritance: + +The :mod:`admin` Module +~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.admin + :members: + :undoc-members: + :show-inheritance: + +The :mod:`apirequest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.apirequest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud` Module +~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.cloud + :members: + :undoc-members: + :show-inheritance: + +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`metadatarequesthandler` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.metadatarequesthandler + :members: + :undoc-members: + :show-inheritance: diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py index 0df4d3710..816314901 100644 --- a/nova/api/ec2/__init__.py +++ b/nova/api/ec2/__init__.py @@ -15,8 +15,10 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +""" +Starting point for routing EC2 requests. -"""Starting point for routing EC2 requests""" +""" import logging import routes -- cgit From 500f101c64a8e5db91111a7afd7c95ac360b67fb Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 22:32:41 -0400 Subject: Language change for conformity. --- doc/source/api.rst | 4 ++-- doc/source/auth.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/source/api.rst b/doc/source/api.rst index 75905d8b3..3f1c69a15 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -15,8 +15,8 @@ License for the specific language governing permissions and limitations under the License. -API Endpoints -============= +API Endpoint Programming Guide +============================== :: diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 203efe1a5..61db39ec3 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -17,7 +17,7 @@ .. _auth: -Authentication and Authorization Development Guide +Authentication and Authorization Programming Guide ================================================== :: -- cgit From 56c22eab57bc1096c0cd7e6756b42d163649fae1 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Mon, 1 Nov 2010 23:32:56 -0400 Subject: More docs. --- doc/source/compute.rst | 8 ++++ doc/source/development.guide.rst | 7 ++- doc/source/exceptions.rst | 27 ----------- doc/source/nova.rst | 101 +++++++++++++++++++++++++++++++-------- doc/source/scheduler.rst | 51 ++++++++++++++++++++ 5 files changed, 144 insertions(+), 50 deletions(-) delete mode 100644 doc/source/exceptions.rst create mode 100644 doc/source/scheduler.rst diff --git a/doc/source/compute.rst b/doc/source/compute.rst index ba5f2917c..e9e37ebf8 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -58,6 +58,14 @@ The :mod:`disk` Module :undoc-members: :show-inheritance: +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.virt.images + :members: + :undoc-members: + :show-inheritance: + The :mod:`instance_types` Module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 7322545de..261059d9b 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -22,9 +22,7 @@ Nova is written in python. :: - TODO(todd): - * Nova libraries (utils, etc) - * Building packages + TODO(todd): * Building packages Contents @@ -39,8 +37,9 @@ Contents network auth api - exceptions + scheduler fakes + nova Indices and tables diff --git a/doc/source/exceptions.rst b/doc/source/exceptions.rst deleted file mode 100644 index aaf5b2c1a..000000000 --- a/doc/source/exceptions.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - Copyright 2010 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. - -Exceptions Programming Guide -============================ - -The :mod:`nova.excepton` Module -------------------------------- - -.. automodule:: nova.exception - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/nova.rst b/doc/source/nova.rst index a5573cb41..59fd56c85 100644 --- a/doc/source/nova.rst +++ b/doc/source/nova.rst @@ -15,21 +15,29 @@ License for the specific language governing permissions and limitations under the License. -NOVA Libraries -=============== +Nova Libraries Programming Guide +================================ -The :mod:`crypto` Module ------------------------- +The :mod:`adminclient` Module +----------------------------- -.. automodule:: nova.crypto +.. automodule:: nova.adminclient :members: :undoc-members: :show-inheritance: - -The :mod:`adminclient` Module ------------------------------ -.. automodule:: nova.adminclient +The :mod:`context` Module +------------------------- + +.. automodule:: nova.context + :members: + :undoc-members: + :show-inheritance: + +The :mod:`crypto` Module +------------------------ + +.. automodule:: nova.crypto :members: :undoc-members: :show-inheritance: @@ -41,44 +49,99 @@ The :mod:`exception` Module :members: :undoc-members: :show-inheritance: - :noindex: - + The :mod:`flags` Module ---------------------------- +----------------------- .. automodule:: nova.flags :members: :undoc-members: :show-inheritance: +The :mod:`manager` Module +------------------------- + +.. automodule:: nova.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`process` Module +------------------------- + +.. automodule:: nova.process + :members: + :undoc-members: + :show-inheritance: + +The :mod:`quota` Module +----------------------- + +.. automodule:: nova.quota + :members: + :undoc-members: + :show-inheritance: + The :mod:`rpc` Module ---------------------------- +--------------------- .. automodule:: nova.rpc :members: :undoc-members: :show-inheritance: - + The :mod:`server` Module ---------------------------- +------------------------ .. automodule:: nova.server :members: :undoc-members: :show-inheritance: - + +The :mod:`service` Module +------------------------- + +.. automodule:: nova.service + :members: + :undoc-members: + :show-inheritance: + The :mod:`test` Module ---------------------------- +---------------------- .. automodule:: nova.test :members: :undoc-members: :show-inheritance: - + +The :mod:`twistd` Module +------------------------ + +.. automodule:: nova.twistd + :members: + :undoc-members: + :show-inheritance: + The :mod:`utils` Module ---------------------------- +----------------------- .. automodule:: nova.utils :members: :undoc-members: :show-inheritance: + +The :mod:`validate` Module +-------------------------- + +.. automodule:: nova.validate + :members: + :undoc-members: + :show-inheritance: + +The :mod:`wsgi` Module +---------------------- + +.. automodule:: nova.wsgi + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/scheduler.rst b/doc/source/scheduler.rst new file mode 100644 index 000000000..e809b0c54 --- /dev/null +++ b/doc/source/scheduler.rst @@ -0,0 +1,51 @@ +.. + Copyright 2010 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. + +Scheduler Programming Guide +=========================== + +The :mod:`manager` Module +------------------------- + +.. automodule:: nova.scheduler.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`driver` Module +------------------------ + +.. automodule:: nova.scheduler.driver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`chance` Module +------------------------ + +.. automodule:: nova.scheduler.chance + :members: + :undoc-members: + :show-inheritance: + +The :mod:`simple` Module +------------------------ + +.. automodule:: nova.scheduler.simple + :members: + :undoc-members: + :show-inheritance: -- cgit From e50b8627ccac7f051d4ebea8879bd8d5c083837c Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Tue, 2 Nov 2010 13:57:50 -0700 Subject: cloudpipe docs --- doc/source/cloudpipe.rst | 77 ++++++++++++++++++++++++++++++++ doc/source/concepts.and.introduction.rst | 2 +- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 doc/source/cloudpipe.rst diff --git a/doc/source/cloudpipe.rst b/doc/source/cloudpipe.rst new file mode 100644 index 000000000..952a75351 --- /dev/null +++ b/doc/source/cloudpipe.rst @@ -0,0 +1,77 @@ +.. + Copyright 2010 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. + + +.. _cloudpipe: + +Cloudpipe +========= + +Cloudpipe is a method for connecting end users to their project insnances in vlan mode. + +Overview +-------- + +The support code for cloudpipe implements admin commands (via nova-manage) to automatically create a vm for a project that allows users to vpn into the private network of their project. Access to this vpn is provided through a public port on the network host for the project. This allows users to have free access to the virtual machines in their project without exposing those machines to the public internet. + +Cloudpipe Image +--------------- + +The cloudpipe image is basically just a linux instance with openvpn installed. It needs a simple script to grab user data from the metadata server, b64 decode it into a zip file, and run the autorun.sh script from inside the zip. The autorun script will configure and run openvpn to run using the data from nova. + +It is also useful to have a cron script that will periodically redownload the metadata and copy the new crl. This will keep revoked users from connecting and will disconnect any users that are connected with revoked certificates when their connection is renegotiated (every hour). + +Cloudpipe Launch +---------------- + +When you use nova-manage to launch a cloudpipe for a user, it goes through the following process: + +#. creates a keypair called -vpn and saves it in the keys directory +#. creates a security group -vpn and opens up 1194 and icmp +#. creates a cert and private key for the vpn instance and saves it in the CA/projects// directory +#. zips up the info and puts it b64 encoded as user data +#. launches an m1.tiny instance with the above settings using the flag-specified vpn image + +Vpn Access +---------- + +In vlan networking mode, the second ip in each private network is reserved for the cloudpipe instance. This gives a consistent ip to the instance so that nova-network can create forwarding rules for access from the outside world. The network for each project is given a specific high-numbered port on the public ip of the network host. This port is automatically forwarded to 1194 on the vpn instance. + +If specific high numbered ports do not work for your users, you can always allocate and associate a public ip to the instance, and then change the vpn_public_ip and vpn_public_port in the database. This will be turned into a nova-manage command or a flag soon. + + +Certificates and Revocation +--------------------------- + +If the use_project_ca flag is set (required to for cloudpipes to work securely), then each project has its own ca. This ca is used to sign the certificate for the vpn, and is also passed to the user for bundling images. When a certificate is revoked using nova-manage, a new Certificate Revocation List (crl) is generated. As long as cloudpipe has an updated crl, it will block revoked users from connecting to the vpn. + +The :mod:`cloudpipe` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.cloudpipe.pipelib + :members: + :undoc-members: + :show-inheritance: + +The :mod:`crypto` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.crypto + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 29b8f064a..d2ab6f14b 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -129,7 +129,7 @@ This is similar to the flat mode, in that all instances are attached to the same VLAN DHCP Mode ~~~~~~~~~~~~~~ -This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code name cloudpipe) needs to be created. Nova generates a certificate and key for the userto access the vpn and starts the vpn automatically. +This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code named :ref:`cloudpipe `) needs to be created. Nova generates a certificate and key for the userto access the vpn and starts the vpn automatically. More information on cloudpipe can be found :ref:`here `. The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds) -- cgit From e493e324eb9a9fe31e72551b34bab768b507bc1d Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Tue, 2 Nov 2010 18:05:47 -0400 Subject: Document final undocumented python modules. --- doc/source/api.rst | 108 +++++++++++++++++++++++++++++++++++++++ doc/source/cloudpipe.rst | 27 ++++++++++ doc/source/compute.rst | 8 ++- doc/source/development.guide.rst | 3 ++ doc/source/glance.rst | 27 ++++++++++ doc/source/network.rst | 11 ++++ doc/source/nova.rst | 83 ++++++++++++++++++++++++++++++ doc/source/objectstore.rst | 62 ++++++++++++++++++++++ doc/source/scheduler.rst | 11 ++++ nova/image/service.py | 34 +++++------- 10 files changed, 353 insertions(+), 21 deletions(-) create mode 100644 doc/source/cloudpipe.rst create mode 100644 doc/source/glance.rst create mode 100644 doc/source/objectstore.rst diff --git a/doc/source/api.rst b/doc/source/api.rst index 3f1c69a15..0908d9e57 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -161,3 +161,111 @@ The :mod:`metadatarequesthandler` Module :members: :undoc-members: :show-inheritance: + +Tests +----- + +The :mod:`api_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api_integration` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api_integration + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.cloud_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.fakes` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.fakes + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.test_wsgi` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.test_wsgi + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_api` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_api + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_auth` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_auth + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_faults` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_faults + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_flavors` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_flavors + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_images` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_ratelimiting` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_ratelimiting + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_servers` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_servers + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_sharedipgroups` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_sharedipgroups + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/source/cloudpipe.rst b/doc/source/cloudpipe.rst new file mode 100644 index 000000000..f2e7cb85a --- /dev/null +++ b/doc/source/cloudpipe.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Cloudpipe Programmer Guide +========================== + +The :mod:`pipelib` Module +------------------------- + +.. automodule:: nova.cloudpipe.pipelib + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/compute.rst b/doc/source/compute.rst index e9e37ebf8..ff6aeab92 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -135,7 +135,6 @@ The :mod:`monitor` Module Tests ----- - The :mod:`compute_unittest` Module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -144,3 +143,10 @@ The :mod:`compute_unittest` Module :undoc-members: :show-inheritance: +The :mod:`virt_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.virt_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 261059d9b..306decccb 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -40,6 +40,9 @@ Contents scheduler fakes nova + cloudpipe + objectstore + glance Indices and tables diff --git a/doc/source/glance.rst b/doc/source/glance.rst new file mode 100644 index 000000000..3d0f4ebec --- /dev/null +++ b/doc/source/glance.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Glance Integration Programming Guide +==================================== + +The :mod:`image.service` Module +------------------------------- + +.. automodule:: nova.image.service + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/network.rst b/doc/source/network.rst index b044c6413..cbff22d3f 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -43,6 +43,17 @@ The :mod:`LinuxNet` driver :undoc-members: :show-inheritance: +Tests +----- + +The :mod:`network_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.network_unittest + :members: + :undoc-members: + :show-inheritance: + legacy docs ----------- diff --git a/doc/source/nova.rst b/doc/source/nova.rst index 59fd56c85..17d32c010 100644 --- a/doc/source/nova.rst +++ b/doc/source/nova.rst @@ -145,3 +145,86 @@ The :mod:`wsgi` Module :members: :undoc-members: :show-inheritance: + +Tests +----- + +The :mod:`declare_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.declare_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`fake_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.fake_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`flags_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.flags_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`process_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.process_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`quota_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.quota_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`real_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.real_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`rpc_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.rpc_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`runtime_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.runtime_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`twistd_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.twistd_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`validator_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.validator_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/objectstore.rst b/doc/source/objectstore.rst new file mode 100644 index 000000000..4087b5dd0 --- /dev/null +++ b/doc/source/objectstore.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 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. + +Objectstore Programming Guide +============================= + +The :mod:`handler` Module +------------------------- + +.. automodule:: nova.objectstore.handler + :members: + :undoc-members: + :show-inheritance: + +The :mod:`bucket` Module +------------------------ + +.. automodule:: nova.objectstore.bucket + :members: + :undoc-members: + :show-inheritance: + +The :mod:`stored` Module +------------------------ + +.. automodule:: nova.objectstore.stored + :members: + :undoc-members: + :show-inheritance: + +The :mod:`image` Module +----------------------- + +.. automodule:: nova.objectstore.image + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`objectstore_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.objectstore_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/scheduler.rst b/doc/source/scheduler.rst index e809b0c54..df820c2f2 100644 --- a/doc/source/scheduler.rst +++ b/doc/source/scheduler.rst @@ -49,3 +49,14 @@ The :mod:`simple` Module :members: :undoc-members: :show-inheritance: + +Tests +----- + +The :mod:`scheduler_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.scheduler_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/nova/image/service.py b/nova/image/service.py index 37cadddcc..52ddd4e0f 100644 --- a/nova/image/service.py +++ b/nova/image/service.py @@ -45,13 +45,9 @@ class BaseImageService(object): Returns a sequence of mappings of id and name information about images. - :retval a sequence of mappings with the following signature: - - [ - {'id': opaque id of image, - 'name': name of image - }, ... - ] + :rtype: array + :retval: a sequence of mappings with the following signature + {'id': opaque id of image, 'name': name of image} """ raise NotImplementedError @@ -60,19 +56,17 @@ class BaseImageService(object): """ Returns a sequence of mappings of detailed information about images. - :retval a sequence of mappings with the following signature: - - [ - {'id': opaque id of image, - 'name': name of image, - 'created_at': creation timestamp, - 'updated_at': modification timestamp, - 'deleted_at': deletion timestamp or None, - 'deleted': boolean indicating if image has been deleted, - 'status': string description of image status, - 'is_public': boolean indicating if image is public - }, ... - ] + :rtype: array + :retval: a sequence of mappings with the following signature + {'id': opaque id of image, + 'name': name of image, + 'created_at': creation timestamp, + 'updated_at': modification timestamp, + 'deleted_at': deletion timestamp or None, + 'deleted': boolean indicating if image has been deleted, + 'status': string description of image status, + 'is_public': boolean indicating if image is public + } If the service does not implement a method that provides a detailed set of information about images, then the method should raise -- cgit From a6f867eb72599bb0bb1fe43f99d8c4b07972e5dd Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Tue, 2 Nov 2010 15:16:41 -0700 Subject: Documentation on Services, Managers, and Drivers --- doc/source/services.rst | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/doc/source/services.rst b/doc/source/services.rst index 607f5974b..517a51901 100644 --- a/doc/source/services.rst +++ b/doc/source/services.rst @@ -20,13 +20,53 @@ Services Managers and Drivers ============================= -Describe division of responsibilities for each component. +The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier. + +Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver. Service ------- +A service is a very thin wrapper around a Manager object. It exposes the manager's public methods to other components of the system via rpc. It will report state periodically to the database and is responsible for initiating any periodic tasts that need to be executed on a given host. + +The :mod:`service` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.service + :members: + :undoc-members: + :show-inheritance: + Manager ------- +Managers are responsible for a certain aspect of the sytem. It is a logical grouping of code relating to a portion of the system. In general other components should be using the manager to make changes to the components that it is responsible for. + +For example, other components that need to deal with volumes in some way, should do so by calling methods on the VolumeManager instead of directly changing fields in the database. This allows us to keep all of the code relating to volumes in the same place. + +We have adopted a basic strategy of Smart managers and dumb data, which means rather than attaching methods to data objects, components should call manager methods that act on the data. + +Methods on managers that can be executed locally should be called directly. If a particular method must execute on a remote host, this should be done via rpc to the service that wraps the manager + +Managers should be responsible for most of the db access, and non-implementation specific data. Anything implementation specific that can't be generalized should be done by the Driver. + +In general, we prefer to have one manager with multiple drivers for different implementations, but sometimes it makes sense to have multiple managers. You can think of it this way: Abstract different overall strategies at the manager level(FlatNetwork vs VlanNetwork), and different implementations at the driver level(LinuxNetDriver vs CiscoNetDriver). + +Managers will often provide methods for initial setup of a host or periodic tasksto a wrapping service. + +The :mod:`manager` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.manager + :members: + :undoc-members: + :show-inheritance: + Driver ------ + +A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver. + +Drivers should minimize touching the database, although it is currently acceptable for implementation specific data. This may be reconsidered at some point. + +It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement. -- cgit From 7898451cd91821e01451ff8f65de1169eeef8ae2 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Tue, 2 Nov 2010 16:49:34 -0700 Subject: removed some old instructions and updated concepts --- doc/source/concepts.and.introduction.rst | 18 ++++--------- doc/source/getting.started.rst | 44 +++++--------------------------- 2 files changed, 11 insertions(+), 51 deletions(-) diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index d2ab6f14b..d73447ba9 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -71,19 +71,13 @@ Concept: Storage Volumes ~~~~~~~ -A 'volume' is a detachable block storage device. You can think of it as a usb hard drive. It can only be attached to one instance at a time, and it behaves -Ephemeral -~~~~~~~~~ -:: - - TODO(vish): document +A 'volume' is a detachable block storage device. You can think of it as a usb hard drive. It can only be attached to one instance at a time, so it does not work like a SAN. If you wish to expose the same volume to multiple instances, you will have to use an NFS or SAMBA share from an existing instance. -Swift -~~~~~ -:: +Local Storage +~~~~~~~~~~~~~ - TODO(vish): document +Every instance larger than m1.tiny starts with some local storage (up to 160GB for m1.xlarge). This storage is currently the second partition on the root drive. Concept: Quotas --------------- @@ -308,9 +302,7 @@ Security groups Concept: Certificate Authority ------------------------------ -Per-project CA -* Images -* VPNs +Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns ` and decrypting bundled images. Concept: Images diff --git a/doc/source/getting.started.rst b/doc/source/getting.started.rst index 2df4a45ea..70f26038f 100644 --- a/doc/source/getting.started.rst +++ b/doc/source/getting.started.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,7 +18,7 @@ Getting Started with Nova ========================= -This code base is continually changing so dependencies also change. +This code base is continually changing so dependencies also change. Dependencies ------------ @@ -30,7 +30,7 @@ Related servers we rely on Optional servers * OpenLDAP: By default, the auth server uses the RDBMS-backed datastore by setting FLAGS.auth_driver to 'nova.auth.dbdriver.DbDriver'. But OpenLDAP (or LDAP) could be configured. -* ReDIS: By default, this is not enabled as the auth driver. +* ReDIS: By default, this is not enabled as the auth driver. Python libraries we don't vendor @@ -62,49 +62,17 @@ Configuration These instructions are incomplete, but we are actively updating the `OpenStack wiki `_ with more configuration information. -On the cloud controller - -* Add yourself to the libvirtd group, log out, and log back in -* Fix hardcoded ec2 metadata/userdata uri ($IP is the IP of the cloud), and masqurade all traffic from launched instances - -:: - - iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $IP:8773 - iptables --table nat --append POSTROUTING --out-interface $PUBLICIFACE -j MASQUERADE - - -* Configure NginX proxy (/etc/nginx/sites-enabled/default) - -:: - - server { - listen 3333 default; - server-name localhost; - client_max_body_size 10m; - - access_log /var/log/nginx/localhost.access.log; - - location ~ /_images/.+ { - root NOVA_PATH/images; - rewrite ^/_images/(.*)$ /$1 break; - } - - location / { - proxy_pass http://localhost:3334/; - } - } - On the volume node -* Create a filesystem (you can use an actual disk if you have one spare, default is /dev/sdb) +* Create a volume group (you can use an actual disk for the volume group as well) :: # This creates a 1GB file to create volumes out of dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10 losetup --show -f MY_FILE_PATH - # replace loop0 below with whatever losetup returns - echo "--storage_dev=/dev/loop0" >> NOVA_PATH/bin/nova.conf + # replace /dev/loop0 below with whatever losetup returns + vgcreate nova-volumes /dev/loop0 Running --------- -- cgit From 583d1b1c4d039f1f9751c8a2cc0cf59bb77551e0 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Tue, 2 Nov 2010 20:31:17 -0400 Subject: Fixes after trunk merge. --- doc/source/nova.rst | 24 ------------------------ nova/tests/fake_flags.py | 1 + 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/doc/source/nova.rst b/doc/source/nova.rst index 17d32c010..3963992ae 100644 --- a/doc/source/nova.rst +++ b/doc/source/nova.rst @@ -34,14 +34,6 @@ The :mod:`context` Module :undoc-members: :show-inheritance: -The :mod:`crypto` Module ------------------------- - -.. automodule:: nova.crypto - :members: - :undoc-members: - :show-inheritance: - The :mod:`exception` Module --------------------------- @@ -58,14 +50,6 @@ The :mod:`flags` Module :undoc-members: :show-inheritance: -The :mod:`manager` Module -------------------------- - -.. automodule:: nova.manager - :members: - :undoc-members: - :show-inheritance: - The :mod:`process` Module ------------------------- @@ -98,14 +82,6 @@ The :mod:`server` Module :undoc-members: :show-inheritance: -The :mod:`service` Module -------------------------- - -.. automodule:: nova.service - :members: - :undoc-members: - :show-inheritance: - The :mod:`test` Module ---------------------- diff --git a/nova/tests/fake_flags.py b/nova/tests/fake_flags.py index 4bbef8832..bc377f0da 100644 --- a/nova/tests/fake_flags.py +++ b/nova/tests/fake_flags.py @@ -24,6 +24,7 @@ flags.DECLARE('volume_driver', 'nova.volume.manager') FLAGS.volume_driver = 'nova.volume.driver.FakeAOEDriver' FLAGS.connection_type = 'fake' FLAGS.fake_rabbit = True +flags.DECLARE('auth_driver', 'nova.auth.manager') FLAGS.auth_driver = 'nova.auth.dbdriver.DbDriver' flags.DECLARE('network_size', 'nova.network.manager') flags.DECLARE('num_networks', 'nova.network.manager') -- cgit From ea79ca7e8855cf130cadb63fc42780c90a51fb15 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Tue, 2 Nov 2010 17:36:03 -0700 Subject: update of the architecture and fix some links --- doc/source/administration.guide.rst | 3 +-- doc/source/architecture.rst | 46 +++++++++++++++++++------------------ doc/source/development.guide.rst | 8 ++++--- doc/source/getting.started.rst | 38 ++++++++++++++++++++---------- 4 files changed, 56 insertions(+), 39 deletions(-) diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst index 789e97381..8c36d3d44 100644 --- a/doc/source/administration.guide.rst +++ b/doc/source/administration.guide.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -30,6 +30,5 @@ Contents quickstart getting.started multi.node.install - services flags monitoring diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index eba6cbfb8..1e23e1361 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -15,36 +15,38 @@ License for the specific language governing permissions and limitations under the License. -nova System Architecture +Nova System Architecture ======================== Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received. -In order to achieve shared-nothing with multiple copies of the same component (especially when the component is an API server that needs to reply with state information in a timely fashion), we need to keep all of our system state in a distributed data system. Updates to system state are written into this system, using atomic transactions when necessary. Requests for state are read out of this system. In limited cases, these read calls are memoized within controllers for short periods of time. (Such a limited case would be, for instance, the current list of system users.) - +Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system. Components ---------- -Below you will find a helpful explanation. +Below you will find a helpful explanation of the different components. :: - [ Auth Manager ] ---- ( LDAP ) - | - | - | - | / [ Storage ] - ( ATAoE/iSCSI ) - [ Web Dashboard ] -> [ nova-api ] < AMQP > - - | \ [ Nodes ] - ( libvirt/kvm ) - < HTTP > - | - [ nova-objectstore ] - - -* API: receives http requests from boto, converts commands to/from API format, and sending requests to cloud controller -* Cloud Controller: global state of system, talks to ldap, s3, and node/storage workers through a queue -* Nodes: worker that spawns instances -* S3: tornado based http/s3 server -* User Manager: create/manage users, which are stored in ldap -* Network Controller: allocate and deallocate IPs and VLANs + /- ( LDAP ) + [ Auth Manager ] --- + | \- ( DB ) + | + | [ scheduler ] - [ volume ] - ( ATAoE/iSCSI ) + | / + [ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan ) + | \ + < HTTP > [ scheduler ] - [ compute ] - ( libvirt/xen ) + | | + [ objectstore ] < - retrieves images + +* DB: sql database for data storage. Used by all components (LINKS NOT SHOWN) +* Web Dashboard: potential external component that talks to the api +* api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore) +* Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system. +* objectstore: twisted http server that replicates s3 api and allows storage and retrieval of images +* scheduler: decides which host gets each vm and volume +* volume: manages dynamically attachable block devices. +* network: manages ip forwarding, bridges, and vlans +* compute: manages communication with hypervisor and virtual machines. diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index 261059d9b..45ebe2f10 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -1,6 +1,6 @@ .. Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -31,11 +31,13 @@ Contents .. toctree:: :maxdepth: 1 + architecture + services database volume compute - network - auth + network + auth api scheduler fakes diff --git a/doc/source/getting.started.rst b/doc/source/getting.started.rst index 70f26038f..a0148e4b6 100644 --- a/doc/source/getting.started.rst +++ b/doc/source/getting.started.rst @@ -29,24 +29,37 @@ Related servers we rely on Optional servers -* OpenLDAP: By default, the auth server uses the RDBMS-backed datastore by setting FLAGS.auth_driver to 'nova.auth.dbdriver.DbDriver'. But OpenLDAP (or LDAP) could be configured. -* ReDIS: By default, this is not enabled as the auth driver. +* OpenLDAP: By default, the auth server uses the RDBMS-backed datastore by setting FLAGS.auth_driver to 'nova.auth.dbdriver.DbDriver'. But OpenLDAP (or LDAP) could be configured by specifying 'nova.auth.ldapdriver.LdapDriver'. There is a script in the sources(nova/auth/slap.sh) to install a very basic openldap server on ubuntu. +* ReDIS: There is a fake ldap driver that backends to redis. This was created for testing ldap implementation on systems that don't have an easy means to install ldap. -Python libraries we don't vendor +Python libraries that we use (from pip-requires): + +.. literalinclude:: ../../tools/pip-requires + +Other libraries: -* M2Crypto: python library interface for openssl -* curl * XenAPI: Needed only for Xen Cloud Platform or XenServer support. Available from http://wiki.xensource.com/xenwiki/XCP_SDK or http://community.citrix.com/cdn/xs/sdks. -Vendored python libaries (don't require any installation) +External unix tools that are required: + +* iptables +* ebtables +* gawk +* curl +* kvm +* libvirt +* dnsmasq +* vlan +* open-iscsi and iscsitarget (if you use iscsi volumes) +* aoetools and vblade-persist (if you use aoe-volumes) + +Nova uses cutting-edge versions of many packages. There are ubuntu packages in the nova-core ppa. You can use add this ppa to your sources list on an ubuntu machine with the following commands:: -* Twisted: just for the twisted.internet.defer package -* Tornado: scalable non blocking web server for api requests -* boto: python api for aws api -* IPy: library for managing ip addresses + sudo apt-get install -y python-software-properties + sudo add-apt-repository ppa:nova-core/ppa Recommended ------------------ +----------- * euca2ools: python implementation of aws ec2-tools and ami tools * build tornado to use C module for evented section @@ -55,7 +68,7 @@ Recommended Installation -------------- - Due to many changes it's best to rely on the `OpenStack wiki `_ for installation instructions. +Due to many changes it's best to rely on the `OpenStack wiki `_ for installation instructions. Configuration --------------- @@ -88,3 +101,4 @@ Launch nova components * nova-compute * nova-objectstore * nova-volume +* nova-scheduler -- cgit From 1119f7e0eeffc0bc2f918b0c5fb8eb87cd3e3784 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Tue, 2 Nov 2010 17:37:11 -0700 Subject: more descriptive title for cloudpipe --- doc/source/cloudpipe.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/cloudpipe.rst b/doc/source/cloudpipe.rst index 952a75351..d632a40e6 100644 --- a/doc/source/cloudpipe.rst +++ b/doc/source/cloudpipe.rst @@ -18,8 +18,8 @@ .. _cloudpipe: -Cloudpipe -========= +Cloudpipe -- Per Project Vpns +============================= Cloudpipe is a method for connecting end users to their project insnances in vlan mode. -- cgit From 2cbef8ffd80546f1dcd850322621b04395591d69 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Wed, 3 Nov 2010 14:30:13 -0400 Subject: Doc cleanups. --- doc/source/auth.rst | 21 ++++--- doc/source/compute.rst | 6 -- doc/source/development.guide.rst | 10 +++- doc/source/network.rst | 8 +-- doc/source/nova.rst | 16 ------ nova/network/manager.py | 116 +++++++++++++++++++++++---------------- 6 files changed, 93 insertions(+), 84 deletions(-) diff --git a/doc/source/auth.rst b/doc/source/auth.rst index 61db39ec3..77d97f68b 100644 --- a/doc/source/auth.rst +++ b/doc/source/auth.rst @@ -20,12 +20,13 @@ Authentication and Authorization Programming Guide ================================================== -:: - - TOOD(todd): * Authorizztion - * RBAC - * Quotas +The :mod:`quota` Module +----------------------- +.. automodule:: nova.quota + :members: + :undoc-members: + :show-inheritance: Auth Manager ------------ @@ -68,7 +69,6 @@ The :mod:`signer` Module :undoc-members: :show-inheritance: - Related Tests ------------- @@ -81,13 +81,20 @@ The :mod:`auth_unittest` Module :show-inheritance: The :mod:`access_unittest` Module ---------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: nova.tests.access_unittest :members: :undoc-members: :show-inheritance: +The :mod:`quota_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.quota_unittest + :members: + :undoc-members: + :show-inheritance: legacy docs ----------- diff --git a/doc/source/compute.rst b/doc/source/compute.rst index ff6aeab92..e4c6c6ae7 100644 --- a/doc/source/compute.rst +++ b/doc/source/compute.rst @@ -21,12 +21,6 @@ Virtualization Programming Guide This page contains the Compute Package documentation. - -:: - - TODO(todd): * document instance_types and power_states - - Manager ------- diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst index e4af2da56..704cbe399 100644 --- a/doc/source/development.guide.rst +++ b/doc/source/development.guide.rst @@ -20,9 +20,14 @@ Nova Development Guide Nova is written in python. -:: +Prerequisites +------------- +.. toctree:: + :maxdepth: 1 - TODO(todd): * Building packages + concepts.and.introduction + architecture + development.environment Contents @@ -31,7 +36,6 @@ Contents .. toctree:: :maxdepth: 1 - architecture services database volume diff --git a/doc/source/network.rst b/doc/source/network.rst index cbff22d3f..9426ece82 100644 --- a/doc/source/network.rst +++ b/doc/source/network.rst @@ -20,12 +20,8 @@ Networking Programming Guide :: - TODO(todd): - * document how managers work - * document backend (linux-net) - * document hardware specific commands - * pep 257 - * document flags + TODO(todd): * document hardware specific commands (maybe in admin guide?) + * document a map between flags and managers/backends The :mod:`Manager` module ------------------------- diff --git a/doc/source/nova.rst b/doc/source/nova.rst index 3963992ae..58125dc80 100644 --- a/doc/source/nova.rst +++ b/doc/source/nova.rst @@ -58,14 +58,6 @@ The :mod:`process` Module :undoc-members: :show-inheritance: -The :mod:`quota` Module ------------------------ - -.. automodule:: nova.quota - :members: - :undoc-members: - :show-inheritance: - The :mod:`rpc` Module --------------------- @@ -157,14 +149,6 @@ The :mod:`process_unittest` Module :undoc-members: :show-inheritance: -The :mod:`quota_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.quota_unittest - :members: - :undoc-members: - :show-inheritance: - The :mod:`real_flags` Module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/nova/network/manager.py b/nova/network/manager.py index 8a20cb491..b033bb0a4 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -17,7 +17,30 @@ # under the License. """ -Network Hosts are responsible for allocating ips and setting up network +Network Hosts are responsible for allocating ips and setting up network. + +There are multiple backend drivers that handle specific types of networking +topologies. All of the network commands are issued to a subclass of +:class:`NetworkManager`. + +**Related Flags** + +:network_driver: Driver to use for network creation +:flat_network_bridge: Bridge device for simple network instances +:flat_network_dns: Dns for simple network +:flat_network_dhcp_start: Dhcp start for FlatDhcp +:vlan_start: First VLAN for private networks +:vpn_ip: Public IP for the cloudpipe VPN servers +:vpn_start: First Vpn port for private networks +:cnt_vpn_clients: Number of addresses reserved for vpn clients +:network_size: Number of addresses in each private subnet +:floating_range: Floating IP address block +:fixed_range: Fixed IP address block +:date_dhcp_on_disassociate: Whether to update dhcp when fixed_ip + is disassociated +:fixed_ip_disassociate_timeout: Seconds after which a deallocated ip + is disassociated + """ import datetime @@ -63,15 +86,16 @@ flags.DEFINE_integer('fixed_ip_disassociate_timeout', 600, class AddressAlreadyAllocated(exception.Error): - """Address was already allocated""" + """Address was already allocated.""" pass class NetworkManager(manager.Manager): - """Implements common network manager functionality + """Implements common network manager functionality. - This class must be subclassed. + This class must be subclassed to support specific topologies. """ + def __init__(self, network_driver=None, *args, **kwargs): if not network_driver: network_driver = FLAGS.network_driver @@ -86,7 +110,7 @@ class NetworkManager(manager.Manager): self._on_set_network_host(ctxt, network['id']) def set_network_host(self, context, network_id): - """Safely sets the host of the network""" + """Safely sets the host of the network.""" logging.debug("setting network host") host = self.db.network_set_host(context, network_id, @@ -95,34 +119,34 @@ class NetworkManager(manager.Manager): return host def allocate_fixed_ip(self, context, instance_id, *args, **kwargs): - """Gets a fixed ip from the pool""" + """Gets a fixed ip from the pool.""" raise NotImplementedError() def deallocate_fixed_ip(self, context, address, *args, **kwargs): - """Returns a fixed ip to the pool""" + """Returns a fixed ip to the pool.""" raise NotImplementedError() def setup_fixed_ip(self, context, address): - """Sets up rules for fixed ip""" + """Sets up rules for fixed ip.""" raise NotImplementedError() def _on_set_network_host(self, context, network_id): - """Called when this host becomes the host for a network""" + """Called when this host becomes the host for a network.""" raise NotImplementedError() def setup_compute_network(self, context, instance_id): - """Sets up matching network for compute hosts""" + """Sets up matching network for compute hosts.""" raise NotImplementedError() def allocate_floating_ip(self, context, project_id): - """Gets an floating ip from the pool""" + """Gets an floating ip from the pool.""" # TODO(vish): add floating ips through manage command return self.db.floating_ip_allocate_address(context, self.host, project_id) def associate_floating_ip(self, context, floating_address, fixed_address): - """Associates an floating ip to a fixed ip""" + """Associates an floating ip to a fixed ip.""" self.db.floating_ip_fixed_ip_associate(context, floating_address, fixed_address) @@ -130,18 +154,18 @@ class NetworkManager(manager.Manager): self.driver.ensure_floating_forward(floating_address, fixed_address) def disassociate_floating_ip(self, context, floating_address): - """Disassociates a floating ip""" + """Disassociates a floating ip.""" fixed_address = self.db.floating_ip_disassociate(context, floating_address) self.driver.unbind_floating_ip(floating_address) self.driver.remove_floating_forward(floating_address, fixed_address) def deallocate_floating_ip(self, context, floating_address): - """Returns an floating ip to the pool""" + """Returns an floating ip to the pool.""" self.db.floating_ip_deallocate(context, floating_address) def lease_fixed_ip(self, context, mac, address): - """Called by dhcp-bridge when ip is leased""" + """Called by dhcp-bridge when ip is leased.""" logging.debug("Leasing IP %s", address) fixed_ip_ref = self.db.fixed_ip_get_by_address(context, address) instance_ref = fixed_ip_ref['instance'] @@ -158,7 +182,7 @@ class NetworkManager(manager.Manager): logging.warn("IP %s leased that was already deallocated", address) def release_fixed_ip(self, context, mac, address): - """Called by dhcp-bridge when ip is released""" + """Called by dhcp-bridge when ip is released.""" logging.debug("Releasing IP %s", address) fixed_ip_ref = self.db.fixed_ip_get_by_address(context, address) instance_ref = fixed_ip_ref['instance'] @@ -183,26 +207,26 @@ class NetworkManager(manager.Manager): self.driver.update_dhcp(context, network_ref['id']) def get_network(self, context): - """Get the network for the current context""" + """Get the network for the current context.""" raise NotImplementedError() def create_networks(self, context, num_networks, network_size, *args, **kwargs): - """Create networks based on parameters""" + """Create networks based on parameters.""" raise NotImplementedError() @property def _bottom_reserved_ips(self): # pylint: disable-msg=R0201 - """Number of reserved ips at the bottom of the range""" + """Number of reserved ips at the bottom of the range.""" return 2 # network, gateway @property def _top_reserved_ips(self): # pylint: disable-msg=R0201 - """Number of reserved ips at the top of the range""" + """Number of reserved ips at the top of the range.""" return 1 # broadcast def _create_fixed_ips(self, context, network_id): - """Create all fixed ips for network""" + """Create all fixed ips for network.""" network_ref = self.db.network_get(context, network_id) # NOTE(vish): Should these be properties of the network as opposed # to properties of the manager class? @@ -222,10 +246,10 @@ class NetworkManager(manager.Manager): class FlatManager(NetworkManager): - """Basic network where no vlans are used""" + """Basic network where no vlans are used.""" def allocate_fixed_ip(self, context, instance_id, *args, **kwargs): - """Gets a fixed ip from the pool""" + """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 @@ -239,21 +263,21 @@ class FlatManager(NetworkManager): return address def deallocate_fixed_ip(self, context, address, *args, **kwargs): - """Returns a fixed ip to the pool""" + """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""" + """Network is created manually.""" pass def setup_fixed_ip(self, context, address): - """Currently no setup""" + """Currently no setup.""" pass def create_networks(self, context, cidr, num_networks, network_size, *args, **kwargs): - """Create networks based on parameters""" + """Create networks based on parameters.""" fixed_net = IPy.IP(cidr) for index in range(num_networks): start = index * network_size @@ -271,7 +295,7 @@ class FlatManager(NetworkManager): self._create_fixed_ips(context, network_ref['id']) def get_network(self, context): - """Get the network for the current context""" + """Get the network for the current context.""" # NOTE(vish): To support mutilple network hosts, This could randomly # select from multiple networks instead of just # returning the one. It could also potentially be done @@ -280,7 +304,7 @@ class FlatManager(NetworkManager): FLAGS.flat_network_bridge) def _on_set_network_host(self, context, network_id): - """Called when this host becomes the host for a network""" + """Called when this host becomes the host for a network.""" net = {} net['injected'] = True net['bridge'] = FLAGS.flat_network_bridge @@ -289,19 +313,19 @@ class FlatManager(NetworkManager): class FlatDHCPManager(NetworkManager): - """Flat networking with dhcp""" + """Flat networking with dhcp.""" def setup_fixed_ip(self, context, address): - """Setup dhcp for this network""" + """Setup dhcp for this network.""" network_ref = db.fixed_ip_get_by_address(context, address) self.driver.update_dhcp(context, network_ref['id']) def deallocate_fixed_ip(self, context, address, *args, **kwargs): - """Returns a fixed ip to the pool""" + """Returns a fixed ip to the pool.""" self.db.fixed_ip_update(context, address, {'allocated': False}) def _on_set_network_host(self, context, network_id): - """Called when this host becomes the host for a project""" + """Called when this host becomes the host for a project.""" super(FlatDHCPManager, self)._on_set_network_host(context, network_id) network_ref = self.db.network_get(context, network_id) self.db.network_update(context, @@ -313,11 +337,11 @@ class FlatDHCPManager(NetworkManager): class VlanManager(NetworkManager): - """Vlan network with dhcp""" + """Vlan network with dhcp.""" @defer.inlineCallbacks def periodic_tasks(self, context=None): - """Tasks to be run at a periodic interval""" + """Tasks to be run at a periodic interval.""" yield super(VlanManager, self).periodic_tasks(context) now = datetime.datetime.utcnow() timeout = FLAGS.fixed_ip_disassociate_timeout @@ -330,13 +354,13 @@ class VlanManager(NetworkManager): def init_host(self): """Do any initialization that needs to be run if this is a - standalone service. + standalone service. """ super(VlanManager, self).init_host() self.driver.init_host() def allocate_fixed_ip(self, context, instance_id, *args, **kwargs): - """Gets a fixed ip from the pool""" + """Gets a fixed ip from the pool.""" # TODO(vish): This should probably be getting project_id from # the instance, but it is another trip to the db. # Perhaps this method should take an instance_ref. @@ -356,11 +380,11 @@ class VlanManager(NetworkManager): return address def deallocate_fixed_ip(self, context, address, *args, **kwargs): - """Returns a fixed ip to the pool""" + """Returns a fixed ip to the pool.""" self.db.fixed_ip_update(context, address, {'allocated': False}) def setup_fixed_ip(self, context, address): - """Sets forwarding rules and dhcp for fixed ip""" + """Sets forwarding rules and dhcp for fixed ip.""" fixed_ip_ref = self.db.fixed_ip_get_by_address(context, address) network_ref = self.db.fixed_ip_get_network(context, address) if self.db.instance_is_vpn(context, fixed_ip_ref['instance_id']): @@ -370,19 +394,19 @@ class VlanManager(NetworkManager): self.driver.update_dhcp(context, network_ref['id']) def setup_compute_network(self, context, instance_id): - """Sets up matching network for compute hosts""" + """Sets up matching network for compute hosts.""" network_ref = db.network_get_by_instance(context, instance_id) self.driver.ensure_vlan_bridge(network_ref['vlan'], network_ref['bridge']) def restart_nets(self): - """Ensure the network for each user is enabled""" + """Ensure the network for each user is enabled.""" # TODO(vish): Implement this pass def create_networks(self, context, cidr, num_networks, network_size, vlan_start, vpn_start): - """Create networks based on parameters""" + """Create networks based on parameters.""" fixed_net = IPy.IP(cidr) for index in range(num_networks): vlan = vlan_start + index @@ -407,12 +431,12 @@ class VlanManager(NetworkManager): self._create_fixed_ips(context, network_ref['id']) def get_network(self, context): - """Get the network for the current context""" + """Get the network for the current context.""" return self.db.project_get_network(context.elevated(), context.project_id) def _on_set_network_host(self, context, network_id): - """Called when this host becomes the host for a network""" + """Called when this host becomes the host for a network.""" network_ref = self.db.network_get(context, network_id) net = {} net['vpn_public_address'] = FLAGS.vpn_ip @@ -424,11 +448,11 @@ class VlanManager(NetworkManager): @property def _bottom_reserved_ips(self): - """Number of reserved ips at the bottom of the range""" + """Number of reserved ips at the bottom of the range.""" return super(VlanManager, self)._bottom_reserved_ips + 1 # vpn server @property def _top_reserved_ips(self): - """Number of reserved ips at the top of the range""" + """Number of reserved ips at the top of the range.""" parent_reserved = super(VlanManager, self)._top_reserved_ips return parent_reserved + FLAGS.cnt_vpn_clients -- cgit From 60c82177da9c4ebbb89e5534959d0d5a52bfa49a Mon Sep 17 00:00:00 2001 From: Eric Day Date: Wed, 3 Nov 2010 12:38:15 -0700 Subject: Fix for bug#613264, allowing hosts to be specified for nova-api and objectstore listeners. --- bin/nova-api | 6 ++++-- nova/objectstore/handler.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/nova-api b/bin/nova-api index a9002ae2d..a9c53dbcd 100755 --- a/bin/nova-api +++ b/bin/nova-api @@ -38,15 +38,17 @@ from nova import server FLAGS = flags.FLAGS flags.DEFINE_integer('osapi_port', 8774, 'OpenStack API port') +flags.DEFINE_string('osapi_host', '0.0.0.0', 'OpenStack API host') flags.DEFINE_integer('ec2api_port', 8773, 'EC2 API port') +flags.DEFINE_string('ec2api_host', '0.0.0.0', 'EC2 API host') def main(_args): from nova import api from nova import wsgi server = wsgi.Server() - server.start(api.API('os'), FLAGS.osapi_port) - server.start(api.API('ec2'), FLAGS.ec2api_port) + server.start(api.API('os'), FLAGS.osapi_port, host=FLAGS.osapi_host) + server.start(api.API('ec2'), FLAGS.ec2api_port, host=FLAGS.ec2api_host) server.wait() diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py index b26906001..aaf207db4 100644 --- a/nova/objectstore/handler.py +++ b/nova/objectstore/handler.py @@ -438,6 +438,7 @@ def get_application(): # Disabled because of lack of proper introspection in Twisted # or possibly different versions of twisted? # pylint: disable-msg=E1101 - objectStoreService = internet.TCPServer(FLAGS.s3_port, factory) + objectStoreService = internet.TCPServer(FLAGS.s3_port, factory, + interface=FLAGS.s3_host) objectStoreService.setServiceParent(application) return application -- cgit From d65c35bcadc6cc4e4d1fc61502d43fd001ce2f0e Mon Sep 17 00:00:00 2001 From: Eric Day Date: Wed, 3 Nov 2010 13:13:59 -0700 Subject: Added an extra argument to the objectstore listen to separate out the listening host from the connecting host. --- nova/objectstore/handler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py index aaf207db4..c8920b00c 100644 --- a/nova/objectstore/handler.py +++ b/nova/objectstore/handler.py @@ -61,6 +61,7 @@ from nova.objectstore import image FLAGS = flags.FLAGS +flags.DEFINE_string('s3_listen_host', '', 'Host to listen on.') def render_xml(request, value): @@ -439,6 +440,6 @@ def get_application(): # or possibly different versions of twisted? # pylint: disable-msg=E1101 objectStoreService = internet.TCPServer(FLAGS.s3_port, factory, - interface=FLAGS.s3_host) + interface=FLAGS.s3_listen_host) objectStoreService.setServiceParent(application) return application -- cgit From 80a6dd72ef48ec4c7dc72b39073800bb7fe1e70a Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 3 Nov 2010 14:04:36 -0700 Subject: prettier theme --- doc/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 27bc4ea6c..3f6ca2313 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -99,7 +99,7 @@ modindex_common_prefix = ['nova.'] # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'default' +html_theme = 'sphinxdoc' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the -- cgit From 817690b03f2e498fb08eba3ca455719229f24640 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 3 Nov 2010 15:06:00 -0700 Subject: pep8 whitespace and line length fixes --- nova/adminclient.py | 4 ++-- nova/compute/manager.py | 3 ++- nova/db/api.py | 4 ++-- nova/db/sqlalchemy/models.py | 4 ++-- nova/volume/driver.py | 4 ++-- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/nova/adminclient.py b/nova/adminclient.py index 0227cddd7..af55197fc 100644 --- a/nova/adminclient.py +++ b/nova/adminclient.py @@ -273,10 +273,10 @@ class NovaAdminClient(object): def get_user_roles(self, user, project=None): """Returns a list of roles for the given user. - + Omitting project will return any global roles that the user has. Specifying project will return only project specific roles. - + """ params = {'User': user} if project: diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 3aed1e5a5..890d79fba 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -22,7 +22,8 @@ Handles all processes relating to instances (guest vms). The :py:class:`ComputeManager` class is a :py:class:`nova.manager.Manager` that handles RPC calls relating to creating instances. It is responsible for building a disk image, launching it via the underlying virtualization driver, -responding to calls to check it state, attaching persistent as well as termination. +responding to calls to check it state, attaching persistent as well as +termination. **Related Flags** diff --git a/nova/db/api.py b/nova/db/api.py index 6f1043d8f..8f9dc2443 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -395,7 +395,7 @@ def network_create_safe(context, values): The network is only returned if the create succeeds. If the create violates constraints because the network already exists, no exception is raised. - + """ return IMPL.network_create_safe(context, values) @@ -499,7 +499,7 @@ def export_device_create_safe(context, values): The device is not returned. If the create violates the unique constraints because the shelf_id and blade_id already exist, no exception is raised. - + """ return IMPL.export_device_create_safe(context, values) diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index bc9a7480e..01b5cf350 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -411,10 +411,10 @@ class Network(BASE, NovaBase): class AuthToken(BASE, NovaBase): """Represents an authorization token for all API transactions. - + Fields are a string representing the actual token and a user id for mapping to the actual user - + """ __tablename__ = 'auth_tokens' token_hash = Column(String(255), primary_key=True) diff --git a/nova/volume/driver.py b/nova/volume/driver.py index 89e5c8d57..156aad2a0 100644 --- a/nova/volume/driver.py +++ b/nova/volume/driver.py @@ -114,7 +114,7 @@ class VolumeDriver(object): escaped_name)) def ensure_export(self, context, volume): - """Safely and synchronously recreates an export for a logical volume.""" + """Synchronously recreates an export for a logical volume.""" raise NotImplementedError() @defer.inlineCallbacks @@ -228,7 +228,7 @@ class ISCSIDriver(VolumeDriver): """Executes commands relating to ISCSI volumes.""" def ensure_export(self, context, volume): - """Safely and synchronously recreates an export for a logical volume.""" + """Synchronously recreates an export for a logical volume.""" iscsi_target = self.db.volume_get_iscsi_target_num(context, volume['id']) iscsi_name = "%s%s" % (FLAGS.iscsi_target_prefix, volume['name']) -- cgit From 6b8ee54df1a77c46b692cf43cc73009684cc9033 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 00:02:56 -0400 Subject: have "contents" look the same as other headings. --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 261919629..3c05d721d 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -36,7 +36,7 @@ be found on the `OpenStack wiki`_. Contents --------- +======== .. toctree:: :maxdepth: 1 -- cgit From 8ff07424548ad4d25b1653351d0bffaac7bc0642 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 02:06:10 -0400 Subject: Cleanup nova-manage section. --- doc/source/concepts.and.introduction.rst | 117 +----------------- doc/source/nova.manage.rst | 200 +++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+), 112 deletions(-) create mode 100644 doc/source/nova.manage.rst diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index d73447ba9..205529812 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -35,11 +35,9 @@ focues on describing how Nova's implementation of those concepts is achieved. This page outlines concepts that you will need to understand as a user or administrator of an OpenStack installation. Each section links to more more -detailed information in the `Administration Guide`_, but you'll probably want -to read this section straight-through before tackling the specifics presented -in the administration guide. - -.. _`Administration Guide`: administration.guide.html +detailed information in the :doc:`administration.guide`, +but you'll probably want to read this section straight-through before tackling +the specifics presented in the administration guide. Concept: Users and Projects @@ -142,117 +140,12 @@ Nova is implemented by a number of related binaries. These binaries can run on Concept: nova-manage -------------------- -Introduction -~~~~~~~~~~~~ - The nova-manage command is used to perform many essential functions for administration and ongoing maintenance of nova, such as user creation, vpn management, and much more. -The standard pattern for executing a nova-manage command is: - -``nova-manage []`` - -For example, to obtain a list of all projects: - -``nova-manage project list`` - -User Maintenance -~~~~~~~~~~~~~~~~ - -* user admin: creates a new admin and prints exports - * arguments: name [access] [secret] -* user create: creates a new user and prints exports - * arguments: name [access] [secret] -* user delete: deletes an existing user - * arguments: name -* user exports: prints access and secrets for user in export format - * arguments: name -* user list: lists all users - * arguments: none -* user modify: update a users keys & admin flag - * arguments: accesskey secretkey admin - * leave any field blank to ignore it, admin should be 'T', 'F', or blank - -Project Maintenance -~~~~~~~~~~~~~~~~~~~ - -* project add: Adds user to project - * arguments: project user -* project create: Creates a new project - * arguments: name project_manager [description] -* project delete: Deletes an existing project - * arguments: project_id -* project environment: Exports environment variables to an sourcable file - * arguments: project_id user_id [filename='novarc] -* project list: lists all projects - * arguments: none -* project quota: Set or display quotas for project - * arguments: project_id [key] [value] -* project remove: Removes user from project - * arguments: project user -* project scrub: Deletes data associated with project - * arguments: project -* project zipfile: Exports credentials for project to a zip file - * arguments: project_id user_id [filename='nova.zip] - -User Role Management -~~~~~~~~~~~~~~~~~~~~ - -* role add: adds role to user - * if project is specified, adds project specific role - * arguments: user, role [project] -* role has: checks to see if user has role - * if project is specified, returns True if user has - the global role and the project role - * arguments: user, role [project] -* role remove: removes role from user - * if project is specified, removes project specific role - * arguments: user, role [project] - - -Nova Shell -~~~~~~~~~~ - -* shell bpython - * start a new bpython shell -* shell ipython - * start a new ipython shell -* shell python - * start a new python shell -* shell run - * ??? -* shell script: Runs the script from the specifed path with flags set properly. - * arguments: path - -VPN Management -~~~~~~~~~~~~~~ - -* vpn list: Print a listing of the VPNs for all projects. - * arguments: none -* vpn run: Start the VPN for a given project. - * arguments: project -* vpn spawn: Run all VPNs. - * arguments: none - - -Floating IP Management -~~~~~~~~~~~~~~~~~~~~~~ - -* floating create: Creates floating ips for host by range - * arguments: host ip_range -* floating delete: Deletes floating ips by range - * arguments: range -* floating list: Prints a listing of all floating ips - * arguments: none - -Network Management -~~~~~~~~~~~~~~~~~~ - -* network create: Creates fixed ips for host by range - * arguments: [fixed_range=FLAG], [num_networks=FLAG], - [network_size=FLAG], [vlan_start=FLAG], - [vpn_start=FLAG] +See :doc:`nova.manage` in the Administration Guide for more +details. Concept: Flags diff --git a/doc/source/nova.manage.rst b/doc/source/nova.manage.rst new file mode 100644 index 000000000..eeb463f52 --- /dev/null +++ b/doc/source/nova.manage.rst @@ -0,0 +1,200 @@ +.. + Copyright 2010 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. + + +nova-manage +=========== + +Introduction +~~~~~~~~~~~~ + +The nova-manage command is used to perform many essential functions for +administration and ongoing maintenance of nova, such as user creation, +vpn management, and much more. + +The standard pattern for executing a nova-manage command is: + +``nova-manage []`` + +For example, to obtain a list of all projects: + +``nova-manage project list`` + +You can run without arguments to see a list of available command categories: + +``nova-manage`` + +You can run with a category argument to see a list of all commands in that +category: + +``nova-manage user`` + +User Maintenance +~~~~~~~~~~~~~~~~ + +Users, including admins, are created through the ``user`` commands. + +* user admin: creates a new admin and prints exports + * arguments: name [access] [secret] +* user create: creates a new user and prints exports + * arguments: name [access] [secret] +* user delete: deletes an existing user + * arguments: name +* user exports: prints access and secrets for user in export format + * arguments: name +* user list: lists all users + * arguments: none +* user modify: update a users keys & admin flag + * arguments: accesskey secretkey admin + * leave any field blank to ignore it, admin should be 'T', 'F', or blank + +Project Maintenance +~~~~~~~~~~~~~~~~~~~ + +* project add: Adds user to project + * arguments: project user +* project create: Creates a new project + * arguments: name project_manager [description] +* project delete: Deletes an existing project + * arguments: project_id +* project environment: Exports environment variables to an sourcable file + * arguments: project_id user_id [filename='novarc] +* project list: lists all projects + * arguments: none +* project quota: Set or display quotas for project + * arguments: project_id [key] [value] +* project remove: Removes user from project + * arguments: project user +* project scrub: Deletes data associated with project + * arguments: project +* project zipfile: Exports credentials for project to a zip file + * arguments: project_id user_id [filename='nova.zip] + +User Role Management +~~~~~~~~~~~~~~~~~~~~ + +* role add: adds role to user + * if project is specified, adds project specific role + * arguments: user, role [project] +* role has: checks to see if user has role + * if project is specified, returns True if user has + the global role and the project role + * arguments: user, role [project] +* role remove: removes role from user + * if project is specified, removes project specific role + * arguments: user, role [project] + + +Nova Shell +~~~~~~~~~~ + +* shell bpython + * start a new bpython shell +* shell ipython + * start a new ipython shell +* shell python + * start a new python shell +* shell run + * ??? +* shell script: Runs the script from the specifed path with flags set properly. + * arguments: path + +VPN Management +~~~~~~~~~~~~~~ + +* vpn list: Print a listing of the VPNs for all projects. + * arguments: none +* vpn run: Start the VPN for a given project. + * arguments: project +* vpn spawn: Run all VPNs. + * arguments: none + + +Floating IP Management +~~~~~~~~~~~~~~~~~~~~~~ + +* floating create: Creates floating ips for host by range + * arguments: host ip_range +* floating delete: Deletes floating ips by range + * arguments: range +* floating list: Prints a listing of all floating ips + * arguments: none + +Network Management +~~~~~~~~~~~~~~~~~~ + +* network create: Creates fixed ips for host by range + * arguments: [fixed_range=FLAG], [num_networks=FLAG], + [network_size=FLAG], [vlan_start=FLAG], + [vpn_start=FLAG] + + +Concept: Flags +-------------- + +python-gflags + + +Concept: Plugins +---------------- + +* Managers/Drivers: utils.import_object from string flag +* virt/connections: conditional loading from string flag +* db: LazyPluggable via string flag +* auth_manager: utils.import_class based on string flag +* Volumes: moving to pluggable driver instead of manager +* Network: pluggable managers +* Compute: same driver used, but pluggable at connection + + +Concept: IPC/RPC +---------------- + +Rabbit! + + +Concept: Fakes +-------------- + +* auth +* ldap + + +Concept: Scheduler +------------------ + +* simple +* random + + +Concept: Security Groups +------------------------ + +Security groups + + +Concept: Certificate Authority +------------------------------ + +Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns ` and decrypting bundled images. + + +Concept: Images +--------------- + +* launching +* bundling -- cgit From d14dafebf80cfc1776be5496b44a1970167114d8 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 02:06:28 -0400 Subject: add missing file. --- doc/source/development.environment.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 doc/source/development.environment.rst diff --git a/doc/source/development.environment.rst b/doc/source/development.environment.rst new file mode 100644 index 000000000..ee19ba2bf --- /dev/null +++ b/doc/source/development.environment.rst @@ -0,0 +1,23 @@ +.. + Copyright 2010 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. + +Setting up a development environment +==================================== + +:: + + TODO(anthony) -- cgit From bbd11f550765a91af17cb200a2b857f263765918 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 14:44:22 -0400 Subject: Nova quickstart: move vish's novascript into contrib, and convert reademe.md to a quickstart.rst --- contrib/nova.sh | 161 ++++++++++++++++++++++++++++++++++++++++++++++ doc/source/quickstart.rst | 79 ++++++++++++++++++++++- 2 files changed, 238 insertions(+), 2 deletions(-) create mode 100755 contrib/nova.sh diff --git a/contrib/nova.sh b/contrib/nova.sh new file mode 100755 index 000000000..9bc36d6fb --- /dev/null +++ b/contrib/nova.sh @@ -0,0 +1,161 @@ +#!/usr/bin/env bash +DIR=`pwd` +CMD=$1 +SOURCE_BRANCH=lp:nova +if [ -n "$2" ]; then + SOURCE_BRANCH=$2 +fi +DIRNAME=nova +NOVA_DIR=$DIR/$DIRNAME +if [ -n "$3" ]; then + NOVA_DIR=$DIR/$3 +fi + +if [ ! -n "$HOST_IP" ]; then + # NOTE(vish): This will just get the first ip in the list, so if you + # have more than one eth device set up, this will fail, and + # you should explicitly set HOST_IP in your environment + HOST_IP=`ifconfig | grep -m 1 'inet addr:'| cut -d: -f2 | awk '{print $1}'` +fi +TEST=0 +USE_MYSQL=0 +MYSQL_PASS=nova +USE_LDAP=0 +LIBVIRT_TYPE=qemu + +if [ "$USE_MYSQL" == 1 ]; then + SQL_CONN=mysql://root:$MYSQL_PASS@localhost/nova +else + SQL_CONN=sqlite:///$NOVA_DIR/nova.sqlite +fi + +if [ "$USE_LDAP" == 1 ]; then + AUTH=ldapdriver.LdapDriver +else + AUTH=dbdriver.DbDriver +fi + +mkdir -p /etc/nova +cat >/etc/nova/nova-manage.conf << NOVA_CONF_EOF +--verbose +--nodaemon +--dhcpbridge_flagfile=/etc/nova/nova-manage.conf +--FAKE_subdomain=ec2 +--cc_host=$HOST_IP +--routing_source_ip=$HOST_IP +--sql_connection=$SQL_CONN +--auth_driver=nova.auth.$AUTH +--libvirt_type=$LIBVIRT_TYPE +NOVA_CONF_EOF + +if [ "$CMD" == "branch" ]; then + sudo apt-get install -y bzr + rm -rf $NOVA_DIR + bzr branch $SOURCE_BRANCH $NOVA_DIR + cd $NOVA_DIR + mkdir -p $NOVA_DIR/instances + mkdir -p $NOVA_DIR/networks +fi + +# You should only have to run this once +if [ "$CMD" == "install" ]; then + sudo apt-get install -y python-software-properties + sudo add-apt-repository ppa:nova-core/ppa + sudo apt-get update + sudo apt-get install -y dnsmasq open-iscsi kpartx kvm gawk iptables ebtables + sudo apt-get install -y user-mode-linux kvm libvirt-bin + sudo apt-get install -y screen iscsitarget euca2ools vlan curl rabbitmq-server + sudo modprobe kvm + sudo /etc/init.d/libvirt-bin restart + sudo apt-get install -y python-twisted python-sqlalchemy python-mox python-greenlet python-carrot + sudo apt-get install -y python-daemon python-eventlet python-gflags python-tornado python-ipy + sudo apt-get install -y python-libvirt python-libxml2 python-routes + if [ "$USE_MYSQL" == 1 ]; then + cat < test.pem + euca-run-instances -k test -t m1.tiny ami-tiny + euca-describe-instances + +To see output from the various workers, switch screen windows + +:: + + " + +will give you a list of running windows. + +When the instance is running, you should be able to ssh to it. + +:: + + chmod 600 test.pem + ssh -i test.pem root@10.0.0.3 + +When you exit screen + +:: + + + +nova will terminate. It may take a while for nova to finish cleaning up. If +you exit the process before it is done because there were some problems in your +build, you may have to clean up the nova processes manually. If you had any +instances running, you can attempt to kill them through the api: + +:: + + ./nova.sh terminate + +Then you can destroy the screen: + +:: + + ./nova.sh clean + +If things get particularly messed up, you might need to do some more intense +cleanup. Be careful, the following command will manually destroy all runnning +virsh instances and attempt to delete all vlans and bridges. -- cgit From 3a8dadd4d31dd564a08a9e285cc6f3318dc243b3 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 17:36:32 -0400 Subject: Getting Started Guide. --- doc/source/administration.guide.rst | 1 + doc/source/concepts.and.introduction.rst | 3 +- doc/source/getting.started.rst | 83 ++++++++++++++++++++++++++------ doc/source/index.rst | 4 +- doc/source/quickstart.rst | 8 +++ doc/source/reaching.out.rst | 28 +++++++++++ 6 files changed, 110 insertions(+), 17 deletions(-) create mode 100644 doc/source/reaching.out.rst diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst index 8c36d3d44..2d09bed71 100644 --- a/doc/source/administration.guide.rst +++ b/doc/source/administration.guide.rst @@ -30,5 +30,6 @@ Contents quickstart getting.started multi.node.install + nova.manage flags monitoring diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 205529812..5810280b4 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -144,8 +144,7 @@ The nova-manage command is used to perform many essential functions for administration and ongoing maintenance of nova, such as user creation, vpn management, and much more. -See :doc:`nova.manage` in the Administration Guide for more -details. +See doc:`nova.manage` in the Administration Guide for more details. Concept: Flags diff --git a/doc/source/getting.started.rst b/doc/source/getting.started.rst index a0148e4b6..6873c49cd 100644 --- a/doc/source/getting.started.rst +++ b/doc/source/getting.started.rst @@ -18,19 +18,31 @@ Getting Started with Nova ========================= -This code base is continually changing so dependencies also change. +This code base is continually changing, so dependencies also change. If you +encounter any problems, see the :doc:`reaching.out` page. +The `contrib/nova.sh` script should be kept up to date, and may be a good +resource to review when debugging. Dependencies ------------ Related servers we rely on -* RabbitMQ: messaging queue, used for all communication between components +* **RabbitMQ**: messaging queue, used for all communication between components Optional servers -* OpenLDAP: By default, the auth server uses the RDBMS-backed datastore by setting FLAGS.auth_driver to 'nova.auth.dbdriver.DbDriver'. But OpenLDAP (or LDAP) could be configured by specifying 'nova.auth.ldapdriver.LdapDriver'. There is a script in the sources(nova/auth/slap.sh) to install a very basic openldap server on ubuntu. -* ReDIS: There is a fake ldap driver that backends to redis. This was created for testing ldap implementation on systems that don't have an easy means to install ldap. +* **OpenLDAP**: By default, the auth server uses the RDBMS-backed datastore by + setting FLAGS.auth_driver to `nova.auth.dbdriver.DbDriver`. But OpenLDAP + (or LDAP) could be configured by specifying `nova.auth.ldapdriver.LdapDriver`. + There is a script in the sources (`nova/auth/slap.sh`) to install a very basic + openldap server on ubuntu. +* **ReDIS**: There is a fake ldap auth driver + `nova.auth.ldapdriver.FakeLdapDriver` that backends to redis. This was + created for testing ldap implementation on systems that don't have an easy + means to install ldap. +* **MySQL**: Either MySQL or another database supported by sqlalchemy needs to + be avilable. Currently, only sqlite3 an mysql have been tested. Python libraries that we use (from pip-requires): @@ -38,7 +50,9 @@ Python libraries that we use (from pip-requires): Other libraries: -* XenAPI: Needed only for Xen Cloud Platform or XenServer support. Available from http://wiki.xensource.com/xenwiki/XCP_SDK or http://community.citrix.com/cdn/xs/sdks. +* **XenAPI**: Needed only for Xen Cloud Platform or XenServer support. Available + from http://wiki.xensource.com/xenwiki/XCP_SDK or + http://community.citrix.com/cdn/xs/sdks. External unix tools that are required: @@ -53,7 +67,9 @@ External unix tools that are required: * open-iscsi and iscsitarget (if you use iscsi volumes) * aoetools and vblade-persist (if you use aoe-volumes) -Nova uses cutting-edge versions of many packages. There are ubuntu packages in the nova-core ppa. You can use add this ppa to your sources list on an ubuntu machine with the following commands:: +Nova uses cutting-edge versions of many packages. There are ubuntu packages in +the nova-core ppa. You can use add this ppa to your sources list on an ubuntu +machine with the following commands:: sudo apt-get install -y python-software-properties sudo add-apt-repository ppa:nova-core/ppa @@ -68,34 +84,73 @@ Recommended Installation -------------- -Due to many changes it's best to rely on the `OpenStack wiki `_ for installation instructions. +You can install from packages for your particular Linux distribution if they are +available. Otherwise you can install from source by checking out the source +files from the `Nova Source Code Repository `_ +and running:: + + python setup.py install Configuration --------------- -These instructions are incomplete, but we are actively updating the `OpenStack wiki `_ with more configuration information. - -On the volume node +Configuring the host system +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* Create a volume group (you can use an actual disk for the volume group as well) +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`. -:: +* Create a volume group (you can use an actual disk for the volume group as + well):: # This creates a 1GB file to create volumes out of dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10 losetup --show -f MY_FILE_PATH # replace /dev/loop0 below with whatever losetup returns + # nova-volumes is the default for the --volume_group flag vgcreate nova-volumes /dev/loop0 + +Configuring Nova +~~~~~~~~~~~~~~~~ + +Configuration of the entire system is performed through python-gflags. The +best way to track configuration is through the use of a flagfile. + +A flagfile is specified with the ``--flagfile=FILEPATH`` argument to the binary +when you launch it. Flagfiles for nova are typically stored in +``/etc/nova/nova.conf``, and flags specific to a certain program are stored in +``/etc/nova/nova-COMMAND.conf``. Each configuration file can include another +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. + +A sample configuration to test the system follows:: + + --verbose + --nodaemon + --FAKE_subdomain=ec2 + --auth_driver=nova.auth.dbdriver.DbDriver + Running --------- -Launch servers +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`. + +Launch supporting services * rabbitmq * redis (optional) +* mysql (optional) -Launch nova components +Launch nova components, each should have ``--flagfile=/etc/nova/nova.conf`` * nova-api * nova-compute diff --git a/doc/source/index.rst b/doc/source/index.rst index 3c05d721d..9a62570ed 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -30,7 +30,8 @@ Nova is written with the following design guidelines in mind: 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`_. +be found on the `OpenStack wiki`_. Also see the :doc:`reaching.out` page for +other ways to interact witht the community. .. _`OpenStack wiki`: http://wiki.openstack.org @@ -44,6 +45,7 @@ Contents concepts.and.introduction administration.guide development.guide + reaching.out Indices and tables diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst index 91e3c9ccb..511ed2483 100644 --- a/doc/source/quickstart.rst +++ b/doc/source/quickstart.rst @@ -18,6 +18,14 @@ Nova Quickstart =============== +:: + + TODO(todd): * Document the assumptions about pluggable interfaces + (sqlite3 instead of mysql, etc) + * Document env vars that can change things + (USE_MYSQL, HOST_IP) + + The `contrib/novascript.sh` file in the source distribution is a script that will quickly set up nova to run on a single machine. It is tested against Ubuntu only, but other distributions are forthcoming. diff --git a/doc/source/reaching.out.rst b/doc/source/reaching.out.rst new file mode 100644 index 000000000..0d8f675e0 --- /dev/null +++ b/doc/source/reaching.out.rst @@ -0,0 +1,28 @@ +.. + Copyright 2010 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. + +Reaching Out +============ + +The OpenStack community is a very friendly place. Feel free to ask questions. +This document points you to some of the places you may want to communicate +with people at. + +:: + + TODO(todd): * Write This + * Don't end a sentence with a preposition -- cgit From 74762113966fb873816afa7bc7c0f2e2e9eb2ec5 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 17:49:13 -0400 Subject: document purpose of documentation. --- doc/source/getting.started.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/source/getting.started.rst b/doc/source/getting.started.rst index 6873c49cd..79d2cf204 100644 --- a/doc/source/getting.started.rst +++ b/doc/source/getting.started.rst @@ -23,6 +23,14 @@ encounter any problems, see the :doc:`reaching.out` page. The `contrib/nova.sh` script should be kept up to date, and may be a good resource to review when debugging. +The purpose of this document is to get a system installed that you can use to +test your setup assumptions. Working from this base installtion you can +tweak configurations and work with different flags to monitor interaction with +your hardware, network, and other factors that will allow you to determine +suitability for your deployment. After following this setup method, you should +be able to experiment with different managers, drivers, and flags to get the +best performance. + Dependencies ------------ -- cgit From 0de105e28ece8e742943abd3e6332d6e5694642c Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 18:17:02 -0400 Subject: start adding info to multi-node admin guide. --- doc/source/multi.node.install.rst | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/doc/source/multi.node.install.rst b/doc/source/multi.node.install.rst index dad9dcd01..1d484e779 100644 --- a/doc/source/multi.node.install.rst +++ b/doc/source/multi.node.install.rst @@ -18,8 +18,40 @@ Multi-Node Nova =============== -http://etherpad.openstack.org/NovaMultinodeInstall +When you move beyond evaluating the technology and into building an actual +production environemnt, 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. + +Bare-metal Provisioning +----------------------- + +To install the base operating system you can use PXE booting. + +Deployment Technologies +----------------------- + +Once you have machines with a base operating system installation, you can deploy +code and configuration with your favorite tools: * Puppet * Chef -* PXE + +Types of Hosts +-------------- + +A single machine in your cluster can act as one or more of the following types +of host: + +Nova Services + +* Network +* Compute +* Volume +* API +* Objectstore + +Other supporting services + +* Datastore +* Message Queue -- cgit From 4ea4eac3f1a33c1f618c82c5c2312b4626aa7244 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 4 Nov 2010 19:00:46 -0400 Subject: Change directory structure for great justice! --- doc/source/adminguide/binaries.rst | 62 ++++++ doc/source/adminguide/flags.rst | 23 ++ doc/source/adminguide/getting.started.rst | 167 +++++++++++++++ doc/source/adminguide/index.rst | 36 ++++ doc/source/adminguide/monitoring.rst | 27 +++ doc/source/adminguide/multi.node.install.rst | 57 +++++ doc/source/adminguide/nova.manage.rst | 200 +++++++++++++++++ doc/source/adminguide/quickstart.rst | 104 +++++++++ doc/source/administration.guide.rst | 35 --- doc/source/api.rst | 271 ------------------------ doc/source/architecture.rst | 52 ----- doc/source/auth.rst | 258 ---------------------- doc/source/binaries.rst | 62 ------ doc/source/cloudpipe.rst | 77 ------- doc/source/compute.rst | 146 ------------- doc/source/concepts.and.introduction.rst | 2 +- doc/source/database.rst | 61 ------ doc/source/development.environment.rst | 23 -- doc/source/development.guide.rst | 60 ------ doc/source/devguide/api.rst | 271 ++++++++++++++++++++++++ doc/source/devguide/architecture.rst | 52 +++++ doc/source/devguide/auth.rst | 258 ++++++++++++++++++++++ doc/source/devguide/cloudpipe.rst | 77 +++++++ doc/source/devguide/compute.rst | 146 +++++++++++++ doc/source/devguide/database.rst | 61 ++++++ doc/source/devguide/development.environment.rst | 23 ++ doc/source/devguide/fakes.rst | 74 +++++++ doc/source/devguide/glance.rst | 27 +++ doc/source/devguide/index.rst | 60 ++++++ doc/source/devguide/network.rst | 124 +++++++++++ doc/source/devguide/nova.rst | 190 +++++++++++++++++ doc/source/devguide/objectstore.rst | 62 ++++++ doc/source/devguide/scheduler.rst | 62 ++++++ doc/source/devguide/services.rst | 72 +++++++ doc/source/devguide/volume.rst | 62 ++++++ doc/source/fakes.rst | 74 ------- doc/source/flags.rst | 23 -- doc/source/getting.started.rst | 167 --------------- doc/source/glance.rst | 27 --- doc/source/index.rst | 4 +- doc/source/modules.rst | 38 ---- doc/source/monitoring.rst | 27 --- doc/source/multi.node.install.rst | 57 ----- doc/source/network.rst | 124 ----------- doc/source/nova.manage.rst | 200 ----------------- doc/source/nova.rst | 190 ----------------- doc/source/objectstore.rst | 62 ------ doc/source/quickstart.rst | 104 --------- doc/source/scheduler.rst | 62 ------ doc/source/services.rst | 72 ------- doc/source/volume.rst | 62 ------ 51 files changed, 2300 insertions(+), 2337 deletions(-) create mode 100644 doc/source/adminguide/binaries.rst create mode 100644 doc/source/adminguide/flags.rst create mode 100644 doc/source/adminguide/getting.started.rst create mode 100644 doc/source/adminguide/index.rst create mode 100644 doc/source/adminguide/monitoring.rst create mode 100644 doc/source/adminguide/multi.node.install.rst create mode 100644 doc/source/adminguide/nova.manage.rst create mode 100644 doc/source/adminguide/quickstart.rst delete mode 100644 doc/source/administration.guide.rst delete mode 100644 doc/source/api.rst delete mode 100644 doc/source/architecture.rst delete mode 100644 doc/source/auth.rst delete mode 100644 doc/source/binaries.rst delete mode 100644 doc/source/cloudpipe.rst delete mode 100644 doc/source/compute.rst delete mode 100644 doc/source/database.rst delete mode 100644 doc/source/development.environment.rst delete mode 100644 doc/source/development.guide.rst create mode 100644 doc/source/devguide/api.rst create mode 100644 doc/source/devguide/architecture.rst create mode 100644 doc/source/devguide/auth.rst create mode 100644 doc/source/devguide/cloudpipe.rst create mode 100644 doc/source/devguide/compute.rst create mode 100644 doc/source/devguide/database.rst create mode 100644 doc/source/devguide/development.environment.rst create mode 100644 doc/source/devguide/fakes.rst create mode 100644 doc/source/devguide/glance.rst create mode 100644 doc/source/devguide/index.rst create mode 100644 doc/source/devguide/network.rst create mode 100644 doc/source/devguide/nova.rst create mode 100644 doc/source/devguide/objectstore.rst create mode 100644 doc/source/devguide/scheduler.rst create mode 100644 doc/source/devguide/services.rst create mode 100644 doc/source/devguide/volume.rst delete mode 100644 doc/source/fakes.rst delete mode 100644 doc/source/flags.rst delete mode 100644 doc/source/getting.started.rst delete mode 100644 doc/source/glance.rst delete mode 100644 doc/source/modules.rst delete mode 100644 doc/source/monitoring.rst delete mode 100644 doc/source/multi.node.install.rst delete mode 100644 doc/source/network.rst delete mode 100644 doc/source/nova.manage.rst delete mode 100644 doc/source/nova.rst delete mode 100644 doc/source/objectstore.rst delete mode 100644 doc/source/quickstart.rst delete mode 100644 doc/source/scheduler.rst delete mode 100644 doc/source/services.rst delete mode 100644 doc/source/volume.rst diff --git a/doc/source/adminguide/binaries.rst b/doc/source/adminguide/binaries.rst new file mode 100644 index 000000000..3ea07d9c2 --- /dev/null +++ b/doc/source/adminguide/binaries.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 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. + +.. _binaries: + +Nova Binaries +=============== + +The configuration of these binaries relies on "flagfiles" using the google +gflags package:: + + $ nova-xxxxx --flagfile flagfile + +The binaries can all run on the same machine or be spread out amongst multiple boxes in a large deployment. + +nova-manage +----------- + +Nova manage is a command line utility to administer the system. It will autmatically try to load a flagfile from /etc/nova/nova-manage.conf to save you having to type it. Info on the commands can be found :ref:`here `. + +nova-api +-------- + +Nova api receives xml requests and sends them to the rest of the system. It is a wsgi app that routes and authenticate requests. It supports the ec2 and openstack apis. + +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-compute +------------ + +Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc. + +nova-volume +----------- + +Nova volume is responsible for managing attachable block storage devices. It loads a Service object which exposes the public methods on VolumeManager via rpc. + +nova-network +------------ + +Nova network is responsible for managing floating and fixed ips, dhcp, bridging and vlans. It loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are as simple as changing the network_manager flag:: + + $ nova-network --network_manager=nova.network.manager.FlatManager + +IMPORTANT: Make sure that you also set the network_manager on nova-api and nova_compute, since make some calls to network manager in process instead of through rpc. More information on the interactions between services, managers, and drivers can be found :ref:`here ` diff --git a/doc/source/adminguide/flags.rst b/doc/source/adminguide/flags.rst new file mode 100644 index 000000000..4c950aa88 --- /dev/null +++ b/doc/source/adminguide/flags.rst @@ -0,0 +1,23 @@ +.. + Copyright 2010 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/getting.started.rst b/doc/source/adminguide/getting.started.rst new file mode 100644 index 000000000..65ba2d57e --- /dev/null +++ b/doc/source/adminguide/getting.started.rst @@ -0,0 +1,167 @@ +.. + Copyright 2010 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. + +Getting Started with Nova +========================= + +This code base is continually changing, so dependencies also change. If you +encounter any problems, see the :doc:`../reaching.out` page. +The `contrib/nova.sh` script should be kept up to date, and may be a good +resource to review when debugging. + +The purpose of this document is to get a system installed that you can use to +test your setup assumptions. Working from this base installtion you can +tweak configurations and work with different flags to monitor interaction with +your hardware, network, and other factors that will allow you to determine +suitability for your deployment. After following this setup method, you should +be able to experiment with different managers, drivers, and flags to get the +best performance. + +Dependencies +------------ + +Related servers we rely on + +* **RabbitMQ**: messaging queue, used for all communication between components + +Optional servers + +* **OpenLDAP**: By default, the auth server uses the RDBMS-backed datastore by + setting FLAGS.auth_driver to `nova.auth.dbdriver.DbDriver`. But OpenLDAP + (or LDAP) could be configured by specifying `nova.auth.ldapdriver.LdapDriver`. + There is a script in the sources (`nova/auth/slap.sh`) to install a very basic + openldap server on ubuntu. +* **ReDIS**: There is a fake ldap auth driver + `nova.auth.ldapdriver.FakeLdapDriver` that backends to redis. This was + created for testing ldap implementation on systems that don't have an easy + means to install ldap. +* **MySQL**: Either MySQL or another database supported by sqlalchemy needs to + be avilable. Currently, only sqlite3 an mysql have been tested. + +Python libraries that we use (from pip-requires): + +.. literalinclude:: ../../../tools/pip-requires + +Other libraries: + +* **XenAPI**: Needed only for Xen Cloud Platform or XenServer support. Available + from http://wiki.xensource.com/xenwiki/XCP_SDK or + http://community.citrix.com/cdn/xs/sdks. + +External unix tools that are required: + +* iptables +* ebtables +* gawk +* curl +* kvm +* libvirt +* dnsmasq +* vlan +* open-iscsi and iscsitarget (if you use iscsi volumes) +* aoetools and vblade-persist (if you use aoe-volumes) + +Nova uses cutting-edge versions of many packages. There are ubuntu packages in +the nova-core ppa. You can use add this ppa to your sources list on an ubuntu +machine with the following commands:: + + sudo apt-get install -y python-software-properties + sudo add-apt-repository ppa:nova-core/ppa + +Recommended +----------- + +* euca2ools: python implementation of aws ec2-tools and ami tools +* build tornado to use C module for evented section + + +Installation +-------------- + +You can install from packages for your particular Linux distribution if they are +available. Otherwise you can install from source by checking out the source +files from the `Nova Source Code Repository `_ +and running:: + + python setup.py install + +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`. + +* Create a volume group (you can use an actual disk for the volume group as + well):: + + # This creates a 1GB file to create volumes out of + dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10 + losetup --show -f MY_FILE_PATH + # replace /dev/loop0 below with whatever losetup returns + # nova-volumes is the default for the --volume_group flag + vgcreate nova-volumes /dev/loop0 + + +Configuring Nova +~~~~~~~~~~~~~~~~ + +Configuration of the entire system is performed through python-gflags. The +best way to track configuration is through the use of a flagfile. + +A flagfile is specified with the ``--flagfile=FILEPATH`` argument to the binary +when you launch it. Flagfiles for nova are typically stored in +``/etc/nova/nova.conf``, and flags specific to a certain program are stored in +``/etc/nova/nova-COMMAND.conf``. Each configuration file can include another +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. + +A sample configuration to test the system follows:: + + --verbose + --nodaemon + --FAKE_subdomain=ec2 + --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`. + +Launch supporting services + +* rabbitmq +* redis (optional) +* mysql (optional) + +Launch nova components, each should have ``--flagfile=/etc/nova/nova.conf`` + +* nova-api +* nova-compute +* nova-objectstore +* nova-volume +* nova-scheduler diff --git a/doc/source/adminguide/index.rst b/doc/source/adminguide/index.rst new file mode 100644 index 000000000..ad1788b8b --- /dev/null +++ b/doc/source/adminguide/index.rst @@ -0,0 +1,36 @@ +.. + Copyright 2010 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. + +Administration Guide +==================== + +How to deploy, monitor, and debug Nova. + + +Contents +-------- + +.. toctree:: + :maxdepth: 1 + + quickstart + getting.started + binaries + multi.node.install + nova.manage + flags + monitoring diff --git a/doc/source/adminguide/monitoring.rst b/doc/source/adminguide/monitoring.rst new file mode 100644 index 000000000..e7766a6e7 --- /dev/null +++ b/doc/source/adminguide/monitoring.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Monitoring +========== + +* components +* throughput +* exceptions +* hardware + +* ganglia +* syslog diff --git a/doc/source/adminguide/multi.node.install.rst b/doc/source/adminguide/multi.node.install.rst new file mode 100644 index 000000000..1d484e779 --- /dev/null +++ b/doc/source/adminguide/multi.node.install.rst @@ -0,0 +1,57 @@ +.. + Copyright 2010 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. + +Multi-Node Nova +=============== + +When you move beyond evaluating the technology and into building an actual +production environemnt, 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. + +Bare-metal Provisioning +----------------------- + +To install the base operating system you can use PXE booting. + +Deployment Technologies +----------------------- + +Once you have machines with a base operating system installation, you can deploy +code and configuration with your favorite tools: + +* Puppet +* Chef + +Types of Hosts +-------------- + +A single machine in your cluster can act as one or more of the following types +of host: + +Nova Services + +* Network +* Compute +* Volume +* API +* Objectstore + +Other supporting services + +* Datastore +* Message Queue diff --git a/doc/source/adminguide/nova.manage.rst b/doc/source/adminguide/nova.manage.rst new file mode 100644 index 000000000..683cf5e14 --- /dev/null +++ b/doc/source/adminguide/nova.manage.rst @@ -0,0 +1,200 @@ +.. + Copyright 2010 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. + + +nova-manage +=========== + +Introduction +~~~~~~~~~~~~ + +The nova-manage command is used to perform many essential functions for +administration and ongoing maintenance of nova, such as user creation, +vpn management, and much more. + +The standard pattern for executing a nova-manage command is: + +``nova-manage []`` + +For example, to obtain a list of all projects: + +``nova-manage project list`` + +You can run without arguments to see a list of available command categories: + +``nova-manage`` + +You can run with a category argument to see a list of all commands in that +category: + +``nova-manage user`` + +User Maintenance +~~~~~~~~~~~~~~~~ + +Users, including admins, are created through the ``user`` commands. + +* user admin: creates a new admin and prints exports + * arguments: name [access] [secret] +* user create: creates a new user and prints exports + * arguments: name [access] [secret] +* user delete: deletes an existing user + * arguments: name +* user exports: prints access and secrets for user in export format + * arguments: name +* user list: lists all users + * arguments: none +* user modify: update a users keys & admin flag + * arguments: accesskey secretkey admin + * leave any field blank to ignore it, admin should be 'T', 'F', or blank + +Project Maintenance +~~~~~~~~~~~~~~~~~~~ + +* project add: Adds user to project + * arguments: project user +* project create: Creates a new project + * arguments: name project_manager [description] +* project delete: Deletes an existing project + * arguments: project_id +* project environment: Exports environment variables to an sourcable file + * arguments: project_id user_id [filename='novarc] +* project list: lists all projects + * arguments: none +* project quota: Set or display quotas for project + * arguments: project_id [key] [value] +* project remove: Removes user from project + * arguments: project user +* project scrub: Deletes data associated with project + * arguments: project +* project zipfile: Exports credentials for project to a zip file + * arguments: project_id user_id [filename='nova.zip] + +User Role Management +~~~~~~~~~~~~~~~~~~~~ + +* role add: adds role to user + * if project is specified, adds project specific role + * arguments: user, role [project] +* role has: checks to see if user has role + * if project is specified, returns True if user has + the global role and the project role + * arguments: user, role [project] +* role remove: removes role from user + * if project is specified, removes project specific role + * arguments: user, role [project] + + +Nova Shell +~~~~~~~~~~ + +* shell bpython + * start a new bpython shell +* shell ipython + * start a new ipython shell +* shell python + * start a new python shell +* shell run + * ??? +* shell script: Runs the script from the specifed path with flags set properly. + * arguments: path + +VPN Management +~~~~~~~~~~~~~~ + +* vpn list: Print a listing of the VPNs for all projects. + * arguments: none +* vpn run: Start the VPN for a given project. + * arguments: project +* vpn spawn: Run all VPNs. + * arguments: none + + +Floating IP Management +~~~~~~~~~~~~~~~~~~~~~~ + +* floating create: Creates floating ips for host by range + * arguments: host ip_range +* floating delete: Deletes floating ips by range + * arguments: range +* floating list: Prints a listing of all floating ips + * arguments: none + +Network Management +~~~~~~~~~~~~~~~~~~ + +* network create: Creates fixed ips for host by range + * arguments: [fixed_range=FLAG], [num_networks=FLAG], + [network_size=FLAG], [vlan_start=FLAG], + [vpn_start=FLAG] + + +Concept: Flags +-------------- + +python-gflags + + +Concept: Plugins +---------------- + +* Managers/Drivers: utils.import_object from string flag +* virt/connections: conditional loading from string flag +* db: LazyPluggable via string flag +* auth_manager: utils.import_class based on string flag +* Volumes: moving to pluggable driver instead of manager +* Network: pluggable managers +* Compute: same driver used, but pluggable at connection + + +Concept: IPC/RPC +---------------- + +Rabbit! + + +Concept: Fakes +-------------- + +* auth +* ldap + + +Concept: Scheduler +------------------ + +* simple +* random + + +Concept: Security Groups +------------------------ + +Security groups + + +Concept: Certificate Authority +------------------------------ + +Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns <../cloudpipe>` and decrypting bundled images. + + +Concept: Images +--------------- + +* launching +* bundling diff --git a/doc/source/adminguide/quickstart.rst b/doc/source/adminguide/quickstart.rst new file mode 100644 index 000000000..511ed2483 --- /dev/null +++ b/doc/source/adminguide/quickstart.rst @@ -0,0 +1,104 @@ +.. + Copyright 2010 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. + +Nova Quickstart +=============== + +:: + + TODO(todd): * Document the assumptions about pluggable interfaces + (sqlite3 instead of mysql, etc) + * Document env vars that can change things + (USE_MYSQL, HOST_IP) + + +The `contrib/novascript.sh` file in the source distribution is a script that +will quickly set up nova to run on a single machine. It is tested against +Ubuntu only, but other distributions are forthcoming. + +Usage +----- + +Unless you want to spend a lot of time fiddling with permissions and sudoers, +you should probably run nova as root. + +:: + + sudo -i + +If you are concerned about security, nova runs just fine inside a virtual +machine. + +Use the script to install and run the current trunk. You can also specify a +specific branch by putting `lp:~someone/nova/some-branch` after the branch +command + +:: + + ./nova.sh branch + ./nova.sh install + ./nova.sh run + +The run command will drop you into a screen session with all of the workers +running in different windows You can use eucatools to run commands against the +cloud. + +:: + + euca-add-keypair test > test.pem + euca-run-instances -k test -t m1.tiny ami-tiny + euca-describe-instances + +To see output from the various workers, switch screen windows + +:: + + " + +will give you a list of running windows. + +When the instance is running, you should be able to ssh to it. + +:: + + chmod 600 test.pem + ssh -i test.pem root@10.0.0.3 + +When you exit screen + +:: + + + +nova will terminate. It may take a while for nova to finish cleaning up. If +you exit the process before it is done because there were some problems in your +build, you may have to clean up the nova processes manually. If you had any +instances running, you can attempt to kill them through the api: + +:: + + ./nova.sh terminate + +Then you can destroy the screen: + +:: + + ./nova.sh clean + +If things get particularly messed up, you might need to do some more intense +cleanup. Be careful, the following command will manually destroy all runnning +virsh instances and attempt to delete all vlans and bridges. diff --git a/doc/source/administration.guide.rst b/doc/source/administration.guide.rst deleted file mode 100644 index 2d09bed71..000000000 --- a/doc/source/administration.guide.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. - Copyright 2010 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. - -Administration Guide -==================== - -How to deploy, monitor, and debug Nova. - - -Contents --------- - -.. toctree:: - :maxdepth: 1 - - quickstart - getting.started - multi.node.install - nova.manage - flags - monitoring diff --git a/doc/source/api.rst b/doc/source/api.rst deleted file mode 100644 index 0908d9e57..000000000 --- a/doc/source/api.rst +++ /dev/null @@ -1,271 +0,0 @@ -.. - Copyright 2010 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. - -API Endpoint Programming Guide -============================== - -:: - - TODO(todd): get actual docstrings from ec2/osapi_verions instead of @wsgify - -Nova has a system for managing multiple APIs on different subdomains. -Currently there is support for the OpenStack API, as well as the Amazon EC2 -API. - -Common Components ------------------ - -The :mod:`nova.api` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.cloud - :members: - :undoc-members: - :show-inheritance: - -OpenStack API -------------- - -The :mod:`openstack` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack - :members: - :undoc-members: - :show-inheritance: - -The :mod:`auth` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.auth - :members: - :undoc-members: - :show-inheritance: - -The :mod:`backup_schedules` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.backup_schedules - :members: - :undoc-members: - :show-inheritance: - -The :mod:`faults` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.faults - :members: - :undoc-members: - :show-inheritance: - -The :mod:`flavors` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.flavors - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.images - :members: - :undoc-members: - :show-inheritance: - -The :mod:`ratelimiting` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.ratelimiting - :members: - :undoc-members: - :show-inheritance: - -The :mod:`servers` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.servers - :members: - :undoc-members: - :show-inheritance: - -The :mod:`sharedipgroups` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.sharedipgroups - :members: - :undoc-members: - :show-inheritance: - -EC2 API -------- - -The :mod:`nova.api.ec2` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2 - :members: - :undoc-members: - :show-inheritance: - -The :mod:`admin` Module -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.admin - :members: - :undoc-members: - :show-inheritance: - -The :mod:`apirequest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.apirequest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud` Module -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.cloud - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.images - :members: - :undoc-members: - :show-inheritance: - -The :mod:`metadatarequesthandler` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.metadatarequesthandler - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`api_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api_integration` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api_integration - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.cloud_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api.fakes` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.fakes - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api.test_wsgi` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.test_wsgi - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_api` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_api - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_auth` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_auth - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_faults` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_faults - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_flavors` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_flavors - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_images` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_images - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_ratelimiting` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_ratelimiting - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_servers` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_servers - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_sharedipgroups` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_sharedipgroups - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst deleted file mode 100644 index 1e23e1361..000000000 --- a/doc/source/architecture.rst +++ /dev/null @@ -1,52 +0,0 @@ -.. - Copyright 2010 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. - -Nova System Architecture -======================== - -Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received. - -Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system. - -Components ----------- - -Below you will find a helpful explanation of the different components. - -:: - - /- ( LDAP ) - [ Auth Manager ] --- - | \- ( DB ) - | - | [ scheduler ] - [ volume ] - ( ATAoE/iSCSI ) - | / - [ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan ) - | \ - < HTTP > [ scheduler ] - [ compute ] - ( libvirt/xen ) - | | - [ objectstore ] < - retrieves images - -* DB: sql database for data storage. Used by all components (LINKS NOT SHOWN) -* Web Dashboard: potential external component that talks to the api -* api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore) -* Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system. -* objectstore: twisted http server that replicates s3 api and allows storage and retrieval of images -* scheduler: decides which host gets each vm and volume -* volume: manages dynamically attachable block devices. -* network: manages ip forwarding, bridges, and vlans -* compute: manages communication with hypervisor and virtual machines. diff --git a/doc/source/auth.rst b/doc/source/auth.rst deleted file mode 100644 index 77d97f68b..000000000 --- a/doc/source/auth.rst +++ /dev/null @@ -1,258 +0,0 @@ -.. - Copyright 2010 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. - -.. _auth: - -Authentication and Authorization Programming Guide -================================================== - -The :mod:`quota` Module ------------------------ - -.. automodule:: nova.quota - :members: - :undoc-members: - :show-inheritance: - -Auth Manager ------------- - -The :mod:`manager` Module -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.manager - :members: - :undoc-members: - :show-inheritance: - -Drivers -------- - -The :mod:`ldapdriver` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.ldapdriver - :members: - :undoc-members: - :show-inheritance: - -The :mod:`dbdriver` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.dbdriver - :members: - :undoc-members: - :show-inheritance: - -API Integration ---------------- - -The :mod:`signer` Module -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.signer - :members: - :undoc-members: - :show-inheritance: - -Related Tests -------------- - -The :mod:`auth_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.auth_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`access_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.access_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`quota_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.quota_unittest - :members: - :undoc-members: - :show-inheritance: - -legacy docs ------------ - -Nova provides RBAC (Role-based access control) of the AWS-type APIs. We define the following roles: - -Roles-Based Access Control of AWS-style APIs using SAML Assertions -“Achieving FIPS 199 Moderate certification of a hybrid cloud environment using CloudAudit and declarative C.I.A. classifications” - -Introduction ------------- - -We will investigate one method for integrating an AWS-style API with US eAuthentication-compatible federated authentication systems, to achieve access controls and limits based on traditional operational roles. -Additionally, we will look at how combining this approach, with an implementation of the CloudAudit APIs, will allow us to achieve a certification under FIPS 199 Moderate classification for a hybrid cloud environment. - -Relationship of US eAuth to RBAC --------------------------------- - -Typical implementations of US eAuth authentication systems are structured as follows:: - - [ MS Active Directory or other federated LDAP user store ] - --> backends to… - [ SUN Identity Manager or other SAML Policy Controller ] - --> maps URLs to groups… - [ Apache Policy Agent in front of eAuth-secured Web Application ] - -In more ideal implementations, the remainder of the application-specific account information is stored either in extended schema on the LDAP server itself, via the use of a translucent LDAP proxy, or in an independent datastore keyed off of the UID provided via SAML assertion. - -.. _auth_roles: - -Roles ------ - -AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: - -* Base User -* System Administrator/Developer (currently have the same permissions) -* Network Administrator -* Project Manager -* Cloud Administrator/IT-Security (currently have the same permissions) - -There is an additional, conceptual end-user that may or may not have API access: - -* (EXTERNAL) End-user / Third-party User - -Basic operations are available to any : - -* Describe Instances -* Describe Images -* Describe Volumes -* Describe Keypairs -* Create Keypair -* Delete Keypair -* Create, Upload, Delete: Buckets and Keys (Object Store) - -System Administrators/Developers/Project Manager: - -* Create, Attach, Delete Volume (Block Store) -* Launch, Reboot, Terminate Instance -* Register/Unregister Machine Image (project-wide) -* Request / Review CloudAudit Scans - -Project Manager: - -* Add and remove other users (currently no api) -* Set roles (currently no api) - -Network Administrator: - -* Change Machine Image properties (public / private) -* Change Firewall Rules, define Security Groups -* Allocate, Associate, Deassociate Public IP addresses - -Cloud Administrator/IT-Security: - -* All permissions - -Enhancements ------------- - -* SAML Token passing -* REST interfaces -* SOAP interfaces - -Wrapping the SAML token into the API calls. -Then store the UID (fetched via backchannel) into the instance metadata, providing end-to-end auditability of ownership and responsibility, without PII. - -CloudAudit APIs ---------------- - -* Request formats -* Response formats -* Stateless asynchronous queries - -CloudAudit queries may spawn long-running processes (similar to launching instances, etc.) They need to return a ReservationId in the same fashion, which can be returned in further queries for updates. -RBAC of CloudAudit API calls is critical, since detailed system information is a system vulnerability. - -Type declarations ------------------ -* Data declarations – Volumes and Objects -* System declarations – Instances - -Existing API calls to launch instances specific a single, combined “type” flag. We propose to extend this with three additional type declarations, mapping to the “Confidentiality, Integrity, Availability” classifications of FIPS 199. An example API call would look like:: - - RunInstances type=m1.large number=1 secgroup=default key=mykey confidentiality=low integrity=low availability=low - -These additional parameters would also apply to creation of block storage volumes (along with the existing parameter of ‘size’), and creation of object storage ‘buckets’. (C.I.A. classifications on a bucket would be inherited by the keys within this bucket.) - -Request Brokering ------------------ - - * Cloud Interop - * IMF Registration / PubSub - * Digital C&A - -Establishing declarative semantics for individual API calls will allow the cloud environment to seamlessly proxy these API calls to external, third-party vendors – when the requested CIA levels match. - -See related work within the Infrastructure 2.0 working group for more information on how the IMF Metadata specification could be utilized to manage registration of these vendors and their C&A credentials. - -Dirty Cloud – Hybrid Data Centers ---------------------------------- - -* CloudAudit bridge interfaces -* Anything in the ARP table - -A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network. - -This interconnect is typically a bridged VPN connection. Any machines that can be bridged into a hybrid environment in this fashion (at Layer 2) must implement a minimum version of the CloudAudit spec, such that they can be queried to provide a complete picture of the IT-sec runtime environment. - -Network discovery protocols (ARP, CDP) can be applied in this case, and existing protocols (SNMP location data, DNS LOC records) overloaded to provide CloudAudit information. - -The Details ------------ - - * Preliminary Roles Definitions - * Categorization of available API calls - * SAML assertion vocabulary - -System limits -------------- - -The following limits need to be defined and enforced: - -* Total number of instances allowed (user / project) -* Total number of instances, per instance type (user / project) -* Total number of volumes (user / project) -* Maximum size of volume -* Cumulative size of all volumes -* Total use of object storage (GB) -* Total number of Public IPs - - -Further Challenges ------------------- - * Prioritization of users / jobs in shared computing environments - * Incident response planning - * Limit launch of instances to specific security groups based on AMI - * Store AMIs in LDAP for added property control - - - diff --git a/doc/source/binaries.rst b/doc/source/binaries.rst deleted file mode 100644 index 3ea07d9c2..000000000 --- a/doc/source/binaries.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - Copyright 2010 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. - -.. _binaries: - -Nova Binaries -=============== - -The configuration of these binaries relies on "flagfiles" using the google -gflags package:: - - $ nova-xxxxx --flagfile flagfile - -The binaries can all run on the same machine or be spread out amongst multiple boxes in a large deployment. - -nova-manage ------------ - -Nova manage is a command line utility to administer the system. It will autmatically try to load a flagfile from /etc/nova/nova-manage.conf to save you having to type it. Info on the commands can be found :ref:`here `. - -nova-api --------- - -Nova api receives xml requests and sends them to the rest of the system. It is a wsgi app that routes and authenticate requests. It supports the ec2 and openstack apis. - -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-compute ------------- - -Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc. - -nova-volume ------------ - -Nova volume is responsible for managing attachable block storage devices. It loads a Service object which exposes the public methods on VolumeManager via rpc. - -nova-network ------------- - -Nova network is responsible for managing floating and fixed ips, dhcp, bridging and vlans. It loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are as simple as changing the network_manager flag:: - - $ nova-network --network_manager=nova.network.manager.FlatManager - -IMPORTANT: Make sure that you also set the network_manager on nova-api and nova_compute, since make some calls to network manager in process instead of through rpc. More information on the interactions between services, managers, and drivers can be found :ref:`here ` diff --git a/doc/source/cloudpipe.rst b/doc/source/cloudpipe.rst deleted file mode 100644 index d632a40e6..000000000 --- a/doc/source/cloudpipe.rst +++ /dev/null @@ -1,77 +0,0 @@ -.. - Copyright 2010 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. - - -.. _cloudpipe: - -Cloudpipe -- Per Project Vpns -============================= - -Cloudpipe is a method for connecting end users to their project insnances in vlan mode. - -Overview --------- - -The support code for cloudpipe implements admin commands (via nova-manage) to automatically create a vm for a project that allows users to vpn into the private network of their project. Access to this vpn is provided through a public port on the network host for the project. This allows users to have free access to the virtual machines in their project without exposing those machines to the public internet. - -Cloudpipe Image ---------------- - -The cloudpipe image is basically just a linux instance with openvpn installed. It needs a simple script to grab user data from the metadata server, b64 decode it into a zip file, and run the autorun.sh script from inside the zip. The autorun script will configure and run openvpn to run using the data from nova. - -It is also useful to have a cron script that will periodically redownload the metadata and copy the new crl. This will keep revoked users from connecting and will disconnect any users that are connected with revoked certificates when their connection is renegotiated (every hour). - -Cloudpipe Launch ----------------- - -When you use nova-manage to launch a cloudpipe for a user, it goes through the following process: - -#. creates a keypair called -vpn and saves it in the keys directory -#. creates a security group -vpn and opens up 1194 and icmp -#. creates a cert and private key for the vpn instance and saves it in the CA/projects// directory -#. zips up the info and puts it b64 encoded as user data -#. launches an m1.tiny instance with the above settings using the flag-specified vpn image - -Vpn Access ----------- - -In vlan networking mode, the second ip in each private network is reserved for the cloudpipe instance. This gives a consistent ip to the instance so that nova-network can create forwarding rules for access from the outside world. The network for each project is given a specific high-numbered port on the public ip of the network host. This port is automatically forwarded to 1194 on the vpn instance. - -If specific high numbered ports do not work for your users, you can always allocate and associate a public ip to the instance, and then change the vpn_public_ip and vpn_public_port in the database. This will be turned into a nova-manage command or a flag soon. - - -Certificates and Revocation ---------------------------- - -If the use_project_ca flag is set (required to for cloudpipes to work securely), then each project has its own ca. This ca is used to sign the certificate for the vpn, and is also passed to the user for bundling images. When a certificate is revoked using nova-manage, a new Certificate Revocation List (crl) is generated. As long as cloudpipe has an updated crl, it will block revoked users from connecting to the vpn. - -The :mod:`cloudpipe` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.cloudpipe.pipelib - :members: - :undoc-members: - :show-inheritance: - -The :mod:`crypto` Module -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.crypto - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/source/compute.rst b/doc/source/compute.rst deleted file mode 100644 index e4c6c6ae7..000000000 --- a/doc/source/compute.rst +++ /dev/null @@ -1,146 +0,0 @@ -.. - Copyright 2010 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. - - -Virtualization Programming Guide -================================ - -This page contains the Compute Package documentation. - -Manager -------- - -Documentation for the compute manager and related files. For reading about -a specific virtualization backend, read Drivers_. - - -The :mod:`manager` Module -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.manager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`connection` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.connection - :members: - :undoc-members: - :show-inheritance: - -The :mod:`disk` Module -~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.disk - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.images - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`instance_types` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.instance_types - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`power_state` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.power_state - :members: - :undoc-members: - :show-inheritance: - - -Drivers -------- - -Libvirt Implementations -~~~~~~~~~~~~~~~~~~~~~~~ - -The libvirt driver is capable of supporting KVM, QEMU, and UML. - -The :mod:`libvirt_conn` Module -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: nova.virt.libvirt_conn - :members: - :undoc-members: - :show-inheritance: - -XEN -~~~ - -The :mod:`xenapi` Module -^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: nova.virt.xenapi - :members: - :undoc-members: - :show-inheritance: - -FAKE -~~~~ - -.. automodule:: nova.virt.fake - :members: - :undoc-members: - :show-inheritance: - -Monitoring ----------- - -The :mod:`monitor` Module -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.monitor - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -The :mod:`compute_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.compute_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`virt_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.virt_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/concepts.and.introduction.rst b/doc/source/concepts.and.introduction.rst index 5810280b4..d409fbaec 100644 --- a/doc/source/concepts.and.introduction.rst +++ b/doc/source/concepts.and.introduction.rst @@ -35,7 +35,7 @@ focues on describing how Nova's implementation of those concepts is achieved. This page outlines concepts that you will need to understand as a user or administrator of an OpenStack installation. Each section links to more more -detailed information in the :doc:`administration.guide`, +detailed information in the :doc:`adminguide/index`, but you'll probably want to read this section straight-through before tackling the specifics presented in the administration guide. diff --git a/doc/source/database.rst b/doc/source/database.rst deleted file mode 100644 index b58ea147d..000000000 --- a/doc/source/database.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. - Copyright 2010 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. - -Database Programming Guide -========================== - -The :mod:`api` Module ---------------------- - -.. automodule:: nova.db.api - :members: - :undoc-members: - :show-inheritance: - - -Drivers -------- - -Driver: Sqlalchemy -~~~~~~~~~~~~~~~~~~ - -The :mod:`sqlalchemy.api` Module -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: nova.db.sqlalchemy.api - -The :mod:`sqlalchemy.models` Module -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: nova.db.sqlalchemy.models - :members: - :undoc-members: - :show-inheritance: - -The :mod:`sqlalchemy.session` Module -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: nova.db.sqlalchemy.session - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -Tests are lacking for the db api layer and for the sqlalchemy driver. -Failures in the drivers would be dectected in other test cases, though. diff --git a/doc/source/development.environment.rst b/doc/source/development.environment.rst deleted file mode 100644 index ee19ba2bf..000000000 --- a/doc/source/development.environment.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - Copyright 2010 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. - -Setting up a development environment -==================================== - -:: - - TODO(anthony) diff --git a/doc/source/development.guide.rst b/doc/source/development.guide.rst deleted file mode 100644 index 704cbe399..000000000 --- a/doc/source/development.guide.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. - Copyright 2010 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. - -Nova Development Guide -====================== - -Nova is written in python. - -Prerequisites -------------- -.. toctree:: - :maxdepth: 1 - - concepts.and.introduction - architecture - development.environment - - -Contents --------- - -.. toctree:: - :maxdepth: 1 - - services - database - volume - compute - network - auth - api - scheduler - fakes - nova - cloudpipe - objectstore - glance - - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/doc/source/devguide/api.rst b/doc/source/devguide/api.rst new file mode 100644 index 000000000..0908d9e57 --- /dev/null +++ b/doc/source/devguide/api.rst @@ -0,0 +1,271 @@ +.. + Copyright 2010 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. + +API Endpoint Programming Guide +============================== + +:: + + TODO(todd): get actual docstrings from ec2/osapi_verions instead of @wsgify + +Nova has a system for managing multiple APIs on different subdomains. +Currently there is support for the OpenStack API, as well as the Amazon EC2 +API. + +Common Components +----------------- + +The :mod:`nova.api` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.cloud + :members: + :undoc-members: + :show-inheritance: + +OpenStack API +------------- + +The :mod:`openstack` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack + :members: + :undoc-members: + :show-inheritance: + +The :mod:`auth` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.auth + :members: + :undoc-members: + :show-inheritance: + +The :mod:`backup_schedules` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.backup_schedules + :members: + :undoc-members: + :show-inheritance: + +The :mod:`faults` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.faults + :members: + :undoc-members: + :show-inheritance: + +The :mod:`flavors` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.flavors + :members: + :undoc-members: + :show-inheritance: + +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`ratelimiting` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.ratelimiting + :members: + :undoc-members: + :show-inheritance: + +The :mod:`servers` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.servers + :members: + :undoc-members: + :show-inheritance: + +The :mod:`sharedipgroups` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: nova.api.openstack.sharedipgroups + :members: + :undoc-members: + :show-inheritance: + +EC2 API +------- + +The :mod:`nova.api.ec2` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2 + :members: + :undoc-members: + :show-inheritance: + +The :mod:`admin` Module +~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.admin + :members: + :undoc-members: + :show-inheritance: + +The :mod:`apirequest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.apirequest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud` Module +~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.cloud + :members: + :undoc-members: + :show-inheritance: + +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`metadatarequesthandler` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.api.ec2.metadatarequesthandler + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`api_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api_integration` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api_integration + :members: + :undoc-members: + :show-inheritance: + +The :mod:`cloud_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.cloud_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.fakes` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.fakes + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.test_wsgi` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.test_wsgi + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_api` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_api + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_auth` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_auth + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_faults` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_faults + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_flavors` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_flavors + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_images` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_images + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_ratelimiting` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_ratelimiting + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_servers` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_servers + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test_sharedipgroups` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.api.openstack.test_sharedipgroups + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/source/devguide/architecture.rst b/doc/source/devguide/architecture.rst new file mode 100644 index 000000000..1e23e1361 --- /dev/null +++ b/doc/source/devguide/architecture.rst @@ -0,0 +1,52 @@ +.. + Copyright 2010 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. + +Nova System Architecture +======================== + +Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received. + +Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system. + +Components +---------- + +Below you will find a helpful explanation of the different components. + +:: + + /- ( LDAP ) + [ Auth Manager ] --- + | \- ( DB ) + | + | [ scheduler ] - [ volume ] - ( ATAoE/iSCSI ) + | / + [ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan ) + | \ + < HTTP > [ scheduler ] - [ compute ] - ( libvirt/xen ) + | | + [ objectstore ] < - retrieves images + +* DB: sql database for data storage. Used by all components (LINKS NOT SHOWN) +* Web Dashboard: potential external component that talks to the api +* api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore) +* Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system. +* objectstore: twisted http server that replicates s3 api and allows storage and retrieval of images +* scheduler: decides which host gets each vm and volume +* volume: manages dynamically attachable block devices. +* network: manages ip forwarding, bridges, and vlans +* compute: manages communication with hypervisor and virtual machines. diff --git a/doc/source/devguide/auth.rst b/doc/source/devguide/auth.rst new file mode 100644 index 000000000..77d97f68b --- /dev/null +++ b/doc/source/devguide/auth.rst @@ -0,0 +1,258 @@ +.. + Copyright 2010 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. + +.. _auth: + +Authentication and Authorization Programming Guide +================================================== + +The :mod:`quota` Module +----------------------- + +.. automodule:: nova.quota + :members: + :undoc-members: + :show-inheritance: + +Auth Manager +------------ + +The :mod:`manager` Module +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.manager + :members: + :undoc-members: + :show-inheritance: + +Drivers +------- + +The :mod:`ldapdriver` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.ldapdriver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`dbdriver` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.dbdriver + :members: + :undoc-members: + :show-inheritance: + +API Integration +--------------- + +The :mod:`signer` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.auth.signer + :members: + :undoc-members: + :show-inheritance: + +Related Tests +------------- + +The :mod:`auth_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.auth_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`access_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.access_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`quota_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.quota_unittest + :members: + :undoc-members: + :show-inheritance: + +legacy docs +----------- + +Nova provides RBAC (Role-based access control) of the AWS-type APIs. We define the following roles: + +Roles-Based Access Control of AWS-style APIs using SAML Assertions +“Achieving FIPS 199 Moderate certification of a hybrid cloud environment using CloudAudit and declarative C.I.A. classifications” + +Introduction +------------ + +We will investigate one method for integrating an AWS-style API with US eAuthentication-compatible federated authentication systems, to achieve access controls and limits based on traditional operational roles. +Additionally, we will look at how combining this approach, with an implementation of the CloudAudit APIs, will allow us to achieve a certification under FIPS 199 Moderate classification for a hybrid cloud environment. + +Relationship of US eAuth to RBAC +-------------------------------- + +Typical implementations of US eAuth authentication systems are structured as follows:: + + [ MS Active Directory or other federated LDAP user store ] + --> backends to… + [ SUN Identity Manager or other SAML Policy Controller ] + --> maps URLs to groups… + [ Apache Policy Agent in front of eAuth-secured Web Application ] + +In more ideal implementations, the remainder of the application-specific account information is stored either in extended schema on the LDAP server itself, via the use of a translucent LDAP proxy, or in an independent datastore keyed off of the UID provided via SAML assertion. + +.. _auth_roles: + +Roles +----- + +AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: + +* Base User +* System Administrator/Developer (currently have the same permissions) +* Network Administrator +* Project Manager +* Cloud Administrator/IT-Security (currently have the same permissions) + +There is an additional, conceptual end-user that may or may not have API access: + +* (EXTERNAL) End-user / Third-party User + +Basic operations are available to any : + +* Describe Instances +* Describe Images +* Describe Volumes +* Describe Keypairs +* Create Keypair +* Delete Keypair +* Create, Upload, Delete: Buckets and Keys (Object Store) + +System Administrators/Developers/Project Manager: + +* Create, Attach, Delete Volume (Block Store) +* Launch, Reboot, Terminate Instance +* Register/Unregister Machine Image (project-wide) +* Request / Review CloudAudit Scans + +Project Manager: + +* Add and remove other users (currently no api) +* Set roles (currently no api) + +Network Administrator: + +* Change Machine Image properties (public / private) +* Change Firewall Rules, define Security Groups +* Allocate, Associate, Deassociate Public IP addresses + +Cloud Administrator/IT-Security: + +* All permissions + +Enhancements +------------ + +* SAML Token passing +* REST interfaces +* SOAP interfaces + +Wrapping the SAML token into the API calls. +Then store the UID (fetched via backchannel) into the instance metadata, providing end-to-end auditability of ownership and responsibility, without PII. + +CloudAudit APIs +--------------- + +* Request formats +* Response formats +* Stateless asynchronous queries + +CloudAudit queries may spawn long-running processes (similar to launching instances, etc.) They need to return a ReservationId in the same fashion, which can be returned in further queries for updates. +RBAC of CloudAudit API calls is critical, since detailed system information is a system vulnerability. + +Type declarations +----------------- +* Data declarations – Volumes and Objects +* System declarations – Instances + +Existing API calls to launch instances specific a single, combined “type” flag. We propose to extend this with three additional type declarations, mapping to the “Confidentiality, Integrity, Availability” classifications of FIPS 199. An example API call would look like:: + + RunInstances type=m1.large number=1 secgroup=default key=mykey confidentiality=low integrity=low availability=low + +These additional parameters would also apply to creation of block storage volumes (along with the existing parameter of ‘size’), and creation of object storage ‘buckets’. (C.I.A. classifications on a bucket would be inherited by the keys within this bucket.) + +Request Brokering +----------------- + + * Cloud Interop + * IMF Registration / PubSub + * Digital C&A + +Establishing declarative semantics for individual API calls will allow the cloud environment to seamlessly proxy these API calls to external, third-party vendors – when the requested CIA levels match. + +See related work within the Infrastructure 2.0 working group for more information on how the IMF Metadata specification could be utilized to manage registration of these vendors and their C&A credentials. + +Dirty Cloud – Hybrid Data Centers +--------------------------------- + +* CloudAudit bridge interfaces +* Anything in the ARP table + +A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network. + +This interconnect is typically a bridged VPN connection. Any machines that can be bridged into a hybrid environment in this fashion (at Layer 2) must implement a minimum version of the CloudAudit spec, such that they can be queried to provide a complete picture of the IT-sec runtime environment. + +Network discovery protocols (ARP, CDP) can be applied in this case, and existing protocols (SNMP location data, DNS LOC records) overloaded to provide CloudAudit information. + +The Details +----------- + + * Preliminary Roles Definitions + * Categorization of available API calls + * SAML assertion vocabulary + +System limits +------------- + +The following limits need to be defined and enforced: + +* Total number of instances allowed (user / project) +* Total number of instances, per instance type (user / project) +* Total number of volumes (user / project) +* Maximum size of volume +* Cumulative size of all volumes +* Total use of object storage (GB) +* Total number of Public IPs + + +Further Challenges +------------------ + * Prioritization of users / jobs in shared computing environments + * Incident response planning + * Limit launch of instances to specific security groups based on AMI + * Store AMIs in LDAP for added property control + + + diff --git a/doc/source/devguide/cloudpipe.rst b/doc/source/devguide/cloudpipe.rst new file mode 100644 index 000000000..d632a40e6 --- /dev/null +++ b/doc/source/devguide/cloudpipe.rst @@ -0,0 +1,77 @@ +.. + Copyright 2010 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. + + +.. _cloudpipe: + +Cloudpipe -- Per Project Vpns +============================= + +Cloudpipe is a method for connecting end users to their project insnances in vlan mode. + +Overview +-------- + +The support code for cloudpipe implements admin commands (via nova-manage) to automatically create a vm for a project that allows users to vpn into the private network of their project. Access to this vpn is provided through a public port on the network host for the project. This allows users to have free access to the virtual machines in their project without exposing those machines to the public internet. + +Cloudpipe Image +--------------- + +The cloudpipe image is basically just a linux instance with openvpn installed. It needs a simple script to grab user data from the metadata server, b64 decode it into a zip file, and run the autorun.sh script from inside the zip. The autorun script will configure and run openvpn to run using the data from nova. + +It is also useful to have a cron script that will periodically redownload the metadata and copy the new crl. This will keep revoked users from connecting and will disconnect any users that are connected with revoked certificates when their connection is renegotiated (every hour). + +Cloudpipe Launch +---------------- + +When you use nova-manage to launch a cloudpipe for a user, it goes through the following process: + +#. creates a keypair called -vpn and saves it in the keys directory +#. creates a security group -vpn and opens up 1194 and icmp +#. creates a cert and private key for the vpn instance and saves it in the CA/projects// directory +#. zips up the info and puts it b64 encoded as user data +#. launches an m1.tiny instance with the above settings using the flag-specified vpn image + +Vpn Access +---------- + +In vlan networking mode, the second ip in each private network is reserved for the cloudpipe instance. This gives a consistent ip to the instance so that nova-network can create forwarding rules for access from the outside world. The network for each project is given a specific high-numbered port on the public ip of the network host. This port is automatically forwarded to 1194 on the vpn instance. + +If specific high numbered ports do not work for your users, you can always allocate and associate a public ip to the instance, and then change the vpn_public_ip and vpn_public_port in the database. This will be turned into a nova-manage command or a flag soon. + + +Certificates and Revocation +--------------------------- + +If the use_project_ca flag is set (required to for cloudpipes to work securely), then each project has its own ca. This ca is used to sign the certificate for the vpn, and is also passed to the user for bundling images. When a certificate is revoked using nova-manage, a new Certificate Revocation List (crl) is generated. As long as cloudpipe has an updated crl, it will block revoked users from connecting to the vpn. + +The :mod:`cloudpipe` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.cloudpipe.pipelib + :members: + :undoc-members: + :show-inheritance: + +The :mod:`crypto` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.crypto + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/source/devguide/compute.rst b/doc/source/devguide/compute.rst new file mode 100644 index 000000000..e4c6c6ae7 --- /dev/null +++ b/doc/source/devguide/compute.rst @@ -0,0 +1,146 @@ +.. + Copyright 2010 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. + + +Virtualization Programming Guide +================================ + +This page contains the Compute Package documentation. + +Manager +------- + +Documentation for the compute manager and related files. For reading about +a specific virtualization backend, read Drivers_. + + +The :mod:`manager` Module +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.compute.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`connection` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.virt.connection + :members: + :undoc-members: + :show-inheritance: + +The :mod:`disk` Module +~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.compute.disk + :members: + :undoc-members: + :show-inheritance: + +The :mod:`images` Module +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.virt.images + :members: + :undoc-members: + :show-inheritance: + + +The :mod:`instance_types` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.compute.instance_types + :members: + :undoc-members: + :show-inheritance: + + +The :mod:`power_state` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.compute.power_state + :members: + :undoc-members: + :show-inheritance: + + +Drivers +------- + +Libvirt Implementations +~~~~~~~~~~~~~~~~~~~~~~~ + +The libvirt driver is capable of supporting KVM, QEMU, and UML. + +The :mod:`libvirt_conn` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.virt.libvirt_conn + :members: + :undoc-members: + :show-inheritance: + +XEN +~~~ + +The :mod:`xenapi` Module +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.virt.xenapi + :members: + :undoc-members: + :show-inheritance: + +FAKE +~~~~ + +.. automodule:: nova.virt.fake + :members: + :undoc-members: + :show-inheritance: + +Monitoring +---------- + +The :mod:`monitor` Module +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.compute.monitor + :members: + :undoc-members: + :show-inheritance: + + +Tests +----- + +The :mod:`compute_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.compute_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`virt_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.virt_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/devguide/database.rst b/doc/source/devguide/database.rst new file mode 100644 index 000000000..b58ea147d --- /dev/null +++ b/doc/source/devguide/database.rst @@ -0,0 +1,61 @@ +.. + Copyright 2010 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. + +Database Programming Guide +========================== + +The :mod:`api` Module +--------------------- + +.. automodule:: nova.db.api + :members: + :undoc-members: + :show-inheritance: + + +Drivers +------- + +Driver: Sqlalchemy +~~~~~~~~~~~~~~~~~~ + +The :mod:`sqlalchemy.api` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.db.sqlalchemy.api + +The :mod:`sqlalchemy.models` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.db.sqlalchemy.models + :members: + :undoc-members: + :show-inheritance: + +The :mod:`sqlalchemy.session` Module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nova.db.sqlalchemy.session + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +Tests are lacking for the db api layer and for the sqlalchemy driver. +Failures in the drivers would be dectected in other test cases, though. diff --git a/doc/source/devguide/development.environment.rst b/doc/source/devguide/development.environment.rst new file mode 100644 index 000000000..ee19ba2bf --- /dev/null +++ b/doc/source/devguide/development.environment.rst @@ -0,0 +1,23 @@ +.. + Copyright 2010 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. + +Setting up a development environment +==================================== + +:: + + TODO(anthony) diff --git a/doc/source/devguide/fakes.rst b/doc/source/devguide/fakes.rst new file mode 100644 index 000000000..5988e2ab8 --- /dev/null +++ b/doc/source/devguide/fakes.rst @@ -0,0 +1,74 @@ +.. + Copyright 2010 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. + +Fakes Programming Guide +======================= + +:: + + TODO(todd): * document general info about fakes + + +The :mod:`virt.fake` Module +--------------------------- + +.. automodule:: nova.virt.fake + :members: + :undoc-members: + :show-inheritance: + :noindex: + +The :mod:`fakeldap` Module +-------------------------- + +.. automodule:: nova.auth.fakeldap + :members: + :undoc-members: + :show-inheritance: + +The :mod:`fakerabbit` Module +---------------------------- + +.. automodule:: nova.fakerabbit + :members: + :undoc-members: + :show-inheritance: + +The :class:`FakeAOEDriver` Class +-------------------------------- + +.. autoclass:: nova.volume.driver.FakeAOEDriver + :members: + :undoc-members: + :show-inheritance: + +The :class:`service_unittest.FakeManager` Class +----------------------------------------------- + +.. autoclass:: nova.tests.service_unittest.FakeManager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`api.openstack.fakes` Module +------------------------------------------------ + +.. automodule:: nova.tests.api.openstack.fakes + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/source/devguide/glance.rst b/doc/source/devguide/glance.rst new file mode 100644 index 000000000..3d0f4ebec --- /dev/null +++ b/doc/source/devguide/glance.rst @@ -0,0 +1,27 @@ +.. + Copyright 2010 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. + +Glance Integration Programming Guide +==================================== + +The :mod:`image.service` Module +------------------------------- + +.. automodule:: nova.image.service + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/devguide/index.rst b/doc/source/devguide/index.rst new file mode 100644 index 000000000..6232a3181 --- /dev/null +++ b/doc/source/devguide/index.rst @@ -0,0 +1,60 @@ +.. + Copyright 2010 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. + +Nova Development Guide +====================== + +Nova is written in python. + +Prerequisites +------------- +.. toctree:: + :maxdepth: 1 + + ../concepts.and.introduction + architecture + development.environment + + +Contents +-------- + +.. toctree:: + :maxdepth: 1 + + services + database + volume + compute + network + auth + api + scheduler + fakes + nova + cloudpipe + objectstore + glance + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/doc/source/devguide/network.rst b/doc/source/devguide/network.rst new file mode 100644 index 000000000..9426ece82 --- /dev/null +++ b/doc/source/devguide/network.rst @@ -0,0 +1,124 @@ +.. + Copyright 2010 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. + +Networking Programming Guide +============================ + +:: + + TODO(todd): * document hardware specific commands (maybe in admin guide?) + * document a map between flags and managers/backends + +The :mod:`Manager` module +------------------------- + +.. automodule:: nova.network.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`LinuxNet` driver +-------------------------- + +.. automodule:: nova.network.linux_net + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`network_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.network_unittest + :members: + :undoc-members: + :show-inheritance: + + +legacy docs +----------- + +The nova networking components manage private networks, public IP addressing, VPN connectivity, and firewall rules. + +Components +---------- +There are several key components: + +* NetworkController (Manages address and vlan allocation) +* RoutingNode (NATs public IPs to private IPs, and enforces firewall rules) +* AddressingNode (runs DHCP services for private networks) +* BridgingNode (a subclass of the basic nova ComputeNode) +* TunnelingNode (provides VPN connectivity) + +Component Diagram +----------------- + +Overview:: + + (PUBLIC INTERNET) + | \ + / \ / \ + [RoutingNode] ... [RN] [TunnelingNode] ... [TN] + | \ / | | + | < AMQP > | | + [AddressingNode]-- (VLAN) ... | (VLAN)... (VLAN) --- [AddressingNode] + \ | \ / + / \ / \ / \ / \ + [BridgingNode] ... [BridgingNode] + + + [NetworkController] ... [NetworkController] + \ / + < AMQP > + | + / \ + [CloudController]...[CloudController] + +While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently). + +State Model +----------- +Network State consists of the following facts: + +* VLAN assignment (to a project) +* Private Subnet assignment (to a security group) in a VLAN +* Private IP assignments (to running instances) +* Public IP allocations (to a project) +* Public IP associations (to a private IP / running instance) + +While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed "fact engine" for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash. + +The Public Traffic Path +----------------------- + +Public Traffic:: + + (PUBLIC INTERNET) + | + <-- [RoutingNode] + | + [AddressingNode] --> | + ( VLAN ) + | <-- [BridgingNode] + | + + +The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance. + +Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details). diff --git a/doc/source/devguide/nova.rst b/doc/source/devguide/nova.rst new file mode 100644 index 000000000..58125dc80 --- /dev/null +++ b/doc/source/devguide/nova.rst @@ -0,0 +1,190 @@ +.. + Copyright 2010 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. + +Nova Libraries Programming Guide +================================ + +The :mod:`adminclient` Module +----------------------------- + +.. automodule:: nova.adminclient + :members: + :undoc-members: + :show-inheritance: + +The :mod:`context` Module +------------------------- + +.. automodule:: nova.context + :members: + :undoc-members: + :show-inheritance: + +The :mod:`exception` Module +--------------------------- + +.. automodule:: nova.exception + :members: + :undoc-members: + :show-inheritance: + +The :mod:`flags` Module +----------------------- + +.. automodule:: nova.flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`process` Module +------------------------- + +.. automodule:: nova.process + :members: + :undoc-members: + :show-inheritance: + +The :mod:`rpc` Module +--------------------- + +.. automodule:: nova.rpc + :members: + :undoc-members: + :show-inheritance: + +The :mod:`server` Module +------------------------ + +.. automodule:: nova.server + :members: + :undoc-members: + :show-inheritance: + +The :mod:`test` Module +---------------------- + +.. automodule:: nova.test + :members: + :undoc-members: + :show-inheritance: + +The :mod:`twistd` Module +------------------------ + +.. automodule:: nova.twistd + :members: + :undoc-members: + :show-inheritance: + +The :mod:`utils` Module +----------------------- + +.. automodule:: nova.utils + :members: + :undoc-members: + :show-inheritance: + +The :mod:`validate` Module +-------------------------- + +.. automodule:: nova.validate + :members: + :undoc-members: + :show-inheritance: + +The :mod:`wsgi` Module +---------------------- + +.. automodule:: nova.wsgi + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`declare_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.declare_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`fake_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.fake_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`flags_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.flags_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`process_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.process_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`real_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.real_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`rpc_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.rpc_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`runtime_flags` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.runtime_flags + :members: + :undoc-members: + :show-inheritance: + +The :mod:`twistd_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.twistd_unittest + :members: + :undoc-members: + :show-inheritance: + +The :mod:`validator_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.validator_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/devguide/objectstore.rst b/doc/source/devguide/objectstore.rst new file mode 100644 index 000000000..4087b5dd0 --- /dev/null +++ b/doc/source/devguide/objectstore.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 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. + +Objectstore Programming Guide +============================= + +The :mod:`handler` Module +------------------------- + +.. automodule:: nova.objectstore.handler + :members: + :undoc-members: + :show-inheritance: + +The :mod:`bucket` Module +------------------------ + +.. automodule:: nova.objectstore.bucket + :members: + :undoc-members: + :show-inheritance: + +The :mod:`stored` Module +------------------------ + +.. automodule:: nova.objectstore.stored + :members: + :undoc-members: + :show-inheritance: + +The :mod:`image` Module +----------------------- + +.. automodule:: nova.objectstore.image + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`objectstore_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.objectstore_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/devguide/scheduler.rst b/doc/source/devguide/scheduler.rst new file mode 100644 index 000000000..df820c2f2 --- /dev/null +++ b/doc/source/devguide/scheduler.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 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. + +Scheduler Programming Guide +=========================== + +The :mod:`manager` Module +------------------------- + +.. automodule:: nova.scheduler.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`driver` Module +------------------------ + +.. automodule:: nova.scheduler.driver + :members: + :undoc-members: + :show-inheritance: + +The :mod:`chance` Module +------------------------ + +.. automodule:: nova.scheduler.chance + :members: + :undoc-members: + :show-inheritance: + +The :mod:`simple` Module +------------------------ + +.. automodule:: nova.scheduler.simple + :members: + :undoc-members: + :show-inheritance: + +Tests +----- + +The :mod:`scheduler_unittest` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.tests.scheduler_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/devguide/services.rst b/doc/source/devguide/services.rst new file mode 100644 index 000000000..517a51901 --- /dev/null +++ b/doc/source/devguide/services.rst @@ -0,0 +1,72 @@ +.. + Copyright 2010 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. + +.. _service_manager_driver: + +Services Managers and Drivers +============================= + +The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier. + +Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver. + +Service +------- + +A service is a very thin wrapper around a Manager object. It exposes the manager's public methods to other components of the system via rpc. It will report state periodically to the database and is responsible for initiating any periodic tasts that need to be executed on a given host. + +The :mod:`service` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.service + :members: + :undoc-members: + :show-inheritance: + +Manager +------- + +Managers are responsible for a certain aspect of the sytem. It is a logical grouping of code relating to a portion of the system. In general other components should be using the manager to make changes to the components that it is responsible for. + +For example, other components that need to deal with volumes in some way, should do so by calling methods on the VolumeManager instead of directly changing fields in the database. This allows us to keep all of the code relating to volumes in the same place. + +We have adopted a basic strategy of Smart managers and dumb data, which means rather than attaching methods to data objects, components should call manager methods that act on the data. + +Methods on managers that can be executed locally should be called directly. If a particular method must execute on a remote host, this should be done via rpc to the service that wraps the manager + +Managers should be responsible for most of the db access, and non-implementation specific data. Anything implementation specific that can't be generalized should be done by the Driver. + +In general, we prefer to have one manager with multiple drivers for different implementations, but sometimes it makes sense to have multiple managers. You can think of it this way: Abstract different overall strategies at the manager level(FlatNetwork vs VlanNetwork), and different implementations at the driver level(LinuxNetDriver vs CiscoNetDriver). + +Managers will often provide methods for initial setup of a host or periodic tasksto a wrapping service. + +The :mod:`manager` Module +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: nova.manager + :members: + :undoc-members: + :show-inheritance: + +Driver +------ + +A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver. + +Drivers should minimize touching the database, although it is currently acceptable for implementation specific data. This may be reconsidered at some point. + +It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement. diff --git a/doc/source/devguide/volume.rst b/doc/source/devguide/volume.rst new file mode 100644 index 000000000..39b33a500 --- /dev/null +++ b/doc/source/devguide/volume.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 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. + +Volume Programming Guide +========================= + +:: + + TODO(todd): rework after iSCSI merge (see 'Old Docs') + + +The :mod:`nova.volume.manager` Module +------------------------------------- + +.. automodule:: nova.volume.manager + :members: + :undoc-members: + :show-inheritance: + +The :mod:`nova.volume.driver` Module +------------------------------------- + +.. automodule:: nova.volume.driver + :members: + :undoc-members: + :show-inheritance: + :exclude-members: FakeAOEDriver + +Tests +----- + +.. automodule:: nova.tests.volume_unittest + :members: + :undoc-members: + :show-inheritance: + +Old Docs +-------- + +Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. + +Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. + +AoE exports are numbered according to a "shelf and blade" syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.) + +The underlying volumes are LVM logical volumes, created on demand within a single large volume group. + + diff --git a/doc/source/fakes.rst b/doc/source/fakes.rst deleted file mode 100644 index 5988e2ab8..000000000 --- a/doc/source/fakes.rst +++ /dev/null @@ -1,74 +0,0 @@ -.. - Copyright 2010 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. - -Fakes Programming Guide -======================= - -:: - - TODO(todd): * document general info about fakes - - -The :mod:`virt.fake` Module ---------------------------- - -.. automodule:: nova.virt.fake - :members: - :undoc-members: - :show-inheritance: - :noindex: - -The :mod:`fakeldap` Module --------------------------- - -.. automodule:: nova.auth.fakeldap - :members: - :undoc-members: - :show-inheritance: - -The :mod:`fakerabbit` Module ----------------------------- - -.. automodule:: nova.fakerabbit - :members: - :undoc-members: - :show-inheritance: - -The :class:`FakeAOEDriver` Class --------------------------------- - -.. autoclass:: nova.volume.driver.FakeAOEDriver - :members: - :undoc-members: - :show-inheritance: - -The :class:`service_unittest.FakeManager` Class ------------------------------------------------ - -.. autoclass:: nova.tests.service_unittest.FakeManager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api.openstack.fakes` Module ------------------------------------------------- - -.. automodule:: nova.tests.api.openstack.fakes - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/source/flags.rst b/doc/source/flags.rst deleted file mode 100644 index 4c950aa88..000000000 --- a/doc/source/flags.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. - Copyright 2010 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/getting.started.rst b/doc/source/getting.started.rst deleted file mode 100644 index 79d2cf204..000000000 --- a/doc/source/getting.started.rst +++ /dev/null @@ -1,167 +0,0 @@ -.. - Copyright 2010 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. - -Getting Started with Nova -========================= - -This code base is continually changing, so dependencies also change. If you -encounter any problems, see the :doc:`reaching.out` page. -The `contrib/nova.sh` script should be kept up to date, and may be a good -resource to review when debugging. - -The purpose of this document is to get a system installed that you can use to -test your setup assumptions. Working from this base installtion you can -tweak configurations and work with different flags to monitor interaction with -your hardware, network, and other factors that will allow you to determine -suitability for your deployment. After following this setup method, you should -be able to experiment with different managers, drivers, and flags to get the -best performance. - -Dependencies ------------- - -Related servers we rely on - -* **RabbitMQ**: messaging queue, used for all communication between components - -Optional servers - -* **OpenLDAP**: By default, the auth server uses the RDBMS-backed datastore by - setting FLAGS.auth_driver to `nova.auth.dbdriver.DbDriver`. But OpenLDAP - (or LDAP) could be configured by specifying `nova.auth.ldapdriver.LdapDriver`. - There is a script in the sources (`nova/auth/slap.sh`) to install a very basic - openldap server on ubuntu. -* **ReDIS**: There is a fake ldap auth driver - `nova.auth.ldapdriver.FakeLdapDriver` that backends to redis. This was - created for testing ldap implementation on systems that don't have an easy - means to install ldap. -* **MySQL**: Either MySQL or another database supported by sqlalchemy needs to - be avilable. Currently, only sqlite3 an mysql have been tested. - -Python libraries that we use (from pip-requires): - -.. literalinclude:: ../../tools/pip-requires - -Other libraries: - -* **XenAPI**: Needed only for Xen Cloud Platform or XenServer support. Available - from http://wiki.xensource.com/xenwiki/XCP_SDK or - http://community.citrix.com/cdn/xs/sdks. - -External unix tools that are required: - -* iptables -* ebtables -* gawk -* curl -* kvm -* libvirt -* dnsmasq -* vlan -* open-iscsi and iscsitarget (if you use iscsi volumes) -* aoetools and vblade-persist (if you use aoe-volumes) - -Nova uses cutting-edge versions of many packages. There are ubuntu packages in -the nova-core ppa. You can use add this ppa to your sources list on an ubuntu -machine with the following commands:: - - sudo apt-get install -y python-software-properties - sudo add-apt-repository ppa:nova-core/ppa - -Recommended ------------ - -* euca2ools: python implementation of aws ec2-tools and ami tools -* build tornado to use C module for evented section - - -Installation --------------- - -You can install from packages for your particular Linux distribution if they are -available. Otherwise you can install from source by checking out the source -files from the `Nova Source Code Repository `_ -and running:: - - python setup.py install - -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`. - -* Create a volume group (you can use an actual disk for the volume group as - well):: - - # This creates a 1GB file to create volumes out of - dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10 - losetup --show -f MY_FILE_PATH - # replace /dev/loop0 below with whatever losetup returns - # nova-volumes is the default for the --volume_group flag - vgcreate nova-volumes /dev/loop0 - - -Configuring Nova -~~~~~~~~~~~~~~~~ - -Configuration of the entire system is performed through python-gflags. The -best way to track configuration is through the use of a flagfile. - -A flagfile is specified with the ``--flagfile=FILEPATH`` argument to the binary -when you launch it. Flagfiles for nova are typically stored in -``/etc/nova/nova.conf``, and flags specific to a certain program are stored in -``/etc/nova/nova-COMMAND.conf``. Each configuration file can include another -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. - -A sample configuration to test the system follows:: - - --verbose - --nodaemon - --FAKE_subdomain=ec2 - --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`. - -Launch supporting services - -* rabbitmq -* redis (optional) -* mysql (optional) - -Launch nova components, each should have ``--flagfile=/etc/nova/nova.conf`` - -* nova-api -* nova-compute -* nova-objectstore -* nova-volume -* nova-scheduler diff --git a/doc/source/glance.rst b/doc/source/glance.rst deleted file mode 100644 index 3d0f4ebec..000000000 --- a/doc/source/glance.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - Copyright 2010 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. - -Glance Integration Programming Guide -==================================== - -The :mod:`image.service` Module -------------------------------- - -.. automodule:: nova.image.service - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/index.rst b/doc/source/index.rst index 9a62570ed..0dcc1945e 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -43,8 +43,8 @@ Contents :maxdepth: 1 concepts.and.introduction - administration.guide - development.guide + adminguide/index + devguide/index reaching.out diff --git a/doc/source/modules.rst b/doc/source/modules.rst deleted file mode 100644 index 9b31664b6..000000000 --- a/doc/source/modules.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. - Copyright 2010 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. - -Nova Documentation -================== - -This page contains the Nova Modules documentation. - -Modules: --------- - -.. toctree:: - :maxdepth: 4 - - auth - compute - fakes - nova - volume - -Removed: --------- - -* endpoint diff --git a/doc/source/monitoring.rst b/doc/source/monitoring.rst deleted file mode 100644 index e7766a6e7..000000000 --- a/doc/source/monitoring.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - Copyright 2010 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. - -Monitoring -========== - -* components -* throughput -* exceptions -* hardware - -* ganglia -* syslog diff --git a/doc/source/multi.node.install.rst b/doc/source/multi.node.install.rst deleted file mode 100644 index 1d484e779..000000000 --- a/doc/source/multi.node.install.rst +++ /dev/null @@ -1,57 +0,0 @@ -.. - Copyright 2010 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. - -Multi-Node Nova -=============== - -When you move beyond evaluating the technology and into building an actual -production environemnt, 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. - -Bare-metal Provisioning ------------------------ - -To install the base operating system you can use PXE booting. - -Deployment Technologies ------------------------ - -Once you have machines with a base operating system installation, you can deploy -code and configuration with your favorite tools: - -* Puppet -* Chef - -Types of Hosts --------------- - -A single machine in your cluster can act as one or more of the following types -of host: - -Nova Services - -* Network -* Compute -* Volume -* API -* Objectstore - -Other supporting services - -* Datastore -* Message Queue diff --git a/doc/source/network.rst b/doc/source/network.rst deleted file mode 100644 index 9426ece82..000000000 --- a/doc/source/network.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. - Copyright 2010 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. - -Networking Programming Guide -============================ - -:: - - TODO(todd): * document hardware specific commands (maybe in admin guide?) - * document a map between flags and managers/backends - -The :mod:`Manager` module -------------------------- - -.. automodule:: nova.network.manager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`LinuxNet` driver --------------------------- - -.. automodule:: nova.network.linux_net - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`network_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.network_unittest - :members: - :undoc-members: - :show-inheritance: - - -legacy docs ------------ - -The nova networking components manage private networks, public IP addressing, VPN connectivity, and firewall rules. - -Components ----------- -There are several key components: - -* NetworkController (Manages address and vlan allocation) -* RoutingNode (NATs public IPs to private IPs, and enforces firewall rules) -* AddressingNode (runs DHCP services for private networks) -* BridgingNode (a subclass of the basic nova ComputeNode) -* TunnelingNode (provides VPN connectivity) - -Component Diagram ------------------ - -Overview:: - - (PUBLIC INTERNET) - | \ - / \ / \ - [RoutingNode] ... [RN] [TunnelingNode] ... [TN] - | \ / | | - | < AMQP > | | - [AddressingNode]-- (VLAN) ... | (VLAN)... (VLAN) --- [AddressingNode] - \ | \ / - / \ / \ / \ / \ - [BridgingNode] ... [BridgingNode] - - - [NetworkController] ... [NetworkController] - \ / - < AMQP > - | - / \ - [CloudController]...[CloudController] - -While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently). - -State Model ------------ -Network State consists of the following facts: - -* VLAN assignment (to a project) -* Private Subnet assignment (to a security group) in a VLAN -* Private IP assignments (to running instances) -* Public IP allocations (to a project) -* Public IP associations (to a private IP / running instance) - -While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed "fact engine" for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash. - -The Public Traffic Path ------------------------ - -Public Traffic:: - - (PUBLIC INTERNET) - | - <-- [RoutingNode] - | - [AddressingNode] --> | - ( VLAN ) - | <-- [BridgingNode] - | - - -The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance. - -Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details). diff --git a/doc/source/nova.manage.rst b/doc/source/nova.manage.rst deleted file mode 100644 index eeb463f52..000000000 --- a/doc/source/nova.manage.rst +++ /dev/null @@ -1,200 +0,0 @@ -.. - Copyright 2010 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. - - -nova-manage -=========== - -Introduction -~~~~~~~~~~~~ - -The nova-manage command is used to perform many essential functions for -administration and ongoing maintenance of nova, such as user creation, -vpn management, and much more. - -The standard pattern for executing a nova-manage command is: - -``nova-manage []`` - -For example, to obtain a list of all projects: - -``nova-manage project list`` - -You can run without arguments to see a list of available command categories: - -``nova-manage`` - -You can run with a category argument to see a list of all commands in that -category: - -``nova-manage user`` - -User Maintenance -~~~~~~~~~~~~~~~~ - -Users, including admins, are created through the ``user`` commands. - -* user admin: creates a new admin and prints exports - * arguments: name [access] [secret] -* user create: creates a new user and prints exports - * arguments: name [access] [secret] -* user delete: deletes an existing user - * arguments: name -* user exports: prints access and secrets for user in export format - * arguments: name -* user list: lists all users - * arguments: none -* user modify: update a users keys & admin flag - * arguments: accesskey secretkey admin - * leave any field blank to ignore it, admin should be 'T', 'F', or blank - -Project Maintenance -~~~~~~~~~~~~~~~~~~~ - -* project add: Adds user to project - * arguments: project user -* project create: Creates a new project - * arguments: name project_manager [description] -* project delete: Deletes an existing project - * arguments: project_id -* project environment: Exports environment variables to an sourcable file - * arguments: project_id user_id [filename='novarc] -* project list: lists all projects - * arguments: none -* project quota: Set or display quotas for project - * arguments: project_id [key] [value] -* project remove: Removes user from project - * arguments: project user -* project scrub: Deletes data associated with project - * arguments: project -* project zipfile: Exports credentials for project to a zip file - * arguments: project_id user_id [filename='nova.zip] - -User Role Management -~~~~~~~~~~~~~~~~~~~~ - -* role add: adds role to user - * if project is specified, adds project specific role - * arguments: user, role [project] -* role has: checks to see if user has role - * if project is specified, returns True if user has - the global role and the project role - * arguments: user, role [project] -* role remove: removes role from user - * if project is specified, removes project specific role - * arguments: user, role [project] - - -Nova Shell -~~~~~~~~~~ - -* shell bpython - * start a new bpython shell -* shell ipython - * start a new ipython shell -* shell python - * start a new python shell -* shell run - * ??? -* shell script: Runs the script from the specifed path with flags set properly. - * arguments: path - -VPN Management -~~~~~~~~~~~~~~ - -* vpn list: Print a listing of the VPNs for all projects. - * arguments: none -* vpn run: Start the VPN for a given project. - * arguments: project -* vpn spawn: Run all VPNs. - * arguments: none - - -Floating IP Management -~~~~~~~~~~~~~~~~~~~~~~ - -* floating create: Creates floating ips for host by range - * arguments: host ip_range -* floating delete: Deletes floating ips by range - * arguments: range -* floating list: Prints a listing of all floating ips - * arguments: none - -Network Management -~~~~~~~~~~~~~~~~~~ - -* network create: Creates fixed ips for host by range - * arguments: [fixed_range=FLAG], [num_networks=FLAG], - [network_size=FLAG], [vlan_start=FLAG], - [vpn_start=FLAG] - - -Concept: Flags --------------- - -python-gflags - - -Concept: Plugins ----------------- - -* Managers/Drivers: utils.import_object from string flag -* virt/connections: conditional loading from string flag -* db: LazyPluggable via string flag -* auth_manager: utils.import_class based on string flag -* Volumes: moving to pluggable driver instead of manager -* Network: pluggable managers -* Compute: same driver used, but pluggable at connection - - -Concept: IPC/RPC ----------------- - -Rabbit! - - -Concept: Fakes --------------- - -* auth -* ldap - - -Concept: Scheduler ------------------- - -* simple -* random - - -Concept: Security Groups ------------------------- - -Security groups - - -Concept: Certificate Authority ------------------------------- - -Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns ` and decrypting bundled images. - - -Concept: Images ---------------- - -* launching -* bundling diff --git a/doc/source/nova.rst b/doc/source/nova.rst deleted file mode 100644 index 58125dc80..000000000 --- a/doc/source/nova.rst +++ /dev/null @@ -1,190 +0,0 @@ -.. - Copyright 2010 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. - -Nova Libraries Programming Guide -================================ - -The :mod:`adminclient` Module ------------------------------ - -.. automodule:: nova.adminclient - :members: - :undoc-members: - :show-inheritance: - -The :mod:`context` Module -------------------------- - -.. automodule:: nova.context - :members: - :undoc-members: - :show-inheritance: - -The :mod:`exception` Module ---------------------------- - -.. automodule:: nova.exception - :members: - :undoc-members: - :show-inheritance: - -The :mod:`flags` Module ------------------------ - -.. automodule:: nova.flags - :members: - :undoc-members: - :show-inheritance: - -The :mod:`process` Module -------------------------- - -.. automodule:: nova.process - :members: - :undoc-members: - :show-inheritance: - -The :mod:`rpc` Module ---------------------- - -.. automodule:: nova.rpc - :members: - :undoc-members: - :show-inheritance: - -The :mod:`server` Module ------------------------- - -.. automodule:: nova.server - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test` Module ----------------------- - -.. automodule:: nova.test - :members: - :undoc-members: - :show-inheritance: - -The :mod:`twistd` Module ------------------------- - -.. automodule:: nova.twistd - :members: - :undoc-members: - :show-inheritance: - -The :mod:`utils` Module ------------------------ - -.. automodule:: nova.utils - :members: - :undoc-members: - :show-inheritance: - -The :mod:`validate` Module --------------------------- - -.. automodule:: nova.validate - :members: - :undoc-members: - :show-inheritance: - -The :mod:`wsgi` Module ----------------------- - -.. automodule:: nova.wsgi - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`declare_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.declare_flags - :members: - :undoc-members: - :show-inheritance: - -The :mod:`fake_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.fake_flags - :members: - :undoc-members: - :show-inheritance: - -The :mod:`flags_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.flags_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`process_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.process_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`real_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.real_flags - :members: - :undoc-members: - :show-inheritance: - -The :mod:`rpc_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.rpc_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`runtime_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.runtime_flags - :members: - :undoc-members: - :show-inheritance: - -The :mod:`twistd_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.twistd_unittest - :members: - :undoc-members: - :show-inheritance: - -The :mod:`validator_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.validator_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/objectstore.rst b/doc/source/objectstore.rst deleted file mode 100644 index 4087b5dd0..000000000 --- a/doc/source/objectstore.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - Copyright 2010 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. - -Objectstore Programming Guide -============================= - -The :mod:`handler` Module -------------------------- - -.. automodule:: nova.objectstore.handler - :members: - :undoc-members: - :show-inheritance: - -The :mod:`bucket` Module ------------------------- - -.. automodule:: nova.objectstore.bucket - :members: - :undoc-members: - :show-inheritance: - -The :mod:`stored` Module ------------------------- - -.. automodule:: nova.objectstore.stored - :members: - :undoc-members: - :show-inheritance: - -The :mod:`image` Module ------------------------ - -.. automodule:: nova.objectstore.image - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`objectstore_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.objectstore_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst deleted file mode 100644 index 511ed2483..000000000 --- a/doc/source/quickstart.rst +++ /dev/null @@ -1,104 +0,0 @@ -.. - Copyright 2010 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. - -Nova Quickstart -=============== - -:: - - TODO(todd): * Document the assumptions about pluggable interfaces - (sqlite3 instead of mysql, etc) - * Document env vars that can change things - (USE_MYSQL, HOST_IP) - - -The `contrib/novascript.sh` file in the source distribution is a script that -will quickly set up nova to run on a single machine. It is tested against -Ubuntu only, but other distributions are forthcoming. - -Usage ------ - -Unless you want to spend a lot of time fiddling with permissions and sudoers, -you should probably run nova as root. - -:: - - sudo -i - -If you are concerned about security, nova runs just fine inside a virtual -machine. - -Use the script to install and run the current trunk. You can also specify a -specific branch by putting `lp:~someone/nova/some-branch` after the branch -command - -:: - - ./nova.sh branch - ./nova.sh install - ./nova.sh run - -The run command will drop you into a screen session with all of the workers -running in different windows You can use eucatools to run commands against the -cloud. - -:: - - euca-add-keypair test > test.pem - euca-run-instances -k test -t m1.tiny ami-tiny - euca-describe-instances - -To see output from the various workers, switch screen windows - -:: - - " - -will give you a list of running windows. - -When the instance is running, you should be able to ssh to it. - -:: - - chmod 600 test.pem - ssh -i test.pem root@10.0.0.3 - -When you exit screen - -:: - - - -nova will terminate. It may take a while for nova to finish cleaning up. If -you exit the process before it is done because there were some problems in your -build, you may have to clean up the nova processes manually. If you had any -instances running, you can attempt to kill them through the api: - -:: - - ./nova.sh terminate - -Then you can destroy the screen: - -:: - - ./nova.sh clean - -If things get particularly messed up, you might need to do some more intense -cleanup. Be careful, the following command will manually destroy all runnning -virsh instances and attempt to delete all vlans and bridges. diff --git a/doc/source/scheduler.rst b/doc/source/scheduler.rst deleted file mode 100644 index df820c2f2..000000000 --- a/doc/source/scheduler.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - Copyright 2010 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. - -Scheduler Programming Guide -=========================== - -The :mod:`manager` Module -------------------------- - -.. automodule:: nova.scheduler.manager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`driver` Module ------------------------- - -.. automodule:: nova.scheduler.driver - :members: - :undoc-members: - :show-inheritance: - -The :mod:`chance` Module ------------------------- - -.. automodule:: nova.scheduler.chance - :members: - :undoc-members: - :show-inheritance: - -The :mod:`simple` Module ------------------------- - -.. automodule:: nova.scheduler.simple - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`scheduler_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.scheduler_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/services.rst b/doc/source/services.rst deleted file mode 100644 index 517a51901..000000000 --- a/doc/source/services.rst +++ /dev/null @@ -1,72 +0,0 @@ -.. - Copyright 2010 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. - -.. _service_manager_driver: - -Services Managers and Drivers -============================= - -The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier. - -Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver. - -Service -------- - -A service is a very thin wrapper around a Manager object. It exposes the manager's public methods to other components of the system via rpc. It will report state periodically to the database and is responsible for initiating any periodic tasts that need to be executed on a given host. - -The :mod:`service` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.service - :members: - :undoc-members: - :show-inheritance: - -Manager -------- - -Managers are responsible for a certain aspect of the sytem. It is a logical grouping of code relating to a portion of the system. In general other components should be using the manager to make changes to the components that it is responsible for. - -For example, other components that need to deal with volumes in some way, should do so by calling methods on the VolumeManager instead of directly changing fields in the database. This allows us to keep all of the code relating to volumes in the same place. - -We have adopted a basic strategy of Smart managers and dumb data, which means rather than attaching methods to data objects, components should call manager methods that act on the data. - -Methods on managers that can be executed locally should be called directly. If a particular method must execute on a remote host, this should be done via rpc to the service that wraps the manager - -Managers should be responsible for most of the db access, and non-implementation specific data. Anything implementation specific that can't be generalized should be done by the Driver. - -In general, we prefer to have one manager with multiple drivers for different implementations, but sometimes it makes sense to have multiple managers. You can think of it this way: Abstract different overall strategies at the manager level(FlatNetwork vs VlanNetwork), and different implementations at the driver level(LinuxNetDriver vs CiscoNetDriver). - -Managers will often provide methods for initial setup of a host or periodic tasksto a wrapping service. - -The :mod:`manager` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.manager - :members: - :undoc-members: - :show-inheritance: - -Driver ------- - -A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver. - -Drivers should minimize touching the database, although it is currently acceptable for implementation specific data. This may be reconsidered at some point. - -It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement. diff --git a/doc/source/volume.rst b/doc/source/volume.rst deleted file mode 100644 index 39b33a500..000000000 --- a/doc/source/volume.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. - Copyright 2010 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. - -Volume Programming Guide -========================= - -:: - - TODO(todd): rework after iSCSI merge (see 'Old Docs') - - -The :mod:`nova.volume.manager` Module -------------------------------------- - -.. automodule:: nova.volume.manager - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.volume.driver` Module -------------------------------------- - -.. automodule:: nova.volume.driver - :members: - :undoc-members: - :show-inheritance: - :exclude-members: FakeAOEDriver - -Tests ------ - -.. automodule:: nova.tests.volume_unittest - :members: - :undoc-members: - :show-inheritance: - -Old Docs --------- - -Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. - -Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. - -AoE exports are numbered according to a "shelf and blade" syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.) - -The underlying volumes are LVM logical volumes, created on demand within a single large volume group. - - -- cgit From 990f4451e7779654188afa514baef270182f8697 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 5 Nov 2010 14:09:36 -0400 Subject: update types of services that may run on machines. --- doc/source/adminguide/getting.started.rst | 1 + doc/source/adminguide/multi.node.install.rst | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/source/adminguide/getting.started.rst b/doc/source/adminguide/getting.started.rst index 65ba2d57e..1a5e913ce 100644 --- a/doc/source/adminguide/getting.started.rst +++ b/doc/source/adminguide/getting.started.rst @@ -157,6 +157,7 @@ Launch supporting services * rabbitmq * redis (optional) * mysql (optional) +* openldap (optional) Launch nova components, each should have ``--flagfile=/etc/nova/nova.conf`` diff --git a/doc/source/adminguide/multi.node.install.rst b/doc/source/adminguide/multi.node.install.rst index 1d484e779..5ea0b6038 100644 --- a/doc/source/adminguide/multi.node.install.rst +++ b/doc/source/adminguide/multi.node.install.rst @@ -53,5 +53,6 @@ Nova Services Other supporting services -* Datastore * Message Queue +* Database (optional) +* Authentication database (optional) -- cgit From f9bd8f41807a27d62b538707b9aaff44746d8933 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 5 Nov 2010 14:30:46 -0400 Subject: Change order of secions so puppeting is last, add more initial setup tasks. --- doc/source/adminguide/multi.node.install.rst | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/doc/source/adminguide/multi.node.install.rst b/doc/source/adminguide/multi.node.install.rst index 5ea0b6038..eaf8dd966 100644 --- a/doc/source/adminguide/multi.node.install.rst +++ b/doc/source/adminguide/multi.node.install.rst @@ -28,15 +28,6 @@ Bare-metal Provisioning To install the base operating system you can use PXE booting. -Deployment Technologies ------------------------ - -Once you have machines with a base operating system installation, you can deploy -code and configuration with your favorite tools: - -* Puppet -* Chef - Types of Hosts -------------- @@ -56,3 +47,19 @@ Other supporting services * Message Queue * Database (optional) * Authentication database (optional) + +Initial Setup +------------- + +* Networking +* Cloudadmin User Creation + +Deployment Technologies +----------------------- + +Once you have machines with a base operating system installation, you can deploy +code and configuration with your favorite tools to specify which machines in +your cluster have which roles: + +* Puppet +* Chef -- cgit From 0a4785be35bf1fc66e41b7565edf5e3936b70673 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 11:56:12 -0700 Subject: additions to home page --- doc/source/index.rst | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/doc/source/index.rst b/doc/source/index.rst index 0dcc1945e..5dec404ef 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -27,6 +27,7 @@ Nova is written with the following design guidelines in mind: * **Fault-Tollerant**: Isloated processes avoid cascading failures * **Recoverable**: Failures should be easy to diagnose, debug, and rectify * **Open Standards**: Be a reference implementation for a community-driven api +* **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 @@ -47,6 +48,115 @@ Contents devguide/index reaching.out +Recommended System Configuration +================================ + +Although Nova can be run on a variety of system architectures, for most users the following will be simplest: + +* Ubuntu Lucid +* 10GB Hard Disk Space +* 512MB RAM + +For development, Nova can run from within a VM. + +Quickstart +========== + +To make getting started with Nova easier, we provide a setup script that makes it easy to download and run the most recent version of Nova on your local machine. + +* sudo -i # become root +* cd # go to home directory +* git clone git://github.com/vishvananda/novascript.git +* cd novascript + +Inside this directory, you will find nova.sh, which is a utility designed to assist with getting your development environment up and running. + +Use nova.sh to install and run the current trunk. You can also specify a specific branch by putting lp:~someone/nova/some-branch after the branch command + +* ./nova.sh branch +* ./nova.sh install +* ./nova.sh run + +The run command will drop you into a screen session with all of the workers running in different windows You can use eucatools to run commands against the cloud. + +* euca-add-keypair test > test.pem +* euca-run-instances -k test -t m1.tiny ami-tiny +* euca-describe-instances + +To see output from the various workers, switch screen windows + +* " + +will give you a list of running windows. + +When the instance is running, you should be able to ssh to it. + +* chmod 600 test.pem +* ssh -i test.pem root@10.0.0.3 + +When you exit screen + +* + +nova will terminate. It may take a while for nova to finish cleaning up. If you exit the process before it is done because there were some problems in your build, you may have to clean up the nova processes manually. If you had any instances running, you can attempt to kill them through the api: + +* ./nova.sh terminate + +Then you can destroy the screen: + +* ./nova.sh clean + +If things get particularly messed up, you might need to do some more intense cleanup. Be careful, the following command will manually destroy all runnning virsh instances and attempt to delete all vlans and bridges. + +* ./nova.sh scrub + +You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do + +* ./nova.sh run + +to run nova after the first install. The database should be cleaned up on each run. + +Notes +----- + +The script starts nova-volume in fake mode, so it will not create any actual volumes. + +if you want to USE_VENV because you have different versions of python packages on your system that you want to keep, you should run install before branch: + +* ./nova.sh install +* ./nova.sh branch +* ./nova.sh run + +A sample image should be downloaded by the script, but if necessary you can download it by hand: + +* wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz + +untar the file to create a usable images directory + +* tar -zxf /path/to/images.tgz + +If you want to be able to contact the metadata server and route to the outside world from instances, you will need to make sure $HOST_IP is set properly. The script attemps to grab it from ifconfig, but if you have multiple adapters set up, it may fail. Fix it with export HOST_IP="": + +Customization +------------- + +You can make nova use mysql instead of sqlite with USE_MYSQL, it will attempt to install mysql with the specified root password and create a database called nova. + +If you are running nova on bare metal that supports hardware virtualization, you should probably edit the libvirt line near the top + +* LIBVIRT_TYPE=kvm + +If you are running in a virtual machine and software emulation is too slow for you, you can use user mode linux. + +* LIBVIRT_TYPE=uml + +You will need a few bleeding edge packages to make it work, so you should make sure to use the PPA. + +* USE_PPA=1 + +If you have any issues, there is usually someone in #openstack on irc.freenode.net that can help you out. + + Indices and tables ================== -- cgit From c5e616f5908c0c5966c0a3612b9cc565387f50a9 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 5 Nov 2010 15:11:04 -0400 Subject: Format TODO items for sphinx todo extension. --- doc/source/adminguide/quickstart.rst | 9 ++++----- doc/source/devguide/api.rst | 4 +--- doc/source/devguide/development.environment.rst | 4 +--- doc/source/devguide/fakes.rst | 4 +--- doc/source/devguide/network.rst | 6 +++--- doc/source/devguide/volume.rst | 4 +--- doc/source/index.rst | 5 +++++ doc/source/reaching.out.rst | 5 +---- 8 files changed, 17 insertions(+), 24 deletions(-) diff --git a/doc/source/adminguide/quickstart.rst b/doc/source/adminguide/quickstart.rst index 511ed2483..718ea7d14 100644 --- a/doc/source/adminguide/quickstart.rst +++ b/doc/source/adminguide/quickstart.rst @@ -18,12 +18,11 @@ Nova Quickstart =============== -:: +.. todo:: - TODO(todd): * Document the assumptions about pluggable interfaces - (sqlite3 instead of mysql, etc) - * Document env vars that can change things - (USE_MYSQL, HOST_IP) + * Document the assumptions about pluggable interfaces (sqlite3 instead of + mysql, etc) (todd) + * Document env vars that can change things (USE_MYSQL, HOST_IP) (todd) The `contrib/novascript.sh` file in the source distribution is a script that diff --git a/doc/source/devguide/api.rst b/doc/source/devguide/api.rst index 0908d9e57..d1d50d745 100644 --- a/doc/source/devguide/api.rst +++ b/doc/source/devguide/api.rst @@ -18,9 +18,7 @@ API Endpoint Programming Guide ============================== -:: - - TODO(todd): get actual docstrings from ec2/osapi_verions instead of @wsgify +.. todo:: get actual docstrings from ec2/osapi_verions instead of @wsgify Nova has a system for managing multiple APIs on different subdomains. Currently there is support for the OpenStack API, as well as the Amazon EC2 diff --git a/doc/source/devguide/development.environment.rst b/doc/source/devguide/development.environment.rst index ee19ba2bf..34104c964 100644 --- a/doc/source/devguide/development.environment.rst +++ b/doc/source/devguide/development.environment.rst @@ -18,6 +18,4 @@ Setting up a development environment ==================================== -:: - - TODO(anthony) +.. todo:: write this diff --git a/doc/source/devguide/fakes.rst b/doc/source/devguide/fakes.rst index 5988e2ab8..61622754c 100644 --- a/doc/source/devguide/fakes.rst +++ b/doc/source/devguide/fakes.rst @@ -18,9 +18,7 @@ Fakes Programming Guide ======================= -:: - - TODO(todd): * document general info about fakes +.. todo:: document general info about fakes The :mod:`virt.fake` Module diff --git a/doc/source/devguide/network.rst b/doc/source/devguide/network.rst index 9426ece82..318286383 100644 --- a/doc/source/devguide/network.rst +++ b/doc/source/devguide/network.rst @@ -18,10 +18,10 @@ Networking Programming Guide ============================ -:: +.. todo:: - TODO(todd): * document hardware specific commands (maybe in admin guide?) - * document a map between flags and managers/backends + * document hardware specific commands (maybe in admin guide?) (todd) + * document a map between flags and managers/backends (todd) The :mod:`Manager` module ------------------------- diff --git a/doc/source/devguide/volume.rst b/doc/source/devguide/volume.rst index 39b33a500..19b750870 100644 --- a/doc/source/devguide/volume.rst +++ b/doc/source/devguide/volume.rst @@ -18,9 +18,7 @@ Volume Programming Guide ========================= -:: - - TODO(todd): rework after iSCSI merge (see 'Old Docs') +.. todo:: rework after iSCSI merge (see 'Old Docs') (todd or vish) The :mod:`nova.volume.manager` Module diff --git a/doc/source/index.rst b/doc/source/index.rst index 0dcc1945e..58c3cad58 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -48,6 +48,11 @@ Contents reaching.out +Outstanding Documentation Tasks +=============================== + +.. todolist:: + Indices and tables ================== diff --git a/doc/source/reaching.out.rst b/doc/source/reaching.out.rst index 0d8f675e0..064d2d87a 100644 --- a/doc/source/reaching.out.rst +++ b/doc/source/reaching.out.rst @@ -22,7 +22,4 @@ The OpenStack community is a very friendly place. Feel free to ask questions. This document points you to some of the places you may want to communicate with people at. -:: - - TODO(todd): * Write This - * Don't end a sentence with a preposition +.. todo:: Write reaching.out.rst (todd) -- cgit From dd505245c27d2abd2d710a44a120b21cacb9089c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 12:49:42 -0700 Subject: add in custom todo, and custom css --- doc/ext/__init__.py | 0 doc/ext/nova_todo.py | 86 +++++++++++++++++++++++++++++++++++++++++++ doc/source/_static/tweaks.css | 44 ++++++++++++++++++++++ doc/source/_theme/layout.html | 2 + doc/source/_theme/theme.conf | 5 +++ doc/source/conf.py | 8 ++-- 6 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 doc/ext/__init__.py create mode 100644 doc/ext/nova_todo.py create mode 100644 doc/source/_static/tweaks.css create mode 100644 doc/source/_theme/layout.html create mode 100644 doc/source/_theme/theme.conf diff --git a/doc/ext/__init__.py b/doc/ext/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/doc/ext/nova_todo.py b/doc/ext/nova_todo.py new file mode 100644 index 000000000..7a06b1bf9 --- /dev/null +++ b/doc/ext/nova_todo.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# This is a hack of the builtin todo extension, to make the todo_list more user friendly + +from sphinx.ext.todo import * +from docutils.parsers.rst import directives + +def _(s): + return s + +def process_todo_nodes(app, doctree, fromdocname): + if not app.config['todo_include_todos']: + for node in doctree.traverse(todo_node): + node.parent.remove(node) + + # Replace all todolist nodes with a list of the collected todos. + # Augment each todo with a backlink to the original location. + env = app.builder.env + + if not hasattr(env, 'todo_all_todos'): + env.todo_all_todos = [] + + my_todo_list = nodes.bullet_list("", nodes.Text('','')); + + # remove the item that was added in the constructor, since I'm tired of + # reading through docutils for the proper way to construct an empty list + my_todo_list.remove(my_todo_list[0]) + + my_todo_list.set_class('todo_list') + for node in doctree.traverse(todolist): + if not app.config['todo_include_todos']: + node.replace_self([]) + continue + + content = [] + + for todo_info in env.todo_all_todos: + para = nodes.paragraph() + filename = env.doc2path(todo_info['docname'], base=None) + + # Create a reference + newnode = nodes.reference('', '') + + link = _('%s, line %d') % (filename, todo_info['lineno']); + innernode = nodes.emphasis(link, link) + newnode['refdocname'] = todo_info['docname'] + + try: + newnode['refuri'] = app.builder.get_relative_uri( + fromdocname, todo_info['docname']) + newnode['refuri'] += '#' + todo_info['target']['refid'] + except NoUri: + # ignore if no URI can be determined, e.g. for LaTeX output + pass + + newnode.append(innernode) + para += newnode + para.set_class("link") + + todo_entry = todo_info['todo'] + + env.resolve_references(todo_entry, todo_info['docname'], app.builder) + + item = nodes.list_item("", para) + todo_entry[1].set_class("details") + item.append(todo_entry[1]) + + my_todo_list.insert(0, item) + + + node.replace_self(my_todo_list) + +def setup(app): + app.add_config_value('todo_include_todos', False, False) + + app.add_node(todolist) + app.add_node(todo_node, + html=(visit_todo_node, depart_todo_node), + latex=(visit_todo_node, depart_todo_node), + text=(visit_todo_node, depart_todo_node)) + + app.add_directive('todo', Todo) + app.add_directive('todolist', TodoList) + app.connect('doctree-read', process_todos) + app.connect('doctree-resolved', process_todo_nodes) + app.connect('env-purge-doc', purge_todos) + diff --git a/doc/source/_static/tweaks.css b/doc/source/_static/tweaks.css new file mode 100644 index 000000000..d1cbed96d --- /dev/null +++ b/doc/source/_static/tweaks.css @@ -0,0 +1,44 @@ +ul.todo_list { + list-style-type: none; + margin: 0; + padding: 0; +} + +ul.todo_list li { + display: block; + margin: 0; + padding: 7px 0; + border-top: 1px solid #eee; +} + +ul.todo_list li p { + display: inline; +} + +ul.todo_list li p.link { + font-weight: bold; +} + +ul.todo_list li p.details { + font-style: italic; +} + +ul.todo_list li { +} + +div.admonition { + border: 1px solid #FF6666; +} + +div.admonition p.admonition-title { + background-color: #FF6666; + border-bottom: 1px solid #FF6666; +} + +em { + font-style: normal; +} + +table.docutils { + font-size: 11px; +} \ No newline at end of file diff --git a/doc/source/_theme/layout.html b/doc/source/_theme/layout.html new file mode 100644 index 000000000..ed1cab0a6 --- /dev/null +++ b/doc/source/_theme/layout.html @@ -0,0 +1,2 @@ +{% extends "sphinxdoc/layout.html" %} +{% set css_files = css_files + ['_static/tweaks.css'] %} diff --git a/doc/source/_theme/theme.conf b/doc/source/_theme/theme.conf new file mode 100644 index 000000000..e039fe01f --- /dev/null +++ b/doc/source/_theme/theme.conf @@ -0,0 +1,5 @@ +[theme] +inherit = sphinxdoc +stylesheet = sphinxdoc.css +pygments_style = friendly + diff --git a/doc/source/conf.py b/doc/source/conf.py index 3f6ca2313..177c6568e 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -17,13 +17,14 @@ import sys, os # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('../../')) - +sys.path.insert(0, '../') +sys.path.insert(0, './') # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig'] +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'ext.nova_todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig'] todo_include_todos = True # Add any paths that contain templates here, relative to this directory. @@ -99,7 +100,8 @@ modindex_common_prefix = ['nova.'] # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'sphinxdoc' +html_theme_path = ["."] +html_theme = '_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the -- cgit From 3ef09f689b7f151aa9225b69d85c96fd39fd2c9c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 13:25:40 -0700 Subject: use include to grab todd's quickstart --- doc/source/index.rst | 98 +--------------------------------------------------- 1 file changed, 1 insertion(+), 97 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 5dec404ef..bfc2984fe 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -59,103 +59,7 @@ Although Nova can be run on a variety of system architectures, for most users th For development, Nova can run from within a VM. -Quickstart -========== - -To make getting started with Nova easier, we provide a setup script that makes it easy to download and run the most recent version of Nova on your local machine. - -* sudo -i # become root -* cd # go to home directory -* git clone git://github.com/vishvananda/novascript.git -* cd novascript - -Inside this directory, you will find nova.sh, which is a utility designed to assist with getting your development environment up and running. - -Use nova.sh to install and run the current trunk. You can also specify a specific branch by putting lp:~someone/nova/some-branch after the branch command - -* ./nova.sh branch -* ./nova.sh install -* ./nova.sh run - -The run command will drop you into a screen session with all of the workers running in different windows You can use eucatools to run commands against the cloud. - -* euca-add-keypair test > test.pem -* euca-run-instances -k test -t m1.tiny ami-tiny -* euca-describe-instances - -To see output from the various workers, switch screen windows - -* " - -will give you a list of running windows. - -When the instance is running, you should be able to ssh to it. - -* chmod 600 test.pem -* ssh -i test.pem root@10.0.0.3 - -When you exit screen - -* - -nova will terminate. It may take a while for nova to finish cleaning up. If you exit the process before it is done because there were some problems in your build, you may have to clean up the nova processes manually. If you had any instances running, you can attempt to kill them through the api: - -* ./nova.sh terminate - -Then you can destroy the screen: - -* ./nova.sh clean - -If things get particularly messed up, you might need to do some more intense cleanup. Be careful, the following command will manually destroy all runnning virsh instances and attempt to delete all vlans and bridges. - -* ./nova.sh scrub - -You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do - -* ./nova.sh run - -to run nova after the first install. The database should be cleaned up on each run. - -Notes ------ - -The script starts nova-volume in fake mode, so it will not create any actual volumes. - -if you want to USE_VENV because you have different versions of python packages on your system that you want to keep, you should run install before branch: - -* ./nova.sh install -* ./nova.sh branch -* ./nova.sh run - -A sample image should be downloaded by the script, but if necessary you can download it by hand: - -* wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz - -untar the file to create a usable images directory - -* tar -zxf /path/to/images.tgz - -If you want to be able to contact the metadata server and route to the outside world from instances, you will need to make sure $HOST_IP is set properly. The script attemps to grab it from ifconfig, but if you have multiple adapters set up, it may fail. Fix it with export HOST_IP="": - -Customization -------------- - -You can make nova use mysql instead of sqlite with USE_MYSQL, it will attempt to install mysql with the specified root password and create a database called nova. - -If you are running nova on bare metal that supports hardware virtualization, you should probably edit the libvirt line near the top - -* LIBVIRT_TYPE=kvm - -If you are running in a virtual machine and software emulation is too slow for you, you can use user mode linux. - -* LIBVIRT_TYPE=uml - -You will need a few bleeding edge packages to make it work, so you should make sure to use the PPA. - -* USE_PPA=1 - -If you have any issues, there is usually someone in #openstack on irc.freenode.net that can help you out. - +.. include:: adminguide/quickstart.rst Indices and tables -- cgit From 64ce9316b694ae286ce8caaeb9c486dc9af12c50 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 13:44:22 -0700 Subject: small tweaks before context switch --- doc/source/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index bfc2984fe..4da06740c 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -18,7 +18,7 @@ Welcome to Nova's documentation! ================================ -Nova is a cloud computing fabric controller, the main part of an IaaS system. +Nova is a cloud computing fabric controller, the main part of an IaaS system. Individuals and organizations can use it to host and manage their own cloud computing systems. Nova originated as a project out of NASA Ames Research Laboratory. Nova is written with the following design guidelines in mind: @@ -32,7 +32,7 @@ Nova is written with the following design guidelines in mind: 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:`reaching.out` page for -other ways to interact witht the community. +other ways to interact with the community. .. _`OpenStack wiki`: http://wiki.openstack.org -- cgit From 07f5d3abe26b57ef8d82ddaab80141e0130d95ac Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 5 Nov 2010 17:33:08 -0400 Subject: Community contact info. --- doc/source/reaching.out.rst | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/doc/source/reaching.out.rst b/doc/source/reaching.out.rst index 064d2d87a..ee7035aa3 100644 --- a/doc/source/reaching.out.rst +++ b/doc/source/reaching.out.rst @@ -22,4 +22,43 @@ The OpenStack community is a very friendly place. Feel free to ask questions. This document points you to some of the places you may want to communicate with people at. -.. todo:: Write reaching.out.rst (todd) + +#openstack on Freenode IRC Network +---------------------------------- + +There is a very active chat channel at ``_. This +is usually the best place to ask questions and find your way around. + +OpenStack Wiki +-------------- + +The wiki is a living source of knowledge. It is edited by the community, and +has collections of links and other sources of information. + +`OpenStack Wiki `_ + +Nova on Launchpad +----------------- + +Launchapd is a code hosting service that hosts the Nova source code. From +launchpad you can report bugs, ask questions, and register blueprints (feature +requests). + +`Launchpad Nova Page `_ + +OpenStack Blog +-------------- + +The OpenStack blog includes a weekly newsletter that aggregates OpenStack news +from around the internet, as well as providing inside information on upcoming +events and posts from OpenStack contributors. + +`OpenStack Blog `_ + +See also: `Planet OpenStack `_, aggregating blogs +about OpenStack from around the internet into a single feed. + +Twitter +------- + +Because all the cool kids do it: `@openstack `_. -- cgit From 9675be4ffd54db83b7417c968943238958ace9db Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 15:29:54 -0700 Subject: add twitter feed to the home page --- doc/source/_static/jquery.tweet.js | 154 +++++++++++++++++++++++++++++++++++++ doc/source/_static/tweaks.css | 10 ++- doc/source/_theme/layout.html | 83 ++++++++++++++++++++ 3 files changed, 246 insertions(+), 1 deletion(-) create mode 100644 doc/source/_static/jquery.tweet.js diff --git a/doc/source/_static/jquery.tweet.js b/doc/source/_static/jquery.tweet.js new file mode 100644 index 000000000..c93fea876 --- /dev/null +++ b/doc/source/_static/jquery.tweet.js @@ -0,0 +1,154 @@ +(function($) { + + $.fn.tweet = function(o){ + var s = { + username: ["seaofclouds"], // [string] required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"] + list: null, //[string] optional name of list belonging to username + avatar_size: null, // [integer] height and width of avatar if displayed (48px max) + count: 3, // [integer] how many tweets to display? + intro_text: null, // [string] do you want text BEFORE your your tweets? + outro_text: null, // [string] do you want text AFTER your tweets? + join_text: null, // [string] optional text in between date and tweet, try setting to "auto" + auto_join_text_default: "i said,", // [string] auto text for non verb: "i said" bullocks + auto_join_text_ed: "i", // [string] auto text for past tense: "i" surfed + auto_join_text_ing: "i am", // [string] auto tense for present tense: "i was" surfing + auto_join_text_reply: "i replied to", // [string] auto tense for replies: "i replied to" @someone "with" + auto_join_text_url: "i was looking at", // [string] auto tense for urls: "i was looking at" http:... + loading_text: null, // [string] optional loading text, displayed while tweets load + query: null // [string] optional search query + }; + + if(o) $.extend(s, o); + + $.fn.extend({ + linkUrl: function() { + var returning = []; + var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; + this.each(function() { + returning.push(this.replace(regexp,"$1")); + }); + return $(returning); + }, + linkUser: function() { + var returning = []; + var regexp = /[\@]+([A-Za-z0-9-_]+)/gi; + this.each(function() { + returning.push(this.replace(regexp,"@$1")); + }); + return $(returning); + }, + linkHash: function() { + var returning = []; + var regexp = / [\#]+([A-Za-z0-9-_]+)/gi; + this.each(function() { + returning.push(this.replace(regexp, ' #$1')); + }); + return $(returning); + }, + capAwesome: function() { + var returning = []; + this.each(function() { + returning.push(this.replace(/\b(awesome)\b/gi, '$1')); + }); + return $(returning); + }, + capEpic: function() { + var returning = []; + this.each(function() { + returning.push(this.replace(/\b(epic)\b/gi, '$1')); + }); + return $(returning); + }, + makeHeart: function() { + var returning = []; + this.each(function() { + returning.push(this.replace(/(<)+[3]/gi, "")); + }); + return $(returning); + } + }); + + function relative_time(time_value) { + var parsed_date = Date.parse(time_value); + var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); + var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); + var pluralize = function (singular, n) { + return '' + n + ' ' + singular + (n == 1 ? '' : 's'); + }; + if(delta < 60) { + return 'less than a minute ago'; + } else if(delta < (45*60)) { + return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago'; + } else if(delta < (24*60*60)) { + return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago'; + } else { + return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago'; + } + } + + function build_url() { + var proto = ('https:' == document.location.protocol ? 'https:' : 'http:'); + if (s.list) { + return proto+"//api.twitter.com/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?per_page="+s.count+"&callback=?"; + } else if (s.query == null && s.username.length == 1) { + return proto+'//twitter.com/status/user_timeline/'+s.username[0]+'.json?count='+s.count+'&callback=?'; + } else { + var query = (s.query || 'from:'+s.username.join('%20OR%20from:')); + return proto+'//search.twitter.com/search.json?&q='+query+'&rpp='+s.count+'&callback=?'; + } + } + + return this.each(function(){ + var list = $('
    ').appendTo(this); + var intro = '

    '+s.intro_text+'

    '; + var outro = '

    '+s.outro_text+'

    '; + var loading = $('

    '+s.loading_text+'

    '); + + if(typeof(s.username) == "string"){ + s.username = [s.username]; + } + + if (s.loading_text) $(this).append(loading); + $.getJSON(build_url(), function(data){ + if (s.loading_text) loading.remove(); + if (s.intro_text) list.before(intro); + $.each((data.results || data), function(i,item){ + // auto join text based on verb tense and content + if (s.join_text == "auto") { + if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) { + var join_text = s.auto_join_text_reply; + } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) { + var join_text = s.auto_join_text_url; + } else if (item.text.match(/^((\w+ed)|just) .*/im)) { + var join_text = s.auto_join_text_ed; + } else if (item.text.match(/^(\w*ing) .*/i)) { + var join_text = s.auto_join_text_ing; + } else { + var join_text = s.auto_join_text_default; + } + } else { + var join_text = s.join_text; + }; + + var from_user = item.from_user || item.user.screen_name; + var profile_image_url = item.profile_image_url || item.user.profile_image_url; + var join_template = ' '+join_text+' '; + var join = ((s.join_text) ? join_template : ' '); + var avatar_template = ''+from_user+'\'s avatar'; + var avatar = (s.avatar_size ? avatar_template : ''); + var date = ''+relative_time(item.created_at)+''; + var text = '' +$([item.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+ ''; + + // until we create a template option, arrange the items below to alter a tweet's display. + list.append('
  • ' + avatar + date + join + text + '
  • '); + + list.children('li:first').addClass('tweet_first'); + list.children('li:odd').addClass('tweet_even'); + list.children('li:even').addClass('tweet_odd'); + }); + if (s.outro_text) list.after(outro); + }); + + }); + }; +})(jQuery); \ No newline at end of file diff --git a/doc/source/_static/tweaks.css b/doc/source/_static/tweaks.css index d1cbed96d..630344555 100644 --- a/doc/source/_static/tweaks.css +++ b/doc/source/_static/tweaks.css @@ -41,4 +41,12 @@ em { table.docutils { font-size: 11px; -} \ No newline at end of file +} + +.tweet_list li { + margin-bottom: 10px; +} + +.tweet_list li .tweet_avatar { + float: left; +} diff --git a/doc/source/_theme/layout.html b/doc/source/_theme/layout.html index ed1cab0a6..d30607ed3 100644 --- a/doc/source/_theme/layout.html +++ b/doc/source/_theme/layout.html @@ -1,2 +1,85 @@ {% extends "sphinxdoc/layout.html" %} {% set css_files = css_files + ['_static/tweaks.css'] %} +{% set script_files = script_files + ['_static/jquery.tweet.js'] %} +{% block extrahead %} + +{% endblock %} + +{%- macro sidebar() %} + {%- if not embedded %}{% if not theme_nosidebar|tobool %} +
    +
    + {%- block sidebarlogo %} + {%- if logo %} + + {%- endif %} + {%- endblock %} + {%- block sidebartoc %} + {%- if display_toc %} +

    {{ _('Table Of Contents') }}

    + {{ toc }} + {%- endif %} + {%- endblock %} + {%- block sidebarrel %} + {%- if prev %} +

    {{ _('Previous topic') }}

    +

    {{ prev.title }}

    + {%- endif %} + {%- if next %} +

    {{ _('Next topic') }}

    +

    {{ next.title }}

    + {%- endif %} + {%- endblock %} + {%- block sidebarsourcelink %} + {%- if show_source and has_source and sourcename %} +

    {{ _('This Page') }}

    + + {%- endif %} + {%- endblock %} + {%- if customsidebar %} + {% include customsidebar %} + {%- endif %} + {%- block sidebarsearch %} + {%- if pagename != "search" %} + + + {%- endif %} + + {%- if pagename == "index" %} +

    {{ _('Twitter Feed') }}

    + + {%- endif %} + + + {%- endblock %} +
    +
    + {%- endif %}{% endif %} +{%- endmacro %} -- cgit From c3054a9a55371fe3acf37589df7d81c6381d7220 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Fri, 5 Nov 2010 18:31:26 -0400 Subject: Document nova.sh environment. --- doc/source/adminguide/quickstart.rst | 52 +++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/doc/source/adminguide/quickstart.rst b/doc/source/adminguide/quickstart.rst index 718ea7d14..7e746e3f2 100644 --- a/doc/source/adminguide/quickstart.rst +++ b/doc/source/adminguide/quickstart.rst @@ -18,16 +18,54 @@ Nova Quickstart =============== -.. todo:: +The `contrib/nova.sh` file in the source distribution is a script that +will quickly set up nova to run on a single machine. It is tested against +Ubuntu only, but other distributions are forthcoming. - * Document the assumptions about pluggable interfaces (sqlite3 instead of - mysql, etc) (todd) - * Document env vars that can change things (USE_MYSQL, HOST_IP) (todd) +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`). -The `contrib/novascript.sh` file in the source distribution is a script that -will quickly set up nova to run on a single machine. It is tested against -Ubuntu only, but other distributions are forthcoming. +HOST_IP +~~~~~~~ + +**Default**: address of first interface from the ifconfig command +**Values**: 127.0.0.1, or any other valid address + +TEST +~~~~ + +**Default**: 0 +**Values**: 1, run tests after checkout and initial setup + +USE_MYSQL +~~~~~~~~~ + +**Default**: 0, use sqlite3 +**Values**: 1, use mysql instead of sqlite3 + +MYSQL_PASS +~~~~~~~~~~ + +Only useful if $USE_MYSQL=1. + +**Default**: nova +**Values**: value of root password for mysql + +USE_LDAP +~~~~~~~~ + +**Default**: 0, use :mod:`nova.auth.dbdriver` +**Values**: 1, use :mod:`nova.auth.ldapdriver` + +LIBVIRT_TYPE +~~~~~~~~~~~~ + +**Default**: qemu +**Values**: uml, kvm Usage ----- -- cgit From 9c2af052e4ca34a14b84a9dafcb72830e3351a60 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 15:36:19 -0700 Subject: shrink tweet text a bit --- doc/source/_static/tweaks.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/source/_static/tweaks.css b/doc/source/_static/tweaks.css index 630344555..ea2ed3cf5 100644 --- a/doc/source/_static/tweaks.css +++ b/doc/source/_static/tweaks.css @@ -44,7 +44,9 @@ table.docutils { } .tweet_list li { - margin-bottom: 10px; + font-size: 0.9em; + border-bottom: 1px solid #eee; + padding: 5px 0; } .tweet_list li .tweet_avatar { -- cgit From d24c7090448ebdb9774b69490df8a983e3d27660 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 5 Nov 2010 15:52:59 -0700 Subject: fix default twitter username --- doc/source/_theme/layout.html | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/source/_theme/layout.html b/doc/source/_theme/layout.html index d30607ed3..e3eb54b71 100644 --- a/doc/source/_theme/layout.html +++ b/doc/source/_theme/layout.html @@ -5,6 +5,7 @@ + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Nova Daemons

    +

    The configuration of these binaries relies on “flagfiles” using the google +gflags package:

    +
    $ nova-xxxxx --flagfile flagfile
    +
    +

    The binaries can all run on the same machine or be spread out amongst multiple boxes in a large deployment.

    +
    +

    nova-api

    +

    Nova api receives xml requests and sends them to the rest of the system. It is a wsgi app that routes and authenticate requests. It supports the ec2 and openstack apis.

    +
    +
    +

    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-compute

    +

    Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc.

    +
    +
    +

    nova-volume

    +

    Nova volume is responsible for managing attachable block storage devices. It loads a Service object which exposes the public methods on VolumeManager via rpc.

    +
    +
    +

    nova-network

    +

    Nova network is responsible for managing floating and fixed ips, dhcp, bridging and vlans. It loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are as simple as changing the network_manager flag:

    +
    $ nova-network --network_manager=nova.network.manager.FlatManager
    +
    +

    IMPORTANT: Make sure that you also set the network_manager on nova-api and nova_compute, since make some calls to network manager in process instead of through rpc. More information on the interactions between services, managers, and drivers can be found here

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/distros/others.html b/doc/build/html/adminguide/distros/others.html new file mode 100644 index 000000000..ff0beb440 --- /dev/null +++ b/doc/build/html/adminguide/distros/others.html @@ -0,0 +1,202 @@ + + + + + + + + + Installation on other distros (like Debian, Fedora or CentOS ) — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing on Ubuntu 10.10 (Maverick)

    +

    Next topic

    +

    Installing Nova on Multiple Servers

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    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: Installing Nova on a Single Host

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/distros/ubuntu.10.04.html b/doc/build/html/adminguide/distros/ubuntu.10.04.html new file mode 100644 index 000000000..7d7e93054 --- /dev/null +++ b/doc/build/html/adminguide/distros/ubuntu.10.04.html @@ -0,0 +1,162 @@ + + + + + + + + + Installing on Ubuntu 10.04 (Lucid) — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing Nova on a Single Host

    +

    Next topic

    +

    Installing on Ubuntu 10.10 (Maverick)

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    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 and optionally you can use redis for storing state, so install these first.

    +

    Note: You must have sudo installed to run these commands as shown here.

    +
    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.

    +

    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-twisted
    +
    +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 95C71FE2
    +sudo sh -c 'echo "deb http://ppa.launchpad.net/openstack/openstack-ppa/ubuntu lucid main" > /etc/apt/sources.list.d/openstackppa.list'
    +sudo apt-get update && sudo apt-get install python-gflags
    +
    +

    Once you’ve done this, continue at Step 3 here: Installing Nova on a Single Host

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/distros/ubuntu.10.10.html b/doc/build/html/adminguide/distros/ubuntu.10.10.html new file mode 100644 index 000000000..e828bfb25 --- /dev/null +++ b/doc/build/html/adminguide/distros/ubuntu.10.10.html @@ -0,0 +1,167 @@ + + + + + + + + + Installing on Ubuntu 10.10 (Maverick) — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing on Ubuntu 10.04 (Lucid)

    +

    Next topic

    +

    Installation on other distros (like Debian, Fedora or CentOS )

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    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: Installing Nova on a Single Host

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/euca2ools.html b/doc/build/html/adminguide/euca2ools.html new file mode 100644 index 000000000..d4ea9ebc3 --- /dev/null +++ b/doc/build/html/adminguide/euca2ools.html @@ -0,0 +1,171 @@ + + + + + + + + + Euca2ools — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova-manage command

    +

    Next topic

    +

    Managing Users

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Euca2ools

    +

    Nova is compatible with most of the euca2ools command line utilities. Both Administrators and Users will find these tools helpful for day-to-day administration.

    +
      +
    • euca-add-group
    • +
    • euca-delete-bundle
    • +
    • euca-describe-instances
    • +
    • euca-register
    • +
    • euca-add-keypair
    • +
    • euca-delete-group
    • +
    • euca-describe-keypairs
    • +
    • euca-release-address
    • +
    • euca-allocate-address
    • +
    • euca-delete-keypair
    • +
    • euca-describe-regions
    • +
    • euca-reset-image-attribute
    • +
    • euca-associate-address
    • +
    • euca-delete-snapshot
    • +
    • euca-describe-snapshots
    • +
    • euca-revoke
    • +
    • euca-attach-volume
    • +
    • euca-delete-volume
    • +
    • euca-describe-volumes
    • +
    • euca-run-instances
    • +
    • euca-authorize
    • +
    • euca-deregister
    • +
    • euca-detach-volume
    • +
    • euca-terminate-instances
    • +
    • euca-bundle-image
    • +
    • euca-describe-addresses
    • +
    • euca-disassociate-address
    • +
    • euca-unbundle
    • +
    • euca-bundle-vol
    • +
    • euca-describe-availability-zones
    • +
    • euca-download-bundle
    • +
    • euca-upload-bundle
    • +
    • euca-confirm-product-instance
    • +
    • euca-describe-groups
    • +
    • euca-get-console-output
    • +
    • euca-version
    • +
    • euca-create-snapshot
    • +
    • euca-describe-image-attribute
    • +
    • euca-modify-image-attribute
    • +
    • euca-create-volume
    • +
    • euca-describe-images
    • +
    • euca-reboot-instances
    • +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/flags.html b/doc/build/html/adminguide/flags.html new file mode 100644 index 000000000..822167d73 --- /dev/null +++ b/doc/build/html/adminguide/flags.html @@ -0,0 +1,131 @@ + + + + + + + + + Flags and Flagfiles — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    Flat Network Mode (Original and Flat)

    +

    Next topic

    +

    Monitoring

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Flags and Flagfiles

    +
      +
    • python-gflags
    • +
    • flagfiles
    • +
    • list of flags by component (see concepts list)
    • +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/getting.started.html b/doc/build/html/adminguide/getting.started.html new file mode 100644 index 000000000..8b53b88ba --- /dev/null +++ b/doc/build/html/adminguide/getting.started.html @@ -0,0 +1,282 @@ + + + + + + + + + Getting Started with Nova — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Getting Started with Nova

    +

    This code base is continually changing, so dependencies also change. If you +encounter any problems, see the Getting Involved page. +The contrib/nova.sh script should be kept up to date, and may be a good +resource to review when debugging.

    +

    The purpose of this document is to get a system installed that you can use to +test your setup assumptions. Working from this base installtion you can +tweak configurations and work with different flags to monitor interaction with +your hardware, network, and other factors that will allow you to determine +suitability for your deployment. After following this setup method, you should +be able to experiment with different managers, drivers, and flags to get the +best performance.

    +
    +

    Dependencies

    +

    Related servers we rely on

    +
      +
    • RabbitMQ: messaging queue, used for all communication between components
    • +
    +

    Optional servers

    +
      +
    • OpenLDAP: By default, the auth server uses the RDBMS-backed datastore by +setting FLAGS.auth_driver to nova.auth.dbdriver.DbDriver. But OpenLDAP +(or LDAP) could be configured by specifying nova.auth.ldapdriver.LdapDriver. +There is a script in the sources (nova/auth/slap.sh) to install a very basic +openldap server on ubuntu.
    • +
    • ReDIS: There is a fake ldap auth driver +nova.auth.ldapdriver.FakeLdapDriver that backends to redis. This was +created for testing ldap implementation on systems that don’t have an easy +means to install ldap.
    • +
    • MySQL: Either MySQL or another database supported by sqlalchemy needs to +be avilable. Currently, only sqlite3 an mysql have been tested.
    • +
    +

    Python libraries that we use (from pip-requires):

    +
    SQLAlchemy==0.6.3
    +pep8==0.5.0
    +pylint==0.19
    +IPy==0.70
    +M2Crypto==0.20.2
    +amqplib==0.6.1
    +anyjson==0.2.4
    +boto==1.9b
    +carrot==0.10.5
    +eventlet==0.9.12
    +lockfile==0.8
    +python-daemon==1.5.5
    +python-gflags==1.3
    +redis==2.0.0
    +routes==1.12.3
    +WebOb==0.9.8
    +wsgiref==0.1.2
    +zope.interface==3.6.1
    +mox==0.5.0
    +-f http://pymox.googlecode.com/files/mox-0.5.0.tar.gz
    +greenlet==0.3.1
    +nose
    +
    +
    +

    Other libraries:

    + +

    External unix tools that are required:

    +
      +
    • iptables
    • +
    • ebtables
    • +
    • gawk
    • +
    • curl
    • +
    • kvm
    • +
    • libvirt
    • +
    • dnsmasq
    • +
    • vlan
    • +
    • open-iscsi and iscsitarget (if you use iscsi volumes)
    • +
    • aoetools and vblade-persist (if you use aoe-volumes)
    • +
    +

    Nova uses cutting-edge versions of many packages. There are ubuntu packages in +the nova-core ppa. You can use add this ppa to your sources list on an ubuntu +machine with the following commands:

    +
    sudo apt-get install -y python-software-properties
    +sudo add-apt-repository ppa:nova-core/ppa
    +
    +
    + +
    +

    Installation

    +

    You can install from packages for your particular Linux distribution if they are +available. Otherwise you can install from source by checking out the source +files from the Nova Source Code Repository +and running:

    +
    python setup.py install
    +
    +
    +
    +

    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 Installing Nova on Multiple Servers.

    +
      +
    • Create a volume group (you can use an actual disk for the volume group as +well):

      +
      # This creates a 1GB file to create volumes out of
      +dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10
      +losetup --show -f MY_FILE_PATH
      +# replace /dev/loop0 below with whatever losetup returns
      +# nova-volumes is the default for the --volume_group flag
      +vgcreate nova-volumes /dev/loop0
      +
      +
    • +
    +
    +
    +

    Configuring Nova

    +

    Configuration of the entire system is performed through python-gflags. The +best way to track configuration is through the use of a flagfile.

    +

    A flagfile is specified with the --flagfile=FILEPATH argument to the binary +when you launch it. Flagfiles for nova are typically stored in +/etc/nova/nova.conf, and flags specific to a certain program are stored in +/etc/nova/nova-COMMAND.conf. Each configuration file can include another +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.

    +

    A sample configuration to test the system follows:

    +
    --verbose
    +--nodaemon
    +--FAKE_subdomain=ec2
    +--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 +Installing Nova on Multiple Servers.

    +

    Launch supporting services

    +
      +
    • rabbitmq
    • +
    • redis (optional)
    • +
    • mysql (optional)
    • +
    • openldap (optional)
    • +
    +

    Launch nova components, each should have --flagfile=/etc/nova/nova.conf

    +
      +
    • nova-api
    • +
    • nova-compute
    • +
    • nova-objectstore
    • +
    • nova-volume
    • +
    • nova-scheduler
    • +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/index.html b/doc/build/html/adminguide/index.html new file mode 100644 index 000000000..0e51c3347 --- /dev/null +++ b/doc/build/html/adminguide/index.html @@ -0,0 +1,208 @@ + + + + + + + + + Administration Guide — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing the Live CD

    +

    Next topic

    +

    The nova-manage command

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Administration Guide

    +

    This guide describes the basics of running and managing Nova.

    +
    +

    Running the Cloud

    +

    The fastest way to get a test cloud running is by following the directions in the Nova Quickstart.

    +

    Nova’s cloud works via the interaction of a series of daemon processes that reside persistently on the host machine(s). Fortunately, the Nova 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 Service Architecture and Nova Daemons.

    +
    +
    +

    Administration Utilities

    +

    There are two main tools that a system administrator will find useful to manage their Nova cloud:

    + +

    nova-manage may only be run by users with admin priviledges. euca2ools can be used by all users, though specific commands may be restricted by Role Based Access Control. You can read more about creating and managing users in Managing Users

    +
    +
    +

    User and Resource Management

    +

    nova-manage and euca2ools provide the basic interface to perform a broad range of administration functions. In this section, you can read more about how to accomplish specific administration tasks.

    +

    For background on the core objects refenced in this section, see Object Model

    + +
    +
    +

    Deployment

    +
    +

    Todo

    +

    talk about deployment scenarios

    +
    + + +
    +
    +

    Advanced Topics

    + +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managing.images.html b/doc/build/html/adminguide/managing.images.html new file mode 100644 index 000000000..fdd9e029d --- /dev/null +++ b/doc/build/html/adminguide/managing.images.html @@ -0,0 +1,130 @@ + + + + + + + + + Managing Images — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    Managing Instances

    +

    Next topic

    +

    Networking Overview

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Managing Images

    +
    +

    Todo

    +

    Put info on managing images here!

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managing.instances.html b/doc/build/html/adminguide/managing.instances.html new file mode 100644 index 000000000..40dbe544b --- /dev/null +++ b/doc/build/html/adminguide/managing.instances.html @@ -0,0 +1,163 @@ + + + + + + + + + Managing Instances — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Managing Projects

    +

    Next topic

    +

    Managing Images

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Managing Instances

    +
    +

    Keypairs

    +

    Images can be shared by many users, so it is dangerous to put passwords into the images. Nova therefore supports injecting ssh keys into instances before they are booted. This allows a user to login to the instances that he or she creates securely. Generally the first thing that a user does when using the system is create a keypair. Nova generates a public and private key pair, and sends the private key to the user. The public key is stored so that it can be injected into instances.

    +

    Keypairs are created through the api. They can be created on the command line using the euca2ools script euca-add-keypair. Refer to the man page for the available options. Example usage:

    +
    euca-add-keypair test > test.pem
    +chmod 600 test.pem
    +euca-run-instances -k test -t m1.tiny ami-tiny
    +# wait for boot
    +ssh -i test.pem root@ip.of.instance
    +
    +
    +
    +

    Basic Management

    +

    Instance management can be accomplished with euca commands:

    +

    To run an instance:

    +
    euca-run-instances
    +
    +
    +

    To terminate an instance:

    +
    euca-terminate-instances
    +
    +
    +

    To reboot an instance:

    +
    euca-reboot-instances
    +
    +
    +

    See the euca2ools documentation for more information

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managing.networks.html b/doc/build/html/adminguide/managing.networks.html new file mode 100644 index 000000000..5473facbc --- /dev/null +++ b/doc/build/html/adminguide/managing.networks.html @@ -0,0 +1,235 @@ + + + + + + + + + Networking Overview — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Managing Images

    +

    Next topic

    +

    Flat Network Mode (Original and Flat)

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Networking Overview

    +

    In Nova, users organize their cloud resources in projects. A Nova project consists of a number of VM instances created by a user. For each VM instance, Nova assigns to it a private IP address. (Currently, Nova only supports Linux bridge networking that allows the virtual interfaces to connect to the outside network through the physical interface. Other virtual network technologies, such as Open vSwitch, could be supported in the future.) The Network Controller provides virtual networks to enable compute servers to interact with each other and with the public network.

    +
    +

    Nova Network Strategies

    +

    Currently, Nova supports three kinds of networks, implemented in three “Network Manager” types respectively: Flat Network Manager, Flat DHCP Network Manager, and VLAN Network Manager. The three kinds of networks can c-exist in a cloud system. However, the scheduler for selecting the type of network for a given project is not yet implemented. Here is a brief description of each of the different network strategies, with a focus on the VLAN Manager in a separate section.

    +

    Read more about Nova network strategies here:

    + +
    +
    +

    Network Management Commands

    +

    Admins and Network Administrators can use the ‘nova-manage’ command to manage network resources:

    +
    +

    VPN Management

    +
      +
    • +
      vpn list: Print a listing of the VPNs for all projects.
      +
        +
      • arguments: none
      • +
      +
      +
      +
    • +
    • +
      vpn run: Start the VPN for a given project.
      +
        +
      • arguments: project
      • +
      +
      +
      +
    • +
    • +
      vpn spawn: Run all VPNs.
      +
        +
      • arguments: none
      • +
      +
      +
      +
    • +
    +
    +
    +

    Floating IP Management

    +
      +
    • +
      floating create: Creates floating ips for host by range
      +
        +
      • arguments: host ip_range
      • +
      +
      +
      +
    • +
    • +
      floating delete: Deletes floating ips by range
      +
        +
      • arguments: range
      • +
      +
      +
      +
    • +
    • +
      floating list: Prints a listing of all floating ips
      +
        +
      • arguments: none
      • +
      +
      +
      +
    • +
    +
    +
    +

    Network Management

    +
      +
    • +
      network create: Creates fixed ips for host by range
      +
        +
      • +
        arguments: [fixed_range=FLAG], [num_networks=FLAG],
        +

        [network_size=FLAG], [vlan_start=FLAG], +[vpn_start=FLAG]

        +
        +
        +
      • +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managing.projects.html b/doc/build/html/adminguide/managing.projects.html new file mode 100644 index 000000000..f0ab79c16 --- /dev/null +++ b/doc/build/html/adminguide/managing.projects.html @@ -0,0 +1,233 @@ + + + + + + + + + Managing Projects — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Managing Users

    +

    Next topic

    +

    Managing Instances

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Managing Projects

    +

    Projects are isolated resource containers forming the principal organizational structure within Nova. They consist of a separate vlan, volumes, instances, images, keys, and users.

    +

    Although the original ec2 api only supports users, nova adds the concept of projects. A user can specify which project he or she wishes to use by appending :project_id to his or her access key. If no project is specified in the api request, nova will attempt to use a project with the same id as the user.

    +

    The api will return NotAuthorized if a normal user attempts to make requests for a project that he or she is not a member of. Note that admins or users with special admin roles skip this check and can make requests for any project.

    +
    +
    To create a project, use the project create command of nova-manage. The syntax is nova-manage project create projectname manager_id [description] You must specify a projectname and a manager_id. For example::
    +
    nova-manage project create john_project john “This is a sample project”
    +
    You can add and remove users from projects with project add and project remove::
    +
    nova-manage project add john_project john +nova-manage project remove john_project john
    +
    +
    +

    Project Commands

    +

    Admins and Project Managers can use the ‘nova-manage project’ command to manage project resources:

    +
      +
    • +
      project add: Adds user to project
      +
        +
      • arguments: project user
      • +
      +
      +
      +
    • +
    • +
      project create: Creates a new project
      +
        +
      • arguments: name project_manager [description]
      • +
      +
      +
      +
    • +
    • +
      project delete: Deletes an existing project
      +
        +
      • arguments: project_id
      • +
      +
      +
      +
    • +
    • +
      project environment: Exports environment variables to an sourcable file
      +
        +
      • arguments: project_id user_id [filename=’novarc]
      • +
      +
      +
      +
    • +
    • +
      project list: lists all projects
      +
        +
      • arguments: none
      • +
      +
      +
      +
    • +
    • +
      project remove: Removes user from project
      +
        +
      • arguments: project user
      • +
      +
      +
      +
    • +
    • +
      project scrub: Deletes data associated with project
      +
        +
      • arguments: project
      • +
      +
      +
      +
    • +
    • +
      project zipfile: Exports credentials for project to a zip file
      +
        +
      • arguments: project_id user_id [filename=’nova.zip]
      • +
      +
      +
      +
    • +
    +
    +
    +

    Setting Quotas

    +

    Nova utilizes a quota system at the project level to control resource consumption across available hardware resources. Current quota controls are available to limit the:

    +
      +
    • Number of volumes which may be created
    • +
    • Total size of all volumes within a project as measured in GB
    • +
    • Number of instances which may be launched
    • +
    • Number of processor cores which may be allocated
    • +
    • Publicly accessible IP addresses
    • +
    +

    Use the following command to set quotas for a project +* project quota: Set or display quotas for project

    +
    +
      +
    • arguments: project_id [key] [value]
    • +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managing.users.html b/doc/build/html/adminguide/managing.users.html new file mode 100644 index 000000000..cac641aaa --- /dev/null +++ b/doc/build/html/adminguide/managing.users.html @@ -0,0 +1,265 @@ + + + + + + + + + Managing Users — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Euca2ools

    +

    Next topic

    +

    Managing Projects

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Managing Users

    +
    +

    Users and Access Keys

    +

    Access to the ec2 api is controlled by an access and secret key. The user’s access key needs to be included in the request, and the request must be signed with the secret key. Upon receipt of api requests, nova will verify the signature and execute commands on behalf of the user.

    +

    In order to begin using nova, you will need a to create a user. This can be easily accomplished using the user create or user admin commands in nova-manage. user create will create a regular user, whereas user admin will create an admin user. The syntax of the command is nova-manage user create username [access] [secret]. For example:

    +
    nova-manage user create john my-access-key a-super-secret-key
    +
    +

    If you do not specify an access or secret key, a random uuid will be created automatically.

    +
    +
    +

    Credentials

    +

    Nova can generate a handy set of credentials for a user. These credentials include a CA for bundling images and a file for setting environment variables to be used by euca2ools. If you don’t need to bundle images, just the environment script is required. You can export one with the project environment command. The syntax of the command is nova-manage project environment project_id user_id [filename]. If you don’t specify a filename, it will be exported as novarc. After generating the file, you can simply source it in bash to add the variables to your environment:

    +
    nova-manage project environment john_project john
    +. novarc
    +
    +

    If you do need to bundle images, you will need to get all of the credentials using project zipfile. Note that zipfile will give you an error message if networks haven’t been created yet. Otherwise zipfile has the same syntax as environment, only the default file name is nova.zip. Example usage:

    +
    nova-manage project zipfile john_project john
    +unzip nova.zip
    +. novarc
    +
    +
    +
    +

    Role Based Access Control

    +

    Roles control the api actions that a user is allowed to perform. For example, a user cannot allocate a public ip without the netadmin role. It is important to remember that a users de facto permissions in a project is the intersection of user (global) roles and project (local) roles. So for john to have netadmin permissions in his project, he needs to separate roles specified. You can add roles with role add. The syntax is nova-manage role add user_id role [project_id]. Let’s give john the netadmin role for his project:

    +
    nova-manage role add john netadmin
    +nova-manage role add john netadmin john_project
    +
    +

    Role-based access control (RBAC) is an approach to restricting system access to authorized users based on an individual’s role within an organization. Various employee functions require certain levels of system access in order to be successful. These functions are mapped to defined roles and individuals are categorized accordingly. Since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of assigning appropriate roles to the user. This simplifies common operations, such as adding a user, or changing a user’s department.

    +

    Nova’s rights management system employs the RBAC model and currently supports the following five roles:

    +
      +
    • Cloud Administrator. (admin) Users of this class enjoy complete system access.
    • +
    • IT Security. (itsec) This role is limited to IT security personnel. It permits role holders to quarantine instances.
    • +
    • Project Manager. (projectmanager)The default for project owners, this role affords users the ability to add other users to a project, interact with project images, and launch and terminate instances.
    • +
    • Network Administrator. (netadmin) Users with this role are permitted to allocate and assign publicly accessible IP addresses as well as create and modify firewall rules.
    • +
    • Developer. This is a general purpose role that is assigned to users by default.
    • +
    +

    RBAC management is exposed through the dashboard for simplified user management.

    +
    +

    User Commands

    +

    Users, including admins, are created through the user commands.

    +
      +
    • +
      user admin: creates a new admin and prints exports
      +
        +
      • arguments: name [access] [secret]
      • +
      +
      +
      +
    • +
    • +
      user create: creates a new user and prints exports
      +
        +
      • arguments: name [access] [secret]
      • +
      +
      +
      +
    • +
    • +
      user delete: deletes an existing user
      +
        +
      • arguments: name
      • +
      +
      +
      +
    • +
    • +
      user exports: prints access and secrets for user in export format
      +
        +
      • arguments: name
      • +
      +
      +
      +
    • +
    • +
      user list: lists all users
      +
        +
      • arguments: none
      • +
      +
      +
      +
    • +
    • +
      user modify: update a users keys & admin flag
      +
        +
      • arguments: accesskey secretkey admin
      • +
      • leave any field blank to ignore it, admin should be ‘T’, ‘F’, or blank
      • +
      +
      +
      +
    • +
    +
    +
    +

    User Role Management

    +
      +
    • +
      role add: adds role to user
      +
        +
      • if project is specified, adds project specific role
      • +
      • arguments: user, role [project]
      • +
      +
      +
      +
    • +
    • +
      role has: checks to see if user has role
      +
        +
      • if project is specified, returns True if user has +the global role and the project role
      • +
      • arguments: user, role [project]
      • +
      +
      +
      +
    • +
    • +
      role remove: removes role from user
      +
        +
      • if project is specified, removes project specific role
      • +
      • arguments: user, role [project]
      • +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/managingsecurity.html b/doc/build/html/adminguide/managingsecurity.html new file mode 100644 index 000000000..b6cf52b80 --- /dev/null +++ b/doc/build/html/adminguide/managingsecurity.html @@ -0,0 +1,127 @@ + + + + + + + + + Security Considerations — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Security Considerations

    +
    +

    Todo

    +

    This doc is vague and just high-level right now. Describe architecture that enables security.

    +
    +

    The goal of securing a cloud computing system involves both protecting the instances, data on the instances, and +ensuring users are authenticated for actions and that borders are understood by the users and the system. +Protecting the system from intrusion or attack involves authentication, network protections, and +compromise detection.

    +
    +

    Key Concepts

    +

    Authentication - Each instance is authenticated with a key pair.

    +

    Network - Instances can communicate with each other but you can configure the boundaries through firewall +configuration.

    +

    Monitoring - Log all API commands and audit those logs.

    +

    Encryption - Data transfer between instances is not encrypted.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/monitoring.html b/doc/build/html/adminguide/monitoring.html new file mode 100644 index 000000000..67acb4a9e --- /dev/null +++ b/doc/build/html/adminguide/monitoring.html @@ -0,0 +1,134 @@ + + + + + + + + + Monitoring — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    Flags and Flagfiles

    +

    Next topic

    +

    Installing Nova on a Single Host

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Monitoring

    +
      +
    • components
    • +
    • throughput
    • +
    • exceptions
    • +
    • hardware
    • +
    • ganglia
    • +
    • syslog
    • +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/multi.node.install.html b/doc/build/html/adminguide/multi.node.install.html new file mode 100644 index 000000000..1af213d17 --- /dev/null +++ b/doc/build/html/adminguide/multi.node.install.html @@ -0,0 +1,384 @@ + + + + + + + + + Installing Nova on Multiple Servers — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Installing Nova on Multiple Servers

    +

    When you move beyond evaluating the technology and into building an actual +production environemnt, 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 in the installation and configuration scripts as of October 18th 2010. It also needs to eventually be generalized, but the intent here is to get the multi-node configuration bootstrapped so folks can move forward.

    +
    +

    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 Postgres. 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.
    • +
    +
    +
    +
    +

    Step 1 Use apt-get to get the latest code

    +
      +
    1. Setup Nova PPA with https://launchpad.net/~nova-core/+archive/ppa.
    2. +
    +
    sudo apt-get install python-software-properties
    +sudo add-apt-repository ppa:nova-core/ppa
    +
    +
      +
    1. Run update.
    2. +
    +
    sudo apt-get update
    +
    +
      +
    1. Install nova-pkgs (dependencies should be automatically installed).
    2. +
    +
    sudo apt-get install python-greenlet
    +sudo apt-get install nova-common nova-doc python-nova nova-api nova-network nova-objectstore nova-scheduler
    +
    +

    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 Setup configuration files (installed in /etc/nova)

    +

    Note: CC_ADDR=<the external IP address of your cloud controller>

    +
      +
    1. These need to be defined in EACH configuration file
    2. +
    +
    --sql_connection=mysql://root:nova@$CC_ADDR/nova # location of nova sql db
    +--s3_host=$CC_ADDR  # This is where nova is hosting the objectstore service, which
    +                    # will contain the VM images and buckets
    +--rabbit_host=$CC_ADDR # This is where the rabbit AMQP messaging service is hosted
    +--cc_host=$CC_ADDR     # This is where the the nova-api service lives
    +--verbose              # Optional but very helpful during initial setup
    +--ec2_url=http://$CC_ADDR:8773/services/Cloud
    +--network_manager=nova.network.manager.FlatManager # simple, no-vlan networking type
    +
    +
      +
    1. nova-manage specific flags
    2. +
    +
    --FAKE_subdomain=ec2             # workaround for ec2/euca api
    +--fixed_range=<network/prefix>   # ip network to use for VM guests, ex 192.168.2.64/26
    +--network_size=<# of addrs>      # number of ip addrs to use for VM guests, ex 64
    +
    +
      +
    1. nova-network specific flags
    2. +
    +
    --fixed_range=<network/prefix>   # ip network to use for VM guests, ex 192.168.2.64/26
    +--network_size=<# of addrs>      # number of ip addrs to use for VM guests, ex 64
    +
    +
      +
    1. nova-api specific flags
    2. +
    +
    --FAKE_subdomain=ec2             # workaround for ec2/euca api
    +
    +
    +
      +
    1. Create a nova group
    2. +
    +
    sudo addgroup nova
    +
    +
      +
    1. nova-objectstore specific flags < no specific config needed >
    2. +
    +

    Config files should be have their owner set to root:nova, and mode set to 0640, since they contain your MySQL server’s root password.

    +
    cd /etc/nova
    +chown -R root:nova .
    +
    +
    +
    +

    Step 3 Setup the sql db

    +
      +
    1. First you ‘preseed’ (using vishy’s Nova Quickstart). Run this as root.
    2. +
    +
    sudo apt-get install bzr git-core
    +sudo bash
    +export 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
    +
    +
      +
    1. Install mysql
    2. +
    +
    sudo apt-get install -y mysql-server
    +
    +
      +
    1. Edit /etc/mysql/my.cnf and set this line: bind-address=0.0.0.0 and then sighup or restart mysql
    2. +
    3. create nova’s db
    4. +
    +
    mysql -uroot -pnova -e 'CREATE DATABASE nova;'
    +
    +
      +
    1. Update the db to include user ‘root’@’%’
    2. +
    +
    mysql -u root -p nova
    +GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    +SET PASSWORD FOR 'root'@'%' = PASSWORD('nova');
    +
    +
      +
    1. branch and install Nova
    2. +
    +
    sudo -i
    +cd ~
    +export USE_MYSQL=1
    +export MYSQL_PASS=nova
    +git clone https://github.com/vishvananda/novascript.git
    +cd novascript
    +./nova.sh branch
    +./nova.sh install
    +./nova.sh run
    +
    +
    +
    +

    Step 4 Setup Nova environment

    +
    /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 project create network
    +
    +

    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 this 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. We ended up doing this manually, (update query fired directly in the DB). Is there a better way to mark a network as bridged?

    +

    Update: This has been resolved w.e.f 27/10. network is marked as bridged automatically based on the type of n/w manager selected.

    +
    +

    More networking details to create a network bridge for flat network

    +

    Nova defaults to a bridge device named ‘br100’. This needs to be created and somehow integrated into YOUR network. In my case, I wanted to keep things as simple as possible and have all the vm guests on the same network as the vm hosts (the compute nodes). Thus, I set the compute node’s external IP address to be on the bridge and added 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
    +
    +
    +
    +
    +

    Step 5: Create nova certs.

    +

    Generate the certs as a zip file:

    +
    mkdir creds
    +sudo /usr/bin/python /usr/bin/nova-manage project zip admin admin creds/nova.zip
    +
    +

    you can get the rc file more easily with:

    +
    sudo /usr/bin/python /usr/bin/nova-manage project env admin admin creds/novarc
    +
    +

    unzip them in your home directory, and add them to your environment:

    +
    unzip creds/nova.zip
    +echo ". creds/novarc" >> ~/.bashrc
    +~/.bashrc
    +
    +
    +
    +

    Step 6 Restart all relevant services

    +

    Restart Libvirt:

    +
    sudo /etc/init.d/libvirt-bin restart
    +
    +

    Restart relevant nova services:

    +
    sudo /etc/init.d/nova-compute restart
    +sudo /etc/init.d/nova-volume restart
    +
    +
    +

    Todo

    +

    do we still need the content below?

    +
    +
    +
    +

    Bare-metal Provisioning

    +

    To install the base operating system you can use PXE booting.

    +
    +
    +

    Types of Hosts

    +

    A single machine in your cluster can act as one or more of the following types +of host:

    +

    Nova Services

    +
      +
    • Network
    • +
    • Compute
    • +
    • Volume
    • +
    • API
    • +
    • Objectstore
    • +
    +

    Other supporting services

    +
      +
    • Message Queue
    • +
    • Database (optional)
    • +
    • Authentication database (optional)
    • +
    +
    +
    +

    Initial Setup

    +
      +
    • Networking
    • +
    • Cloudadmin User Creation
    • +
    +
    +
    +

    Deployment Technologies

    +

    Once you have machines with a base operating system installation, you can deploy +code and configuration with your favorite tools to specify which machines in +your cluster have which roles:

    +
      +
    • Puppet
    • +
    • Chef
    • +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/network.flat.html b/doc/build/html/adminguide/network.flat.html new file mode 100644 index 000000000..5fcbe5180 --- /dev/null +++ b/doc/build/html/adminguide/network.flat.html @@ -0,0 +1,173 @@ + + + + + + + + + Flat Network Mode (Original and Flat) — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    VLAN Network Mode

    +

    Next topic

    +

    Flags and Flagfiles

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Flat Network Mode (Original and Flat)

    +

    Flat network mode removes most of the complexity of VLAN mode by simply +bridging all instance interfaces onto a single network.

    +

    There are two variations of flat mode that differ mostly in how IP addresses +are given to instances.

    +
    +

    Original Flat Mode

    +

    IP addresses for VM instances are grabbed from a subnet specified by the network administrator, and injected into the image on launch. All instances of the system are attached to the same Linux networking bridge, configured manually by the network administrator both on the network controller hosting the network and on the computer controllers hosting the instances. To recap:

    +
      +
    • Each compute host creates a single bridge for all instances to use to attach to the external network.
    • +
    • The networking configuration is injected into the instance before it is booted or it is obtained by a guest agent installed in the instance.
    • +
    +

    Note that the configuration injection currently only works on linux-style systems that keep networking +configuration in /etc/network/interfaces.

    +
    +
    +

    Flat DHCP Mode

    +

    IP addresses for VM instances are grabbed from a subnet specified by the network administrator. Similar to the flat network, a single Linux networking bridge is created and configured manually by the network administrator and used for all instances. A DHCP server is started to pass out IP addresses to VM instances from the specified subnet. To recap:

    +
      +
    • Like flat mode, all instances are attached to a single bridge on the compute node.
    • +
    • In addition a DHCP server is running to configure instances.
    • +
    +
    +
    +

    Implementation

    +

    The network nodes do not act as a default gateway in flat mode. Instances +are given public IP addresses.

    +

    Compute nodes have iptables/ebtables entries created per project and +instance to protect against IP/MAC address spoofing and ARP poisoning.

    +
    +
    +

    Examples

    +
    +

    Todo

    +

    add flat network mode configuration examples

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/network.vlan.html b/doc/build/html/adminguide/network.vlan.html new file mode 100644 index 000000000..a11c8d8a7 --- /dev/null +++ b/doc/build/html/adminguide/network.vlan.html @@ -0,0 +1,289 @@ + + + + + + + + + VLAN Network Mode — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing Nova on Multiple Servers

    +

    Next topic

    +

    Flat Network Mode (Original and Flat)

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    VLAN Network Mode

    +

    VLAN Network Mode is the default mode for Nova. It provides a private network +segment for each project’s instances that can be accessed via a dedicated +VPN connection from the Internet.

    +

    In this mode, each project gets its own VLAN, Linux networking bridge, and subnet. The subnets are specified by the network administrator, and are assigned dynamically to a project when required. A DHCP Server is started for each VLAN to pass out IP addresses to VM instances from the subnet assigned to the project. All instances belonging to one project are bridged into the same VLAN for that project. The Linux networking bridges and VLANs are created by Nova when required, described in more detail in Nova VLAN Network Management Implementation.

    +
    +

    Todo

    +

    Insert Figure 2 from “An OpenStack Network Overview” contributed by Citrix

    +
    +

    While network traffic between VM instances belonging to the same VLAN is always open, Nova can enforce isolation of network traffic between different projects by enforcing one VLAN per project.

    +

    In addition, the network administrator can specify a pool of public IP addresses that users may allocate and then assign to VMs, either at boot or dynamically at run-time. This capability is similar to Amazon’s ‘elastic IPs’. A public IP address may be associated with a running instances, allowing the VM instance to be accessed from the public network. The public IP addresses are accessible from the network host and NATed to the private IP address of the project.

    +
    +

    Todo

    +

    Describe how a public IP address could be associated with a project (a VLAN)

    +
    +

    This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code named cloudpipe) needs to be created. Nova generates a certificate and key for the user to access the vpn and starts the vpn automatically. More information on cloudpipe can be found here.

    +

    The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds)

    +../_images/cloudpipe.png +
    +

    Goals

    +
      +
    • each project is in a protected network segment
        +
      • RFC-1918 IP space
      • +
      • public IP via NAT
      • +
      • no default inbound Internet access without public NAT
      • +
      • limited (project-admin controllable) outbound Internet access
      • +
      • limited (project-admin controllable) access to other project segments
      • +
      • all connectivity to instance and cloud API is via VPN into the project segment
      • +
      +
    • +
    • common DMZ segment for support services (only visible from project segment)
        +
      • metadata
      • +
      • dashboard
      • +
      +
    • +
    +
    +
    +

    Limitations

    +
      +
    • Projects / cluster limited to available VLANs in switching infrastructure
    • +
    • Requires VPN for access to project segment
    • +
    +
    +
    +

    Implementation

    +

    Currently Nova segregates project VLANs using 802.1q VLAN tagging in the +switching layer. Compute hosts create VLAN-specific interfaces and bridges +as required.

    +

    The network nodes act as default gateway for project networks and contain +all of the routing and firewall rules implementing security groups. The +network node also handles DHCP to provide instance IPs for each project.

    +

    VPN access is provided by running a small instance called CloudPipe +on the IP immediately following the gateway IP for each project. The +network node maps a dedicated public IP/port to the CloudPipe instance.

    +

    Compute nodes have per-VLAN interfaces and bridges created as required. +These do NOT have IP addresses in the host to protect host access. +Compute nodes have iptables/ebtables entries created per project and +instance to protect against IP/MAC address spoofing and ARP poisoning.

    +

    The network assignment to a project, and IP address assignment to a VM instance, are triggered when a user starts to run a VM instance. When running a VM instance, a user needs to specify a project for the instances, and the security groups (described in Security Groups) when the instance wants to join. If this is the first instance to be created for the project, then Nova (the cloud controller) needs to find a network controller to be the network host for the project; it then sets up a private network by finding an unused VLAN id, an unused subnet, and then the controller assigns them to the project, it also assigns a name to the project’s Linux bridge, and allocating a private IP within the project’s subnet for the new instance.

    +

    If the instance the user wants to start is not the project’s first, a subnet and a VLAN must have already been assigned to the project; therefore the system needs only to find an available IP address within the subnet and assign it to the new starting instance. If there is no private IP available within the subnet, an exception will be raised to the cloud controller, and the VM creation cannot proceed.

    +
    +

    Todo

    +

    insert the name of the Linux bridge, is it always named bridge?

    +
    +
    +
    +

    External Infrastructure

    +

    Nova assumes the following is available:

    +
      +
    • DNS
    • +
    • NTP
    • +
    • Internet connectivity
    • +
    +
    +
    +

    Example

    +

    This example network configuration demonstrates most of the capabilities +of VLAN Mode. It splits administrative access to the nodes onto a dedicated +management network and uses dedicated network nodes to handle all +routing and gateway functions.

    +

    It uses a 10GB network for instance traffic and a 1GB network for management.

    +
    +

    Hardware

    +
      +
    • All nodes have a minimum of two NICs for management and production.
        +
      • management is 1GB
      • +
      • production is 10GB
      • +
      • add additional NICs for bonding or HA/performance
      • +
      +
    • +
    • network nodes should have an additional NIC dedicated to public Internet traffic
    • +
    • switch needs to support enough simultaneous VLANs for number of projects
    • +
    • production network configured as 802.1q trunk on switch
    • +
    +
    +
    +

    Operation

    +

    The network node controls the project network configuration:

    +
      +
    • assigns each project a VLAN and private IP range
    • +
    • starts dnsmasq on project VLAN to serve private IP range
    • +
    • configures iptables on network node for default project access
    • +
    • launches CloudPipe instance and configures iptables access
    • +
    +

    When starting an instance the network node:

    +
      +
    • sets up a VLAN interface and bridge on each host as required when an +instance is started on that host
    • +
    • assigns private IP to instance
    • +
    • generates MAC address for instance
    • +
    • update dnsmasq with IP/MAC for instance
    • +
    +

    When starting an instance the compute node:

    +
      +
    • sets up a VLAN interface and bridge on each host as required when an +instance is started on that host
    • +
    +
    +
    +

    Setup

    +
      +
    • Assign VLANs in the switch:
        +
      • public Internet segment
      • +
      • production network
      • +
      • management network
      • +
      • cluster DMZ
      • +
      +
    • +
    • Assign a contiguous range of VLANs to Nova for project use.
    • +
    • Configure management NIC ports as management VLAN access ports.
    • +
    • Configure management VLAN with Internet access as required
    • +
    • Configure production NIC ports as 802.1q trunk ports.
    • +
    • Configure Nova (need to add specifics here)
        +
      • public IPs
      • +
      • instance IPs
      • +
      • project network size
      • +
      • DMZ network
      • +
      +
    • +
    +
    +

    Todo

    +

    need specific Nova configuration added

    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/nova.manage.html b/doc/build/html/adminguide/nova.manage.html new file mode 100644 index 000000000..25db4239a --- /dev/null +++ b/doc/build/html/adminguide/nova.manage.html @@ -0,0 +1,254 @@ + + + + + + + + + The nova-manage command — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Administration Guide

    +

    Next topic

    +

    Euca2ools

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova-manage command

    +
    +

    Introduction

    +

    The nova-manage command is used to perform many essential functions for +administration and ongoing maintenance of nova, such as user creation, +vpn management, and much more.

    +

    The standard pattern for executing a nova-manage command is:

    +

    nova-manage <category> <command> [<args>]

    +

    For example, to obtain a list of all projects:

    +

    nova-manage project list

    +

    You can run without arguments to see a list of available command categories:

    +

    nova-manage

    +

    You can run with a category argument to see a list of all commands in that +category:

    +

    nova-manage user

    +
    +
    +

    Nova Shell

    +
      +
    • +
      shell bpython
      +
        +
      • start a new bpython shell
      • +
      +
      +
      +
    • +
    • +
      shell ipython
      +
        +
      • start a new ipython shell
      • +
      +
      +
      +
    • +
    • +
      shell python
      +
        +
      • start a new python shell
      • +
      +
      +
      +
    • +
    • +
      shell run
      +
        +
      • ???
      • +
      +
      +
      +
    • +
    • +
      shell script: Runs the script from the specifed path with flags set properly.
      +
        +
      • arguments: path
      • +
      +
      +
      +
    • +
    +
    +

    Concept: Flags

    +

    python-gflags

    +
    +
    +

    Concept: Plugins

    +
      +
    • Managers/Drivers: utils.import_object from string flag
    • +
    • virt/connections: conditional loading from string flag
    • +
    • db: LazyPluggable via string flag
    • +
    • auth_manager: utils.import_class based on string flag
    • +
    • Volumes: moving to pluggable driver instead of manager
    • +
    • Network: pluggable managers
    • +
    • Compute: same driver used, but pluggable at connection
    • +
    +
    +
    +

    Concept: IPC/RPC

    +

    Rabbit!

    +
    +
    +

    Concept: Fakes

    +
      +
    • auth
    • +
    • ldap
    • +
    +
    +
    +

    Concept: Scheduler

    +
      +
    • simple
    • +
    • random
    • +
    +
    +
    +

    Concept: Security Groups

    +

    Security groups

    +
    +
    +

    Concept: Certificate Authority

    +

    Nova does a small amount of certificate management. These certificates are used for project vpns and decrypting bundled images.

    +
    +
    +

    Concept: Images

    +
      +
    • launching
    • +
    • bundling
    • +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/adminguide/single.node.install.html b/doc/build/html/adminguide/single.node.install.html new file mode 100644 index 000000000..a47d66541 --- /dev/null +++ b/doc/build/html/adminguide/single.node.install.html @@ -0,0 +1,410 @@ + + + + + + + + + Installing Nova on a Single Host — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    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 Nova 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 mehod for accomplishing this varies

    + +
    +
    +

    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 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 5: 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 6: 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 7: Source the rc file

    +

    Type or copy/paste the following to source the novarc file in your current working directory.

    +
    . novarc
    +
    +
    +
    +

    Step 8: Pat yourself on the back :)

    +

    Congratulations, your cloud is up and running, you’ve created an admin user, retrieved the user’s credentials and put them in your environment.

    +

    Now you need an image.

    +
    +
    +

    Step 9: 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) [appication/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 10: 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 11: 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
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/autoindex.html b/doc/build/html/api/autoindex.html new file mode 100644 index 000000000..6b6c7e03d --- /dev/null +++ b/doc/build/html/api/autoindex.html @@ -0,0 +1,223 @@ + + + + + + + + + <no title> — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    Developer Guide

    +

    Next topic

    +

    The nova..adminclient Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    + +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..adminclient.html b/doc/build/html/api/nova..adminclient.html new file mode 100644 index 000000000..7031d9dcf --- /dev/null +++ b/doc/build/html/api/nova..adminclient.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..adminclient Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    <no title>

    +

    Next topic

    +

    The nova..api.cloud Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..adminclient Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.cloud.html b/doc/build/html/api/nova..api.cloud.html new file mode 100644 index 000000000..a6cd0e1cf --- /dev/null +++ b/doc/build/html/api/nova..api.cloud.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.cloud Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..adminclient Module

    +

    Next topic

    +

    The nova..api.ec2.admin Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.cloud Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.ec2.admin.html b/doc/build/html/api/nova..api.ec2.admin.html new file mode 100644 index 000000000..1b727dde9 --- /dev/null +++ b/doc/build/html/api/nova..api.ec2.admin.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.ec2.admin Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.cloud Module

    +

    Next topic

    +

    The nova..api.ec2.apirequest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.ec2.admin Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.ec2.apirequest.html b/doc/build/html/api/nova..api.ec2.apirequest.html new file mode 100644 index 000000000..cd52bcb88 --- /dev/null +++ b/doc/build/html/api/nova..api.ec2.apirequest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.ec2.apirequest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.ec2.admin Module

    +

    Next topic

    +

    The nova..api.ec2.cloud Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.ec2.apirequest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.ec2.cloud.html b/doc/build/html/api/nova..api.ec2.cloud.html new file mode 100644 index 000000000..e61f71563 --- /dev/null +++ b/doc/build/html/api/nova..api.ec2.cloud.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.ec2.cloud Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.ec2.apirequest Module

    +

    Next topic

    +

    The nova..api.ec2.images Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.ec2.cloud Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.ec2.images.html b/doc/build/html/api/nova..api.ec2.images.html new file mode 100644 index 000000000..0a0e90b13 --- /dev/null +++ b/doc/build/html/api/nova..api.ec2.images.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.ec2.images Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.ec2.cloud Module

    +

    Next topic

    +

    The nova..api.ec2.metadatarequesthandler Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.ec2.images Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html b/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html new file mode 100644 index 000000000..640f4e805 --- /dev/null +++ b/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.ec2.metadatarequesthandler Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.ec2.images Module

    +

    Next topic

    +

    The nova..api.openstack.auth Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.ec2.metadatarequesthandler Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.auth.html b/doc/build/html/api/nova..api.openstack.auth.html new file mode 100644 index 000000000..7417ac0b1 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.auth.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.auth Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.ec2.metadatarequesthandler Module

    +

    Next topic

    +

    The nova..api.openstack.backup_schedules Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.auth Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.backup_schedules.html b/doc/build/html/api/nova..api.openstack.backup_schedules.html new file mode 100644 index 000000000..1caa3d407 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.backup_schedules.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.backup_schedules Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.auth Module

    +

    Next topic

    +

    The nova..api.openstack.faults Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.backup_schedules Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.faults.html b/doc/build/html/api/nova..api.openstack.faults.html new file mode 100644 index 000000000..bc426fc73 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.faults.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.faults Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.backup_schedules Module

    +

    Next topic

    +

    The nova..api.openstack.flavors Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.faults Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.flavors.html b/doc/build/html/api/nova..api.openstack.flavors.html new file mode 100644 index 000000000..27651ff3c --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.flavors.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.flavors Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.faults Module

    +

    Next topic

    +

    The nova..api.openstack.images Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.flavors Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.images.html b/doc/build/html/api/nova..api.openstack.images.html new file mode 100644 index 000000000..a096ddb26 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.images.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.images Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.flavors Module

    +

    Next topic

    +

    The nova..api.openstack.servers Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.images Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.servers.html b/doc/build/html/api/nova..api.openstack.servers.html new file mode 100644 index 000000000..1b6941c41 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.servers.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.servers Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.images Module

    +

    Next topic

    +

    The nova..api.openstack.sharedipgroups Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.servers Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..api.openstack.sharedipgroups.html b/doc/build/html/api/nova..api.openstack.sharedipgroups.html new file mode 100644 index 000000000..6e58a4076 --- /dev/null +++ b/doc/build/html/api/nova..api.openstack.sharedipgroups.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..api.openstack.sharedipgroups Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.servers Module

    +

    Next topic

    +

    The nova..auth.dbdriver Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..api.openstack.sharedipgroups Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..auth.dbdriver.html b/doc/build/html/api/nova..auth.dbdriver.html new file mode 100644 index 000000000..343a38837 --- /dev/null +++ b/doc/build/html/api/nova..auth.dbdriver.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..auth.dbdriver Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..api.openstack.sharedipgroups Module

    +

    Next topic

    +

    The nova..auth.fakeldap Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..auth.dbdriver Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..auth.fakeldap.html b/doc/build/html/api/nova..auth.fakeldap.html new file mode 100644 index 000000000..045af4609 --- /dev/null +++ b/doc/build/html/api/nova..auth.fakeldap.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..auth.fakeldap Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..auth.dbdriver Module

    +

    Next topic

    +

    The nova..auth.ldapdriver Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..auth.fakeldap Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..auth.ldapdriver.html b/doc/build/html/api/nova..auth.ldapdriver.html new file mode 100644 index 000000000..f9fd15a4d --- /dev/null +++ b/doc/build/html/api/nova..auth.ldapdriver.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..auth.ldapdriver Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..auth.fakeldap Module

    +

    Next topic

    +

    The nova..auth.manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..auth.ldapdriver Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..auth.manager.html b/doc/build/html/api/nova..auth.manager.html new file mode 100644 index 000000000..7afc88179 --- /dev/null +++ b/doc/build/html/api/nova..auth.manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..auth.manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..auth.ldapdriver Module

    +

    Next topic

    +

    The nova..auth.signer Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..auth.manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..auth.signer.html b/doc/build/html/api/nova..auth.signer.html new file mode 100644 index 000000000..0303c3e64 --- /dev/null +++ b/doc/build/html/api/nova..auth.signer.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..auth.signer Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..auth.manager Module

    +

    Next topic

    +

    The nova..cloudpipe.pipelib Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..auth.signer Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..cloudpipe.pipelib.html b/doc/build/html/api/nova..cloudpipe.pipelib.html new file mode 100644 index 000000000..dd9345b40 --- /dev/null +++ b/doc/build/html/api/nova..cloudpipe.pipelib.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..cloudpipe.pipelib Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..auth.signer Module

    +

    Next topic

    +

    The nova..compute.disk Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..cloudpipe.pipelib Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..compute.disk.html b/doc/build/html/api/nova..compute.disk.html new file mode 100644 index 000000000..c02928d75 --- /dev/null +++ b/doc/build/html/api/nova..compute.disk.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..compute.disk Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..cloudpipe.pipelib Module

    +

    Next topic

    +

    The nova..compute.instance_types Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..compute.disk Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..compute.instance_types.html b/doc/build/html/api/nova..compute.instance_types.html new file mode 100644 index 000000000..7fa6f8bcb --- /dev/null +++ b/doc/build/html/api/nova..compute.instance_types.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..compute.instance_types Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..compute.disk Module

    +

    Next topic

    +

    The nova..compute.manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..compute.instance_types Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..compute.manager.html b/doc/build/html/api/nova..compute.manager.html new file mode 100644 index 000000000..88a56adee --- /dev/null +++ b/doc/build/html/api/nova..compute.manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..compute.manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..compute.instance_types Module

    +

    Next topic

    +

    The nova..compute.monitor Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..compute.manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..compute.monitor.html b/doc/build/html/api/nova..compute.monitor.html new file mode 100644 index 000000000..589b415ad --- /dev/null +++ b/doc/build/html/api/nova..compute.monitor.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..compute.monitor Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..compute.manager Module

    +

    Next topic

    +

    The nova..compute.power_state Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..compute.monitor Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..compute.power_state.html b/doc/build/html/api/nova..compute.power_state.html new file mode 100644 index 000000000..30a24e7f0 --- /dev/null +++ b/doc/build/html/api/nova..compute.power_state.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..compute.power_state Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..compute.monitor Module

    +

    Next topic

    +

    The nova..context Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..compute.power_state Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..context.html b/doc/build/html/api/nova..context.html new file mode 100644 index 000000000..315928b41 --- /dev/null +++ b/doc/build/html/api/nova..context.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..context Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..compute.power_state Module

    +

    Next topic

    +

    The nova..crypto Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..context Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..crypto.html b/doc/build/html/api/nova..crypto.html new file mode 100644 index 000000000..9d610d3cb --- /dev/null +++ b/doc/build/html/api/nova..crypto.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..crypto Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..context Module

    +

    Next topic

    +

    The nova..db.api Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..crypto Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..db.api.html b/doc/build/html/api/nova..db.api.html new file mode 100644 index 000000000..5389462c8 --- /dev/null +++ b/doc/build/html/api/nova..db.api.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..db.api Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..crypto Module

    +

    Next topic

    +

    The nova..db.sqlalchemy.api Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..db.api Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..db.sqlalchemy.api.html b/doc/build/html/api/nova..db.sqlalchemy.api.html new file mode 100644 index 000000000..6030f24e4 --- /dev/null +++ b/doc/build/html/api/nova..db.sqlalchemy.api.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..db.sqlalchemy.api Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..db.api Module

    +

    Next topic

    +

    The nova..db.sqlalchemy.models Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..db.sqlalchemy.api Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..db.sqlalchemy.models.html b/doc/build/html/api/nova..db.sqlalchemy.models.html new file mode 100644 index 000000000..db4d18884 --- /dev/null +++ b/doc/build/html/api/nova..db.sqlalchemy.models.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..db.sqlalchemy.models Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..db.sqlalchemy.api Module

    +

    Next topic

    +

    The nova..db.sqlalchemy.session Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..db.sqlalchemy.models Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..db.sqlalchemy.session.html b/doc/build/html/api/nova..db.sqlalchemy.session.html new file mode 100644 index 000000000..622b97136 --- /dev/null +++ b/doc/build/html/api/nova..db.sqlalchemy.session.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..db.sqlalchemy.session Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..db.sqlalchemy.models Module

    +

    Next topic

    +

    The nova..exception Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..db.sqlalchemy.session Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..exception.html b/doc/build/html/api/nova..exception.html new file mode 100644 index 000000000..312727354 --- /dev/null +++ b/doc/build/html/api/nova..exception.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..exception Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..db.sqlalchemy.session Module

    +

    Next topic

    +

    The nova..fakerabbit Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..exception Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..fakerabbit.html b/doc/build/html/api/nova..fakerabbit.html new file mode 100644 index 000000000..ae6cf9b92 --- /dev/null +++ b/doc/build/html/api/nova..fakerabbit.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..fakerabbit Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..exception Module

    +

    Next topic

    +

    The nova..flags Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..fakerabbit Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..flags.html b/doc/build/html/api/nova..flags.html new file mode 100644 index 000000000..a0c61346e --- /dev/null +++ b/doc/build/html/api/nova..flags.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..flags Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..fakerabbit Module

    +

    Next topic

    +

    The nova..image.service Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..flags Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..image.service.html b/doc/build/html/api/nova..image.service.html new file mode 100644 index 000000000..682e6be33 --- /dev/null +++ b/doc/build/html/api/nova..image.service.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..image.service Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..flags Module

    +

    Next topic

    +

    The nova..manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..image.service Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..manager.html b/doc/build/html/api/nova..manager.html new file mode 100644 index 000000000..cb6a0409a --- /dev/null +++ b/doc/build/html/api/nova..manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..image.service Module

    +

    Next topic

    +

    The nova..network.linux_net Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..network.linux_net.html b/doc/build/html/api/nova..network.linux_net.html new file mode 100644 index 000000000..f3f1d5e5c --- /dev/null +++ b/doc/build/html/api/nova..network.linux_net.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..network.linux_net Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..manager Module

    +

    Next topic

    +

    The nova..network.manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..network.linux_net Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..network.manager.html b/doc/build/html/api/nova..network.manager.html new file mode 100644 index 000000000..a9e7f74d7 --- /dev/null +++ b/doc/build/html/api/nova..network.manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..network.manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..network.linux_net Module

    +

    Next topic

    +

    The nova..objectstore.bucket Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..network.manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..objectstore.bucket.html b/doc/build/html/api/nova..objectstore.bucket.html new file mode 100644 index 000000000..e380ad535 --- /dev/null +++ b/doc/build/html/api/nova..objectstore.bucket.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..objectstore.bucket Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..network.manager Module

    +

    Next topic

    +

    The nova..objectstore.handler Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..objectstore.bucket Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..objectstore.handler.html b/doc/build/html/api/nova..objectstore.handler.html new file mode 100644 index 000000000..26ef1abbd --- /dev/null +++ b/doc/build/html/api/nova..objectstore.handler.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..objectstore.handler Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..objectstore.bucket Module

    +

    Next topic

    +

    The nova..objectstore.image Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..objectstore.handler Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..objectstore.image.html b/doc/build/html/api/nova..objectstore.image.html new file mode 100644 index 000000000..872d19dd7 --- /dev/null +++ b/doc/build/html/api/nova..objectstore.image.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..objectstore.image Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..objectstore.handler Module

    +

    Next topic

    +

    The nova..objectstore.stored Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..objectstore.image Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..objectstore.stored.html b/doc/build/html/api/nova..objectstore.stored.html new file mode 100644 index 000000000..a73d96c62 --- /dev/null +++ b/doc/build/html/api/nova..objectstore.stored.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..objectstore.stored Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..objectstore.image Module

    +

    Next topic

    +

    The nova..process Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..objectstore.stored Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..process.html b/doc/build/html/api/nova..process.html new file mode 100644 index 000000000..f126f8e74 --- /dev/null +++ b/doc/build/html/api/nova..process.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..process Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..objectstore.stored Module

    +

    Next topic

    +

    The nova..quota Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..process Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..quota.html b/doc/build/html/api/nova..quota.html new file mode 100644 index 000000000..cc52faab8 --- /dev/null +++ b/doc/build/html/api/nova..quota.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..quota Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..process Module

    +

    Next topic

    +

    The nova..rpc Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..quota Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..rpc.html b/doc/build/html/api/nova..rpc.html new file mode 100644 index 000000000..e8cc9658c --- /dev/null +++ b/doc/build/html/api/nova..rpc.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..rpc Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..quota Module

    +

    Next topic

    +

    The nova..scheduler.chance Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..rpc Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..scheduler.chance.html b/doc/build/html/api/nova..scheduler.chance.html new file mode 100644 index 000000000..7591e5826 --- /dev/null +++ b/doc/build/html/api/nova..scheduler.chance.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..scheduler.chance Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..rpc Module

    +

    Next topic

    +

    The nova..scheduler.driver Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..scheduler.chance Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..scheduler.driver.html b/doc/build/html/api/nova..scheduler.driver.html new file mode 100644 index 000000000..2a8e80a37 --- /dev/null +++ b/doc/build/html/api/nova..scheduler.driver.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..scheduler.driver Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..scheduler.chance Module

    +

    Next topic

    +

    The nova..scheduler.manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..scheduler.driver Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..scheduler.manager.html b/doc/build/html/api/nova..scheduler.manager.html new file mode 100644 index 000000000..32c437085 --- /dev/null +++ b/doc/build/html/api/nova..scheduler.manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..scheduler.manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..scheduler.driver Module

    +

    Next topic

    +

    The nova..scheduler.simple Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..scheduler.manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..scheduler.simple.html b/doc/build/html/api/nova..scheduler.simple.html new file mode 100644 index 000000000..6a743b708 --- /dev/null +++ b/doc/build/html/api/nova..scheduler.simple.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..scheduler.simple Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..scheduler.manager Module

    +

    Next topic

    +

    The nova..server Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..scheduler.simple Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..server.html b/doc/build/html/api/nova..server.html new file mode 100644 index 000000000..0e657d8e6 --- /dev/null +++ b/doc/build/html/api/nova..server.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..server Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..scheduler.simple Module

    +

    Next topic

    +

    The nova..service Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..server Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..service.html b/doc/build/html/api/nova..service.html new file mode 100644 index 000000000..9136c5d2c --- /dev/null +++ b/doc/build/html/api/nova..service.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..service Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..server Module

    +

    Next topic

    +

    The nova..test Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..service Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..test.html b/doc/build/html/api/nova..test.html new file mode 100644 index 000000000..dadb754c6 --- /dev/null +++ b/doc/build/html/api/nova..test.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..test Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..service Module

    +

    Next topic

    +

    The nova..tests.access_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..test Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.access_unittest.html b/doc/build/html/api/nova..tests.access_unittest.html new file mode 100644 index 000000000..c5396ceb8 --- /dev/null +++ b/doc/build/html/api/nova..tests.access_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.access_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..test Module

    +

    Next topic

    +

    The nova..tests.api.fakes Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.access_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.fakes.html b/doc/build/html/api/nova..tests.api.fakes.html new file mode 100644 index 000000000..01f513e2c --- /dev/null +++ b/doc/build/html/api/nova..tests.api.fakes.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.fakes Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.access_unittest Module

    +

    Next topic

    +

    The nova..tests.api.openstack.fakes Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.fakes Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.fakes.html b/doc/build/html/api/nova..tests.api.openstack.fakes.html new file mode 100644 index 000000000..fde7e916f --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.fakes.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.fakes Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.fakes Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_api Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.fakes Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_api.html b/doc/build/html/api/nova..tests.api.openstack.test_api.html new file mode 100644 index 000000000..97d1c1ca5 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_api.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_api Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.fakes Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_auth Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_api Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_auth.html b/doc/build/html/api/nova..tests.api.openstack.test_auth.html new file mode 100644 index 000000000..740741b5b --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_auth.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_auth Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_api Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_faults Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_auth Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_faults.html b/doc/build/html/api/nova..tests.api.openstack.test_faults.html new file mode 100644 index 000000000..1c052a6d0 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_faults.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_faults Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_auth Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_flavors Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_faults Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_flavors.html b/doc/build/html/api/nova..tests.api.openstack.test_flavors.html new file mode 100644 index 000000000..77c0c1048 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_flavors.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_flavors Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_faults Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_images Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_flavors Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_images.html b/doc/build/html/api/nova..tests.api.openstack.test_images.html new file mode 100644 index 000000000..9475d52a8 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_images.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_images Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_flavors Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_ratelimiting Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_images Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html b/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html new file mode 100644 index 000000000..0d948d3d2 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_ratelimiting Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_images Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_servers Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_ratelimiting Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_servers.html b/doc/build/html/api/nova..tests.api.openstack.test_servers.html new file mode 100644 index 000000000..cb5f04142 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_servers.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_servers Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_ratelimiting Module

    +

    Next topic

    +

    The nova..tests.api.openstack.test_sharedipgroups Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_servers Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html b/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html new file mode 100644 index 000000000..e22564a33 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.openstack.test_sharedipgroups Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_servers Module

    +

    Next topic

    +

    The nova..tests.api.test_wsgi Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.openstack.test_sharedipgroups Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api.test_wsgi.html b/doc/build/html/api/nova..tests.api.test_wsgi.html new file mode 100644 index 000000000..df2254044 --- /dev/null +++ b/doc/build/html/api/nova..tests.api.test_wsgi.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api.test_wsgi Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.openstack.test_sharedipgroups Module

    +

    Next topic

    +

    The nova..tests.api_integration Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api.test_wsgi Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api_integration.html b/doc/build/html/api/nova..tests.api_integration.html new file mode 100644 index 000000000..664c7cfa2 --- /dev/null +++ b/doc/build/html/api/nova..tests.api_integration.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api_integration Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api.test_wsgi Module

    +

    Next topic

    +

    The nova..tests.api_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api_integration Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.api_unittest.html b/doc/build/html/api/nova..tests.api_unittest.html new file mode 100644 index 000000000..31cf4ac95 --- /dev/null +++ b/doc/build/html/api/nova..tests.api_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.api_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api_integration Module

    +

    Next topic

    +

    The nova..tests.auth_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.api_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.auth_unittest.html b/doc/build/html/api/nova..tests.auth_unittest.html new file mode 100644 index 000000000..aa5d687df --- /dev/null +++ b/doc/build/html/api/nova..tests.auth_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.auth_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.api_unittest Module

    +

    Next topic

    +

    The nova..tests.cloud_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.auth_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.cloud_unittest.html b/doc/build/html/api/nova..tests.cloud_unittest.html new file mode 100644 index 000000000..d108dfe37 --- /dev/null +++ b/doc/build/html/api/nova..tests.cloud_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.cloud_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.auth_unittest Module

    +

    Next topic

    +

    The nova..tests.compute_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.cloud_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.compute_unittest.html b/doc/build/html/api/nova..tests.compute_unittest.html new file mode 100644 index 000000000..0666c0d8f --- /dev/null +++ b/doc/build/html/api/nova..tests.compute_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.compute_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.cloud_unittest Module

    +

    Next topic

    +

    The nova..tests.declare_flags Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.compute_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.declare_flags.html b/doc/build/html/api/nova..tests.declare_flags.html new file mode 100644 index 000000000..3afcdcf69 --- /dev/null +++ b/doc/build/html/api/nova..tests.declare_flags.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.declare_flags Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.compute_unittest Module

    +

    Next topic

    +

    The nova..tests.fake_flags Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.declare_flags Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.fake_flags.html b/doc/build/html/api/nova..tests.fake_flags.html new file mode 100644 index 000000000..13d16c7d6 --- /dev/null +++ b/doc/build/html/api/nova..tests.fake_flags.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.fake_flags Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.declare_flags Module

    +

    Next topic

    +

    The nova..tests.flags_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.fake_flags Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.flags_unittest.html b/doc/build/html/api/nova..tests.flags_unittest.html new file mode 100644 index 000000000..ecd30a054 --- /dev/null +++ b/doc/build/html/api/nova..tests.flags_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.flags_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.fake_flags Module

    +

    Next topic

    +

    The nova..tests.network_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.flags_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.network_unittest.html b/doc/build/html/api/nova..tests.network_unittest.html new file mode 100644 index 000000000..f622a499a --- /dev/null +++ b/doc/build/html/api/nova..tests.network_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.network_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.flags_unittest Module

    +

    Next topic

    +

    The nova..tests.objectstore_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.network_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.objectstore_unittest.html b/doc/build/html/api/nova..tests.objectstore_unittest.html new file mode 100644 index 000000000..f21e6dbf2 --- /dev/null +++ b/doc/build/html/api/nova..tests.objectstore_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.objectstore_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.network_unittest Module

    +

    Next topic

    +

    The nova..tests.process_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.objectstore_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.process_unittest.html b/doc/build/html/api/nova..tests.process_unittest.html new file mode 100644 index 000000000..7c7d3cdff --- /dev/null +++ b/doc/build/html/api/nova..tests.process_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.process_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.objectstore_unittest Module

    +

    Next topic

    +

    The nova..tests.quota_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.process_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.quota_unittest.html b/doc/build/html/api/nova..tests.quota_unittest.html new file mode 100644 index 000000000..3be7186c7 --- /dev/null +++ b/doc/build/html/api/nova..tests.quota_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.quota_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.process_unittest Module

    +

    Next topic

    +

    The nova..tests.real_flags Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.quota_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.real_flags.html b/doc/build/html/api/nova..tests.real_flags.html new file mode 100644 index 000000000..d91f0635e --- /dev/null +++ b/doc/build/html/api/nova..tests.real_flags.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.real_flags Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.quota_unittest Module

    +

    Next topic

    +

    The nova..tests.rpc_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.real_flags Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.rpc_unittest.html b/doc/build/html/api/nova..tests.rpc_unittest.html new file mode 100644 index 000000000..a0676a0f8 --- /dev/null +++ b/doc/build/html/api/nova..tests.rpc_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.rpc_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.real_flags Module

    +

    Next topic

    +

    The nova..tests.runtime_flags Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.rpc_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.runtime_flags.html b/doc/build/html/api/nova..tests.runtime_flags.html new file mode 100644 index 000000000..ac0cde93d --- /dev/null +++ b/doc/build/html/api/nova..tests.runtime_flags.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.runtime_flags Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.rpc_unittest Module

    +

    Next topic

    +

    The nova..tests.scheduler_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.runtime_flags Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.scheduler_unittest.html b/doc/build/html/api/nova..tests.scheduler_unittest.html new file mode 100644 index 000000000..e5a8eca35 --- /dev/null +++ b/doc/build/html/api/nova..tests.scheduler_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.scheduler_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.runtime_flags Module

    +

    Next topic

    +

    The nova..tests.service_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.scheduler_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.service_unittest.html b/doc/build/html/api/nova..tests.service_unittest.html new file mode 100644 index 000000000..1b132022b --- /dev/null +++ b/doc/build/html/api/nova..tests.service_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.service_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.scheduler_unittest Module

    +

    Next topic

    +

    The nova..tests.twistd_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.service_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.twistd_unittest.html b/doc/build/html/api/nova..tests.twistd_unittest.html new file mode 100644 index 000000000..616903cf9 --- /dev/null +++ b/doc/build/html/api/nova..tests.twistd_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.twistd_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.service_unittest Module

    +

    Next topic

    +

    The nova..tests.validator_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.twistd_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.validator_unittest.html b/doc/build/html/api/nova..tests.validator_unittest.html new file mode 100644 index 000000000..8646d5d3b --- /dev/null +++ b/doc/build/html/api/nova..tests.validator_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.validator_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.twistd_unittest Module

    +

    Next topic

    +

    The nova..tests.virt_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.validator_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.virt_unittest.html b/doc/build/html/api/nova..tests.virt_unittest.html new file mode 100644 index 000000000..06f893ead --- /dev/null +++ b/doc/build/html/api/nova..tests.virt_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.virt_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.validator_unittest Module

    +

    Next topic

    +

    The nova..tests.volume_unittest Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.virt_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..tests.volume_unittest.html b/doc/build/html/api/nova..tests.volume_unittest.html new file mode 100644 index 000000000..01358f784 --- /dev/null +++ b/doc/build/html/api/nova..tests.volume_unittest.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..tests.volume_unittest Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.virt_unittest Module

    +

    Next topic

    +

    The nova..twistd Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..tests.volume_unittest Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..twistd.html b/doc/build/html/api/nova..twistd.html new file mode 100644 index 000000000..5e8a2eb1f --- /dev/null +++ b/doc/build/html/api/nova..twistd.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..twistd Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..tests.volume_unittest Module

    +

    Next topic

    +

    The nova..utils Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..twistd Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..utils.html b/doc/build/html/api/nova..utils.html new file mode 100644 index 000000000..47a08caf3 --- /dev/null +++ b/doc/build/html/api/nova..utils.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..utils Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..twistd Module

    +

    Next topic

    +

    The nova..validate Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..utils Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..validate.html b/doc/build/html/api/nova..validate.html new file mode 100644 index 000000000..997f18f68 --- /dev/null +++ b/doc/build/html/api/nova..validate.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..validate Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..utils Module

    +

    Next topic

    +

    The nova..virt.connection Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..validate Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..virt.connection.html b/doc/build/html/api/nova..virt.connection.html new file mode 100644 index 000000000..d8d122c89 --- /dev/null +++ b/doc/build/html/api/nova..virt.connection.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..virt.connection Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..validate Module

    +

    Next topic

    +

    The nova..virt.fake Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..virt.connection Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..virt.fake.html b/doc/build/html/api/nova..virt.fake.html new file mode 100644 index 000000000..4578f5c1f --- /dev/null +++ b/doc/build/html/api/nova..virt.fake.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..virt.fake Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..virt.connection Module

    +

    Next topic

    +

    The nova..virt.images Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..virt.fake Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..virt.images.html b/doc/build/html/api/nova..virt.images.html new file mode 100644 index 000000000..2ec504dd4 --- /dev/null +++ b/doc/build/html/api/nova..virt.images.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..virt.images Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..virt.fake Module

    +

    Next topic

    +

    The nova..virt.libvirt_conn Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..virt.images Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..virt.libvirt_conn.html b/doc/build/html/api/nova..virt.libvirt_conn.html new file mode 100644 index 000000000..f1cda3ada --- /dev/null +++ b/doc/build/html/api/nova..virt.libvirt_conn.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..virt.libvirt_conn Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..virt.images Module

    +

    Next topic

    +

    The nova..virt.xenapi Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..virt.libvirt_conn Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..virt.xenapi.html b/doc/build/html/api/nova..virt.xenapi.html new file mode 100644 index 000000000..2f888f8ba --- /dev/null +++ b/doc/build/html/api/nova..virt.xenapi.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..virt.xenapi Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..virt.libvirt_conn Module

    +

    Next topic

    +

    The nova..volume.driver Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..virt.xenapi Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..volume.driver.html b/doc/build/html/api/nova..volume.driver.html new file mode 100644 index 000000000..a7b0d8d47 --- /dev/null +++ b/doc/build/html/api/nova..volume.driver.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..volume.driver Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..virt.xenapi Module

    +

    Next topic

    +

    The nova..volume.manager Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..volume.driver Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..volume.manager.html b/doc/build/html/api/nova..volume.manager.html new file mode 100644 index 000000000..54b80c171 --- /dev/null +++ b/doc/build/html/api/nova..volume.manager.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..volume.manager Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..volume.driver Module

    +

    Next topic

    +

    The nova..wsgi Module

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..volume.manager Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/api/nova..wsgi.html b/doc/build/html/api/nova..wsgi.html new file mode 100644 index 000000000..db82ed890 --- /dev/null +++ b/doc/build/html/api/nova..wsgi.html @@ -0,0 +1,128 @@ + + + + + + + + + The nova..wsgi Module — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    The nova..volume.manager Module

    +

    Next topic

    +

    Services, Managers and Drivers

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The nova..wsgi Module

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/cloud101.html b/doc/build/html/cloud101.html new file mode 100644 index 000000000..e26d94f61 --- /dev/null +++ b/doc/build/html/cloud101.html @@ -0,0 +1,203 @@ + + + + + + + + + Cloud Computing 101 — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Welcome to Nova’s documentation!

    +

    Next topic

    +

    Nova Concepts and Introduction

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Cloud Computing 101

    +

    Originally the term cloud came from a diagram that contained a cloud-like shape to contain the +services that afforded computing power that was harnessed to get work done. Much like the electrical +power we receive each day, cloud computing is a model for enabling access to a shared collection of +computing resources - networks for transfer, servers for storage, and applications or services for +completing work.

    +
    +

    Why Cloud?

    +

    Like humans supposedly only use 10% of their brain power, many of the computers in place in data +centers today are underutilized in computing power and networking bandwidth. People also may need a large +amount of computing capacity to complete a computation for example, but don’t need the computing power +once the computation is done. You want cloud computing when you want a service that’s available +on-demand with the flexibility to bring it up or down through automation or with little intervention.

    +
    +
    +

    Attributes of a Cloud

    +

    On-demand self-service - A cloud should enable self-service, so that users can provision servers and networks with little +human intervention.

    +

    Network access - Any computing capabilities are available over the network and you can use many different +devices through standardized mechanisms.

    +

    Resource pooling - Clouds can serve multiple consumers according to demand.

    +

    Elasticity - Provisioning is rapid and scales out or in based on need.

    +

    Metered or measured service - Just like utilities that are paid for by the hour, clouds should optimize +resource use and control it for the level of service or type of servers such as storage or processing.

    +
    +
    +

    Types of Cloud Services

    +

    Cloud computing offers different service models depending on the capabilities a consumer may require. +The US-based National Institute of Standards and Technology offers definitions for cloud computing +and the service models that are emerging.

    +
    +

    SaaS - Software as a Service

    +

    Provides the consumer the ability to use the software in a cloud environment, such as web-based email for example.

    +
    +
    +

    PaaS - Platform as a Service

    +

    Provides the consumer the ability to deploy applications through a programming language or tools supported +by the cloud platform provider. An example of platform as a service is an Eclipse/Java programming +platform provided with no downloads required.

    +
    +
    +

    IaaS - Infrastructure as a Service

    +

    Provides infrastructure such as computer instances, network connections, and storage so that people +can run any software or operating system.

    +
    +

    Todo

    +

    Use definitions from http://csrc.nist.gov/groups/SNS/cloud-computing/ and attribute NIST

    +
    +
    +
    +
    +

    Types of Cloud Deployments

    +
    +

    Todo

    +

    describe public/private/hybrid/etc

    +
    +
    +
    +

    Work in the Clouds

    +
    +

    Todo

    +

    What people have done/sample projects

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/code.html b/doc/build/html/code.html new file mode 100644 index 000000000..cd16f818f --- /dev/null +++ b/doc/build/html/code.html @@ -0,0 +1,196 @@ + + + + + + + + + <no title> — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +

    Generating source/api/nova..adminclient.rst +Generating source/api/nova..api.cloud.rst +Generating source/api/nova..api.ec2.admin.rst +Generating source/api/nova..api.ec2.apirequest.rst +Generating source/api/nova..api.ec2.cloud.rst +Generating source/api/nova..api.ec2.images.rst +Generating source/api/nova..api.ec2.metadatarequesthandler.rst +Generating source/api/nova..api.openstack.auth.rst +Generating source/api/nova..api.openstack.backup_schedules.rst +Generating source/api/nova..api.openstack.faults.rst +Generating source/api/nova..api.openstack.flavors.rst +Generating source/api/nova..api.openstack.images.rst +Generating source/api/nova..api.openstack.servers.rst +Generating source/api/nova..api.openstack.sharedipgroups.rst +Generating source/api/nova..auth.dbdriver.rst +Generating source/api/nova..auth.fakeldap.rst +Generating source/api/nova..auth.ldapdriver.rst +Generating source/api/nova..auth.manager.rst +Generating source/api/nova..auth.signer.rst +Generating source/api/nova..cloudpipe.pipelib.rst +Generating source/api/nova..compute.disk.rst +Generating source/api/nova..compute.instance_types.rst +Generating source/api/nova..compute.manager.rst +Generating source/api/nova..compute.monitor.rst +Generating source/api/nova..compute.power_state.rst +Generating source/api/nova..context.rst +Generating source/api/nova..crypto.rst +Generating source/api/nova..db.api.rst +Generating source/api/nova..db.sqlalchemy.api.rst +Generating source/api/nova..db.sqlalchemy.models.rst +Generating source/api/nova..db.sqlalchemy.session.rst +Generating source/api/nova..exception.rst +Generating source/api/nova..fakerabbit.rst +Generating source/api/nova..flags.rst +Generating source/api/nova..image.service.rst +Generating source/api/nova..manager.rst +Generating source/api/nova..network.linux_net.rst +Generating source/api/nova..network.manager.rst +Generating source/api/nova..objectstore.bucket.rst +Generating source/api/nova..objectstore.handler.rst +Generating source/api/nova..objectstore.image.rst +Generating source/api/nova..objectstore.stored.rst +Generating source/api/nova..process.rst +Generating source/api/nova..quota.rst +Generating source/api/nova..rpc.rst +Generating source/api/nova..scheduler.chance.rst +Generating source/api/nova..scheduler.driver.rst +Generating source/api/nova..scheduler.manager.rst +Generating source/api/nova..scheduler.simple.rst +Generating source/api/nova..server.rst +Generating source/api/nova..service.rst +Generating source/api/nova..test.rst +Generating source/api/nova..tests.access_unittest.rst +Generating source/api/nova..tests.api.fakes.rst +Generating source/api/nova..tests.api.openstack.fakes.rst +Generating source/api/nova..tests.api.openstack.test_api.rst +Generating source/api/nova..tests.api.openstack.test_auth.rst +Generating source/api/nova..tests.api.openstack.test_faults.rst +Generating source/api/nova..tests.api.openstack.test_flavors.rst +Generating source/api/nova..tests.api.openstack.test_images.rst +Generating source/api/nova..tests.api.openstack.test_ratelimiting.rst +Generating source/api/nova..tests.api.openstack.test_servers.rst +Generating source/api/nova..tests.api.openstack.test_sharedipgroups.rst +Generating source/api/nova..tests.api.test_wsgi.rst +Generating source/api/nova..tests.api_integration.rst +Generating source/api/nova..tests.api_unittest.rst +Generating source/api/nova..tests.auth_unittest.rst +Generating source/api/nova..tests.cloud_unittest.rst +Generating source/api/nova..tests.compute_unittest.rst +Generating source/api/nova..tests.declare_flags.rst +Generating source/api/nova..tests.fake_flags.rst +Generating source/api/nova..tests.flags_unittest.rst +Generating source/api/nova..tests.network_unittest.rst +Generating source/api/nova..tests.objectstore_unittest.rst +Generating source/api/nova..tests.process_unittest.rst +Generating source/api/nova..tests.quota_unittest.rst +Generating source/api/nova..tests.real_flags.rst +Generating source/api/nova..tests.rpc_unittest.rst +Generating source/api/nova..tests.runtime_flags.rst +Generating source/api/nova..tests.scheduler_unittest.rst +Generating source/api/nova..tests.service_unittest.rst +Generating source/api/nova..tests.twistd_unittest.rst +Generating source/api/nova..tests.validator_unittest.rst +Generating source/api/nova..tests.virt_unittest.rst +Generating source/api/nova..tests.volume_unittest.rst +Generating source/api/nova..twistd.rst +Generating source/api/nova..utils.rst +Generating source/api/nova..validate.rst +Generating source/api/nova..virt.connection.rst +Generating source/api/nova..virt.fake.rst +Generating source/api/nova..virt.images.rst +Generating source/api/nova..virt.libvirt_conn.rst +Generating source/api/nova..virt.xenapi.rst +Generating source/api/nova..volume.driver.rst +Generating source/api/nova..volume.manager.rst +Generating source/api/nova..wsgi.rst

    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/community.html b/doc/build/html/community.html new file mode 100644 index 000000000..226b54cb6 --- /dev/null +++ b/doc/build/html/community.html @@ -0,0 +1,182 @@ + + + + + + + + + Getting Involved — nova v2010.1 documentation + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Glance Integration - The Future of File Storage

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Getting Involved

    +

    The Nova community 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.

    +
    +

    How to Join the OpenStack Community

    +

    Our community welcomes all people interested in open source cloud computing, and there are no formal +membership requirements. The best way to join the community is to talk with others online or at a meetup +and offer contributions through Launchpad, the wiki, or blogs. We welcome all types of contributions, +from blueprint designs to documentation to testing to deployment scripts.

    +
    +
    +

    Contributing Code

    +

    To contribute code, sign up for a Launchpad account and sign a contributor license agreement, +available on the OpenStack Wiki. Once the CLA is signed you +can contribute code through the Bazaar version control system which is related to your Launchpad account.

    +
    +
    +

    #openstack on Freenode IRC Network

    +

    There is a very active chat channel at irc://freenode.net/#openstack. This +is usually the best place to ask questions and find your way around. IRC stands for Internet Relay +Chat and it is a way to chat online in real time. You can also ask a question and come back to the +log files to read the answer later. Logs for the #openstack IRC channel are stored at +http://eavesdrop.openstack.org/irclogs/.

    +
    +
    +

    OpenStack Wiki

    +

    The wiki is a living source of knowledge. It is edited by the community, and +has collections of links and other sources of information. Typically the pages are a good place +to write drafts for specs or documentation, describe a blueprint, or collaborate with others.

    +

    OpenStack Wiki

    +
    +
    +

    Nova on Launchpad

    +

    Launchpad is a code hosting service that hosts the Nova source code. From +Launchpad you can report bugs, ask questions, and register blueprints (feature requests).

    + +
    +
    +

    OpenStack Blog

    +

    The OpenStack blog includes a weekly newsletter that aggregates OpenStack news +from around the internet, as well as providing inside information on upcoming +events and posts from OpenStack contributors.

    +

    OpenStack Blog

    +

    See also: Planet OpenStack, aggregating blogs +about OpenStack from around the internet into a single feed. If you’d like to contribute to this blog +aggregation with your blog posts, there are instructions for adding your blog.

    +
    +
    +

    Twitter

    +

    Because all the cool kids do it: @openstack. Also follow the +#openstack tag for relevant tweets.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/api.html b/doc/build/html/devref/api.html new file mode 100644 index 000000000..fad85bfa0 --- /dev/null +++ b/doc/build/html/devref/api.html @@ -0,0 +1,280 @@ + + + + + + + + + API Endpoint — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    API Endpoint

    +

    Nova has a system for managing multiple APIs on different subdomains. +Currently there is support for the OpenStack API, as well as the Amazon EC2 +API.

    +
    +

    Common Components

    +
    +

    The nova.api Module

    +
    +
    +

    The nova.api.cloud Module

    +
    +
    +
    +

    OpenStack API

    +
    +

    The openstack Module

    +
    +
    +

    The auth Module

    +
    +
    +

    The backup_schedules Module

    +
    +
    +

    The faults Module

    +
    +
    +

    The flavors Module

    +
    +
    +

    The images Module

    +
    +
    +

    The ratelimiting Module

    +
    +
    +

    The servers Module

    +
    +
    +

    The sharedipgroups Module

    +
    +
    +
    +

    EC2 API

    +
    +

    The nova.api.ec2 Module

    +
    +
    +

    The admin Module

    +
    +
    +

    The apirequest Module

    +
    +
    +

    The cloud Module

    +
    +
    +

    The images Module

    +
    +
    +

    The metadatarequesthandler Module

    +
    +
    +
    +

    Tests

    +
    +

    The api_unittest Module

    +
    +
    +

    The api_integration Module

    +
    +
    +

    The cloud_unittest Module

    +
    +
    +

    The api.fakes Module

    +
    +
    +

    The api.test_wsgi Module

    +
    +
    +

    The test_api Module

    +
    +
    +

    The test_auth Module

    +
    +
    +

    The test_faults Module

    +
    +
    +

    The test_flavors Module

    +
    +
    +

    The test_images Module

    +
    +
    +

    The test_ratelimiting Module

    +
    +
    +

    The test_servers Module

    +
    +
    +

    The test_sharedipgroups Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/architecture.html b/doc/build/html/devref/architecture.html new file mode 100644 index 000000000..a8eb08936 --- /dev/null +++ b/doc/build/html/devref/architecture.html @@ -0,0 +1,140 @@ + + + + + + + + + Nova System Architecture — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Nova System Architecture

    +

    Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received.

    +

    Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system.

    +
    +

    Components

    +

    Below you will find a helpful explanation of the different components.

    +
                                        /- ( LDAP )
    +                [ Auth Manager ] ---
    +                        |           \- ( DB )
    +                        |
    +                        |       [ scheduler ] - [ volume ]  - ( ATAoE/iSCSI )
    +                        |                /
    +[ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan )
    +                        |                \
    +                     < HTTP >   [ scheduler ] - [ compute ] - ( libvirt/xen )
    +                        |                           |
    +                 [ objectstore ] < - retrieves images
    +
    +
      +
    • DB: sql database for data storage. Used by all components (LINKS NOT SHOWN)
    • +
    • Web Dashboard: potential external component that talks to the api
    • +
    • api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore)
    • +
    • Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system.
    • +
    • objectstore: twisted http server that replicates s3 api and allows storage and retrieval of images
    • +
    • scheduler: decides which host gets each vm and volume
    • +
    • volume: manages dynamically attachable block devices.
    • +
    • network: manages ip forwarding, bridges, and vlans
    • +
    • compute: manages communication with hypervisor and virtual machines.
    • +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/auth.html b/doc/build/html/devref/auth.html new file mode 100644 index 000000000..f7aa9f623 --- /dev/null +++ b/doc/build/html/devref/auth.html @@ -0,0 +1,341 @@ + + + + + + + + + Authentication and Authorization — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Authentication and Authorization

    +
    +

    The nova.quota Module

    +
    +

    The nova.auth.signer Module

    +
    +
    +
    +

    Auth Manager

    +
    +

    The nova.auth.manager Module

    +
    +
    +

    The nova.auth.ldapdriver Driver

    +
    +
    +

    The nova.auth.dbdriver Driver

    +
    +
    +
    +

    Tests

    +
    +

    The auth_unittest Module

    +
    +
    +

    The access_unittest Module

    +
    +
    +

    The quota_unittest Module

    +
    +
    +
    +

    Legacy Docs

    +

    Nova provides RBAC (Role-based access control) of the AWS-type APIs. We define the following roles:

    +

    Roles-Based Access Control of AWS-style APIs using SAML Assertions +“Achieving FIPS 199 Moderate certification of a hybrid cloud environment using CloudAudit and declarative C.I.A. classifications”

    +
    +
    +

    Introduction

    +

    We will investigate one method for integrating an AWS-style API with US eAuthentication-compatible federated authentication systems, to achieve access controls and limits based on traditional operational roles. +Additionally, we will look at how combining this approach, with an implementation of the CloudAudit APIs, will allow us to achieve a certification under FIPS 199 Moderate classification for a hybrid cloud environment.

    +
    +
    +

    Relationship of US eAuth to RBAC

    +

    Typical implementations of US eAuth authentication systems are structured as follows:

    +
    [ MS Active Directory or other federated LDAP user store ]
    +      --> backends to…
    +[ SUN Identity Manager or other SAML Policy Controller ]
    +      --> maps URLs to groups…
    +[ Apache Policy Agent in front of eAuth-secured Web Application ]
    +
    +

    In more ideal implementations, the remainder of the application-specific account information is stored either in extended schema on the LDAP server itself, via the use of a translucent LDAP proxy, or in an independent datastore keyed off of the UID provided via SAML assertion.

    +
    +
    +

    Roles

    +

    AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles:

    +
      +
    • Base User
    • +
    • System Administrator/Developer (currently have the same permissions)
    • +
    • Network Administrator
    • +
    • Project Manager
    • +
    • Cloud Administrator/IT-Security (currently have the same permissions)
    • +
    +

    There is an additional, conceptual end-user that may or may not have API access:

    +
      +
    • (EXTERNAL) End-user / Third-party User
    • +
    +

    Basic operations are available to any :

    +
      +
    • Describe Instances
    • +
    • Describe Images
    • +
    • Describe Volumes
    • +
    • Describe Keypairs
    • +
    • Create Keypair
    • +
    • Delete Keypair
    • +
    • Create, Upload, Delete: Buckets and Keys (Object Store)
    • +
    +

    System Administrators/Developers/Project Manager:

    +
      +
    • Create, Attach, Delete Volume (Block Store)
    • +
    • Launch, Reboot, Terminate Instance
    • +
    • Register/Unregister Machine Image (project-wide)
    • +
    • Request / Review CloudAudit Scans
    • +
    +

    Project Manager:

    +
      +
    • Add and remove other users (currently no api)
    • +
    • Set roles (currently no api)
    • +
    +

    Network Administrator:

    +
      +
    • Change Machine Image properties (public / private)
    • +
    • Change Firewall Rules, define Security Groups
    • +
    • Allocate, Associate, Deassociate Public IP addresses
    • +
    +

    Cloud Administrator/IT-Security:

    +
      +
    • All permissions
    • +
    +
    +
    +

    Enhancements

    +
      +
    • SAML Token passing
    • +
    • REST interfaces
    • +
    • SOAP interfaces
    • +
    +

    Wrapping the SAML token into the API calls. +Then store the UID (fetched via backchannel) into the instance metadata, providing end-to-end auditability of ownership and responsibility, without PII.

    +
    +
    +

    CloudAudit APIs

    +
      +
    • Request formats
    • +
    • Response formats
    • +
    • Stateless asynchronous queries
    • +
    +

    CloudAudit queries may spawn long-running processes (similar to launching instances, etc.) They need to return a ReservationId in the same fashion, which can be returned in further queries for updates. +RBAC of CloudAudit API calls is critical, since detailed system information is a system vulnerability.

    +
    +
    +

    Type declarations

    +
      +
    • Data declarations – Volumes and Objects
    • +
    • System declarations – Instances
    • +
    +

    Existing API calls to launch instances specific a single, combined “type” flag. We propose to extend this with three additional type declarations, mapping to the “Confidentiality, Integrity, Availability” classifications of FIPS 199. An example API call would look like:

    +
    RunInstances type=m1.large number=1 secgroup=default key=mykey confidentiality=low integrity=low availability=low
    +
    +

    These additional parameters would also apply to creation of block storage volumes (along with the existing parameter of ‘size’), and creation of object storage ‘buckets’. (C.I.A. classifications on a bucket would be inherited by the keys within this bucket.)

    +
    +
    +

    Request Brokering

    +
      +
    • Cloud Interop
    • +
    • IMF Registration / PubSub
    • +
    • Digital C&A
    • +
    +

    Establishing declarative semantics for individual API calls will allow the cloud environment to seamlessly proxy these API calls to external, third-party vendors – when the requested CIA levels match.

    +

    See related work within the Infrastructure 2.0 working group for more information on how the IMF Metadata specification could be utilized to manage registration of these vendors and their C&A credentials.

    +
    +
    +

    Dirty Cloud – Hybrid Data Centers

    +
      +
    • CloudAudit bridge interfaces
    • +
    • Anything in the ARP table
    • +
    +

    A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network.

    +

    This interconnect is typically a bridged VPN connection. Any machines that can be bridged into a hybrid environment in this fashion (at Layer 2) must implement a minimum version of the CloudAudit spec, such that they can be queried to provide a complete picture of the IT-sec runtime environment.

    +

    Network discovery protocols (ARP, CDP) can be applied in this case, and existing protocols (SNMP location data, DNS LOC records) overloaded to provide CloudAudit information.

    +
    +
    +

    The Details

    +
      +
    • Preliminary Roles Definitions
    • +
    • Categorization of available API calls
    • +
    • SAML assertion vocabulary
    • +
    +
    +
    +

    System limits

    +

    The following limits need to be defined and enforced:

    +
      +
    • Total number of instances allowed (user / project)
    • +
    • Total number of instances, per instance type (user / project)
    • +
    • Total number of volumes (user / project)
    • +
    • Maximum size of volume
    • +
    • Cumulative size of all volumes
    • +
    • Total use of object storage (GB)
    • +
    • Total number of Public IPs
    • +
    +
    +
    +

    Further Challenges

    +
      +
    • Prioritization of users / jobs in shared computing environments
    • +
    • Incident response planning
    • +
    • Limit launch of instances to specific security groups based on AMI
    • +
    • Store AMIs in LDAP for added property control
    • +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/cloudpipe.html b/doc/build/html/devref/cloudpipe.html new file mode 100644 index 000000000..c255b9a44 --- /dev/null +++ b/doc/build/html/devref/cloudpipe.html @@ -0,0 +1,182 @@ + + + + + + + + + Cloudpipe – Per Project Vpns — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Common and Misc Libraries

    +

    Next topic

    +

    Objectstore - File Storage Service

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Cloudpipe – Per Project Vpns

    +

    Cloudpipe is a method for connecting end users to their project insnances in vlan mode.

    +
    +

    Overview

    +

    The support code for cloudpipe implements admin commands (via nova-manage) to automatically create a vm for a project that allows users to vpn into the private network of their project. Access to this vpn is provided through a public port on the network host for the project. This allows users to have free access to the virtual machines in their project without exposing those machines to the public internet.

    +
    +
    +

    Cloudpipe Image

    +

    The cloudpipe image is basically just a linux instance with openvpn installed. It needs a simple script to grab user data from the metadata server, b64 decode it into a zip file, and run the autorun.sh script from inside the zip. The autorun script will configure and run openvpn to run using the data from nova.

    +

    It is also useful to have a cron script that will periodically redownload the metadata and copy the new crl. This will keep revoked users from connecting and will disconnect any users that are connected with revoked certificates when their connection is renegotiated (every hour).

    +
    +
    +

    Cloudpipe Launch

    +

    When you use nova-manage to launch a cloudpipe for a user, it goes through the following process:

    +
      +
    1. creates a keypair called <project_id>-vpn and saves it in the keys directory
    2. +
    3. creates a security group <project_id>-vpn and opens up 1194 and icmp
    4. +
    5. creates a cert and private key for the vpn instance and saves it in the CA/projects/<project_id>/ directory
    6. +
    7. zips up the info and puts it b64 encoded as user data
    8. +
    9. launches an m1.tiny instance with the above settings using the flag-specified vpn image
    10. +
    +
    +
    +

    Vpn Access

    +

    In vlan networking mode, the second ip in each private network is reserved for the cloudpipe instance. This gives a consistent ip to the instance so that nova-network can create forwarding rules for access from the outside world. The network for each project is given a specific high-numbered port on the public ip of the network host. This port is automatically forwarded to 1194 on the vpn instance.

    +

    If specific high numbered ports do not work for your users, you can always allocate and associate a public ip to the instance, and then change the vpn_public_ip and vpn_public_port in the database. This will be turned into a nova-manage command or a flag soon.

    +
    +
    +

    Certificates and Revocation

    +

    If the use_project_ca flag is set (required to for cloudpipes to work securely), then each project has its own ca. This ca is used to sign the certificate for the vpn, and is also passed to the user for bundling images. When a certificate is revoked using nova-manage, a new Certificate Revocation List (crl) is generated. As long as cloudpipe has an updated crl, it will block revoked users from connecting to the vpn.

    +
    +

    The nova.cloudpipe.pipelib Module

    +
    +
    +

    The nova.api.cloudpipe Module

    +
    +
    +

    The nova.crypto Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/compute.html b/doc/build/html/devref/compute.html new file mode 100644 index 000000000..4ddc16907 --- /dev/null +++ b/doc/build/html/devref/compute.html @@ -0,0 +1,207 @@ + + + + + + + + + Virtualization — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Virtualization

    +
    +

    Compute

    +

    Documentation for the compute manager and related files. For reading about +a specific virtualization backend, read Drivers.

    +
    +

    The nova.compute.manager Module

    +
    +
    +

    The nova.virt.connection Module

    +
    +
    +

    The nova.compute.disk Module

    +
    +
    +

    The nova.virt.images Module

    +
    +
    +

    The nova.compute.instance_types Module

    +
    +
    +

    The nova.compute.power_state Module

    +
    +
    +
    +

    Drivers

    +
    +

    The nova.virt.libvirt_conn Driver

    +
    +
    +

    The nova.virt.xenapi Driver

    +
    +
    +

    The nova.virt.fake Driver

    +
    +
    +
    +

    Monitoring

    +
    +

    The nova.compute.monitor Module

    +
    +
    +
    +

    Tests

    +
    +

    The compute_unittest Module

    +
    +
    +

    The virt_unittest Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/database.html b/doc/build/html/devref/database.html new file mode 100644 index 000000000..40e0e490b --- /dev/null +++ b/doc/build/html/devref/database.html @@ -0,0 +1,161 @@ + + + + + + + + + The Database Layer — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Services, Managers and Drivers

    +

    Next topic

    +

    Storage Volumes, Disks

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    The Database Layer

    +
    +

    The nova.db.api Module

    +
    +
    +

    The Sqlalchemy Driver

    +
    +

    The nova.db.sqlalchemy.api Module

    +
    +
    +

    The nova.db.sqlalchemy.models Module

    +
    +
    +

    The nova.db.sqlalchemy.session Module

    +
    +
    +
    +

    Tests

    +

    Tests are lacking for the db api layer and for the sqlalchemy driver. +Failures in the drivers would be dectected in other test cases, though.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/development.environment.html b/doc/build/html/devref/development.environment.html new file mode 100644 index 000000000..eadf137a7 --- /dev/null +++ b/doc/build/html/devref/development.environment.html @@ -0,0 +1,107 @@ + + + + + + + + + Setting up a development environment — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Setting up a development environment

    +
    +

    Todo

    +

    write this

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/fakes.html b/doc/build/html/devref/fakes.html new file mode 100644 index 000000000..2137b9939 --- /dev/null +++ b/doc/build/html/devref/fakes.html @@ -0,0 +1,163 @@ + + + + + + + + + Fake Drivers — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Scheduler

    +

    Next topic

    +

    Common and Misc Libraries

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Fake Drivers

    +
    +

    Todo

    +

    document general info about fakes

    +
    +

    When the real thing isn’t available and you have some development to do these +fake implementations of various drivers let you get on with your day.

    +
    +

    The nova.virt.fake Module

    +
    +
    +

    The nova.auth.fakeldap Module

    +
    +
    +

    The nova.fakerabbit Module

    +
    +
    +

    The nova.volume.driver.FakeAOEDriver Class

    +
    +
    +

    The nova.tests.service_unittest.FakeManager Class

    +
    +
    +

    The nova.tests.api.openstack.fakes Module

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/glance.html b/doc/build/html/devref/glance.html new file mode 100644 index 000000000..f15a349e3 --- /dev/null +++ b/doc/build/html/devref/glance.html @@ -0,0 +1,137 @@ + + + + + + + + + Glance Integration - The Future of File Storage — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Objectstore - File Storage Service

    +

    Next topic

    +

    Getting Involved

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Glance Integration - The Future of File Storage

    +
    +

    The nova.image.service Module

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/index.html b/doc/build/html/devref/index.html new file mode 100644 index 000000000..dd3e0eb28 --- /dev/null +++ b/doc/build/html/devref/index.html @@ -0,0 +1,483 @@ + + + + + + + + + Developer Guide — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Nova Quickstart

    +

    Next topic

    +

    <no title>

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Developer Guide

    +

    In this section you will find information on Nova’s lower level programming APIs.

    +
    +

    Programming HowTos and Tutorials

    +
    +

    Todo

    +

    Add some programming howtos and tuts

    +
    +
    +
    +

    API Reference

    +
    + +
    +
    +
    +

    Module Reference

    +
    + +
    +
    +
    +

    Indices and tables

    + +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/modules.html b/doc/build/html/devref/modules.html new file mode 100644 index 000000000..70101a55d --- /dev/null +++ b/doc/build/html/devref/modules.html @@ -0,0 +1,120 @@ + + + + + + + + + Module Reference — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    This Page

    + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/doc/build/html/devref/network.html b/doc/build/html/devref/network.html new file mode 100644 index 000000000..643414966 --- /dev/null +++ b/doc/build/html/devref/network.html @@ -0,0 +1,230 @@ + + + + + + + + + Networking — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Virtualization

    +

    Next topic

    +

    Authentication and Authorization

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Networking

    +
    +

    Todo

    +
      +
    • document hardware specific commands (maybe in admin guide?) (todd)
    • +
    • document a map between flags and managers/backends (todd)
    • +
    +
    +
    +

    The nova.network.manager Module

    +
    +
    +

    The nova.network.linux_net Driver

    +
    +
    +

    Tests

    +
    +

    The network_unittest Module

    +
    +
    +
    +

    Legacy docs

    +

    The nova networking components manage private networks, public IP addressing, VPN connectivity, and firewall rules.

    +
    +
    +

    Components

    +

    There are several key components:

    +
      +
    • NetworkController (Manages address and vlan allocation)
    • +
    • RoutingNode (NATs public IPs to private IPs, and enforces firewall rules)
    • +
    • AddressingNode (runs DHCP services for private networks)
    • +
    • BridgingNode (a subclass of the basic nova ComputeNode)
    • +
    • TunnelingNode (provides VPN connectivity)
    • +
    +
    +
    +

    Component Diagram

    +

    Overview:

    +
                                   (PUBLIC INTERNET)
    +                                |              \
    +                               / \             / \
    +                 [RoutingNode] ... [RN]    [TunnelingNode] ... [TN]
    +                       |             \    /       |              |
    +                       |            < AMQP >      |              |
    +[AddressingNode]--  (VLAN) ...         |        (VLAN)...    (VLAN)      --- [AddressingNode]
    +                       \               |           \           /
    +                      / \             / \         / \         / \
    +                       [BridgingNode] ...          [BridgingNode]
    +
    +
    +                 [NetworkController]   ...    [NetworkController]
    +                                   \          /
    +                                     < AMQP >
    +                                        |
    +                                       / \
    +                      [CloudController]...[CloudController]
    +
    +

    While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently).

    +
    +
    +

    State Model

    +

    Network State consists of the following facts:

    +
      +
    • VLAN assignment (to a project)
    • +
    • Private Subnet assignment (to a security group) in a VLAN
    • +
    • Private IP assignments (to running instances)
    • +
    • Public IP allocations (to a project)
    • +
    • Public IP associations (to a private IP / running instance)
    • +
    +

    While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed “fact engine” for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash.

    +
    +
    +

    The Public Traffic Path

    +

    Public Traffic:

    +
                   (PUBLIC INTERNET)
    +                      |
    +                    <NAT>  <-- [RoutingNode]
    +                      |
    +[AddressingNode] -->  |
    +                   ( VLAN )
    +                      |    <-- [BridgingNode]
    +                      |
    +               <RUNNING INSTANCE>
    +
    +

    The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance.

    +

    Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details).

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/nova.html b/doc/build/html/devref/nova.html new file mode 100644 index 000000000..02a6fdd14 --- /dev/null +++ b/doc/build/html/devref/nova.html @@ -0,0 +1,225 @@ + + + + + + + + + Common and Misc Libraries — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Common and Misc Libraries

    +

    Libraries common throughout Nova or just ones that haven’t been categorized +very well yet.

    +
    +

    The nova.adminclient Module

    +
    +
    +

    The nova.context Module

    +
    +
    +

    The nova.exception Module

    +
    +
    +

    The nova.flags Module

    +
    +
    +

    The nova.process Module

    +
    +
    +

    The nova.rpc Module

    +
    +
    +

    The nova.server Module

    +
    +
    +

    The nova.test Module

    +
    +
    +

    The nova.twistd Module

    +
    +
    +

    The nova.utils Module

    +
    +
    +

    The nova.validate Module

    +
    +
    +

    The nova.wsgi Module

    +
    +
    +

    Tests

    +
    +

    The declare_flags Module

    +
    +
    +

    The fake_flags Module

    +
    +
    +

    The flags_unittest Module

    +
    +
    +

    The process_unittest Module

    +
    +
    +

    The real_flags Module

    +
    +
    +

    The rpc_unittest Module

    +
    +
    +

    The runtime_flags Module

    +
    +
    +

    The twistd_unittest Module

    +
    +
    +

    The validator_unittest Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/objectstore.html b/doc/build/html/devref/objectstore.html new file mode 100644 index 000000000..fbe2c93bf --- /dev/null +++ b/doc/build/html/devref/objectstore.html @@ -0,0 +1,159 @@ + + + + + + + + + Objectstore - File Storage Service — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Cloudpipe – Per Project Vpns

    +

    Next topic

    +

    Glance Integration - The Future of File Storage

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Objectstore - File Storage Service

    +
    +

    The nova.objectstore.handler Module

    +
    +
    +

    The nova.objectstore.bucket Module

    +
    +
    +

    The nova.objectstore.stored Module

    +
    +
    +

    The nova.objecstore.image Module

    +
    +
    +

    Tests

    +
    +

    The objectstore_unittest Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/scheduler.html b/doc/build/html/devref/scheduler.html new file mode 100644 index 000000000..b60133991 --- /dev/null +++ b/doc/build/html/devref/scheduler.html @@ -0,0 +1,159 @@ + + + + + + + + + Scheduler — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    API Endpoint

    +

    Next topic

    +

    Fake Drivers

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Scheduler

    +
    +

    The nova.scheduler.manager Module

    +
    +
    +

    The nova.scheduler.driver Module

    +
    +
    +

    The nova.scheduler.chance Driver

    +
    +
    +

    The nova.scheduler.simple Driver

    +
    +
    +

    Tests

    +
    +

    The scheduler_unittest Module

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/services.html b/doc/build/html/devref/services.html new file mode 100644 index 000000000..fa8587043 --- /dev/null +++ b/doc/build/html/devref/services.html @@ -0,0 +1,150 @@ + + + + + + + + + Services, Managers and Drivers — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    The nova..wsgi Module

    +

    Next topic

    +

    The Database Layer

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Services, Managers and Drivers

    +

    The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier.

    +

    Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver.

    +
    +

    The nova.service Module

    +
    +
    +

    The nova.manager Module

    +
    +
    +

    Implementation-Specific Drivers

    +

    A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver.

    +

    Drivers should minimize touching the database, although it is currently acceptable for implementation specific data. This may be reconsidered at some point.

    +

    It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/devref/volume.html b/doc/build/html/devref/volume.html new file mode 100644 index 000000000..a6e8f8447 --- /dev/null +++ b/doc/build/html/devref/volume.html @@ -0,0 +1,163 @@ + + + + + + + + + Storage Volumes, Disks — nova v2010.1 documentation + + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    The Database Layer

    +

    Next topic

    +

    Virtualization

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Storage Volumes, Disks

    +
    +

    Todo

    +

    rework after iSCSI merge (see ‘Old Docs’) (todd or vish)

    +
    +
    +

    The nova.volume.manager Module

    +
    +
    +

    The nova.volume.driver Module

    +
    +
    +

    Tests

    +
    +

    The volume_unittest Module

    +
    +
    +
    +

    Old Docs

    +

    Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances.

    +

    Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs.

    +

    AoE exports are numbered according to a “shelf and blade” syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.)

    +

    The underlying volumes are LVM logical volumes, created on demand within a single large volume group.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html new file mode 100644 index 000000000..26a66cdbf --- /dev/null +++ b/doc/build/html/genindex.html @@ -0,0 +1,104 @@ + + + + + + + + + Index — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    + + + + + +
    +
    + +
    +
    +
    +
    + + +

    Index

    + +
    + +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/index.html b/doc/build/html/index.html new file mode 100644 index 000000000..fe6cc2192 --- /dev/null +++ b/doc/build/html/index.html @@ -0,0 +1,273 @@ + + + + + + + + + Welcome to Nova’s documentation! — nova v2010.1 documentation + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Next topic

    +

    Cloud Computing 101

    +

    This Page

    + + + +

    Twitter Feed

    + +
    +
    + +
    +
    +
    +
    + +
    +

    Welcome to Nova’s documentation!

    +

    Nova is a cloud computing fabric controller, the main part of an IaaS system. +Individuals and organizations can use Nova to host and manage their own cloud +computing systems. Nova originated as a project out of NASA Ames Research Laboratory.

    +

    Nova is written with the following design guidelines in mind:

    +
      +
    • Component based architecture: Quickly add new behaviors
    • +
    • Highly available: Scale to very serious workloads
    • +
    • Fault-Tollerant: Isloated processes avoid cascading failures
    • +
    • Recoverable: Failures should be easy to diagnose, debug, and rectify
    • +
    • Open Standards: Be a reference implementation for a community-driven api
    • +
    • 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 Getting Involved page for +other ways to interact with the community.

    +
    + +
    +

    Administrator’s Documentation

    + +
    +

    Todo

    +

    add swiftadmin

    +
    +
    +
    +

    Developer Docs

    + +
    +
    +

    Outstanding Documentation Tasks

    +
      +
    • +

      P1 (this is one example of how to use priority syntax) +* Document the assumptions about pluggable interfaces (sqlite3 instead of

      +
    • +
    + +
      +
    +
      +
    + +
    +
    +

    Indices and tables

    + +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/installer.html b/doc/build/html/installer.html new file mode 100644 index 000000000..09d6d7fa6 --- /dev/null +++ b/doc/build/html/installer.html @@ -0,0 +1,113 @@ + + + + + + + + + Live CD — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Live CD

    +
      +
    • 3 Images
    • +
    • Once you start bundling images, must be able to point to source code
    • +
    • Could make part of build
    • +
    • sudo nova-manage user admin newuser
    • +
    • sudo nova-manage project create demo newuser
    • +
    • sudo nova-manage project zipfile demo
    • +
    • get images
    • +
    • Web browser
    • +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/livecd.html b/doc/build/html/livecd.html new file mode 100644 index 000000000..4fb6cc63e --- /dev/null +++ b/doc/build/html/livecd.html @@ -0,0 +1,123 @@ + + + + + + + + + Installing the Live CD — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Previous topic

    +

    Service Architecture

    +

    Next topic

    +

    Administration Guide

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Installing the Live CD

    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/man/novamanage.html b/doc/build/html/man/novamanage.html new file mode 100644 index 000000000..95728484b --- /dev/null +++ b/doc/build/html/man/novamanage.html @@ -0,0 +1,221 @@ + + + + + + + + + nova-manage — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    nova-manage

    +
    +

    control and manage cloud computer instances and images

    + +++ + + + + + + + + + + + + + +
    Author:nova@lists.launchpad.net
    Date:2010-11-16
    Copyright:OpenStack LLC
    Version:0.1
    Manual section:1
    Manual group:cloud computing
    +
    +

    SYNOPSIS

    +
    +nova-manage <category> <action> [<args>]
    +
    +
    +

    DESCRIPTION

    +

    nova-manage controls cloud computing instances by managing nova users, nova projects, nova roles, shell selection, vpn connections, and floating IP address configuration. More information about OpenStack Nova is at http://nova.openstack.org.

    +
    +
    +

    OPTIONS

    +

    Run without arguments to see a list of available command categories. Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. +:: +nova-manage

    +

    You can also run with a category argument such as user to see a list of all commands in that category. +:: +nova-manage user

    +

    Here are the available categories and arguments for nova-manage:

    +
    +
    nova-manage user <action> [<argument>]
    +
    user admin <username> Create an admin user with the name <username>. +user create <username> Create a normal user with the name <username>. +user delete <username> Delete the user with the name <username>. +user exports <username> Outputs a list of access key and secret keys for user to the screen +user list Outputs a list of all the user names to the screen. +user modify <accesskey> <secretkey> <admin?T/F> Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it.
    +
    nova-manage project <action> [<argument>]
    +
    project add <projectname> Add a nova project with the name <projectname> to the database. +project create <projectname> Create a new nova project with the name <projectname> (you still need to do nova-manage project add <projectname> to add it to the database). +project delete Delete a nova project with the name <projectname>. +project environment <projectname> <username> Exports environment variables for the named project to a file named novarc. +project list Outputs a list of all the projects to the screen. +project quota <projectname> Outputs the size and specs of the project’s instances including gigabytes, instances, floating IPs, volumes, and cores. +project remove <projectname> Deletes the project with the name <projectname>. +project zipfile Compresses all related files for a created project into a zip file nova.zip.
    +
    nova-manage role <action> [<argument>]
    +
    role add <username> <rolename> <(optional) projectname> Add a user to either a global or project-based role with the indicated <rolename> assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. +role has <username> <projectname> Checks the user or project and responds with True if the user has a global role with a particular project. +role remove <username> <rolename> Remove the indicated role from the user.
    +
    nova-manage shell <action> [<argument>]
    +
    shell bpython Starts a new bpython shell. +shell ipython Starts a new ipython shell. +shell python Starts a new python shell. +shell run Starts a new shell using python. +shell script <path/scriptname> Runs the named script from the specified path with flags set.
    +
    nova-manage vpn <action> [<argument>]
    +
    vpn list Displays a list of projects, their IP prot numbers, and what state they’re in. +vpn run <projectname> Starts the VPN for the named project. +vpn spawn Runs all VPNs.
    +
    nova-manage floating <action> [<argument>]
    +
    floating create <host> <ip_range> Creates floating IP addresses for the named host by the given range. +floating delete <ip_range> Deletes floating IP addresses in the range given. +floating list Displays a list of all floating IP addresses.
    +
    + +++ + + + +
    +--help, -hShow this help message and exit.
    +
    +
    +

    FILES

    +

    The nova-manage.conf file contains configuration information in the form of python-gflags.

    +
    + +
    +

    BUGS

    +
      +
    • Nova is sourced in Launchpad so you can view current bugs at OpenStack Nova
    • +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/nova.concepts.html b/doc/build/html/nova.concepts.html new file mode 100644 index 000000000..04f302dc3 --- /dev/null +++ b/doc/build/html/nova.concepts.html @@ -0,0 +1,305 @@ + + + + + + + + + Nova Concepts and Introduction — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Nova Concepts and Introduction

    +
    +

    Introduction

    +

    Nova is the software that controls your Infrastructure as as Service (IaaS) +cloud computing platform. It is similar in scope to Amazon EC2 and Rackspace +CloudServers. Nova does not include any virtualization software, rather it +defines drivers that interact with underlying virtualization mechanisms that +run on your host operating system, and exposes functionality over a web API.

    +

    This document does not attempt to explain fundamental concepts of cloud +computing, IaaS, virtualization, or other related technologies. Instead, it +focuses on describing how Nova’s implementation of those concepts is achieved.

    +

    This page outlines concepts that you will need to understand as a user or +administrator of an OpenStack installation. Each section links to more more +detailed information in the Administration Guide, +but you’ll probably want to read this section straight-through before tackling +the specifics presented in the administration guide.

    +
    +
    +

    Concept: Users and Projects

    +
      +
    • access to images is limited by project
    • +
    • access/secret are per user
    • +
    • keypairs are per user
    • +
    • quotas are per project
    • +
    +
    +
    +

    Concept: Virtualization

    +
      +
    • KVM
    • +
    • UML
    • +
    • XEN
    • +
    • HyperV
    • +
    • qemu
    • +
    +
    +
    +

    Concept: Instances

    +

    An ‘instance’ is a word for a virtual machine that runs inside the cloud.

    +
    +
    +

    Concept: Storage

    +
    +

    Volumes

    +

    A ‘volume’ is a detachable block storage device. You can think of it as a usb hard drive. It can only be attached to one instance at a time, so it does not work like a SAN. If you wish to expose the same volume to multiple instances, you will have to use an NFS or SAMBA share from an existing instance.

    +
    +
    +

    Local Storage

    +

    Every instance larger than m1.tiny starts with some local storage (up to 160GB for m1.xlarge). This storage is currently the second partition on the root drive.

    +
    +
    +
    +

    Concept: Quotas

    +

    Nova supports per-project quotas. There are currently quotas for number of instances, total number of cores, number of volumes, total number of gigabytes, and number of floating ips.

    +
    +
    +

    Concept: RBAC

    +

    Nova provides roles based access control (RBAC) for access to api commands. A user can have a number of different roles. Roles define which api_commands a user can perform.

    +

    It is important to know that there are user-specific (sometimes called global) roles and project-specific roles. A user’s actual permissions in a particular project are the INTERSECTION of his user-specific roles and is project-specific roles.

    +

    For example: A user can access api commands allowed to the netadmin role (like allocate_address) only if he has the user-specific netadmin role AND the project-specific netadmin role.

    +

    More information about RBAC can be found in the Authentication and Authorization.

    +
    +
    +

    Concept: API

    +
      +
    • EC2
    • +
    • OpenStack / Rackspace
    • +
    +
    +
    +

    Concept: Networking

    +

    Nova has a concept of Fixed Ips and Floating ips. Fixed ips are assigned to an instance on creation and stay the same until the instance is explicitly terminated. Floating ips are ip addresses that can be dynamically associated with an instance. This address can be disassociated and associated with another instance at any time.

    +

    There are multiple strategies available for implementing fixed ips:

    +
    +

    Flat Mode

    +

    The simplest networking mode. Each instance receives a fixed ip from the pool. All instances are attached to the same bridge (br100) by default. The bridge must be configured manually. The networking configuration is injected into the instance before it is booted. Note that this currently only works on linux-style systems that keep networking configuration in /etc/network/interfaces.

    +
    +
    +

    Flat DHCP Mode

    +

    This is similar to the flat mode, in that all instances are attached to the same bridge. In this mode nova does a bit more configuration, it will attempt to bridge into an ethernet device (eth0 by default). It will also run dnsmasq as a dhcpserver listening on this bridge. Instances receive their fixed ips by doing a dhcpdiscover.

    +
    +
    +

    VLAN DHCP Mode

    +

    This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code named cloudpipe) needs to be created. Nova generates a certificate and key for the user to access the vpn and starts the vpn automatically. More information on cloudpipe can be found here.

    +

    The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds)

    +_images/cloudpipe.png +
    +
    +
    +

    Concept: Binaries

    +

    Nova is implemented by a number of related binaries. These binaries can run on the same machine or many machines. A detailed description of each binary is given in the binaries section of the developer guide.

    +
    +
    +

    Concept: nova-manage

    +

    The nova-manage command is used to perform many essential functions for +administration and ongoing maintenance of nova, such as user creation, +vpn management, and much more.

    +

    See doc:nova.manage in the Administration Guide for more details.

    +
    +
    +

    Concept: Flags

    +

    python-gflags

    +
    +
    +

    Concept: Plugins

    +
      +
    • Managers/Drivers: utils.import_object from string flag
    • +
    • virt/connections: conditional loading from string flag
    • +
    • db: LazyPluggable via string flag
    • +
    • auth_manager: utils.import_class based on string flag
    • +
    • Volumes: moving to pluggable driver instead of manager
    • +
    • Network: pluggable managers
    • +
    • Compute: same driver used, but pluggable at connection
    • +
    +
    +
    +

    Concept: IPC/RPC

    +

    Nova utilizes the RabbitMQ implementation of the AMQP messaging standard for performing communication between the various nova services. This message queuing service is used for both local and remote communication because Nova is designed so that there is no requirement that any of the services exist on the same physical machine. RabbitMQ in particular is very robust and provides the efficiency and reliability that Nova needs. More information about RabbitMQ can be found at http://www.rabbitmq.com/.

    +
    +
    +

    Concept: Fakes

    +
      +
    • auth
    • +
    • ldap
    • +
    +
    +
    +

    Concept: Scheduler

    +
      +
    • simple
    • +
    • random
    • +
    +
    +
    +

    Concept: Security Groups

    +

    Security groups

    +
    +
    +

    Concept: Certificate Authority

    +

    Nova does a small amount of certificate management. These certificates are used for project vpns and decrypting bundled images.

    +
    +
    +

    Concept: Images

    +
      +
    • launching
    • +
    • bundling
    • +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/object.model.html b/doc/build/html/object.model.html new file mode 100644 index 000000000..cabe2aab6 --- /dev/null +++ b/doc/build/html/object.model.html @@ -0,0 +1,162 @@ + + + + + + + + + Object Model — nova v2010.1 documentation + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Object Model

    +
    +

    Todo

    +

    Add brief description for core models

    +
    +

    +digraph foo { + graph [rankdir="LR"]; node [fontsize=9 shape=box]; + Instances -> "Public IPs" [arrowhead=crow]; + Instances -> "Security Groups" [arrowhead=crow]; + Users -> Projects [arrowhead=crow arrowtail=crow dir=both]; + Users -> Keys [arrowhead=crow]; + Instances -> Volumes [arrowhead=crow]; + Projects -> "Public IPs" [arrowhead=crow]; + Projects -> Instances [arrowhead=crow]; + Projects -> Volumes [arrowhead=crow]; + Projects -> Images [arrowhead=crow]; + Images -> Instances [arrowhead=crow]; + Projects -> "Security Groups" [arrowhead=crow]; + "Security Groups" -> Rules [arrowhead=crow]; +}

    +
    +

    Users

    +
    +
    +

    Projects

    +
    +
    +

    Images

    +
    +
    +

    Instances

    +
    +
    +

    Volumes

    +
    +
    +

    Security Groups

    +
    +
    +

    VLANs

    +
    +
    +

    IP Addresses

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv new file mode 100644 index 000000000..337533c60 --- /dev/null +++ b/doc/build/html/objects.inv @@ -0,0 +1,6 @@ +# Sphinx inventory version 2 +# Project: nova +# Version: 2010.1 +# The remainder of this file is compressed using zlib. +xmPN0 +,l.6ULZyiҤJ +z&T%r{v ?C Z{C`F3h=}C];P~e^ ViFhȲ6Xy2Z(sOah + + + + + + Nova Quickstart — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Installing Nova on Multiple Servers

    +

    Next topic

    +

    Developer Guide

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Nova Quickstart

    +
    +

    Todo

    +

    P1 (this is one example of how to use priority syntax) +* Document the assumptions about pluggable interfaces (sqlite3 instead of

    +
    +mysql, etc) (todd)
    +
      +
    • Document env vars that can change things (USE_MYSQL, HOST_IP) (todd)
    • +
    +
    + +
    +

    Getting the Code

    +

    Nova is hosted on launchpad. You can get the code with the following command

    +
    bzr clone lp:nova
    +
    +

    The contrib/nova.sh file in the source distribution is a script that +will quickly set up nova to run on a single machine. It is tested against +Ubuntu only, but other distributions are forthcoming.

    +
    +
    +

    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 +Getting Started with Nova and Installing Nova on Multiple Servers).

    +
      +
    • +
      HOST_IP
      +
        +
      • Default: address of first interface from the ifconfig command
      • +
      • Values: 127.0.0.1, or any other valid address
      • +
      +
      +
      +
    • +
    +
    +

    TEST

    +

    Default: 0 +Values: 1, run tests after checkout and initial setup

    +
    +
    +

    USE_MYSQL

    +

    Default: 0, use sqlite3 +Values: 1, use mysql instead of sqlite3

    +
    +
    +

    MYSQL_PASS

    +

    Only useful if $USE_MYSQL=1.

    +

    Default: nova +Values: value of root password for mysql

    +
    +
    +

    USE_LDAP

    +

    Default: 0, use nova.auth.dbdriver +Values: 1, use nova.auth.ldapdriver

    +
    +
    +

    LIBVIRT_TYPE

    +

    Default: qemu +Values: uml, kvm

    +
    +
    +
    +

    Usage

    +

    Unless you want to spend a lot of time fiddling with permissions and sudoers, +you should probably run nova as root.

    +
    sudo -i
    +
    +
    +

    If you are concerned about security, nova runs just fine inside a virtual +machine.

    +

    Use the script to install and run the current trunk. You can also specify a +specific branch by putting lp:~someone/nova/some-branch after the branch +command

    +
    ./nova.sh branch
    +./nova.sh install
    +./nova.sh run
    +
    +

    The run command will drop you into a screen session with all of the workers +running in different windows You can use eucatools to run commands against the +cloud.

    +
    euca-add-keypair test > test.pem
    +euca-run-instances -k test -t m1.tiny ami-tiny
    +euca-describe-instances
    +
    +

    To see output from the various workers, switch screen windows

    +
    <ctrl-a> "
    +
    +

    will give you a list of running windows.

    +

    When the instance is running, you should be able to ssh to it.

    +
    chmod 600 test.pem
    +ssh -i test.pem root@10.0.0.3
    +
    +

    When you exit screen

    +
    <ctrl-a> <ctrl-d>
    +
    +

    nova will terminate. It may take a while for nova to finish cleaning up. If +you exit the process before it is done because there were some problems in your +build, you may have to clean up the nova processes manually. If you had any +instances running, you can attempt to kill them through the api:

    +
    ./nova.sh terminate
    +
    +

    Then you can destroy the screen:

    +
    ./nova.sh clean
    +
    +

    If things get particularly messed up, you might need to do some more intense +cleanup. Be careful, the following command will manually destroy all runnning +virsh instances and attempt to delete all vlans and bridges.

    +
    ./nova.sh scrub
    +
    +

    You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do

    +
    ./nova.sh run
    +
    +

    to run nova after the first install. The database should be cleaned up on each run.

    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/search.html b/doc/build/html/search.html new file mode 100644 index 000000000..b96e1bd3e --- /dev/null +++ b/doc/build/html/search.html @@ -0,0 +1,110 @@ + + + + + + + + + Search — nova v2010.1 documentation + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + +

    Search

    +
    + +

    + Please activate JavaScript to enable the search + functionality. +

    +
    +

    + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

    +
    + + + +
    + +
    + +
    + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js new file mode 100644 index 000000000..c5acadaff --- /dev/null +++ b/doc/build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({objects:{},terms:{prefix:[58,90],tweet:70,ip_rang:[35,19],novadev:73,under:[53,119],spec:[19,119,70],ramdisk:73,digit:119,everi:[26,52],dectect:69,eucatool:104,upload:[73,24,119],rabbitmq:[58,38,26,65,79],ifac:90,direct:14,chef:90,second:[26,52],ebtabl:[58,57,79,117],aggreg:[131,70],libxslt:58,even:106,keyserv:65,eventlet:[58,79],commonnam:73,poison:[57,117],"new":[38,19,104,121,123,85,70,52,58,43,117,132,73],net:[58,19,65,70,90],maverick:[38,73],metadata:[117,52,119],ongo:[26,43],behavior:123,here:[38,19,10,123,26,35,90,58,117,65,111],path:[132,106,19,43,92],aki:73,permit:[53,121],bashrc:90,unix:79,refenc:14,total:[26,85,119],highli:[123,79,90],describ:[123,26,104,48,70,142,14,117,73,24,119],would:[132,79,119,69],noarch:58,call:[26,119,52,10,117],python26:58,recommend:[104,73,79,90],nate:[106,117],type:[38,48,70,90,53,35,92,73,65,119],until:[73,26],eucalyptussoftwar:58,relat:[134,19,26,70,79,53,119],"10gb":[104,117],notic:[58,79],warn:38,relai:[53,70],vpn:[19,106,26,52,135,35,92,117,73,119,43],must:[38,26,121,85,131,117,8,65,119],join:[117,70],err:58,"0at28z12":73,setup:[104,79,90,58,117,73],work:[38,26,48,79,52,90,53,14,132,73,57,119],conceptu:119,rework:[7,123],hansen:38,root:[38,26,104,90,73,31],overrid:79,defer:[38,131],give:[121,65,104,52,123],indic:[123,19,92],want:[38,19,104,48,26,90,117,65],end:[119,52,90],turn:52,how:[123,26,104,70,90,14,117,57,119],env:[104,90],answer:70,verifi:121,config:[73,90],updat:[121,19,106,52,90,58,117,73,65,119],compute_unittest:[134,15,0,92,125],mess:104,after:[7,121,123,79,104],diagram:[48,26,92,117,106],befor:[26,104,79,73,57,31],test_wsgi:[84,0,92,125,109],demonstr:117,fedora:[73,58],attempt:[132,26,85,104],third:119,bootstrap:90,credenti:[73,85,119,121],receiv:[53,48,26,131,10],"18th":90,environ:[121,19,104,123,48,85,90,127,73,119],exclus:106,ethernet:[7,26],order:[121,26,90,131,117,7],oper:[38,26,121,48,90,53,117,119],diagnos:123,over:[7,48,26,106,90],becaus:[26,104,70],privileg:90,incid:119,flexibl:48,vari:73,fip:119,uuid:121,fit:[58,131],backup_schedul:[0,78,92,125,109],fix:[53,35,26,10],cla:70,better:90,persist:[79,14],cred:90,easier:[132,73,90],them:[121,104,10,90,117,132,73],thei:[19,85,90,79,31,119],proce:117,volume_unittest:[7,74,0,92,125],objectstor:[38,93,0,10,66,125,61,79,135,139,92,23,73,90,131],power_st:[134,0,125,92,107],each:[26,104,48,79,52,90,35,142,131,117,7,57],debug:[123,79],mean:[73,79,131],interop:119,laboratori:123,devref:123,cloud02:73,extract:73,admincli:[13,0,125,92,67],network:[0,106,70,73,38,10,123,79,43,117,119,121,14,89,48,125,52,90,53,35,92,57,135,26,27,142,131],bridge_port:90,newli:73,content:[123,90],got:73,gov:[48,123],ntp:117,free:[38,70,52,58],standard:[48,26,43,123],fakerabbit:[128,0,40,125,92],test_fault:[0,110,92,125,109],ata:7,openssl:[73,58],installt:79,isn:40,onto:[57,117],rang:[19,14,26,90,35,117],independ:119,capac:48,restrict:[121,14],instruct:[38,70],alreadi:[117,90],imagestor:73,primari:7,sometim:26,master:90,autorun:52,john:[121,85],zipfil:[8,19,85,121],listen:[53,26,79],iptabl:[106,57,79,117,58],consol:[53,24],tool:[48,79,90,53,58,14,24],enjoi:121,auth_unittest:[0,45,92,119,125],provid:[123,26,117,48,79,70,35,52,14,106,73,119],tree:123,project:[106,85,8,73,123,56,43,117,119,121,19,14,48,52,90,135,58,131,57,53,26,35,92],matter:121,num_network:35,provis:[48,90],fashion:119,ram:104,mind:123,xensourc:79,seem:131,computemanag:10,deregist:24,simplifi:121,though:[90,104,14,69],usernam:[121,19],object:[123,56,10,53,131,14,132,119],regular:121,cblah2:73,tradit:119,flagfil:[51,14,10,79],doc:[123,26,106,90,142,92,7,73,119],metal:90,doe:[26,31,43],declar:[92,119],came:48,random:[121,26,43],transluc:119,syntax:[7,121,85,104,123],directli:[7,121,90],pkg:90,protocol:119,iscsitarget:79,insnanc:52,dhcpserver:26,priv:73,involv:[123,142,79,70],acquir:121,explain:26,configur:[123,19,104,10,26,52,79,53,58,142,117,73,90,57],apach:119,ldap:[131,26,43,119,79],oct:73,watch:73,amazon:[53,123,26,117,109],root_password:90,report:70,validator_unittest:[77,0,125,92,67],"public":[121,26,10,123,48,52,35,92,117,106,57,31,119],runn:104,respond:[132,19],respons:[10,53,131,132,73,119],best:[79,70],subject:[53,73],databas:[135,19,104,69,79,52,90,53,92,132,73,131],irt:73,discoveri:119,figur:[123,117],outstand:123,simplest:[26,104],irc:70,approach:[121,119],attribut:[48,24,123],accord:[7,48],extend:119,protect:[142,57,117],easi:[123,79],fault:[123,0,125,22,92,109],howev:[106,35,90],against:[58,57,104,117],reservationid:119,logic:[7,119],s3_host:90,login:31,seri:14,com:[26,79,90,58,73,65],compromis:142,applianc:106,"2nd":90,guid:[123,26,106,79,90,92,14],assum:[117,90],etherd:58,three:[35,119],been:[117,121,79,67,90],trigger:[38,131,117],interest:70,basic:[106,79,52,90,53,14,31,119],saa:48,tini:[73,26,31,52,104],quickli:[123,79,104],toller:123,worker:[53,104],ani:[121,19,26,48,85,52,79,119,104],emploi:121,ident:119,servic:[117,123,26,0,88,10,135,48,113,125,106,79,70,90,53,92,14,44,132,73,93],properti:[79,119,90],sourceforg:58,dashboard:[121,131,117],publicli:[121,85],vagu:[123,142],spawn:[35,19,119],clusto:106,printabl:73,toolkit:123,ratelimit:[92,109],conf:[73,19,79],sever:106,cloudaudit:[92,119],perform:[121,26,117,79,90,43,14,7],make:[38,85,10,106,90,53,58,73,132,8],meetup:70,complex:[57,104],split:[73,117,90],complet:[38,121,48,53,73,119],nic:117,rais:117,ownership:119,engin:[53,106],kid:70,kept:79,scenario:[123,14],thu:90,inherit:119,thi:[104,106,85,70,7,73,38,79,14,119,121,19,117,123,52,90,53,127,92,132,26,58,142,65,31,131],gzip:73,countrynam:73,facto:121,just:[121,19,104,123,48,52,142,67],bandwidth:48,human:48,yet:[121,35,67,90],languag:48,previous:73,expos:[121,26,52,10],had:104,spread:10,har:48,save:[73,52],applic:[48,119],mayb:[106,123],background:14,measur:[48,85],daemon:[58,14,10,79],specif:[134,121,26,104,123,106,79,52,90,53,43,14,117,132,119,92],filenam:[121,85],manual:[19,104,26,90,58,57],volumemanag:10,test_serv:[0,109,6,125,92],xlarg:26,underli:[7,26],www:[58,26],right:[121,142,123],old:[7,123,92],deal:132,somehow:90,swiftadmin:123,intern:106,preliminari:119,subclass:[106,10],cnf:[73,90],apirequest:[28,0,92,125,109],condit:[7,26,43],unbundl:24,core:[123,85,56,26,19,79,58,14,90],load_object:132,repositori:[79,90],post:70,"super":121,redownload:52,br100:[26,90],postgresql:90,slightli:104,span:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],libvirt_conn:[4,134,0,92,125],produc:53,meerkat:38,ppa:[65,79,90],tackl:26,"float":[35,19,26,10],encod:52,down:48,contrib:[79,104],storag:[135,26,10,88,48,53,92,7,93,119,131],eth0:[26,90],accordingli:121,git:[58,90],fabric:[53,123],wai:[123,106,79,70,90,14,73],support:[38,26,10,121,48,79,52,90,35,117,109,85,31],nova:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,49,50,52,53,54,55,78,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,58,128,129,130,131,132,133,134,136,137,138,139,140,141,143,144],"class":[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,40,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,92,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,121,122,124,126,128,129,130,131,132,133,136,137,138,139,140,141,143,144],avail:[38,19,123,48,40,26,70,79,53,58,90,43,117,24,85,31,119],reli:[106,79,10],linux_net:[106,0,125,92,27],sqlite3:[123,79,104],form:[19,85],offer:[53,48,70],sqlalchemi:[18,0,69,125,79,90,58,92,39,114],icmp:52,"true":[73,19,121,90],freenod:70,reset:24,projectmanag:[121,19],maximum:119,"0a520304":73,vishi:90,fundament:26,autoconf:58,service_unittest:[126,0,40,125,92],classif:119,featur:[26,117,70],b64:52,"abstract":132,decrypt:[26,43],exist:[121,26,106,85,90,53,35,7,119],glanc:[135,88,10,92],mybucket:73,check:[121,19,85,79,58,73],underutil:48,encrypt:[73,142],when:[38,104,48,40,79,52,90,53,131,117,106,73,65,31,119],role:[121,19,26,85,90,53,92,14,119,131],scriptnam:19,test:[0,104,69,106,81,70,108,82,6,109,7,73,74,110,76,77,9,40,79,80,42,14,15,16,45,119,120,84,122,125,86,20,21,124,50,126,91,54,92,55,93,134,105,58,29,140,97,141,98,64,144,30,31,67],test_imag:[0,125,92,21,109],webob:79,node:[38,123,106,90,53,117,7,73,57],irclog:70,kvm:[58,26,79,104],intens:104,intent:90,consid:90,sql:[131,90],adminguid:123,ignor:121,time:[53,26,104,70,117],concept:[123,26,51,85,142,43],chain:106,skip:85,global:[121,19,26],focus:26,eauthent:119,llc:19,decid:131,depend:[38,48,79,90,58,73,65],zone:24,bpython:[19,43],supposedli:48,sourc:[121,19,0,104,123,79,70,73,8,65],string:[26,43],revalid:58,uml:[26,104],octob:90,word:26,exact:58,nodaemon:79,cool:70,organizationalunitnam:73,administr:[121,26,117,123,79,35,43,14,73,24,57,119],level:[123,85,121,48,142,92,119],rpc_unittest:[0,30,92,67,125],greenlet:[58,79,90],pnova:90,prevent:[53,119],blade:7,sign:[121,70,52,119],port:[117,52],addr:90,current:[121,19,104,35,106,26,79,132,117,109,7,73,57,85,119],gener:[121,26,0,123,40,52,90,117,132,73,31],gawk:[58,79],address:[121,19,56,104,123,106,26,90,53,35,117,85,24,57,119],along:119,wait:[31,131],box:[26,117,10],queue:[53,131,79,90],throughput:37,tunnelingnod:106,particularli:104,"95c71fe2":65,ipc:[26,43],semant:119,tweak:[79,104],modul:[1,2,3,4,5,6,7,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,123,39,40,41,42,44,45,46,47,49,50,52,77,55,78,59,60,61,62,63,64,66,67,68,69,71,72,74,75,76,54,79,80,81,82,83,84,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,112,113,114,115,116,118,119,120,122,124,125,126,58,128,129,130,132,133,134,135,136,137,138,139,140,141,143,144],ipi:[58,79],fake:[134,123,26,0,40,79,125,135,71,98,43,109,16,92],instal:[25,26,104,38,123,79,52,90,58,14,117,73,65,57],newslett:70,todai:48,live:[8,90,123,70,25],handler:[23,93,0,92,125],scope:26,checkout:104,minim:132,afford:[48,121],peopl:[132,48,123,70,90],pylint:79,enhanc:[92,119],easiest:90,behalf:121,focu:35,cat:[58,90],whatev:79,purpos:[121,79],heart:53,agent:[57,119],topic:14,critic:119,api_unittest:[0,109,92,125,80],occur:[26,117],alwai:[123,117,52],lxml:58,multipl:[117,123,26,104,10,48,79,90,53,131,14,109,7],write:[127,90,123,70,73],map:[106,123,119,117,121],aoe:[7,58,79],atao:131,clone:[65,104,90],intrus:142,membership:70,mai:[117,38,85,104,48,79,90,53,14,106,132,119],data:[85,48,52,142,92,132,73,119,131],man:31,hyperv:26,practic:73,favorit:90,inform:[19,10,26,70,92,117,31,119],"switch":[73,26,104,117,106],combin:119,zxvf:58,callabl:132,talk:[123,70,14,131],root_password_again:90,brain:48,use_ldap:104,still:[123,19,90],dynam:[26,131,117],group:[38,19,56,123,48,26,52,79,58,70,90,43,117,106,7,24,119],monitor:[134,0,47,125,79,142,92,14,37],polici:119,amqplib:79,avil:79,platform:[48,26,79],window:104,main:[123,65,14],scheduler_unittest:[141,0,125,92,97],non:[132,38],synopsi:19,initi:[104,90],nation:48,recap:57,now:[38,58,142,123,73],secgroup:119,introduct:[123,26,43,119,92],term:48,workload:123,name:[121,19,26,123,85,90,58,117,73],drop:104,crypto:[99,0,125,92,52],separ:[121,85,131,35],compil:73,replai:119,replac:[7,79,10],individu:[7,106,123,119,121],receipt:121,continu:[53,38,65,79,58],ensur:[53,58,142],wrap:119,keypair:[26,104,52,73,24,31,119],sql_connect:90,happen:132,subnet:[106,57,117,90],shown:[65,131],accomplish:[73,31,14,121],space:[38,104,117],internet:[106,26,70,52,117],she:[85,31],project_manag:85,state:[38,19,106,92,73,65],california:73,org:[58,19,70],care:104,thing:[104,73,40,31,90],place:[106,38,70,48],router:106,principl:58,think:26,first:[38,104,79,90,58,117,65,31],origin:[123,85,48,53,35,14,57],redhat:58,onc:[38,48,70,90,58,14,8,65],yourself:73,environemnt:90,bridgingnod:106,accesskei:[121,19],open:[123,79,70,35,52,117],size:[19,85,117,119],sharedipgroup:[0,109,92,125,32],given:[35,19,57,26,52],workaround:90,iaa:[48,26,123],cumul:119,draft:70,manager_id:85,forthcom:104,especi:131,copi:[106,38,52,73],specifi:[121,85,104,19,52,79,117,132,90,57],broadcast:90,forward:[131,52,90],soren:38,mostli:57,holder:121,than:[38,26],serv:[48,117],wide:[58,119],were:104,browser:8,pre:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,58,128,129,130,133,136,137,138,139,140,141,143,144],san:26,ann:73,argument:[121,19,85,79,35,43],slap:79,dash:[26,117],test_api:[124,0,92,125,109],declare_flag:[0,125,20,67,92],recover:123,date:[38,19,79],destroi:104,xxxxx:10,note:[38,26,121,85,90,58,65,57],ideal:119,take:[53,38,104],noth:131,channel:70,begin:[53,121,90],sure:[38,10],normal:[19,85],tornado:[58,79],compress:19,paid:48,pair:[142,31],twistd_unittest:[91,0,125,92,67],later:70,drive:26,runtim:119,newer:58,show:[19,79],permiss:[121,26,104,119],xml:[73,10],onli:[117,121,26,104,48,79,90,53,35,14,106,85,57],explicitli:26,activ:[119,70],enough:117,sighup:90,variou:[53,121,26,40,104],get:[117,38,26,104,121,48,40,79,70,90,53,123,131,14,73,8,65,24],repo:58,ssl:73,cannot:[121,117],ssh:[106,73,31,104],requir:[38,26,121,48,79,70,90,52,117,65],bzr331:38,priviledg:14,where:[73,70,90],wiki:[123,79,70],kernel:[73,58],netadmin:[121,19,26],auth_driv:79,reserv:[73,52],xenserv:79,concern:[104,131],kmod:58,detect:142,review:[79,119],getattr:132,between:[123,26,10,106,79,90,53,142,117],"import":[73,26,10,121],across:[106,85,90],assumpt:[104,123,79,90],api_command:26,screen:[58,19,104],tut:[123,92],virt_unittest:[134,0,92,125,140],come:[58,70,90],region:24,imf:119,tutori:92,mani:[38,26,48,79,90,43,106,31],overview:[123,14,106,52,35,92,117],period:52,dispatch:53,swift:19,fixed_ip:90,mark:90,real_flag:[76,0,125,92,67],certifi:73,those:[26,142,52],"case":[90,131,119,69],process_unittest:[42,0,125,92,67],xcp_sdk:79,ctrl:104,canon:73,worri:90,blah:73,twistd:[136,0,125,92,67],develop:[121,19,104,123,40,26,127,92,119],saml:119,iscsi:[7,53,131,79,123],same:[121,85,10,106,26,90,58,43,117,57,119],paa:48,subdomain:109,vblade:[58,79],finish:[73,104],confidenti:119,driver:[134,26,0,125,10,69,106,49,40,79,97,135,132,43,119,7,101,92],someon:104,decompress:73,driven:123,capabl:[48,117],openldap:[58,79],extern:[79,90,131,117,57,119],tradition:119,appropri:[106,121],moder:119,pep8:79,without:[121,19,52,43,117,119],disassoci:[26,24],model:[18,121,0,56,69,48,125,53,123,92,14,106],rolenam:19,execut:[53,121,43,90],rest:[119,10],weekli:70,kill:104,touch:132,flavor:[0,36,92,125,109],samba:26,hint:79,except:[0,125,92,117,75,37,67],littl:[132,48],blog:[38,70],vulner:119,real:[40,70,90],mox:[58,79],around:[38,70,90],libc:38,swig:58,traffic:[106,92,117],world:52,server:[0,104,106,34,109,73,38,79,117,119,14,123,48,125,52,90,53,58,130,92,57,35,65,67,131],appic:73,dnsmasq:[106,26,79,117,58],either:[19,79,117,119],cascad:123,output:[53,19,24,104],manag:[68,0,103,106,109,85,102,8,7,73,111,123,10,3,79,43,14,119,121,19,117,89,125,52,90,53,35,92,132,134,135,26,59,97,31,131],udev:58,confirm:[38,65,24],rpm:58,definit:[53,48,119,123],token:119,exit:[19,104],inject:[26,57,31],refer:[135,123,31,92],test_auth:[0,29,92,125,109],power:48,broker:[53,92,119],bazaar:70,central:131,stand:70,act:[57,117,90],bond:117,processor:85,road:73,ansolab:73,euca2ool:[38,121,79,58,14,24,31],effici:26,unregist:119,cloudserv:26,your:[121,26,104,40,79,70,90,52,73],loc:119,log:[142,70],her:85,start:[38,19,104,26,79,35,43,117,73,8,65,57],interfac:[123,26,104,35,79,90,53,58,14,117,57,119],low:119,lot:104,fixed_rang:[35,90],programmat:53,fcbj2non:73,bundl:[121,26,52,43,73,8,24],amongst:10,categor:[121,119,67],congratul:73,pull:104,dirti:[92,119],possibl:[79,90],"default":[121,26,104,79,90,58,117,57,119],bucket:[0,125,61,90,92,73,93,119],virsh:[73,104],expect:[38,73],uid:[38,119],creat:[38,19,85,117,121,26,52,79,53,35,90,14,73,7,8,24,57,31,119],certain:[121,79],use_ppa:65,file:[134,121,19,88,10,104,106,79,70,90,135,58,52,73,93,85,92],again:73,googl:10,fakeldap:[11,0,40,125,92],personnel:121,hybrid:[48,92,119,123],field:121,cleanup:104,collis:7,rdbm:79,you:[104,85,70,8,73,38,10,40,79,43,14,121,19,48,52,90,58,131,26,142,65,92],import_class:[26,43],architectur:[123,104,53,142,131,14],fake_subdomain:[79,90],track:79,vocabulari:119,pool:[48,26,117],cloudpip:[26,0,1,125,52,135,92,117],directori:[38,104,52,90,73,119],descript:[123,85,56,26,19,79,53,35],goe:52,chown:90,libvirt_typ:104,potenti:[131,119],demo:8,all:[121,19,104,10,35,26,70,79,58,142,43,14,117,85,90,57,119,131],dist:73,consider:142,illustr:[26,117],lack:69,ala:106,runtime_flag:[0,125,92,67,120],abil:[48,121],follow:[38,19,104,121,106,26,52,79,53,123,70,14,117,73,90,85,119],disk:[134,38,0,104,106,125,79,135,58,92,7,100],secretkei:[121,19],auth_manag:[26,43],init:90,program:[48,123,79,92],project_id:[121,85,52],liter:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],host_ip:104,managingsecur:123,util:[26,0,119,48,125,85,58,43,14,62,132,24,67,92],mechan:[48,26],failur:[123,69],veri:[123,26,79,70,90,58,67],vishvananda:90,bridge_stp:90,list:[38,19,51,104,121,79,52,90,35,43,73,65,85],user_nam:90,fakeldapdriv:79,past:[38,73],syslog:37,zero:79,design:[123,26,70],pass:[53,57,117,52,119],further:[92,119],what:[48,19,123,79,90],sun:119,section:[19,26,79,35,92,14],abl:[8,79,104],brief:[123,56,35],overload:119,rackspac:[53,73,26],delet:[121,19,104,85,53,35,24,119],version:[38,19,104,79,70,58,14,24,119],intersect:[121,26],method:[132,119,52,10,79],variat:57,trunk:[104,117],renegoti:52,modifi:[121,19,24],valu:[85,104],search:[123,92],mac:[57,117],amount:[48,26,43,131],pick:104,action:[121,19,142],via:[26,14,10,52,43,117,119,131],depart:121,ldapdriv:[0,104,125,79,92,119,133],ask:70,establish:[53,119],select:[35,19,90],rackspacecloud:73,xenwiki:79,regist:[73,24,119,70],two:[26,57,117,14],organizationnam:73,virt:[33,134,26,0,40,125,4,5,71,43,46,92],more:[38,19,104,10,106,26,79,35,43,14,117,73,90,31,119],flat:[123,26,90,35,131,14,57],flag:[121,19,0,10,123,106,125,26,52,79,58,51,43,14,119,132,35,90,112,67,92],particular:[19,26,79],cacert:73,isloat:123,none:[73,85,35,121],endpoint:[53,135,92,109],hour:[48,52],cluster:[117,90],outlin:[132,26],dev:79,learn:[70,14,79],deb:65,dhcpbridg:73,scan:119,challeng:[92,119],registr:119,share:[48,26,31,119,131],accept:132,minimum:[119,117],cours:73,interconnect:119,goal:[142,117],secur:[121,26,56,104,123,106,52,142,43,117,31,119,131],rather:[26,131],anoth:[26,79,90],divis:132,orukptrc:73,simpl:[26,0,97,10,125,52,90,43,138,92],distro:[73,58,123],resourc:[85,48,79,53,35,14],vlan:[123,26,56,104,10,106,79,52,90,53,35,131,14,117,7,85,57],rbac:[121,26,92,119],pat:73,datastor:[106,79,119],associ:[123,26,106,85,52,117,73,24,119],github:90,confus:132,author:[121,19,135,26,53,92,24,119,43],callback:131,allocate_address:26,egg:73,"1b0bh8n":73,help:[19,24,131,90],soon:[52,10],uvh:58,i386:58,through:[121,26,104,10,35,48,79,52,90,53,58,142,70,73,31],paramet:119,style:[26,57,119],binari:[26,79,10,131],might:104,computenod:106,wouldn:38,good:[79,70],"return":[132,121,85,79,119],timestamp:119,framework:53,detach:[53,26,24],mysql_pass:[104,90],document:[134,123,26,104,106,40,79,70,90,132,31],troubleshoot:73,authent:[135,26,10,90,53,142,92,119],easili:[53,121,90],achiev:[26,119],test_ratelimit:[0,125,92,50,109],found:[123,26,117,10],intervent:48,subsystem:[58,79],"340sp34k05bbe9a7":73,api_integr:[0,125,92,82,109],hard:[26,104],connect:[134,19,0,125,48,46,26,52,35,43,117,106,73,119,92],todd:[7,106,104,123],cc_host:90,http:[123,19,48,26,70,79,53,58,131,73,65,90],beyond:90,todo:[117,123,56,104,48,111,40,90,53,127,142,92,14,106,7,65,57],event:[53,79,70],ftp:58,research:123,john_project:[121,85],print:[121,35],postgr:90,proxi:[119,90],advanc:14,pub:58,dhcpdiscov:26,reason:90,base:[38,19,10,121,48,26,79,53,123,43,14,132,73,90,119,131],put:[38,104,123,52,73,111,31],loop0:79,recv:65,bash:[121,90],launch:[121,26,117,79,52,43,14,73,57,85,119,92],script:[38,19,104,121,79,52,90,70,43,73,65,31],heartbeat:90,assign:[121,19,106,26,53,35,117],use_mysql:[104,90],feed:70,major:[53,131],feel:[58,70],misc:[135,92,67],number:[19,26,85,52,90,35,117,7,119],done:[38,104,123,48,58,65],blank:[121,19],stabl:[123,65],losetup:79,differ:[26,104,10,48,79,35,131,117,109,132,57],guest:[57,90],projectnam:[19,85],interact:[121,26,10,123,79,53,35,14],dbdriver:[0,104,125,41,79,92,119],store:[38,0,123,66,125,79,70,53,92,65,93,31,119,131],schema:119,option:[65,19,90,31,79],relationship:[92,119],similarli:106,part:[8,123,79,73],eventu:90,kind:[35,131],yum:58,remot:26,seamlessli:119,bridg:[123,26,104,10,90,35,131,117,57,119],consumpt:85,toward:131,comput:[0,106,70,72,73,38,10,79,43,117,119,19,47,123,48,125,90,53,58,92,57,134,26,107,35,59,142,100,131],packag:[38,65,79,10,73],dedic:[119,117],euca:[104,73,24,31,90],outbound:117,built:[79,131],lib:[38,73],self:48,also:[123,19,104,10,48,26,52,79,58,70,117,106,90,119],folk:90,gpgcheck:58,distribut:[106,58,79,104],"160gb":26,previou:73,quota:[19,0,26,125,85,92,63,119],pipelib:[0,1,92,52,125],most:[26,104,10,106,90,131,117,24,57],plan:119,dai:[48,24,40,73],bzr:[58,65,104,70,90],clear:106,clean:104,latest:[58,38,65,90,73],visibl:117,wsgi:[0,87,10,125,92,67],cdn:[73,79],session:[0,104,69,125,92,39],cdp:119,fine:104,find:[14,70,131,117,24,92],firewal:[106,142,119,117,121],copyright:19,networkmanag:10,solut:131,queu:[53,26],instancemonitor:73,factor:79,localitynam:73,unus:[7,117],express:106,"12t21":73,mainten:[26,43],fastest:[73,14],restart:90,rfc:117,common:[121,79,90,135,92,117,109,67],remov:[121,19,85,53,57,119],crl:52,arp:[57,119,117],certif:[26,52,43,117,73,119,92],set:[38,19,104,10,121,79,52,90,53,127,43,117,85,119],ifconfig:104,see:[38,19,51,104,121,106,26,70,79,58,123,43,14,7,73,65,31,119],bare:90,arg:[19,43],ari:73,kpartx:58,experi:79,signatur:[73,121],c2477062:73,isol:[85,117],ipython:[19,43],both:[26,106,90,142,24,57],last:[19,90],boto:79,context:[0,125,67,129,92],load:[26,10,79,58,43,132,73],simpli:[121,57],point:[132,8,70],tgz:73,schedul:[38,26,0,103,138,135,131,2,49,125,79,97,90,53,35,43,73,92],addressingnod:106,linux:[123,26,79,52,35,117,57],throughout:[53,67],backend:[134,123,106,79,131,119],g06qbntt:73,java:48,devic:[26,10,48,90,58,131],secret:[73,19,26,119,121],strategi:[35,26,10],fire:90,imag:[0,106,109,85,5,8,73,111,123,24,56,10,43,14,118,119,121,19,88,125,52,90,53,139,92,93,57,134,26,137,113,31,131],understand:[132,26],demand:[7,48],look:[106,119,90],straight:26,"while":[38,131,104,117,106],kick:90,abov:52,error:[73,121,90],gmt:73,ami:[104,73,31,119,79],xvzf:73,larger:[26,131],vol:24,itself:119,cento:[73,58],bridge_maxwait:90,network_manag:[10,90],grant:90,belong:117,read:[134,38,26,79,70,90,35,14,73,65],decod:52,zope:79,novarc:[73,19,121,85,90],optim:[48,131,90],wherea:121,user:[104,85,8,73,38,56,43,117,119,121,19,14,48,52,90,53,35,131,24,26,142,31],robust:26,typic:[53,79,70,119],recent:131,stateless:119,lower:92,task:[53,123,132,14],entri:[38,90,53,117,73,57],nova_comput:10,pymox:79,spend:104,propos:119,explan:131,vpn_public_port:52,collabor:70,shape:48,mysql:[104,58,79,90],openstack:[0,70,36,6,109,73,110,38,10,40,81,117,118,19,125,86,21,123,124,50,90,22,58,130,92,78,26,60,29,98,65,32],cut:79,vswitch:35,ganglia:37,subsequ:53,build:[104,79,90,58,73,8],bin:[38,58,90,73],vendor:[53,119],format:[121,119],nginx:58,bit:[132,73,26],formal:70,success:121,docutil:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],resolv:[73,90],manifest:73,collect:[48,70],princip:85,"boolean":90,popular:123,modprob:58,scapi:106,encount:79,creation:[26,119,43,117,90],some:[123,26,104,10,40,70,58,92,132,131],back:[73,79,70],understood:142,sampl:[123,85,48,79,14,73],flatmanag:[10,90],scale:[48,123],novascript:90,"512mb":104,prot:19,per:[26,79,52,135,92,117,57,119],pem:[73,31,104],larg:[7,48,119,10],cloud:[0,104,70,109,73,123,12,79,117,119,121,19,14,48,125,90,53,35,92,26,142,143],stateorprovincenam:73,nose:79,machin:[38,26,104,10,79,52,90,53,131,14,117,73,119],run:[104,106,7,73,38,10,79,43,117,119,19,14,48,52,90,53,58,131,132,24,57,26,35,65,31],agreement:70,step:[58,38,65,90,73],prerequisit:38,wget:[73,58],fakemanag:[40,92],"1gb":[79,117],block:[26,10,52,53,58,131,119],instance_typ:[134,0,72,125,92],within:[121,85,104,106,117,7,119],contributor:70,institut:48,question:70,"long":[132,73,119,52],includ:[121,19,26,70,79,53,65,90],gflag:[19,51,26,10,79,58,43,65],routingnod:106,netomata:106,blueprint:70,properli:43,openstackppa:65,link:[123,26,65,70,131],eauth:[92,119],don:[48,121,79,90],line:[38,123,79,90,73,24,31],objectstore_unittest:[54,93,0,92,125],sdk:79,info:[73,40,111,52,123],cia:119,consist:[106,85,52,35],planet:70,similar:[53,26,57,119,117],my_file_path:79,ec2_url:90,repres:[26,117],chat:70,home:[38,90],curl:[58,79],amqp:[106,26,131,90],titl:[0,125],nat:[106,117],scrub:[85,104],gigabyt:[19,26],lucid:[73,65,104,90],loopback:90,depth:131,nasa:123,addgroup:90,pluggabl:[123,26,43,104],code:[26,104,79,70,90,52,117,73,132,8,65],edg:79,queri:[53,106,119,90],quarantin:121,privat:[123,26,106,52,35,117,48,73,31,119],friendli:70,send:[73,31,10],sens:132,sent:73,unzip:[38,121,90,73],volum:[101,0,85,7,73,123,56,10,40,3,79,43,119,19,125,90,135,131,24,53,26,92],spoof:[57,117],relev:[53,70,90],"try":73,race:7,"0ubuntu2":38,sourcabl:85,pleas:58,fortun:14,cron:52,download:[48,24,58],append:85,compat:[53,123,24,119,90],index:[123,92],access:[121,19,117,48,26,52,92,14,73,85,119],fakeaoedriv:[40,92],can:[104,85,70,73,38,10,79,43,14,119,121,19,117,123,48,52,90,58,131,132,26,35,142,65,31],"17d1333t97fd":73,ec2_secret_kei:73,let:[121,40],ubuntu:[38,104,123,79,90,73,65],becom:121,sinc:[121,119,10,90],convert:131,hypervisor:[53,131],euca_repo_conf_eof:58,technolog:[48,26,35,90],cert:[73,52,90],network_unittest:[64,0,92,125,106],chang:[121,104,10,79,52,90,58,119],chanc:[2,0,125,92,97],revoc:[92,52],control:[121,19,117,123,48,26,70,90,53,35,14,106,85,57,119],danger:31,revok:[24,52],appli:[119,90],app:10,gatewai:[57,117,90],apt:[38,65,79,90],api:[0,104,69,36,6,109,73,110,38,114,10,135,12,40,79,81,142,117,83,16,17,119,84,121,85,125,86,21,123,124,131,50,52,90,22,130,92,78,94,53,26,137,28,60,29,118,98,143,31,32],redi:[38,65,79],test_flavor:[81,0,92,125,109],pxe:90,from:[121,19,104,123,48,26,52,79,53,70,142,43,117,7,73,65,57,85],usb:26,zip:[121,19,85,52,90,73],commun:[123,26,106,79,70,53,142,131,117],next:[7,90],implic:53,few:58,usr:[73,58,90],inet:90,remaind:119,rabbit:[43,90],account:[119,70],retriev:[73,131],carrot:[58,79],obvious:7,fetch:119,employe:121,quickstart:[73,123,104,14,90],tar:[73,79,58],process:[38,0,96,10,123,48,125,52,90,53,92,14,119,73,67,104],lock:53,sudo:[38,104,79,90,73,8,65],high:[123,142,52,90],tag:[26,117,70],onlin:70,gcc:58,rabbit_host:90,filepath:79,instead:[123,26,43,10,104],aoe_rules_eof:58,await:73,physic:[53,35,26,119,90],alloc:[121,85,106,52,53,117,7,24,119],essenti:[26,43],bind:90,issu:[53,90],allow:[121,26,79,52,35,131,117,132,31,119],move:[131,26,43,90],meter:48,lockfil:79,infrastructur:[53,48,26,119,117],openvpn:52,therefor:[31,117],crash:106,python:[38,19,51,26,79,58,43,132,73,65,90,131],auto:90,handi:121,auth:[26,0,104,60,11,131,40,41,68,125,79,116,43,109,133,119,92],devel:58,front:119,strive:123,anyth:[132,119],edit:[58,65,104,70,90],test_sharedipgroup:[0,86,92,125,109],mode:[123,26,14,35,52,90,58,117,57],use_project_ca:52,cloudfil:73,product:[38,24,117,90],consum:48,"static":106,ec2:[121,26,0,137,10,123,28,12,125,79,90,92,109,83,85,94],citrix:[123,79,117],our:[73,70],itsec:[121,19],fake_flag:[0,125,92,67,105],special:[26,85,117],out:[123,10,48,79,117,73,57],variabl:[121,19,85,104],contigu:117,req:58,reboot:[53,73,24,31,119],categori:[19,43],suitabl:79,hardwar:[123,85,106,79,53,117,37,119],dhcp:[26,10,106,90,35,117,57],insid:[117,26,70,52,104],releas:[123,65,24,58],could:[123,106,79,35,117,8,119],vpn_start:35,segreg:117,keep:[26,57,52,90],length:73,enforc:[106,119,117],outsid:[35,52],organiz:85,softwar:[26,48,79,90,53,73],echo:[65,90],vlan_start:35,puppet:90,owner:[121,90],prioriti:[123,104],newus:8,licens:70,mkdir:90,system:[104,70,109,7,73,38,10,79,117,119,121,85,14,123,48,90,58,92,132,57,26,35,142,31,131],messag:[38,19,26,121,106,79,90,53,131,65],attach:[26,10,53,131,7,24,57,119],attack:[142,119],volume_group:79,aoetool:[58,79],termin:[121,26,104,53,24,31,119],"0x10001":73,"final":58,shell:[132,19,43],eavesdrop:70,volumedriv:132,shelf:7,rsa:73,botleneck:58,rst:[123,0],haven:[121,67],structur:[85,119],metadatarequesthandl:[83,0,92,125,109],seriou:123,sec:119,py2:73,cc_addr:90,have:[121,26,104,123,48,40,79,52,90,117,73,65,57,119],tabl:[123,92,119,90],need:[121,19,104,123,48,26,52,79,58,117,132,73,65,90,119],border:142,rout:[53,58,79,10,117],accuraci:58,which:[38,26,10,106,85,70,90,53,58,131,65,119],datacent:90,soap:119,singl:[38,104,123,70,90,53,58,7,73,65,57,119],unless:104,deploy:[123,10,48,79,70,90,131,14],discov:[7,58],deploi:[48,90],vish:[7,123],segment:117,why:48,url:[58,119],request:[121,85,10,70,53,92,73,119,131],snapshot:24,xenapi:[33,134,0,125,79,92],determin:[53,79],occasion:53,fact:106,verbos:[79,90],bring:48,cloudcontrol:106,locat:[73,119,90],launchpad:[104,19,65,70,90],start_on_boot:90,should:[121,104,123,48,79,90,132,117,7,73],local:[73,26,121],contribut:[123,117,70],familiar:14,autom:48,csrc:[48,123],graduat:73,increas:90,lazyplugg:[26,43],enabl:[123,35,48,53,58,142],organ:[121,35,123],"4e6498a2":73,xmlsoft:58,sudoer:104,integr:[135,119,92,88,90],partit:26,contain:[48,19,85,117,90],grab:[7,65,57,52],nist:[48,123],view:19,debconf:90,legaci:[106,92,119],bridge_fd:90,knowledg:70,elast:[48,117],network_s:[35,90],mountainview:73,backchannel:119,modulu:73,quota_unittest:[108,0,125,92,119],pattern:43,boundari:142,written:[123,58],cloud101:123,progress:38,email:48,kei:[121,19,123,106,26,52,142,117,73,65,85,31,119],ec2_access_kei:73,lvm:[7,53],job:119,entir:[106,79],disconnect:52,eclips:48,problem:[7,38,79,104],addit:[123,79,58,117,57,119],plugin:[26,43],admin:[121,19,0,125,117,123,106,109,85,52,90,35,92,14,73,8,94],wsgiref:79,vgcreat:79,etc:[123,26,104,48,79,90,58,106,73,65,57,119],instanc:[117,121,19,85,56,104,48,26,52,53,35,142,14,106,7,73,24,57,31,119],runinst:119,vpn_public_ip:52,guidelin:123,chmod:[73,31,104],distinguish:73,rpc:[26,0,10,106,125,43,95,67,92],respect:35,qemu:[58,26,104],quit:131,addition:119,compos:53,compon:[123,51,106,79,90,53,92,109,37,131],json:73,uroot:90,electr:48,immedi:117,upcom:70,inbound:117,assert:119,present:[26,79],replic:[131,10,90],multi:[73,123,90],align:119,defin:[132,121,26,119,90],ultra:10,layer:[135,119,92,117,69],libxml2:58,flags_unittest:[122,0,125,92,67],archiv:[73,90],fiddl:104,welcom:[123,70],networkcontrol:106,parti:119,member:85,handl:[53,117],"35z":73,slave:90,hostnam:53,upon:[53,121],libvirt:[7,131,79,90],m2crypto:79,access_unittest:[144,0,125,92,119],mysql_prese:90,audit:[142,119],off:[119,90],center:[48,92,119],well:[38,121,79,70,131,109,67],exampl:[121,26,104,123,48,85,43,117,57,31,119],command:[104,106,85,73,123,79,43,14,121,19,52,90,53,58,131,132,24,26,35,142,65,31],choos:90,usual:[7,132,70],xen:[26,79,131],obtain:[57,43],virtual:[134,135,26,104,10,52,53,35,92,73,119,131],simultan:117,adv:65,web:[26,48,53,131,8,119],rapid:48,priorit:119,add:[121,19,56,104,123,79,85,90,58,92,117,73,24,57,31,119],valid:[0,104,115,125,92,67],notauthor:85,match:[73,119],pubsub:119,branch:[104,90],howto:[123,92],prese:90,ldconfig:38,realiz:53,five:[121,19,119],know:[26,90],password:[104,31,90],python2:[73,58],insert:[106,117,123],resid:14,like:[123,26,48,79,70,90,58,131,73,57,119],cloud_unittest:[0,9,92,125,109],necessari:53,page:[123,26,79,70,92,65,31],project_nam:90,eucalyptu:58,twitter:70,"export":[121,19,85,90,7,73],trucker:73,small:[73,26,43,117,131],librari:[135,58,79,67,92],tmp:73,feder:119,lead:132,broad:[53,14],avoid:[7,123,131],reconsid:132,leav:[121,19],investig:119,usag:[121,31,14,104],host:[38,19,104,123,106,26,52,79,53,58,35,70,14,117,132,73,65,90,57,131],although:[132,85,104],user_id:[121,85],about:[134,123,19,104,40,26,70,79,35,14],actual:[26,79,90],anyjson:79,own:[123,117,52],objecstor:[93,92],import_object:[26,43],easy_instal:58,automat:[121,26,117,52,90],automak:58,"56m":73,rectifi:123,merg:[7,123],pictur:119,transfer:[53,48,142],snmp:119,mykei:[73,119],much:[48,26,43],"var":[38,104],cloudadmin:90,"function":[121,26,14,79,53,43,117],baseurl:58,inlin:79,bug:[19,70],deassoci:119,count:79,made:[73,90],wish:[26,85],googlecod:[58,79],displai:[19,85],asynchron:119,record:[106,119],below:[123,19,131,79,90],limit:[121,26,85,92,117,119],signer:[0,116,92,119,125],otherwis:[121,19,79,58],dmz:117,epel:58,pii:119,evalu:[53,90],dure:90,twist:[58,65,131],implement:[123,26,106,40,79,52,35,92,117,132,57,119],pip:79,probabl:[132,26,104,90],boot:[26,90,117,73,57,31],detail:[79,19,106,26,90,92,117,132,73,119],mehod:73,other:[121,26,104,69,123,79,70,90,53,58,35,131,117,132,73,119,142],futur:[135,35,92,88],rememb:121,varieti:104,"100m":79,singleton:132,debian:[73,65,58],stai:26,sphinx:123,nogroup:38,reliabl:26,rule:[121,106,52,58,117,119],emerg:48},objtypes:{},titles:["<no title>","The nova..cloudpipe.pipelib Module","The nova..scheduler.chance Module","The nova..volume.manager Module","The nova..virt.libvirt_conn Module","The nova..virt.images Module","The nova..tests.api.openstack.test_servers Module","Storage Volumes, Disks","Live CD","The nova..tests.cloud_unittest Module","Nova Daemons","The nova..auth.fakeldap Module","The nova..api.ec2.cloud Module","The nova..adminclient Module","Administration Guide","The nova..tests.compute_unittest Module","The nova..tests.api.fakes Module","The nova..db.api Module","The nova..db.sqlalchemy.models Module","nova-manage","The nova..tests.declare_flags Module","The nova..tests.api.openstack.test_images Module","The nova..api.openstack.faults Module","The nova..objectstore.handler Module","Euca2ools","Installing the Live CD","Nova Concepts and Introduction","The nova..network.linux_net Module","The nova..api.ec2.apirequest Module","The nova..tests.api.openstack.test_auth Module","The nova..tests.rpc_unittest Module","Managing Instances","The nova..api.openstack.sharedipgroups Module","The nova..virt.xenapi Module","The nova..server Module","Networking Overview","The nova..api.openstack.flavors Module","Monitoring","Installing on Ubuntu 10.10 (Maverick)","The nova..db.sqlalchemy.session Module","Fake Drivers","The nova..auth.dbdriver Module","The nova..tests.process_unittest Module","The nova-manage command","The nova..service Module","The nova..tests.auth_unittest Module","The nova..virt.connection Module","The nova..compute.monitor Module","Cloud Computing 101","The nova..scheduler.driver Module","The nova..tests.api.openstack.test_ratelimiting Module","Flags and Flagfiles","Cloudpipe – Per Project Vpns","Service Architecture","The nova..tests.objectstore_unittest Module","The nova..test Module","Object Model","Flat Network Mode (Original and Flat)","Installation on other distros (like Debian, Fedora or CentOS )","The nova..compute.manager Module","The nova..api.openstack.auth Module","The nova..objectstore.bucket Module","The nova..utils Module","The nova..quota Module","The nova..tests.network_unittest Module","Installing on Ubuntu 10.04 (Lucid)","The nova..objectstore.stored Module","Common and Misc Libraries","The nova..auth.manager Module","The Database Layer","Getting Involved","The nova..virt.fake Module","The nova..compute.instance_types Module","Installing Nova on a Single Host","The nova..tests.volume_unittest Module","The nova..exception Module","The nova..tests.real_flags Module","The nova..tests.validator_unittest Module","The nova..api.openstack.backup_schedules Module","Getting Started with Nova","The nova..tests.api_unittest Module","The nova..tests.api.openstack.test_flavors Module","The nova..tests.api_integration Module","The nova..api.ec2.metadatarequesthandler Module","The nova..tests.api.test_wsgi Module","Managing Projects","The nova..tests.api.openstack.test_sharedipgroups Module","The nova..wsgi Module","Glance Integration - The Future of File Storage","The nova..network.manager Module","Installing Nova on Multiple Servers","The nova..tests.twistd_unittest Module","Developer Guide","Objectstore - File Storage Service","The nova..api.ec2.admin Module","The nova..rpc Module","The nova..process Module","Scheduler","The nova..tests.api.openstack.fakes Module","The nova..crypto Module","The nova..compute.disk Module","The nova..volume.driver Module","The nova..manager Module","The nova..scheduler.manager Module","Nova Quickstart","The nova..tests.fake_flags Module","Networking","The nova..compute.power_state Module","The nova..tests.quota_unittest Module","API Endpoint","The nova..tests.api.openstack.test_faults Module","Managing Images","The nova..flags Module","The nova..image.service Module","The nova..db.sqlalchemy.api Module","The nova..validate Module","The nova..auth.signer Module","VLAN Network Mode","The nova..api.openstack.images Module","Authentication and Authorization","The nova..tests.runtime_flags Module","Managing Users","The nova..tests.flags_unittest Module","Welcome to Nova’s documentation!","The nova..tests.api.openstack.test_api Module","<no title>","The nova..tests.service_unittest Module","Setting up a development environment","The nova..fakerabbit Module","The nova..context Module","The nova..api.openstack.servers Module","Nova System Architecture","Services, Managers and Drivers","The nova..auth.ldapdriver Module","Virtualization","Module Reference","The nova..twistd Module","The nova..api.ec2.images Module","The nova..scheduler.simple Module","The nova..objectstore.image Module","The nova..tests.virt_unittest Module","The nova..tests.scheduler_unittest Module","Security Considerations","The nova..api.cloud Module","The nova..tests.access_unittest Module"],objnames:{},filenames:["code","api/nova..cloudpipe.pipelib","api/nova..scheduler.chance","api/nova..volume.manager","api/nova..virt.libvirt_conn","api/nova..virt.images","api/nova..tests.api.openstack.test_servers","devref/volume","installer","api/nova..tests.cloud_unittest","adminguide/binaries","api/nova..auth.fakeldap","api/nova..api.ec2.cloud","api/nova..adminclient","adminguide/index","api/nova..tests.compute_unittest","api/nova..tests.api.fakes","api/nova..db.api","api/nova..db.sqlalchemy.models","man/novamanage","api/nova..tests.declare_flags","api/nova..tests.api.openstack.test_images","api/nova..api.openstack.faults","api/nova..objectstore.handler","adminguide/euca2ools","livecd","nova.concepts","api/nova..network.linux_net","api/nova..api.ec2.apirequest","api/nova..tests.api.openstack.test_auth","api/nova..tests.rpc_unittest","adminguide/managing.instances","api/nova..api.openstack.sharedipgroups","api/nova..virt.xenapi","api/nova..server","adminguide/managing.networks","api/nova..api.openstack.flavors","adminguide/monitoring","adminguide/distros/ubuntu.10.10","api/nova..db.sqlalchemy.session","devref/fakes","api/nova..auth.dbdriver","api/nova..tests.process_unittest","adminguide/nova.manage","api/nova..service","api/nova..tests.auth_unittest","api/nova..virt.connection","api/nova..compute.monitor","cloud101","api/nova..scheduler.driver","api/nova..tests.api.openstack.test_ratelimiting","adminguide/flags","devref/cloudpipe","service.architecture","api/nova..tests.objectstore_unittest","api/nova..test","object.model","adminguide/network.flat","adminguide/distros/others","api/nova..compute.manager","api/nova..api.openstack.auth","api/nova..objectstore.bucket","api/nova..utils","api/nova..quota","api/nova..tests.network_unittest","adminguide/distros/ubuntu.10.04","api/nova..objectstore.stored","devref/nova","api/nova..auth.manager","devref/database","community","api/nova..virt.fake","api/nova..compute.instance_types","adminguide/single.node.install","api/nova..tests.volume_unittest","api/nova..exception","api/nova..tests.real_flags","api/nova..tests.validator_unittest","api/nova..api.openstack.backup_schedules","adminguide/getting.started","api/nova..tests.api_unittest","api/nova..tests.api.openstack.test_flavors","api/nova..tests.api_integration","api/nova..api.ec2.metadatarequesthandler","api/nova..tests.api.test_wsgi","adminguide/managing.projects","api/nova..tests.api.openstack.test_sharedipgroups","api/nova..wsgi","devref/glance","api/nova..network.manager","adminguide/multi.node.install","api/nova..tests.twistd_unittest","devref/index","devref/objectstore","api/nova..api.ec2.admin","api/nova..rpc","api/nova..process","devref/scheduler","api/nova..tests.api.openstack.fakes","api/nova..crypto","api/nova..compute.disk","api/nova..volume.driver","api/nova..manager","api/nova..scheduler.manager","quickstart","api/nova..tests.fake_flags","devref/network","api/nova..compute.power_state","api/nova..tests.quota_unittest","devref/api","api/nova..tests.api.openstack.test_faults","adminguide/managing.images","api/nova..flags","api/nova..image.service","api/nova..db.sqlalchemy.api","api/nova..validate","api/nova..auth.signer","adminguide/network.vlan","api/nova..api.openstack.images","devref/auth","api/nova..tests.runtime_flags","adminguide/managing.users","api/nova..tests.flags_unittest","index","api/nova..tests.api.openstack.test_api","api/autoindex","api/nova..tests.service_unittest","devref/development.environment","api/nova..fakerabbit","api/nova..context","api/nova..api.openstack.servers","devref/architecture","devref/services","api/nova..auth.ldapdriver","devref/compute","devref/modules","api/nova..twistd","api/nova..api.ec2.images","api/nova..scheduler.simple","api/nova..objectstore.image","api/nova..tests.virt_unittest","api/nova..tests.scheduler_unittest","adminguide/managingsecurity","api/nova..api.cloud","api/nova..tests.access_unittest"]}) \ No newline at end of file diff --git a/doc/build/html/service.architecture.html b/doc/build/html/service.architecture.html new file mode 100644 index 000000000..eb06a8006 --- /dev/null +++ b/doc/build/html/service.architecture.html @@ -0,0 +1,191 @@ + + + + + + + + + Service Architecture — nova v2010.1 documentation + + + + + + + + + + + + + + + + +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Nova Concepts and Introduction

    +

    Next topic

    +

    Installing the Live CD

    +

    This Page

    + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Service Architecture

    +

    Nova’s Cloud Fabric is composed of the following major components:

    +
      +
    • API Server
    • +
    • Message Queue
    • +
    • Compute Worker
    • +
    • Network Controller
    • +
    • Volume Worker
    • +
    • Scheduler
    • +
    • Image Store
    • +
    +_images/fabric.png +
    +

    API Server

    +

    At the heart of the cloud framework is an API Server. This API Server makes command and control of the hypervisor, storage, and networking programmatically available to users in realization of the definition of cloud computing.

    +

    The API endpoints are basic http web services which handle authentication, authorization, and basic command and control functions using various API interfaces under the Amazon, Rackspace, and related models. This enables API compatibility with multiple existing tool sets created for interaction with offerings from other vendors. This broad compatibility prevents vendor lock-in.

    +
    +
    +

    Message Queue

    +

    A messaging queue brokers the interaction between compute nodes (processing), volumes (block storage), the networking controllers (software which controls network infrastructure), API endpoints, the scheduler (determines which physical hardware to allocate to a virtual resource), and similar components. Communication to and from the cloud controller is by HTTP requests through multiple API endpoints.

    +

    A typical message passing event begins with the API server receiving a request from a user. The API server authenticates the user and ensures that the user is permitted to issue the subject command. Availability of objects implicated in the request is evaluated and, if available, the request is routed to the queuing engine for the relevant workers. Workers continually listen to the queue based on their role, and occasionally their type hostname. When such listening produces a work request, the worker takes assignment of the task and begins its execution. Upon completion, a response is dispatched to the queue which is received by the API server and relayed to the originating user. Database entries are queried, added, or removed as necessary throughout the process.

    +
    +
    +

    Compute Worker

    +

    Compute workers manage computing instances on host machines. Through the API, commands are dispatched to compute workers to:

    +
      +
    • Run instances
    • +
    • Terminate instances
    • +
    • Reboot instances
    • +
    • Attach volumes
    • +
    • Detach volumes
    • +
    • Get console output
    • +
    +
    +
    +

    Network Controller

    +

    The Network Controller manages the networking resources on host machines. The API server dispatches commands through the message queue, which are subsequently processed by Network Controllers. Specific operations include:

    +
      +
    • Allocate Fixed IP Addresses
    • +
    • Configuring VLANs for projects
    • +
    • Configuring networks for compute nodes
    • +
    +
    +
    +

    Volume Workers

    +

    Volume Workers interact with iSCSI storage to manage LVM-based instance volumes. Specific functions include:

    +
      +
    • Create Volumes
    • +
    • Delete Volumes
    • +
    • Establish Compute volumes
    • +
    +

    Volumes may easily be transferred between instances, but may be attached to only a single instance at a time.

    +
    +

    Todo

    +

    P2: image store description

    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/doc/source/api/autoindex.rst b/doc/source/api/autoindex.rst new file mode 100644 index 000000000..6265b082b --- /dev/null +++ b/doc/source/api/autoindex.rst @@ -0,0 +1,99 @@ +.. toctree:: + :maxdepth: 1 + + nova..adminclient.rst + nova..api.cloud.rst + nova..api.ec2.admin.rst + nova..api.ec2.apirequest.rst + nova..api.ec2.cloud.rst + nova..api.ec2.images.rst + nova..api.ec2.metadatarequesthandler.rst + nova..api.openstack.auth.rst + nova..api.openstack.backup_schedules.rst + nova..api.openstack.faults.rst + nova..api.openstack.flavors.rst + nova..api.openstack.images.rst + nova..api.openstack.servers.rst + nova..api.openstack.sharedipgroups.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.disk.rst + nova..compute.instance_types.rst + nova..compute.manager.rst + nova..compute.monitor.rst + nova..compute.power_state.rst + nova..context.rst + nova..crypto.rst + nova..db.api.rst + nova..db.sqlalchemy.api.rst + nova..db.sqlalchemy.models.rst + nova..db.sqlalchemy.session.rst + nova..exception.rst + nova..fakerabbit.rst + nova..flags.rst + nova..image.service.rst + nova..manager.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..process.rst + nova..quota.rst + nova..rpc.rst + nova..scheduler.chance.rst + nova..scheduler.driver.rst + nova..scheduler.manager.rst + nova..scheduler.simple.rst + nova..server.rst + nova..service.rst + nova..test.rst + nova..tests.access_unittest.rst + nova..tests.api.fakes.rst + nova..tests.api.openstack.fakes.rst + nova..tests.api.openstack.test_api.rst + nova..tests.api.openstack.test_auth.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_sharedipgroups.rst + nova..tests.api.test_wsgi.rst + nova..tests.api_integration.rst + nova..tests.api_unittest.rst + nova..tests.auth_unittest.rst + nova..tests.cloud_unittest.rst + nova..tests.compute_unittest.rst + nova..tests.declare_flags.rst + nova..tests.fake_flags.rst + nova..tests.flags_unittest.rst + nova..tests.network_unittest.rst + nova..tests.objectstore_unittest.rst + nova..tests.process_unittest.rst + nova..tests.quota_unittest.rst + nova..tests.real_flags.rst + nova..tests.rpc_unittest.rst + nova..tests.runtime_flags.rst + nova..tests.scheduler_unittest.rst + nova..tests.service_unittest.rst + nova..tests.twistd_unittest.rst + nova..tests.validator_unittest.rst + nova..tests.virt_unittest.rst + nova..tests.volume_unittest.rst + nova..twistd.rst + nova..utils.rst + nova..validate.rst + nova..virt.connection.rst + nova..virt.fake.rst + nova..virt.images.rst + nova..virt.libvirt_conn.rst + nova..virt.xenapi.rst + nova..volume.driver.rst + nova..volume.manager.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.cloud.rst b/doc/source/api/nova..api.cloud.rst new file mode 100644 index 000000000..413840185 --- /dev/null +++ b/doc/source/api/nova..api.cloud.rst @@ -0,0 +1,6 @@ +The :mod:`nova..api.cloud` Module +============================================================================== +.. automodule:: nova..api.cloud + :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.images.rst b/doc/source/api/nova..api.ec2.images.rst new file mode 100644 index 000000000..012d800e4 --- /dev/null +++ b/doc/source/api/nova..api.ec2.images.rst @@ -0,0 +1,6 @@ +The :mod:`nova..api.ec2.images` Module +============================================================================== +.. automodule:: nova..api.ec2.images + :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.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.sharedipgroups.rst b/doc/source/api/nova..api.openstack.sharedipgroups.rst new file mode 100644 index 000000000..07632acc8 --- /dev/null +++ b/doc/source/api/nova..api.openstack.sharedipgroups.rst @@ -0,0 +1,6 @@ +The :mod:`nova..api.openstack.sharedipgroups` Module +============================================================================== +.. automodule:: nova..api.openstack.sharedipgroups + :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.disk.rst b/doc/source/api/nova..compute.disk.rst new file mode 100644 index 000000000..6410af6f3 --- /dev/null +++ b/doc/source/api/nova..compute.disk.rst @@ -0,0 +1,6 @@ +The :mod:`nova..compute.disk` Module +============================================================================== +.. automodule:: nova..compute.disk + :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..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.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.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..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.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..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.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..process.rst b/doc/source/api/nova..process.rst new file mode 100644 index 000000000..91eff8379 --- /dev/null +++ b/doc/source/api/nova..process.rst @@ -0,0 +1,6 @@ +The :mod:`nova..process` Module +============================================================================== +.. automodule:: nova..process + :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..server.rst b/doc/source/api/nova..server.rst new file mode 100644 index 000000000..7cb2cfa54 --- /dev/null +++ b/doc/source/api/nova..server.rst @@ -0,0 +1,6 @@ +The :mod:`nova..server` Module +============================================================================== +.. automodule:: nova..server + :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.access_unittest.rst b/doc/source/api/nova..tests.access_unittest.rst new file mode 100644 index 000000000..89554e430 --- /dev/null +++ b/doc/source/api/nova..tests.access_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.access_unittest` Module +============================================================================== +.. automodule:: nova..tests.access_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.api.fakes.rst b/doc/source/api/nova..tests.api.fakes.rst new file mode 100644 index 000000000..5728b18f3 --- /dev/null +++ b/doc/source/api/nova..tests.api.fakes.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.api.fakes` Module +============================================================================== +.. automodule:: nova..tests.api.fakes + :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_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_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_sharedipgroups.rst b/doc/source/api/nova..tests.api.openstack.test_sharedipgroups.rst new file mode 100644 index 000000000..1fad49147 --- /dev/null +++ b/doc/source/api/nova..tests.api.openstack.test_sharedipgroups.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.api.openstack.test_sharedipgroups` Module +============================================================================== +.. automodule:: nova..tests.api.openstack.test_sharedipgroups + :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.api_integration.rst b/doc/source/api/nova..tests.api_integration.rst new file mode 100644 index 000000000..fd217acf7 --- /dev/null +++ b/doc/source/api/nova..tests.api_integration.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.api_integration` Module +============================================================================== +.. automodule:: nova..tests.api_integration + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.api_unittest.rst b/doc/source/api/nova..tests.api_unittest.rst new file mode 100644 index 000000000..44a65d48c --- /dev/null +++ b/doc/source/api/nova..tests.api_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.api_unittest` Module +============================================================================== +.. automodule:: nova..tests.api_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.auth_unittest.rst b/doc/source/api/nova..tests.auth_unittest.rst new file mode 100644 index 000000000..5805dcf38 --- /dev/null +++ b/doc/source/api/nova..tests.auth_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.auth_unittest` Module +============================================================================== +.. automodule:: nova..tests.auth_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.cloud_unittest.rst b/doc/source/api/nova..tests.cloud_unittest.rst new file mode 100644 index 000000000..d2ca3b013 --- /dev/null +++ b/doc/source/api/nova..tests.cloud_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.cloud_unittest` Module +============================================================================== +.. automodule:: nova..tests.cloud_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.compute_unittest.rst b/doc/source/api/nova..tests.compute_unittest.rst new file mode 100644 index 000000000..6a30bf744 --- /dev/null +++ b/doc/source/api/nova..tests.compute_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.compute_unittest` Module +============================================================================== +.. automodule:: nova..tests.compute_unittest + :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.flags_unittest.rst b/doc/source/api/nova..tests.flags_unittest.rst new file mode 100644 index 000000000..61087e683 --- /dev/null +++ b/doc/source/api/nova..tests.flags_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.flags_unittest` Module +============================================================================== +.. automodule:: nova..tests.flags_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.network_unittest.rst b/doc/source/api/nova..tests.network_unittest.rst new file mode 100644 index 000000000..df057d813 --- /dev/null +++ b/doc/source/api/nova..tests.network_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.network_unittest` Module +============================================================================== +.. automodule:: nova..tests.network_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.process_unittest.rst b/doc/source/api/nova..tests.process_unittest.rst new file mode 100644 index 000000000..30d1e129c --- /dev/null +++ b/doc/source/api/nova..tests.process_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.process_unittest` Module +============================================================================== +.. automodule:: nova..tests.process_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.quota_unittest.rst b/doc/source/api/nova..tests.quota_unittest.rst new file mode 100644 index 000000000..6ab813104 --- /dev/null +++ b/doc/source/api/nova..tests.quota_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.quota_unittest` Module +============================================================================== +.. automodule:: nova..tests.quota_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.rpc_unittest.rst b/doc/source/api/nova..tests.rpc_unittest.rst new file mode 100644 index 000000000..e6c7ceb2e --- /dev/null +++ b/doc/source/api/nova..tests.rpc_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.rpc_unittest` Module +============================================================================== +.. automodule:: nova..tests.rpc_unittest + :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.scheduler_unittest.rst b/doc/source/api/nova..tests.scheduler_unittest.rst new file mode 100644 index 000000000..ae3a06616 --- /dev/null +++ b/doc/source/api/nova..tests.scheduler_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.scheduler_unittest` Module +============================================================================== +.. automodule:: nova..tests.scheduler_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.service_unittest.rst b/doc/source/api/nova..tests.service_unittest.rst new file mode 100644 index 000000000..c7c746d17 --- /dev/null +++ b/doc/source/api/nova..tests.service_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.service_unittest` Module +============================================================================== +.. automodule:: nova..tests.service_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.twistd_unittest.rst b/doc/source/api/nova..tests.twistd_unittest.rst new file mode 100644 index 000000000..ce88202e1 --- /dev/null +++ b/doc/source/api/nova..tests.twistd_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.twistd_unittest` Module +============================================================================== +.. automodule:: nova..tests.twistd_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.validator_unittest.rst b/doc/source/api/nova..tests.validator_unittest.rst new file mode 100644 index 000000000..980284327 --- /dev/null +++ b/doc/source/api/nova..tests.validator_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.validator_unittest` Module +============================================================================== +.. automodule:: nova..tests.validator_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.virt_unittest.rst b/doc/source/api/nova..tests.virt_unittest.rst new file mode 100644 index 000000000..2189be41e --- /dev/null +++ b/doc/source/api/nova..tests.virt_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.virt_unittest` Module +============================================================================== +.. automodule:: nova..tests.virt_unittest + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/nova..tests.volume_unittest.rst b/doc/source/api/nova..tests.volume_unittest.rst new file mode 100644 index 000000000..791e192f5 --- /dev/null +++ b/doc/source/api/nova..tests.volume_unittest.rst @@ -0,0 +1,6 @@ +The :mod:`nova..tests.volume_unittest` Module +============================================================================== +.. automodule:: nova..tests.volume_unittest + :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..validate.rst b/doc/source/api/nova..validate.rst new file mode 100644 index 000000000..1d142f103 --- /dev/null +++ b/doc/source/api/nova..validate.rst @@ -0,0 +1,6 @@ +The :mod:`nova..validate` Module +============================================================================== +.. automodule:: nova..validate + :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.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.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.rst b/doc/source/api/nova..virt.xenapi.rst new file mode 100644 index 000000000..2e396bf06 --- /dev/null +++ b/doc/source/api/nova..virt.xenapi.rst @@ -0,0 +1,6 @@ +The :mod:`nova..virt.xenapi` Module +============================================================================== +.. automodule:: nova..virt.xenapi + :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..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/code.rst b/doc/source/code.rst new file mode 100644 index 000000000..6b8d5661f --- /dev/null +++ b/doc/source/code.rst @@ -0,0 +1,96 @@ +Generating source/api/nova..adminclient.rst +Generating source/api/nova..api.cloud.rst +Generating source/api/nova..api.ec2.admin.rst +Generating source/api/nova..api.ec2.apirequest.rst +Generating source/api/nova..api.ec2.cloud.rst +Generating source/api/nova..api.ec2.images.rst +Generating source/api/nova..api.ec2.metadatarequesthandler.rst +Generating source/api/nova..api.openstack.auth.rst +Generating source/api/nova..api.openstack.backup_schedules.rst +Generating source/api/nova..api.openstack.faults.rst +Generating source/api/nova..api.openstack.flavors.rst +Generating source/api/nova..api.openstack.images.rst +Generating source/api/nova..api.openstack.servers.rst +Generating source/api/nova..api.openstack.sharedipgroups.rst +Generating source/api/nova..auth.dbdriver.rst +Generating source/api/nova..auth.fakeldap.rst +Generating source/api/nova..auth.ldapdriver.rst +Generating source/api/nova..auth.manager.rst +Generating source/api/nova..auth.signer.rst +Generating source/api/nova..cloudpipe.pipelib.rst +Generating source/api/nova..compute.disk.rst +Generating source/api/nova..compute.instance_types.rst +Generating source/api/nova..compute.manager.rst +Generating source/api/nova..compute.monitor.rst +Generating source/api/nova..compute.power_state.rst +Generating source/api/nova..context.rst +Generating source/api/nova..crypto.rst +Generating source/api/nova..db.api.rst +Generating source/api/nova..db.sqlalchemy.api.rst +Generating source/api/nova..db.sqlalchemy.models.rst +Generating source/api/nova..db.sqlalchemy.session.rst +Generating source/api/nova..exception.rst +Generating source/api/nova..fakerabbit.rst +Generating source/api/nova..flags.rst +Generating source/api/nova..image.service.rst +Generating source/api/nova..manager.rst +Generating source/api/nova..network.linux_net.rst +Generating source/api/nova..network.manager.rst +Generating source/api/nova..objectstore.bucket.rst +Generating source/api/nova..objectstore.handler.rst +Generating source/api/nova..objectstore.image.rst +Generating source/api/nova..objectstore.stored.rst +Generating source/api/nova..process.rst +Generating source/api/nova..quota.rst +Generating source/api/nova..rpc.rst +Generating source/api/nova..scheduler.chance.rst +Generating source/api/nova..scheduler.driver.rst +Generating source/api/nova..scheduler.manager.rst +Generating source/api/nova..scheduler.simple.rst +Generating source/api/nova..server.rst +Generating source/api/nova..service.rst +Generating source/api/nova..test.rst +Generating source/api/nova..tests.access_unittest.rst +Generating source/api/nova..tests.api.fakes.rst +Generating source/api/nova..tests.api.openstack.fakes.rst +Generating source/api/nova..tests.api.openstack.test_api.rst +Generating source/api/nova..tests.api.openstack.test_auth.rst +Generating source/api/nova..tests.api.openstack.test_faults.rst +Generating source/api/nova..tests.api.openstack.test_flavors.rst +Generating source/api/nova..tests.api.openstack.test_images.rst +Generating source/api/nova..tests.api.openstack.test_ratelimiting.rst +Generating source/api/nova..tests.api.openstack.test_servers.rst +Generating source/api/nova..tests.api.openstack.test_sharedipgroups.rst +Generating source/api/nova..tests.api.test_wsgi.rst +Generating source/api/nova..tests.api_integration.rst +Generating source/api/nova..tests.api_unittest.rst +Generating source/api/nova..tests.auth_unittest.rst +Generating source/api/nova..tests.cloud_unittest.rst +Generating source/api/nova..tests.compute_unittest.rst +Generating source/api/nova..tests.declare_flags.rst +Generating source/api/nova..tests.fake_flags.rst +Generating source/api/nova..tests.flags_unittest.rst +Generating source/api/nova..tests.network_unittest.rst +Generating source/api/nova..tests.objectstore_unittest.rst +Generating source/api/nova..tests.process_unittest.rst +Generating source/api/nova..tests.quota_unittest.rst +Generating source/api/nova..tests.real_flags.rst +Generating source/api/nova..tests.rpc_unittest.rst +Generating source/api/nova..tests.runtime_flags.rst +Generating source/api/nova..tests.scheduler_unittest.rst +Generating source/api/nova..tests.service_unittest.rst +Generating source/api/nova..tests.twistd_unittest.rst +Generating source/api/nova..tests.validator_unittest.rst +Generating source/api/nova..tests.virt_unittest.rst +Generating source/api/nova..tests.volume_unittest.rst +Generating source/api/nova..twistd.rst +Generating source/api/nova..utils.rst +Generating source/api/nova..validate.rst +Generating source/api/nova..virt.connection.rst +Generating source/api/nova..virt.fake.rst +Generating source/api/nova..virt.images.rst +Generating source/api/nova..virt.libvirt_conn.rst +Generating source/api/nova..virt.xenapi.rst +Generating source/api/nova..volume.driver.rst +Generating source/api/nova..volume.manager.rst +Generating source/api/nova..wsgi.rst diff --git a/doc/source/conf.py b/doc/source/conf.py index ef447ca81..55ff1c5a4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -102,6 +102,15 @@ pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. modindex_common_prefix = ['nova.'] +# -- Options for man page output ----------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + +man_pages = [ + ('man/novamanage', 'novamanage', u'Cloud controller fabric', + [u'OpenStack'], 1) + ] # -- Options for HTML output --------------------------------------------------- diff --git a/doc/source/conf_back.py b/doc/source/conf_back.py new file mode 100644 index 000000000..744f2f699 --- /dev/null +++ b/doc/source/conf_back.py @@ -0,0 +1,226 @@ +# -*- coding: utf-8 -*- +# +# nova documentation build configuration file, created by +# sphinx-quickstart on Sat May 1 15:17:47 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../../')) +sys.path.insert(0, os.path.abspath('../')) +sys.path.insert(0, os.path.abspath('./')) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. + +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'ext.nova_todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig','sphinx.ext.graphviz'] + +# autodoc generation is a bit aggressive and a nuisance when doing heavy text edit cycles. +# execute "export SPHINX_DEBUG=1" in your terminal to disable +if not os.getenv('SPHINX_DEBUG'): + extensions += ['ext.nova_autodoc'] + +todo_include_todos = True + +# Add any paths that contain templates here, relative to this directory. +# Changing the path so that the Hudson build output contains GA code and the source +# docs do not contain the code so local, offline sphinx builds are "clean." +templates_path = [] +if os.getenv('HUDSON_PUBLISH_DOCS'): + templates_path = ['_ga', '_templates'] +else: + templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'nova' +copyright = u'2010, United States Government as represented by the Administrator of the National Aeronautics and Space Administration.' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '2010.1' +# The full version, including alpha/beta/rc tags. +release = '2010.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +modindex_common_prefix = ['nova.'] + +# -- Options for man page output ----------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + +man_pages = [ + ('man/novamanage', 'nova-manage', u'Cloud controller fabric', + [u'OpenStack'], 1) + ] + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme_path = ["."] +html_theme = '_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'novadoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'Nova.tex', u'Nova Documentation', + u'Anso Labs, LLC', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'python': ('http://docs.python.org/', None), + 'swift': ('http://swift.openstack.org', None)} + diff --git a/doc/source/man/novamanage.rst b/doc/source/man/novamanage.rst new file mode 100644 index 000000000..acd76aac0 --- /dev/null +++ b/doc/source/man/novamanage.rst @@ -0,0 +1,98 @@ +=========== +nova-manage +=========== + +------------------------------------------------------ +control and manage cloud computer instances and images +------------------------------------------------------ + +:Author: nova@lists.launchpad.net +:Date: 2010-11-16 +:Copyright: OpenStack LLC +:Version: 0.1 +:Manual section: 1 +:Manual group: cloud computing + +SYNOPSIS +======== + + nova-manage [] + +DESCRIPTION +=========== + +nova-manage controls cloud computing instances by managing nova users, nova projects, nova roles, shell selection, vpn connections, and floating IP address configuration. More information about OpenStack Nova is at http://nova.openstack.org. + +OPTIONS +======= + +Run without arguments to see a list of available command categories. Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. +:: +nova-manage + +You can also run with a category argument such as user to see a list of all commands in that category. +:: +nova-manage user + +Here are the available categories and arguments for nova-manage: + +nova-manage user [] + user admin Create an admin user with the name . + user create Create a normal user with the name . + user delete Delete the user with the name . + user exports Outputs a list of access key and secret keys for user to the screen + user list Outputs a list of all the user names to the screen. + user modify Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. + +nova-manage project [] + project add Add a nova project with the name to the database. + project create Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). + project delete Delete a nova project with the name . + project environment Exports environment variables for the named project to a file named novarc. + project list Outputs a list of all the projects to the screen. + project quota Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. + project remove Deletes the project with the name . + project zipfile Compresses all related files for a created project into a zip file nova.zip. + +nova-manage role [] + role add <(optional) projectname> Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. + role has Checks the user or project and responds with True if the user has a global role with a particular project. + role remove Remove the indicated role from the user. + +nova-manage shell [] + shell bpython Starts a new bpython shell. + shell ipython Starts a new ipython shell. + shell python Starts a new python shell. + shell run Starts a new shell using python. + shell script Runs the named script from the specified path with flags set. + +nova-manage vpn [] + vpn list Displays a list of projects, their IP prot numbers, and what state they're in. + vpn run Starts the VPN for the named project. + vpn spawn Runs all VPNs. + +nova-manage floating [] + floating create Creates floating IP addresses for the named host by the given range. + floating delete Deletes floating IP addresses in the range given. + floating list Displays a list of all floating IP addresses. + +--help, -h Show this help message and exit. + +FILES +======== + +The nova-manage.conf file contains configuration information in the form of python-gflags. + +SEE ALSO +======== + +* `OpenStack Nova `__ +* `OpenStack Swift `__ + +BUGS +==== + +* Nova is sourced in Launchpad so you can view current bugs at `OpenStack Nova `__ + + + -- cgit From 1dfdd7477647e45b96b5781789b846d5c9066663 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 17 Nov 2010 21:23:12 +0000 Subject: fix greenthread race conditions in trunk and floating ip leakage --- nova/db/sqlalchemy/api.py | 2 +- nova/tests/cloud_unittest.py | 4 ++++ nova/tests/quota_unittest.py | 8 +++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index b8f999af4..dfa4efc8f 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -390,7 +390,7 @@ def floating_ip_get_by_address(context, address, session=None): filter_by(deleted=can_read_deleted(context)).\ first() if not result: - raise exception.NotFound('No fixed ip for address %s' % address) + raise exception.NotFound('No floating ip for address %s' % address) return result diff --git a/nova/tests/cloud_unittest.py b/nova/tests/cloud_unittest.py index 2c6d9959b..9886a2449 100644 --- a/nova/tests/cloud_unittest.py +++ b/nova/tests/cloud_unittest.py @@ -101,6 +101,7 @@ class CloudTestCase(test.TrialTestCase): self.cloud.describe_addresses(self.context) self.cloud.release_address(self.context, public_ip=address) + greenthread.sleep(0.3) db.floating_ip_destroy(self.context, address) def test_associate_disassociate_address(self): @@ -111,6 +112,7 @@ class CloudTestCase(test.TrialTestCase): 'host': FLAGS.host}) self.cloud.allocate_address(self.context) inst = db.instance_create(self.context, {}) + fixed = self.network.allocate_fixed_ip(self.context, inst['id']) ec2_id = cloud.internal_id_to_ec2_id(inst['internal_id']) self.cloud.associate_address(self.context, instance_id=ec2_id, @@ -119,6 +121,8 @@ class CloudTestCase(test.TrialTestCase): public_ip=address) self.cloud.release_address(self.context, public_ip=address) + greenthread.sleep(0.3) + self.network.deallocate_fixed_ip(self.context, fixed) db.instance_destroy(self.context, inst['id']) db.floating_ip_destroy(self.context, address) diff --git a/nova/tests/quota_unittest.py b/nova/tests/quota_unittest.py index 9e3afbf4e..b7c1d2acc 100644 --- a/nova/tests/quota_unittest.py +++ b/nova/tests/quota_unittest.py @@ -138,11 +138,8 @@ class QuotaTestCase(test.TrialTestCase): def test_too_many_addresses(self): address = '192.168.0.100' - try: - db.floating_ip_get_by_address(context.get_admin_context(), address) - except exception.NotFound: - db.floating_ip_create(context.get_admin_context(), - {'address': address, 'host': FLAGS.host}) + db.floating_ip_create(context.get_admin_context(), + {'address': address, 'host': FLAGS.host}) float_addr = self.network.allocate_floating_ip(self.context, self.project.id) # NOTE(vish): This assert never fails. When cloud attempts to @@ -151,3 +148,4 @@ class QuotaTestCase(test.TrialTestCase): # that is breaking. self.assertRaises(cloud.QuotaError, self.cloud.allocate_address, self.context) + db.floating_ip_destroy(context.get_admin_context(), address) -- cgit From 908f7505792408a5f0070b59325ff4c1b484e723 Mon Sep 17 00:00:00 2001 From: Anne Gentle Date: Wed, 17 Nov 2010 15:54:19 -0600 Subject: Documenting all nova-manage commands --- doc/build/doctrees/adminguide/nova.manage.doctree | Bin 22878 -> 40037 bytes doc/build/doctrees/api/nova..adminclient.doctree | Bin 4144 -> 3469 bytes doc/build/doctrees/api/nova..api.cloud.doctree | Bin 4122 -> 3449 bytes doc/build/doctrees/api/nova..api.ec2.admin.doctree | Bin 4166 -> 3489 bytes .../doctrees/api/nova..api.ec2.apirequest.doctree | Bin 4221 -> 3539 bytes doc/build/doctrees/api/nova..api.ec2.cloud.doctree | Bin 4166 -> 3489 bytes .../doctrees/api/nova..api.ec2.images.doctree | Bin 4177 -> 3499 bytes .../nova..api.ec2.metadatarequesthandler.doctree | Bin 4353 -> 3659 bytes .../doctrees/api/nova..api.openstack.auth.doctree | Bin 4221 -> 3539 bytes .../nova..api.openstack.backup_schedules.doctree | Bin 4353 -> 3659 bytes .../api/nova..api.openstack.faults.doctree | Bin 4243 -> 3559 bytes .../api/nova..api.openstack.flavors.doctree | Bin 4254 -> 3569 bytes .../api/nova..api.openstack.images.doctree | Bin 4243 -> 3559 bytes .../api/nova..api.openstack.servers.doctree | Bin 4254 -> 3569 bytes .../api/nova..api.openstack.sharedipgroups.doctree | Bin 4331 -> 3639 bytes doc/build/doctrees/api/nova..auth.dbdriver.doctree | Bin 4166 -> 3489 bytes doc/build/doctrees/api/nova..auth.fakeldap.doctree | Bin 4166 -> 3489 bytes .../doctrees/api/nova..auth.ldapdriver.doctree | Bin 4188 -> 3509 bytes doc/build/doctrees/api/nova..auth.manager.doctree | Bin 4155 -> 3479 bytes doc/build/doctrees/api/nova..auth.signer.doctree | Bin 4144 -> 3469 bytes .../doctrees/api/nova..cloudpipe.pipelib.doctree | Bin 4210 -> 3529 bytes doc/build/doctrees/api/nova..compute.disk.doctree | Bin 4155 -> 3479 bytes .../api/nova..compute.instance_types.doctree | Bin 4265 -> 3579 bytes .../doctrees/api/nova..compute.manager.doctree | Bin 4188 -> 3509 bytes .../doctrees/api/nova..compute.monitor.doctree | Bin 4188 -> 3509 bytes .../doctrees/api/nova..compute.power_state.doctree | Bin 4232 -> 3549 bytes doc/build/doctrees/api/nova..context.doctree | Bin 4100 -> 3429 bytes doc/build/doctrees/api/nova..crypto.doctree | Bin 4089 -> 3419 bytes doc/build/doctrees/api/nova..db.api.doctree | Bin 4089 -> 3419 bytes .../doctrees/api/nova..db.sqlalchemy.api.doctree | Bin 4210 -> 3529 bytes .../api/nova..db.sqlalchemy.models.doctree | Bin 4243 -> 3559 bytes .../api/nova..db.sqlalchemy.session.doctree | Bin 4254 -> 3569 bytes doc/build/doctrees/api/nova..exception.doctree | Bin 4122 -> 3449 bytes doc/build/doctrees/api/nova..fakerabbit.doctree | Bin 4133 -> 3459 bytes doc/build/doctrees/api/nova..flags.doctree | Bin 4078 -> 3409 bytes doc/build/doctrees/api/nova..image.service.doctree | Bin 4166 -> 3489 bytes doc/build/doctrees/api/nova..manager.doctree | Bin 4100 -> 3429 bytes .../doctrees/api/nova..network.linux_net.doctree | Bin 4210 -> 3529 bytes .../doctrees/api/nova..network.manager.doctree | Bin 4188 -> 3509 bytes .../doctrees/api/nova..objectstore.bucket.doctree | Bin 4221 -> 3539 bytes .../doctrees/api/nova..objectstore.handler.doctree | Bin 4232 -> 3549 bytes .../doctrees/api/nova..objectstore.image.doctree | Bin 4210 -> 3529 bytes .../doctrees/api/nova..objectstore.stored.doctree | Bin 4221 -> 3539 bytes doc/build/doctrees/api/nova..process.doctree | Bin 4100 -> 3429 bytes doc/build/doctrees/api/nova..quota.doctree | Bin 4078 -> 3409 bytes doc/build/doctrees/api/nova..rpc.doctree | Bin 4056 -> 3389 bytes .../doctrees/api/nova..scheduler.chance.doctree | Bin 4199 -> 3519 bytes .../doctrees/api/nova..scheduler.driver.doctree | Bin 4199 -> 3519 bytes .../doctrees/api/nova..scheduler.manager.doctree | Bin 4210 -> 3529 bytes .../doctrees/api/nova..scheduler.simple.doctree | Bin 4199 -> 3519 bytes doc/build/doctrees/api/nova..server.doctree | Bin 4089 -> 3419 bytes doc/build/doctrees/api/nova..service.doctree | Bin 4100 -> 3429 bytes doc/build/doctrees/api/nova..test.doctree | Bin 4067 -> 3399 bytes .../api/nova..tests.access_unittest.doctree | Bin 4254 -> 3569 bytes .../doctrees/api/nova..tests.api.fakes.doctree | Bin 4188 -> 3509 bytes .../api/nova..tests.api.openstack.fakes.doctree | Bin 4298 -> 3609 bytes .../api/nova..tests.api.openstack.test_api.doctree | Bin 4331 -> 3639 bytes .../nova..tests.api.openstack.test_auth.doctree | Bin 4342 -> 3649 bytes .../nova..tests.api.openstack.test_faults.doctree | Bin 4364 -> 3669 bytes .../nova..tests.api.openstack.test_flavors.doctree | Bin 4375 -> 3679 bytes .../nova..tests.api.openstack.test_images.doctree | Bin 4364 -> 3669 bytes .....tests.api.openstack.test_ratelimiting.doctree | Bin 4430 -> 3729 bytes .../nova..tests.api.openstack.test_servers.doctree | Bin 4375 -> 3679 bytes ...tests.api.openstack.test_sharedipgroups.doctree | Bin 4452 -> 3749 bytes .../doctrees/api/nova..tests.api.test_wsgi.doctree | Bin 4232 -> 3549 bytes .../api/nova..tests.api_integration.doctree | Bin 4254 -> 3569 bytes .../doctrees/api/nova..tests.api_unittest.doctree | Bin 4221 -> 3539 bytes .../doctrees/api/nova..tests.auth_unittest.doctree | Bin 4232 -> 3549 bytes .../api/nova..tests.cloud_unittest.doctree | Bin 4243 -> 3559 bytes .../api/nova..tests.compute_unittest.doctree | Bin 4265 -> 3579 bytes .../doctrees/api/nova..tests.declare_flags.doctree | Bin 4232 -> 3549 bytes .../doctrees/api/nova..tests.fake_flags.doctree | Bin 4199 -> 3519 bytes .../api/nova..tests.flags_unittest.doctree | Bin 4243 -> 3559 bytes .../api/nova..tests.network_unittest.doctree | Bin 4265 -> 3579 bytes .../api/nova..tests.objectstore_unittest.doctree | Bin 4309 -> 3619 bytes .../api/nova..tests.process_unittest.doctree | Bin 4265 -> 3579 bytes .../api/nova..tests.quota_unittest.doctree | Bin 4243 -> 3559 bytes .../doctrees/api/nova..tests.real_flags.doctree | Bin 4199 -> 3519 bytes .../doctrees/api/nova..tests.rpc_unittest.doctree | Bin 4221 -> 3539 bytes .../doctrees/api/nova..tests.runtime_flags.doctree | Bin 4232 -> 3549 bytes .../api/nova..tests.scheduler_unittest.doctree | Bin 4287 -> 3599 bytes .../api/nova..tests.service_unittest.doctree | Bin 4265 -> 3579 bytes .../api/nova..tests.twistd_unittest.doctree | Bin 4254 -> 3569 bytes .../api/nova..tests.validator_unittest.doctree | Bin 4287 -> 3599 bytes .../doctrees/api/nova..tests.virt_unittest.doctree | Bin 4232 -> 3549 bytes .../api/nova..tests.volume_unittest.doctree | Bin 4254 -> 3569 bytes doc/build/doctrees/api/nova..twistd.doctree | Bin 4089 -> 3419 bytes doc/build/doctrees/api/nova..utils.doctree | Bin 4078 -> 3409 bytes doc/build/doctrees/api/nova..validate.doctree | Bin 4111 -> 3439 bytes .../doctrees/api/nova..virt.connection.doctree | Bin 4188 -> 3509 bytes doc/build/doctrees/api/nova..virt.fake.doctree | Bin 4122 -> 3449 bytes doc/build/doctrees/api/nova..virt.images.doctree | Bin 4144 -> 3469 bytes .../doctrees/api/nova..virt.libvirt_conn.doctree | Bin 4210 -> 3529 bytes doc/build/doctrees/api/nova..virt.xenapi.doctree | Bin 4144 -> 3469 bytes doc/build/doctrees/api/nova..volume.driver.doctree | Bin 4166 -> 3489 bytes .../doctrees/api/nova..volume.manager.doctree | Bin 4177 -> 3499 bytes doc/build/doctrees/api/nova..wsgi.doctree | Bin 4067 -> 3399 bytes doc/build/doctrees/devref/api.doctree | Bin 65750 -> 44655 bytes doc/build/doctrees/devref/auth.doctree | Bin 57755 -> 52150 bytes doc/build/doctrees/devref/cloudpipe.doctree | Bin 20717 -> 18597 bytes doc/build/doctrees/devref/compute.doctree | Bin 30516 -> 68876 bytes doc/build/doctrees/devref/database.doctree | Bin 13184 -> 10449 bytes doc/build/doctrees/devref/fakes.doctree | Bin 17916 -> 58479 bytes doc/build/doctrees/devref/glance.doctree | Bin 6177 -> 5457 bytes doc/build/doctrees/devref/network.doctree | Bin 24991 -> 22897 bytes doc/build/doctrees/devref/nova.doctree | Bin 46154 -> 56579 bytes doc/build/doctrees/devref/objectstore.doctree | Bin 14674 -> 11101 bytes doc/build/doctrees/devref/scheduler.doctree | Bin 14504 -> 10942 bytes doc/build/doctrees/devref/services.doctree | Bin 12171 -> 10756 bytes doc/build/doctrees/devref/volume.doctree | Bin 13881 -> 11687 bytes doc/build/doctrees/environment.pickle | Bin 1748498 -> 1802539 bytes doc/build/doctrees/man/novamanage.doctree | Bin 29090 -> 38494 bytes doc/build/html/_sources/adminguide/nova.manage.txt | 138 +++++++++++-- doc/build/html/_sources/man/novamanage.txt | 174 ++++++++++++---- doc/build/html/adminguide/binaries.html | 6 + doc/build/html/adminguide/distros/others.html | 6 + .../html/adminguide/distros/ubuntu.10.04.html | 6 + .../html/adminguide/distros/ubuntu.10.10.html | 6 + doc/build/html/adminguide/euca2ools.html | 6 + doc/build/html/adminguide/flags.html | 6 + doc/build/html/adminguide/getting.started.html | 6 + doc/build/html/adminguide/index.html | 6 + doc/build/html/adminguide/managing.images.html | 6 + doc/build/html/adminguide/managing.instances.html | 6 + doc/build/html/adminguide/managing.networks.html | 6 + doc/build/html/adminguide/managing.projects.html | 6 + doc/build/html/adminguide/managing.users.html | 6 + doc/build/html/adminguide/managingsecurity.html | 6 + doc/build/html/adminguide/monitoring.html | 6 + doc/build/html/adminguide/multi.node.install.html | 6 + doc/build/html/adminguide/network.flat.html | 6 + doc/build/html/adminguide/network.vlan.html | 6 + doc/build/html/adminguide/nova.manage.html | 167 ++++++++++----- doc/build/html/adminguide/single.node.install.html | 6 + doc/build/html/api/autoindex.html | 6 + doc/build/html/api/nova..adminclient.html | 6 + doc/build/html/api/nova..api.cloud.html | 6 + doc/build/html/api/nova..api.ec2.admin.html | 6 + doc/build/html/api/nova..api.ec2.apirequest.html | 6 + doc/build/html/api/nova..api.ec2.cloud.html | 6 + doc/build/html/api/nova..api.ec2.images.html | 6 + .../api/nova..api.ec2.metadatarequesthandler.html | 6 + doc/build/html/api/nova..api.openstack.auth.html | 6 + .../api/nova..api.openstack.backup_schedules.html | 6 + doc/build/html/api/nova..api.openstack.faults.html | 6 + .../html/api/nova..api.openstack.flavors.html | 6 + doc/build/html/api/nova..api.openstack.images.html | 6 + .../html/api/nova..api.openstack.servers.html | 6 + .../api/nova..api.openstack.sharedipgroups.html | 6 + doc/build/html/api/nova..auth.dbdriver.html | 6 + doc/build/html/api/nova..auth.fakeldap.html | 6 + doc/build/html/api/nova..auth.ldapdriver.html | 6 + doc/build/html/api/nova..auth.manager.html | 6 + doc/build/html/api/nova..auth.signer.html | 6 + doc/build/html/api/nova..cloudpipe.pipelib.html | 6 + doc/build/html/api/nova..compute.disk.html | 6 + .../html/api/nova..compute.instance_types.html | 6 + doc/build/html/api/nova..compute.manager.html | 6 + doc/build/html/api/nova..compute.monitor.html | 6 + doc/build/html/api/nova..compute.power_state.html | 6 + doc/build/html/api/nova..context.html | 6 + doc/build/html/api/nova..crypto.html | 6 + doc/build/html/api/nova..db.api.html | 6 + doc/build/html/api/nova..db.sqlalchemy.api.html | 6 + doc/build/html/api/nova..db.sqlalchemy.models.html | 6 + .../html/api/nova..db.sqlalchemy.session.html | 6 + doc/build/html/api/nova..exception.html | 6 + doc/build/html/api/nova..fakerabbit.html | 6 + doc/build/html/api/nova..flags.html | 6 + doc/build/html/api/nova..image.service.html | 6 + doc/build/html/api/nova..manager.html | 6 + doc/build/html/api/nova..network.linux_net.html | 6 + doc/build/html/api/nova..network.manager.html | 6 + doc/build/html/api/nova..objectstore.bucket.html | 6 + doc/build/html/api/nova..objectstore.handler.html | 6 + doc/build/html/api/nova..objectstore.image.html | 6 + doc/build/html/api/nova..objectstore.stored.html | 6 + doc/build/html/api/nova..process.html | 6 + doc/build/html/api/nova..quota.html | 6 + doc/build/html/api/nova..rpc.html | 6 + doc/build/html/api/nova..scheduler.chance.html | 6 + doc/build/html/api/nova..scheduler.driver.html | 6 + doc/build/html/api/nova..scheduler.manager.html | 6 + doc/build/html/api/nova..scheduler.simple.html | 6 + doc/build/html/api/nova..server.html | 6 + doc/build/html/api/nova..service.html | 6 + doc/build/html/api/nova..test.html | 6 + .../html/api/nova..tests.access_unittest.html | 6 + doc/build/html/api/nova..tests.api.fakes.html | 6 + .../html/api/nova..tests.api.openstack.fakes.html | 6 + .../api/nova..tests.api.openstack.test_api.html | 6 + .../api/nova..tests.api.openstack.test_auth.html | 6 + .../api/nova..tests.api.openstack.test_faults.html | 6 + .../nova..tests.api.openstack.test_flavors.html | 6 + .../api/nova..tests.api.openstack.test_images.html | 6 + ...ova..tests.api.openstack.test_ratelimiting.html | 6 + .../nova..tests.api.openstack.test_servers.html | 6 + ...a..tests.api.openstack.test_sharedipgroups.html | 6 + doc/build/html/api/nova..tests.api.test_wsgi.html | 6 + .../html/api/nova..tests.api_integration.html | 6 + doc/build/html/api/nova..tests.api_unittest.html | 6 + doc/build/html/api/nova..tests.auth_unittest.html | 6 + doc/build/html/api/nova..tests.cloud_unittest.html | 6 + .../html/api/nova..tests.compute_unittest.html | 6 + doc/build/html/api/nova..tests.declare_flags.html | 6 + doc/build/html/api/nova..tests.fake_flags.html | 6 + doc/build/html/api/nova..tests.flags_unittest.html | 6 + .../html/api/nova..tests.network_unittest.html | 6 + .../html/api/nova..tests.objectstore_unittest.html | 6 + .../html/api/nova..tests.process_unittest.html | 6 + doc/build/html/api/nova..tests.quota_unittest.html | 6 + doc/build/html/api/nova..tests.real_flags.html | 6 + doc/build/html/api/nova..tests.rpc_unittest.html | 6 + doc/build/html/api/nova..tests.runtime_flags.html | 6 + .../html/api/nova..tests.scheduler_unittest.html | 6 + .../html/api/nova..tests.service_unittest.html | 6 + .../html/api/nova..tests.twistd_unittest.html | 6 + .../html/api/nova..tests.validator_unittest.html | 6 + doc/build/html/api/nova..tests.virt_unittest.html | 6 + .../html/api/nova..tests.volume_unittest.html | 6 + doc/build/html/api/nova..twistd.html | 6 + doc/build/html/api/nova..utils.html | 6 + doc/build/html/api/nova..validate.html | 6 + doc/build/html/api/nova..virt.connection.html | 6 + doc/build/html/api/nova..virt.fake.html | 6 + doc/build/html/api/nova..virt.images.html | 6 + doc/build/html/api/nova..virt.libvirt_conn.html | 6 + doc/build/html/api/nova..virt.xenapi.html | 6 + doc/build/html/api/nova..volume.driver.html | 6 + doc/build/html/api/nova..volume.manager.html | 6 + doc/build/html/api/nova..wsgi.html | 6 + doc/build/html/cloud101.html | 6 + doc/build/html/code.html | 6 + doc/build/html/community.html | 6 + doc/build/html/devref/api.html | 6 + doc/build/html/devref/architecture.html | 6 + doc/build/html/devref/auth.html | 6 + doc/build/html/devref/cloudpipe.html | 6 + doc/build/html/devref/compute.html | 224 ++++++++++++++++++++- doc/build/html/devref/database.html | 6 + doc/build/html/devref/development.environment.html | 6 + doc/build/html/devref/fakes.html | 205 ++++++++++++++++++- doc/build/html/devref/glance.html | 6 + doc/build/html/devref/index.html | 18 +- doc/build/html/devref/modules.html | 6 + doc/build/html/devref/network.html | 6 + doc/build/html/devref/nova.html | 92 ++++++++- doc/build/html/devref/objectstore.html | 6 + doc/build/html/devref/scheduler.html | 6 + doc/build/html/devref/services.html | 6 + doc/build/html/devref/volume.html | 6 + doc/build/html/genindex.html | 6 + doc/build/html/index.html | 6 + doc/build/html/installer.html | 6 + doc/build/html/livecd.html | 6 + doc/build/html/man/novamanage.html | 174 +++++++++++----- doc/build/html/nova.concepts.html | 6 + doc/build/html/object.model.html | 6 + doc/build/html/objects.inv | 4 +- doc/build/html/quickstart.html | 6 + doc/build/html/search.html | 6 + doc/build/html/searchindex.js | 2 +- doc/build/html/service.architecture.html | 6 + doc/source/adminguide/nova.manage.rst | 141 +++++++++++-- doc/source/man/novamanage.rst | 177 ++++++++++++---- 265 files changed, 2116 insertions(+), 246 deletions(-) diff --git a/doc/build/doctrees/adminguide/nova.manage.doctree b/doc/build/doctrees/adminguide/nova.manage.doctree index 74a389b7b..4ecc07aa6 100644 Binary files a/doc/build/doctrees/adminguide/nova.manage.doctree and b/doc/build/doctrees/adminguide/nova.manage.doctree differ diff --git a/doc/build/doctrees/api/nova..adminclient.doctree b/doc/build/doctrees/api/nova..adminclient.doctree index 054ddc0a9..5fc153196 100644 Binary files a/doc/build/doctrees/api/nova..adminclient.doctree and b/doc/build/doctrees/api/nova..adminclient.doctree differ diff --git a/doc/build/doctrees/api/nova..api.cloud.doctree b/doc/build/doctrees/api/nova..api.cloud.doctree index 36f2d4e1b..21d8011be 100644 Binary files a/doc/build/doctrees/api/nova..api.cloud.doctree and b/doc/build/doctrees/api/nova..api.cloud.doctree differ diff --git a/doc/build/doctrees/api/nova..api.ec2.admin.doctree b/doc/build/doctrees/api/nova..api.ec2.admin.doctree index e990f2153..3fec631a4 100644 Binary files a/doc/build/doctrees/api/nova..api.ec2.admin.doctree and b/doc/build/doctrees/api/nova..api.ec2.admin.doctree differ diff --git a/doc/build/doctrees/api/nova..api.ec2.apirequest.doctree b/doc/build/doctrees/api/nova..api.ec2.apirequest.doctree index fe4889125..b212d15a7 100644 Binary files a/doc/build/doctrees/api/nova..api.ec2.apirequest.doctree and b/doc/build/doctrees/api/nova..api.ec2.apirequest.doctree differ diff --git a/doc/build/doctrees/api/nova..api.ec2.cloud.doctree b/doc/build/doctrees/api/nova..api.ec2.cloud.doctree index d9bf795d6..16d7ad90a 100644 Binary files a/doc/build/doctrees/api/nova..api.ec2.cloud.doctree and b/doc/build/doctrees/api/nova..api.ec2.cloud.doctree differ diff --git a/doc/build/doctrees/api/nova..api.ec2.images.doctree b/doc/build/doctrees/api/nova..api.ec2.images.doctree index f9fb8410e..340a4bc04 100644 Binary files a/doc/build/doctrees/api/nova..api.ec2.images.doctree and b/doc/build/doctrees/api/nova..api.ec2.images.doctree differ diff --git a/doc/build/doctrees/api/nova..api.ec2.metadatarequesthandler.doctree b/doc/build/doctrees/api/nova..api.ec2.metadatarequesthandler.doctree index fb91634a9..c1da3eaf9 100644 Binary files a/doc/build/doctrees/api/nova..api.ec2.metadatarequesthandler.doctree and b/doc/build/doctrees/api/nova..api.ec2.metadatarequesthandler.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.auth.doctree b/doc/build/doctrees/api/nova..api.openstack.auth.doctree index f141f42e9..b5e4e32ae 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.auth.doctree and b/doc/build/doctrees/api/nova..api.openstack.auth.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.backup_schedules.doctree b/doc/build/doctrees/api/nova..api.openstack.backup_schedules.doctree index 782143b74..3e063ce80 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.backup_schedules.doctree and b/doc/build/doctrees/api/nova..api.openstack.backup_schedules.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.faults.doctree b/doc/build/doctrees/api/nova..api.openstack.faults.doctree index ef8a3e1f7..e2c149b4b 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.faults.doctree and b/doc/build/doctrees/api/nova..api.openstack.faults.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.flavors.doctree b/doc/build/doctrees/api/nova..api.openstack.flavors.doctree index cda06eea5..0df3200c1 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.flavors.doctree and b/doc/build/doctrees/api/nova..api.openstack.flavors.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.images.doctree b/doc/build/doctrees/api/nova..api.openstack.images.doctree index 89ad9c9ec..e2f83944b 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.images.doctree and b/doc/build/doctrees/api/nova..api.openstack.images.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.servers.doctree b/doc/build/doctrees/api/nova..api.openstack.servers.doctree index a43145bab..64bf16c45 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.servers.doctree and b/doc/build/doctrees/api/nova..api.openstack.servers.doctree differ diff --git a/doc/build/doctrees/api/nova..api.openstack.sharedipgroups.doctree b/doc/build/doctrees/api/nova..api.openstack.sharedipgroups.doctree index 22076591f..144e9472b 100644 Binary files a/doc/build/doctrees/api/nova..api.openstack.sharedipgroups.doctree and b/doc/build/doctrees/api/nova..api.openstack.sharedipgroups.doctree differ diff --git a/doc/build/doctrees/api/nova..auth.dbdriver.doctree b/doc/build/doctrees/api/nova..auth.dbdriver.doctree index ba8863ec3..6fdcc725e 100644 Binary files a/doc/build/doctrees/api/nova..auth.dbdriver.doctree and b/doc/build/doctrees/api/nova..auth.dbdriver.doctree differ diff --git a/doc/build/doctrees/api/nova..auth.fakeldap.doctree b/doc/build/doctrees/api/nova..auth.fakeldap.doctree index c63566ba7..2723a22ff 100644 Binary files a/doc/build/doctrees/api/nova..auth.fakeldap.doctree and b/doc/build/doctrees/api/nova..auth.fakeldap.doctree differ diff --git a/doc/build/doctrees/api/nova..auth.ldapdriver.doctree b/doc/build/doctrees/api/nova..auth.ldapdriver.doctree index e1df8e5af..1698a7a67 100644 Binary files a/doc/build/doctrees/api/nova..auth.ldapdriver.doctree and b/doc/build/doctrees/api/nova..auth.ldapdriver.doctree differ diff --git a/doc/build/doctrees/api/nova..auth.manager.doctree b/doc/build/doctrees/api/nova..auth.manager.doctree index a808e5469..e323006e1 100644 Binary files a/doc/build/doctrees/api/nova..auth.manager.doctree and b/doc/build/doctrees/api/nova..auth.manager.doctree differ diff --git a/doc/build/doctrees/api/nova..auth.signer.doctree b/doc/build/doctrees/api/nova..auth.signer.doctree index be8b802a6..fe4dd3f67 100644 Binary files a/doc/build/doctrees/api/nova..auth.signer.doctree and b/doc/build/doctrees/api/nova..auth.signer.doctree differ diff --git a/doc/build/doctrees/api/nova..cloudpipe.pipelib.doctree b/doc/build/doctrees/api/nova..cloudpipe.pipelib.doctree index 24c2e94af..5027c13bb 100644 Binary files a/doc/build/doctrees/api/nova..cloudpipe.pipelib.doctree and b/doc/build/doctrees/api/nova..cloudpipe.pipelib.doctree differ diff --git a/doc/build/doctrees/api/nova..compute.disk.doctree b/doc/build/doctrees/api/nova..compute.disk.doctree index b4d2e418d..ac3a5478e 100644 Binary files a/doc/build/doctrees/api/nova..compute.disk.doctree and b/doc/build/doctrees/api/nova..compute.disk.doctree differ diff --git a/doc/build/doctrees/api/nova..compute.instance_types.doctree b/doc/build/doctrees/api/nova..compute.instance_types.doctree index 1f77e18de..2a7c03553 100644 Binary files a/doc/build/doctrees/api/nova..compute.instance_types.doctree and b/doc/build/doctrees/api/nova..compute.instance_types.doctree differ diff --git a/doc/build/doctrees/api/nova..compute.manager.doctree b/doc/build/doctrees/api/nova..compute.manager.doctree index 5eb311aad..bc7446484 100644 Binary files a/doc/build/doctrees/api/nova..compute.manager.doctree and b/doc/build/doctrees/api/nova..compute.manager.doctree differ diff --git a/doc/build/doctrees/api/nova..compute.monitor.doctree b/doc/build/doctrees/api/nova..compute.monitor.doctree index 656324737..34cad0354 100644 Binary files a/doc/build/doctrees/api/nova..compute.monitor.doctree and b/doc/build/doctrees/api/nova..compute.monitor.doctree differ diff --git a/doc/build/doctrees/api/nova..compute.power_state.doctree b/doc/build/doctrees/api/nova..compute.power_state.doctree index 5ac9e5ac3..b2424de7b 100644 Binary files a/doc/build/doctrees/api/nova..compute.power_state.doctree and b/doc/build/doctrees/api/nova..compute.power_state.doctree differ diff --git a/doc/build/doctrees/api/nova..context.doctree b/doc/build/doctrees/api/nova..context.doctree index e0f618ae6..b8352dfd5 100644 Binary files a/doc/build/doctrees/api/nova..context.doctree and b/doc/build/doctrees/api/nova..context.doctree differ diff --git a/doc/build/doctrees/api/nova..crypto.doctree b/doc/build/doctrees/api/nova..crypto.doctree index 9062aa13e..e40b776f1 100644 Binary files a/doc/build/doctrees/api/nova..crypto.doctree and b/doc/build/doctrees/api/nova..crypto.doctree differ diff --git a/doc/build/doctrees/api/nova..db.api.doctree b/doc/build/doctrees/api/nova..db.api.doctree index 381e7a7eb..e8ffeed71 100644 Binary files a/doc/build/doctrees/api/nova..db.api.doctree and b/doc/build/doctrees/api/nova..db.api.doctree differ diff --git a/doc/build/doctrees/api/nova..db.sqlalchemy.api.doctree b/doc/build/doctrees/api/nova..db.sqlalchemy.api.doctree index 9d60f9659..a67a57d41 100644 Binary files a/doc/build/doctrees/api/nova..db.sqlalchemy.api.doctree and b/doc/build/doctrees/api/nova..db.sqlalchemy.api.doctree differ diff --git a/doc/build/doctrees/api/nova..db.sqlalchemy.models.doctree b/doc/build/doctrees/api/nova..db.sqlalchemy.models.doctree index b4545c6cf..42a1e51fe 100644 Binary files a/doc/build/doctrees/api/nova..db.sqlalchemy.models.doctree and b/doc/build/doctrees/api/nova..db.sqlalchemy.models.doctree differ diff --git a/doc/build/doctrees/api/nova..db.sqlalchemy.session.doctree b/doc/build/doctrees/api/nova..db.sqlalchemy.session.doctree index 8c169f08a..1253924b5 100644 Binary files a/doc/build/doctrees/api/nova..db.sqlalchemy.session.doctree and b/doc/build/doctrees/api/nova..db.sqlalchemy.session.doctree differ diff --git a/doc/build/doctrees/api/nova..exception.doctree b/doc/build/doctrees/api/nova..exception.doctree index 43c08f7ce..53f4b6889 100644 Binary files a/doc/build/doctrees/api/nova..exception.doctree and b/doc/build/doctrees/api/nova..exception.doctree differ diff --git a/doc/build/doctrees/api/nova..fakerabbit.doctree b/doc/build/doctrees/api/nova..fakerabbit.doctree index bffd1c648..b63c50cd8 100644 Binary files a/doc/build/doctrees/api/nova..fakerabbit.doctree and b/doc/build/doctrees/api/nova..fakerabbit.doctree differ diff --git a/doc/build/doctrees/api/nova..flags.doctree b/doc/build/doctrees/api/nova..flags.doctree index d3e58d1bc..ca1115625 100644 Binary files a/doc/build/doctrees/api/nova..flags.doctree and b/doc/build/doctrees/api/nova..flags.doctree differ diff --git a/doc/build/doctrees/api/nova..image.service.doctree b/doc/build/doctrees/api/nova..image.service.doctree index d4b4db40c..9798631ae 100644 Binary files a/doc/build/doctrees/api/nova..image.service.doctree and b/doc/build/doctrees/api/nova..image.service.doctree differ diff --git a/doc/build/doctrees/api/nova..manager.doctree b/doc/build/doctrees/api/nova..manager.doctree index cba863ab7..59c20c56c 100644 Binary files a/doc/build/doctrees/api/nova..manager.doctree and b/doc/build/doctrees/api/nova..manager.doctree differ diff --git a/doc/build/doctrees/api/nova..network.linux_net.doctree b/doc/build/doctrees/api/nova..network.linux_net.doctree index 9fa9ea8bd..850b1fe46 100644 Binary files a/doc/build/doctrees/api/nova..network.linux_net.doctree and b/doc/build/doctrees/api/nova..network.linux_net.doctree differ diff --git a/doc/build/doctrees/api/nova..network.manager.doctree b/doc/build/doctrees/api/nova..network.manager.doctree index 6fc68e0ba..5a17fa2a6 100644 Binary files a/doc/build/doctrees/api/nova..network.manager.doctree and b/doc/build/doctrees/api/nova..network.manager.doctree differ diff --git a/doc/build/doctrees/api/nova..objectstore.bucket.doctree b/doc/build/doctrees/api/nova..objectstore.bucket.doctree index 9f88b7006..c4c5cfa86 100644 Binary files a/doc/build/doctrees/api/nova..objectstore.bucket.doctree and b/doc/build/doctrees/api/nova..objectstore.bucket.doctree differ diff --git a/doc/build/doctrees/api/nova..objectstore.handler.doctree b/doc/build/doctrees/api/nova..objectstore.handler.doctree index 46a6d7638..dd22550ad 100644 Binary files a/doc/build/doctrees/api/nova..objectstore.handler.doctree and b/doc/build/doctrees/api/nova..objectstore.handler.doctree differ diff --git a/doc/build/doctrees/api/nova..objectstore.image.doctree b/doc/build/doctrees/api/nova..objectstore.image.doctree index f37c9025b..89e80c8b7 100644 Binary files a/doc/build/doctrees/api/nova..objectstore.image.doctree and b/doc/build/doctrees/api/nova..objectstore.image.doctree differ diff --git a/doc/build/doctrees/api/nova..objectstore.stored.doctree b/doc/build/doctrees/api/nova..objectstore.stored.doctree index b776a1fdb..37eb82db0 100644 Binary files a/doc/build/doctrees/api/nova..objectstore.stored.doctree and b/doc/build/doctrees/api/nova..objectstore.stored.doctree differ diff --git a/doc/build/doctrees/api/nova..process.doctree b/doc/build/doctrees/api/nova..process.doctree index 9c0ba4e2f..ca306d07e 100644 Binary files a/doc/build/doctrees/api/nova..process.doctree and b/doc/build/doctrees/api/nova..process.doctree differ diff --git a/doc/build/doctrees/api/nova..quota.doctree b/doc/build/doctrees/api/nova..quota.doctree index 9331bc054..ea7e87026 100644 Binary files a/doc/build/doctrees/api/nova..quota.doctree and b/doc/build/doctrees/api/nova..quota.doctree differ diff --git a/doc/build/doctrees/api/nova..rpc.doctree b/doc/build/doctrees/api/nova..rpc.doctree index e20293b36..d774f13ac 100644 Binary files a/doc/build/doctrees/api/nova..rpc.doctree and b/doc/build/doctrees/api/nova..rpc.doctree differ diff --git a/doc/build/doctrees/api/nova..scheduler.chance.doctree b/doc/build/doctrees/api/nova..scheduler.chance.doctree index 543464d3b..0d65dbd82 100644 Binary files a/doc/build/doctrees/api/nova..scheduler.chance.doctree and b/doc/build/doctrees/api/nova..scheduler.chance.doctree differ diff --git a/doc/build/doctrees/api/nova..scheduler.driver.doctree b/doc/build/doctrees/api/nova..scheduler.driver.doctree index 26141ae79..cdd709e09 100644 Binary files a/doc/build/doctrees/api/nova..scheduler.driver.doctree and b/doc/build/doctrees/api/nova..scheduler.driver.doctree differ diff --git a/doc/build/doctrees/api/nova..scheduler.manager.doctree b/doc/build/doctrees/api/nova..scheduler.manager.doctree index 02f3b6ce3..04d6d7a02 100644 Binary files a/doc/build/doctrees/api/nova..scheduler.manager.doctree and b/doc/build/doctrees/api/nova..scheduler.manager.doctree differ diff --git a/doc/build/doctrees/api/nova..scheduler.simple.doctree b/doc/build/doctrees/api/nova..scheduler.simple.doctree index 207eb2671..0831a51dc 100644 Binary files a/doc/build/doctrees/api/nova..scheduler.simple.doctree and b/doc/build/doctrees/api/nova..scheduler.simple.doctree differ diff --git a/doc/build/doctrees/api/nova..server.doctree b/doc/build/doctrees/api/nova..server.doctree index d4df9a18c..3afb0e8ec 100644 Binary files a/doc/build/doctrees/api/nova..server.doctree and b/doc/build/doctrees/api/nova..server.doctree differ diff --git a/doc/build/doctrees/api/nova..service.doctree b/doc/build/doctrees/api/nova..service.doctree index ab06c6158..7f7ae945f 100644 Binary files a/doc/build/doctrees/api/nova..service.doctree and b/doc/build/doctrees/api/nova..service.doctree differ diff --git a/doc/build/doctrees/api/nova..test.doctree b/doc/build/doctrees/api/nova..test.doctree index d7a84581e..4c387d9a6 100644 Binary files a/doc/build/doctrees/api/nova..test.doctree and b/doc/build/doctrees/api/nova..test.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.access_unittest.doctree b/doc/build/doctrees/api/nova..tests.access_unittest.doctree index 7464afd08..62425af2b 100644 Binary files a/doc/build/doctrees/api/nova..tests.access_unittest.doctree and b/doc/build/doctrees/api/nova..tests.access_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.fakes.doctree b/doc/build/doctrees/api/nova..tests.api.fakes.doctree index 12fbe3aa9..dda086c3e 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.fakes.doctree and b/doc/build/doctrees/api/nova..tests.api.fakes.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.fakes.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.fakes.doctree index 32ff53359..326af55b7 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.fakes.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.fakes.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_api.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_api.doctree index f948ddf25..16f344192 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_api.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_api.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_auth.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_auth.doctree index 7e826d0f0..7fccdda3d 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_auth.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_auth.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_faults.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_faults.doctree index c34d2a36b..6b82c60b2 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_faults.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_faults.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_flavors.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_flavors.doctree index 979430fa0..7339f03fc 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_flavors.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_flavors.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_images.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_images.doctree index f9b50d078..30849418b 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_images.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_images.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree index 8cf2a10d8..ba40cd2f0 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_servers.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_servers.doctree index 2d7148e04..37017584f 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_servers.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_servers.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree b/doc/build/doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree index f15f42510..6febac045 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree and b/doc/build/doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api.test_wsgi.doctree b/doc/build/doctrees/api/nova..tests.api.test_wsgi.doctree index b338e30b4..f4fc78f11 100644 Binary files a/doc/build/doctrees/api/nova..tests.api.test_wsgi.doctree and b/doc/build/doctrees/api/nova..tests.api.test_wsgi.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api_integration.doctree b/doc/build/doctrees/api/nova..tests.api_integration.doctree index 40f3bce82..1a85b2439 100644 Binary files a/doc/build/doctrees/api/nova..tests.api_integration.doctree and b/doc/build/doctrees/api/nova..tests.api_integration.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.api_unittest.doctree b/doc/build/doctrees/api/nova..tests.api_unittest.doctree index ec226452c..de15e69c2 100644 Binary files a/doc/build/doctrees/api/nova..tests.api_unittest.doctree and b/doc/build/doctrees/api/nova..tests.api_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.auth_unittest.doctree b/doc/build/doctrees/api/nova..tests.auth_unittest.doctree index 9a4120379..262beefbc 100644 Binary files a/doc/build/doctrees/api/nova..tests.auth_unittest.doctree and b/doc/build/doctrees/api/nova..tests.auth_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.cloud_unittest.doctree b/doc/build/doctrees/api/nova..tests.cloud_unittest.doctree index 4fd382e6d..69bbe7456 100644 Binary files a/doc/build/doctrees/api/nova..tests.cloud_unittest.doctree and b/doc/build/doctrees/api/nova..tests.cloud_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.compute_unittest.doctree b/doc/build/doctrees/api/nova..tests.compute_unittest.doctree index 8704fe728..71874bbe8 100644 Binary files a/doc/build/doctrees/api/nova..tests.compute_unittest.doctree and b/doc/build/doctrees/api/nova..tests.compute_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.declare_flags.doctree b/doc/build/doctrees/api/nova..tests.declare_flags.doctree index 161b5242c..33d1e29d8 100644 Binary files a/doc/build/doctrees/api/nova..tests.declare_flags.doctree and b/doc/build/doctrees/api/nova..tests.declare_flags.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.fake_flags.doctree b/doc/build/doctrees/api/nova..tests.fake_flags.doctree index 183fc8d46..cc925c70e 100644 Binary files a/doc/build/doctrees/api/nova..tests.fake_flags.doctree and b/doc/build/doctrees/api/nova..tests.fake_flags.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.flags_unittest.doctree b/doc/build/doctrees/api/nova..tests.flags_unittest.doctree index 53f669795..d53aa0854 100644 Binary files a/doc/build/doctrees/api/nova..tests.flags_unittest.doctree and b/doc/build/doctrees/api/nova..tests.flags_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.network_unittest.doctree b/doc/build/doctrees/api/nova..tests.network_unittest.doctree index 56436d8ed..721e3eb5e 100644 Binary files a/doc/build/doctrees/api/nova..tests.network_unittest.doctree and b/doc/build/doctrees/api/nova..tests.network_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.objectstore_unittest.doctree b/doc/build/doctrees/api/nova..tests.objectstore_unittest.doctree index a560cb8c5..a012c0699 100644 Binary files a/doc/build/doctrees/api/nova..tests.objectstore_unittest.doctree and b/doc/build/doctrees/api/nova..tests.objectstore_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.process_unittest.doctree b/doc/build/doctrees/api/nova..tests.process_unittest.doctree index f393416e6..284e15b3d 100644 Binary files a/doc/build/doctrees/api/nova..tests.process_unittest.doctree and b/doc/build/doctrees/api/nova..tests.process_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.quota_unittest.doctree b/doc/build/doctrees/api/nova..tests.quota_unittest.doctree index e001cbe8d..cd2dc5588 100644 Binary files a/doc/build/doctrees/api/nova..tests.quota_unittest.doctree and b/doc/build/doctrees/api/nova..tests.quota_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.real_flags.doctree b/doc/build/doctrees/api/nova..tests.real_flags.doctree index e5c331eb4..9f338dfe8 100644 Binary files a/doc/build/doctrees/api/nova..tests.real_flags.doctree and b/doc/build/doctrees/api/nova..tests.real_flags.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.rpc_unittest.doctree b/doc/build/doctrees/api/nova..tests.rpc_unittest.doctree index 40c37e097..9499865f1 100644 Binary files a/doc/build/doctrees/api/nova..tests.rpc_unittest.doctree and b/doc/build/doctrees/api/nova..tests.rpc_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.runtime_flags.doctree b/doc/build/doctrees/api/nova..tests.runtime_flags.doctree index 1602d1b71..a652947c3 100644 Binary files a/doc/build/doctrees/api/nova..tests.runtime_flags.doctree and b/doc/build/doctrees/api/nova..tests.runtime_flags.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.scheduler_unittest.doctree b/doc/build/doctrees/api/nova..tests.scheduler_unittest.doctree index 2ff5f8320..22ff4eaf5 100644 Binary files a/doc/build/doctrees/api/nova..tests.scheduler_unittest.doctree and b/doc/build/doctrees/api/nova..tests.scheduler_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.service_unittest.doctree b/doc/build/doctrees/api/nova..tests.service_unittest.doctree index 4522500be..c5a225518 100644 Binary files a/doc/build/doctrees/api/nova..tests.service_unittest.doctree and b/doc/build/doctrees/api/nova..tests.service_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.twistd_unittest.doctree b/doc/build/doctrees/api/nova..tests.twistd_unittest.doctree index 794c02f17..a52f8dcf3 100644 Binary files a/doc/build/doctrees/api/nova..tests.twistd_unittest.doctree and b/doc/build/doctrees/api/nova..tests.twistd_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.validator_unittest.doctree b/doc/build/doctrees/api/nova..tests.validator_unittest.doctree index e1f52b00f..d81dde843 100644 Binary files a/doc/build/doctrees/api/nova..tests.validator_unittest.doctree and b/doc/build/doctrees/api/nova..tests.validator_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.virt_unittest.doctree b/doc/build/doctrees/api/nova..tests.virt_unittest.doctree index 5c27b5c28..62b642b63 100644 Binary files a/doc/build/doctrees/api/nova..tests.virt_unittest.doctree and b/doc/build/doctrees/api/nova..tests.virt_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..tests.volume_unittest.doctree b/doc/build/doctrees/api/nova..tests.volume_unittest.doctree index 807bbaac2..c99f33eb8 100644 Binary files a/doc/build/doctrees/api/nova..tests.volume_unittest.doctree and b/doc/build/doctrees/api/nova..tests.volume_unittest.doctree differ diff --git a/doc/build/doctrees/api/nova..twistd.doctree b/doc/build/doctrees/api/nova..twistd.doctree index 41a9335ee..893f4864b 100644 Binary files a/doc/build/doctrees/api/nova..twistd.doctree and b/doc/build/doctrees/api/nova..twistd.doctree differ diff --git a/doc/build/doctrees/api/nova..utils.doctree b/doc/build/doctrees/api/nova..utils.doctree index e801085f2..4c164066c 100644 Binary files a/doc/build/doctrees/api/nova..utils.doctree and b/doc/build/doctrees/api/nova..utils.doctree differ diff --git a/doc/build/doctrees/api/nova..validate.doctree b/doc/build/doctrees/api/nova..validate.doctree index 2f3cd4461..3098bc6fd 100644 Binary files a/doc/build/doctrees/api/nova..validate.doctree and b/doc/build/doctrees/api/nova..validate.doctree differ diff --git a/doc/build/doctrees/api/nova..virt.connection.doctree b/doc/build/doctrees/api/nova..virt.connection.doctree index 77789df65..ea4dbaba1 100644 Binary files a/doc/build/doctrees/api/nova..virt.connection.doctree and b/doc/build/doctrees/api/nova..virt.connection.doctree differ diff --git a/doc/build/doctrees/api/nova..virt.fake.doctree b/doc/build/doctrees/api/nova..virt.fake.doctree index 9b8ebe42f..a028d10ec 100644 Binary files a/doc/build/doctrees/api/nova..virt.fake.doctree and b/doc/build/doctrees/api/nova..virt.fake.doctree differ diff --git a/doc/build/doctrees/api/nova..virt.images.doctree b/doc/build/doctrees/api/nova..virt.images.doctree index abfb4850a..db2353d42 100644 Binary files a/doc/build/doctrees/api/nova..virt.images.doctree and b/doc/build/doctrees/api/nova..virt.images.doctree differ diff --git a/doc/build/doctrees/api/nova..virt.libvirt_conn.doctree b/doc/build/doctrees/api/nova..virt.libvirt_conn.doctree index d305479a4..3ae5410cb 100644 Binary files a/doc/build/doctrees/api/nova..virt.libvirt_conn.doctree and b/doc/build/doctrees/api/nova..virt.libvirt_conn.doctree differ diff --git a/doc/build/doctrees/api/nova..virt.xenapi.doctree b/doc/build/doctrees/api/nova..virt.xenapi.doctree index 0a4e21b8a..5173a3338 100644 Binary files a/doc/build/doctrees/api/nova..virt.xenapi.doctree and b/doc/build/doctrees/api/nova..virt.xenapi.doctree differ diff --git a/doc/build/doctrees/api/nova..volume.driver.doctree b/doc/build/doctrees/api/nova..volume.driver.doctree index a62cc606e..a31cf96c0 100644 Binary files a/doc/build/doctrees/api/nova..volume.driver.doctree and b/doc/build/doctrees/api/nova..volume.driver.doctree differ diff --git a/doc/build/doctrees/api/nova..volume.manager.doctree b/doc/build/doctrees/api/nova..volume.manager.doctree index 0c8b454a1..dceea1808 100644 Binary files a/doc/build/doctrees/api/nova..volume.manager.doctree and b/doc/build/doctrees/api/nova..volume.manager.doctree differ diff --git a/doc/build/doctrees/api/nova..wsgi.doctree b/doc/build/doctrees/api/nova..wsgi.doctree index d177a5a8e..1b5467242 100644 Binary files a/doc/build/doctrees/api/nova..wsgi.doctree and b/doc/build/doctrees/api/nova..wsgi.doctree differ diff --git a/doc/build/doctrees/devref/api.doctree b/doc/build/doctrees/devref/api.doctree index a999307c0..8151a68da 100644 Binary files a/doc/build/doctrees/devref/api.doctree and b/doc/build/doctrees/devref/api.doctree differ diff --git a/doc/build/doctrees/devref/auth.doctree b/doc/build/doctrees/devref/auth.doctree index c81eba43b..97d880a5e 100644 Binary files a/doc/build/doctrees/devref/auth.doctree and b/doc/build/doctrees/devref/auth.doctree differ diff --git a/doc/build/doctrees/devref/cloudpipe.doctree b/doc/build/doctrees/devref/cloudpipe.doctree index 6c43a0feb..d7f9a48a4 100644 Binary files a/doc/build/doctrees/devref/cloudpipe.doctree and b/doc/build/doctrees/devref/cloudpipe.doctree differ diff --git a/doc/build/doctrees/devref/compute.doctree b/doc/build/doctrees/devref/compute.doctree index bb56b1c9a..d74e49f5a 100644 Binary files a/doc/build/doctrees/devref/compute.doctree and b/doc/build/doctrees/devref/compute.doctree differ diff --git a/doc/build/doctrees/devref/database.doctree b/doc/build/doctrees/devref/database.doctree index 189239f0f..7c57de72a 100644 Binary files a/doc/build/doctrees/devref/database.doctree and b/doc/build/doctrees/devref/database.doctree differ diff --git a/doc/build/doctrees/devref/fakes.doctree b/doc/build/doctrees/devref/fakes.doctree index fe68337e8..8c07eced6 100644 Binary files a/doc/build/doctrees/devref/fakes.doctree and b/doc/build/doctrees/devref/fakes.doctree differ diff --git a/doc/build/doctrees/devref/glance.doctree b/doc/build/doctrees/devref/glance.doctree index 01eec6987..124d77771 100644 Binary files a/doc/build/doctrees/devref/glance.doctree and b/doc/build/doctrees/devref/glance.doctree differ diff --git a/doc/build/doctrees/devref/network.doctree b/doc/build/doctrees/devref/network.doctree index da867cb86..57724103b 100644 Binary files a/doc/build/doctrees/devref/network.doctree and b/doc/build/doctrees/devref/network.doctree differ diff --git a/doc/build/doctrees/devref/nova.doctree b/doc/build/doctrees/devref/nova.doctree index f823fa170..3e243c00b 100644 Binary files a/doc/build/doctrees/devref/nova.doctree and b/doc/build/doctrees/devref/nova.doctree differ diff --git a/doc/build/doctrees/devref/objectstore.doctree b/doc/build/doctrees/devref/objectstore.doctree index 45ab43f49..112c6856e 100644 Binary files a/doc/build/doctrees/devref/objectstore.doctree and b/doc/build/doctrees/devref/objectstore.doctree differ diff --git a/doc/build/doctrees/devref/scheduler.doctree b/doc/build/doctrees/devref/scheduler.doctree index 69a7337bd..a82138866 100644 Binary files a/doc/build/doctrees/devref/scheduler.doctree and b/doc/build/doctrees/devref/scheduler.doctree differ diff --git a/doc/build/doctrees/devref/services.doctree b/doc/build/doctrees/devref/services.doctree index 4c3c9c52f..b5bdb8f34 100644 Binary files a/doc/build/doctrees/devref/services.doctree and b/doc/build/doctrees/devref/services.doctree differ diff --git a/doc/build/doctrees/devref/volume.doctree b/doc/build/doctrees/devref/volume.doctree index a565a9592..77ccc2f28 100644 Binary files a/doc/build/doctrees/devref/volume.doctree and b/doc/build/doctrees/devref/volume.doctree differ diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle index 0936198cb..df5a85ad9 100644 Binary files a/doc/build/doctrees/environment.pickle and b/doc/build/doctrees/environment.pickle differ diff --git a/doc/build/doctrees/man/novamanage.doctree b/doc/build/doctrees/man/novamanage.doctree index 78a658e48..965e62663 100644 Binary files a/doc/build/doctrees/man/novamanage.doctree and b/doc/build/doctrees/man/novamanage.doctree differ diff --git a/doc/build/html/_sources/adminguide/nova.manage.txt b/doc/build/html/_sources/adminguide/nova.manage.txt index 89fb39669..ddaab7bbf 100644 --- a/doc/build/html/_sources/adminguide/nova.manage.txt +++ b/doc/build/html/_sources/adminguide/nova.manage.txt @@ -27,37 +27,143 @@ administration and ongoing maintenance of nova, such as user creation, vpn management, and much more. The standard pattern for executing a nova-manage command is: - ``nova-manage []`` For example, to obtain a list of all projects: - ``nova-manage project list`` -You can run without arguments to see a list of available command categories: - +Run without arguments to see a list of available command categories: ``nova-manage`` -You can run with a category argument to see a list of all commands in that -category: +Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. +You can also run with a category argument such as user to see a list of all commands in that category: ``nova-manage user`` +These sections describe the available categories and arguments for nova-manage. + +``nova-manage user admin `` + + Create an admin user with the name . + +``nova-manage user create `` + + Create a normal user with the name . + +``nova-manage user delete `` + + Delete the user with the name . + +``nova-manage user exports `` + + Outputs a list of access key and secret keys for user to the screen + +``nova-manage user list`` + + Outputs a list of all the user names to the screen. + +``nova-manage user modify `` + + Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. + +Nova Project +~~~~~~~~~~~~ + +``nova-manage project add `` + + Add a nova project with the name to the database. + +``nova-manage project create `` + + Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). + +``nova-manage project delete `` + + Delete a nova project with the name . + +``nova-manage project environment `` + + Exports environment variables for the named project to a file named novarc. + +``nova-manage project list`` + + Outputs a list of all the projects to the screen. + +``nova-manage project quota `` + + Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. + +``nova-manage project remove `` + + Deletes the project with the name . + +``nova-manage project zipfile`` + + Compresses all related files for a created project into a zip file nova.zip. + +Nova Role +~~~~~~~~~ + +nova-manage role [] +``nova-manage role add <(optional) projectname>`` + + Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. + +``nova-manage role has `` + Checks the user or project and responds with True if the user has a global role with a particular project. + +``nova-manage role remove `` + Remove the indicated role from the user. Nova Shell ~~~~~~~~~~ -* shell bpython - * start a new bpython shell -* shell ipython - * start a new ipython shell -* shell python - * start a new python shell -* shell run - * ??? -* shell script: Runs the script from the specifed path with flags set properly. - * arguments: path +``nova-manage shell bpython`` + + Starts a new bpython shell. + +``nova-manage shell ipython`` + + Starts a new ipython shell. + +``nova-manage shell python`` + + Starts a new python shell. + +``nova-manage shell run`` + + Starts a new shell using python. + +``nova-manage shell script `` + + Runs the named script from the specified path with flags set. + +Nova VPN +~~~~~~~~ + +``nova-manage vpn list`` + + Displays a list of projects, their IP prot numbers, and what state they're in. + +``nova-manage vpn run `` + + Starts the VPN for the named project. + +``nova-manage vpn spawn`` + + Runs all VPNs. + +Nova Floating IPs +~~~~~~~~~~~~~~~~~ + +``nova-manage floating create `` + + Creates floating IP addresses for the named host by the given range. + floating delete Deletes floating IP addresses in the range given. + +``nova-manage floating list`` + Displays a list of all floating IP addresses. Concept: Flags -------------- diff --git a/doc/build/html/_sources/man/novamanage.txt b/doc/build/html/_sources/man/novamanage.txt index acd76aac0..ebc76cc4b 100644 --- a/doc/build/html/_sources/man/novamanage.txt +++ b/doc/build/html/_sources/man/novamanage.txt @@ -26,57 +26,145 @@ nova-manage controls cloud computing instances by managing nova users, nova proj OPTIONS ======= -Run without arguments to see a list of available command categories. Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. -:: -nova-manage +The standard pattern for executing a nova-manage command is: +``nova-manage []`` -You can also run with a category argument such as user to see a list of all commands in that category. -:: -nova-manage user +For example, to obtain a list of all projects: +``nova-manage project list`` -Here are the available categories and arguments for nova-manage: +Run without arguments to see a list of available command categories: +``nova-manage`` -nova-manage user [] - user admin Create an admin user with the name . - user create Create a normal user with the name . - user delete Delete the user with the name . - user exports Outputs a list of access key and secret keys for user to the screen - user list Outputs a list of all the user names to the screen. - user modify Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. - -nova-manage project [] - project add Add a nova project with the name to the database. - project create Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). - project delete Delete a nova project with the name . - project environment Exports environment variables for the named project to a file named novarc. - project list Outputs a list of all the projects to the screen. - project quota Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. - project remove Deletes the project with the name . - project zipfile Compresses all related files for a created project into a zip file nova.zip. +Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. + +You can also run with a category argument such as user to see a list of all commands in that category: +``nova-manage user`` + +These sections describe the available categories and arguments for nova-manage. + +``nova-manage user admin `` + + Create an admin user with the name . + +``nova-manage user create `` + + Create a normal user with the name . + +``nova-manage user delete `` + + Delete the user with the name . + +``nova-manage user exports `` + + Outputs a list of access key and secret keys for user to the screen + +``nova-manage user list`` + + Outputs a list of all the user names to the screen. + +``nova-manage user modify `` + + Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. -nova-manage role [] - role add <(optional) projectname> Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. - role has Checks the user or project and responds with True if the user has a global role with a particular project. - role remove Remove the indicated role from the user. +Nova Project +~~~~~~~~~~~~ + +``nova-manage project add `` + + Add a nova project with the name to the database. + +``nova-manage project create `` + + Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). -nova-manage shell [] - shell bpython Starts a new bpython shell. - shell ipython Starts a new ipython shell. - shell python Starts a new python shell. - shell run Starts a new shell using python. - shell script Runs the named script from the specified path with flags set. +``nova-manage project delete `` + + Delete a nova project with the name . + +``nova-manage project environment `` + + Exports environment variables for the named project to a file named novarc. + +``nova-manage project list`` + + Outputs a list of all the projects to the screen. + +``nova-manage project quota `` + + Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. + +``nova-manage project remove `` + + Deletes the project with the name . + +``nova-manage project zipfile`` + + Compresses all related files for a created project into a zip file nova.zip. -nova-manage vpn [] - vpn list Displays a list of projects, their IP prot numbers, and what state they're in. - vpn run Starts the VPN for the named project. - vpn spawn Runs all VPNs. +Nova Role +~~~~~~~~~ + +nova-manage role [] +``nova-manage role add <(optional) projectname>`` + + Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. + +``nova-manage role has `` + Checks the user or project and responds with True if the user has a global role with a particular project. + +``nova-manage role remove `` + Remove the indicated role from the user. + +Nova Shell +~~~~~~~~~~ + +``nova-manage shell bpython`` + + Starts a new bpython shell. + +``nova-manage shell ipython`` + + Starts a new ipython shell. + +``nova-manage shell python`` + + Starts a new python shell. + +``nova-manage shell run`` + + Starts a new shell using python. + +``nova-manage shell script `` + + Runs the named script from the specified path with flags set. + +Nova VPN +~~~~~~~~ + +``nova-manage vpn list`` + + Displays a list of projects, their IP prot numbers, and what state they're in. + +``nova-manage vpn run `` + + Starts the VPN for the named project. + +``nova-manage vpn spawn`` + + Runs all VPNs. -nova-manage floating [] - floating create Creates floating IP addresses for the named host by the given range. - floating delete Deletes floating IP addresses in the range given. - floating list Displays a list of all floating IP addresses. +Nova Floating IPs +~~~~~~~~~~~~~~~~~ + +``nova-manage floating create `` + + Creates floating IP addresses for the named host by the given range. + floating delete Deletes floating IP addresses in the range given. ---help, -h Show this help message and exit. +``nova-manage floating list`` + + Displays a list of all floating IP addresses. + FILES ======== diff --git a/doc/build/html/adminguide/binaries.html b/doc/build/html/adminguide/binaries.html index 688264549..bb7829068 100644 --- a/doc/build/html/adminguide/binaries.html +++ b/doc/build/html/adminguide/binaries.html @@ -45,6 +45,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
@@ -132,6 +135,9 @@ gflags package:

  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/adminguide/distros/others.html b/doc/build/html/adminguide/distros/others.html index ff0beb440..4b9d5987b 100644 --- a/doc/build/html/adminguide/distros/others.html +++ b/doc/build/html/adminguide/distros/others.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -184,6 +187,9 @@ cd ..
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/distros/ubuntu.10.04.html b/doc/build/html/adminguide/distros/ubuntu.10.04.html index 7d7e93054..32517eecc 100644 --- a/doc/build/html/adminguide/distros/ubuntu.10.04.html +++ b/doc/build/html/adminguide/distros/ubuntu.10.04.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -144,6 +147,9 @@ sudo apt-get update && sudo apt-get install python-gflags
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/distros/ubuntu.10.10.html b/doc/build/html/adminguide/distros/ubuntu.10.10.html index e828bfb25..52e419a7d 100644 --- a/doc/build/html/adminguide/distros/ubuntu.10.10.html +++ b/doc/build/html/adminguide/distros/ubuntu.10.10.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -149,6 +152,9 @@ Processing triggers for python-support ...
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/euca2ools.html b/doc/build/html/adminguide/euca2ools.html index d4ea9ebc3..472f51394 100644 --- a/doc/build/html/adminguide/euca2ools.html +++ b/doc/build/html/adminguide/euca2ools.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -153,6 +156,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/flags.html b/doc/build/html/adminguide/flags.html index 822167d73..a964f0948 100644 --- a/doc/build/html/adminguide/flags.html +++ b/doc/build/html/adminguide/flags.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -113,6 +116,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/getting.started.html b/doc/build/html/adminguide/getting.started.html index 8b53b88ba..404d9bf01 100644 --- a/doc/build/html/adminguide/getting.started.html +++ b/doc/build/html/adminguide/getting.started.html @@ -45,6 +45,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • @@ -271,6 +274,9 @@ of the guide only gets you started quickly, to learn about HA options, see
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/adminguide/index.html b/doc/build/html/adminguide/index.html index 0e51c3347..96b0e9f77 100644 --- a/doc/build/html/adminguide/index.html +++ b/doc/build/html/adminguide/index.html @@ -47,6 +47,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -191,6 +194,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managing.images.html b/doc/build/html/adminguide/managing.images.html index fdd9e029d..09656840a 100644 --- a/doc/build/html/adminguide/managing.images.html +++ b/doc/build/html/adminguide/managing.images.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -112,6 +115,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managing.instances.html b/doc/build/html/adminguide/managing.instances.html index 40dbe544b..78c6ca811 100644 --- a/doc/build/html/adminguide/managing.instances.html +++ b/doc/build/html/adminguide/managing.instances.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -145,6 +148,9 @@ ssh -i test.pem root@ip.of.instance
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managing.networks.html b/doc/build/html/adminguide/managing.networks.html index 5473facbc..d8c852340 100644 --- a/doc/build/html/adminguide/managing.networks.html +++ b/doc/build/html/adminguide/managing.networks.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -217,6 +220,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managing.projects.html b/doc/build/html/adminguide/managing.projects.html index f0ab79c16..cbbfc89b8 100644 --- a/doc/build/html/adminguide/managing.projects.html +++ b/doc/build/html/adminguide/managing.projects.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -215,6 +218,9 @@ nova-manage project remove john_project john
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managing.users.html b/doc/build/html/adminguide/managing.users.html index cac641aaa..3baf37c6b 100644 --- a/doc/build/html/adminguide/managing.users.html +++ b/doc/build/html/adminguide/managing.users.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -247,6 +250,9 @@ the global role and the project role
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/managingsecurity.html b/doc/build/html/adminguide/managingsecurity.html index b6cf52b80..71956896b 100644 --- a/doc/build/html/adminguide/managingsecurity.html +++ b/doc/build/html/adminguide/managingsecurity.html @@ -45,6 +45,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • @@ -116,6 +119,9 @@ configuration.

  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/adminguide/monitoring.html b/doc/build/html/adminguide/monitoring.html index 67acb4a9e..4d347249d 100644 --- a/doc/build/html/adminguide/monitoring.html +++ b/doc/build/html/adminguide/monitoring.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -116,6 +119,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/multi.node.install.html b/doc/build/html/adminguide/multi.node.install.html index 1af213d17..bf1d2bf70 100644 --- a/doc/build/html/adminguide/multi.node.install.html +++ b/doc/build/html/adminguide/multi.node.install.html @@ -47,6 +47,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -367,6 +370,9 @@ your cluster have which roles:

  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/network.flat.html b/doc/build/html/adminguide/network.flat.html index 5fcbe5180..790fadf54 100644 --- a/doc/build/html/adminguide/network.flat.html +++ b/doc/build/html/adminguide/network.flat.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -155,6 +158,9 @@ instance to protect against IP/MAC address spoofing and ARP poisoning.

  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/network.vlan.html b/doc/build/html/adminguide/network.vlan.html index a11c8d8a7..0d87a5273 100644 --- a/doc/build/html/adminguide/network.vlan.html +++ b/doc/build/html/adminguide/network.vlan.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -271,6 +274,9 @@ instance is started on that host
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/adminguide/nova.manage.html b/doc/build/html/adminguide/nova.manage.html index 25db4239a..2b9a4ae96 100644 --- a/doc/build/html/adminguide/nova.manage.html +++ b/doc/build/html/adminguide/nova.manage.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -64,7 +67,11 @@
    • The nova-manage command
      • Introduction
      • -
      • Nova Shell
          +
        • Nova Project
        • +
        • Nova Role
        • +
        • Nova Shell
        • +
        • Nova VPN
        • +
        • Nova Floating IPs
          • Concept: Flags
          • Concept: Plugins
          • Concept: IPC/RPC
          • @@ -118,60 +125,117 @@

            The nova-manage command is used to perform many essential functions for administration and ongoing maintenance of nova, such as user creation, vpn management, and much more.

            -

            The standard pattern for executing a nova-manage command is:

            -

            nova-manage <category> <command> [<args>]

            -

            For example, to obtain a list of all projects:

            +

            The standard pattern for executing a nova-manage command is: +nova-manage <category> <command> [<args>]

            +

            For example, to obtain a list of all projects: +nova-manage project list

            +

            Run without arguments to see a list of available command categories: +nova-manage

            +

            Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below.

            +

            You can also run with a category argument such as user to see a list of all commands in that category: +nova-manage user

            +

            These sections describe the available categories and arguments for nova-manage.

            +

            nova-manage user admin <username>

            +
            +Create an admin user with the name <username>.
            +

            nova-manage user create <username>

            +
            +Create a normal user with the name <username>.
            +

            nova-manage user delete <username>

            +
            +Delete the user with the name <username>.
            +

            nova-manage user exports <username>

            +
            +Outputs a list of access key and secret keys for user to the screen
            +

            nova-manage user list

            +
            +Outputs a list of all the user names to the screen.
            +

            nova-manage user modify <accesskey> <secretkey> <admin?T/F>

            +
            +Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it.
            + +
            +

            Nova Project

            +

            nova-manage project add <projectname>

            +
            +Add a nova project with the name <projectname> to the database.
            +

            nova-manage project create <projectname>

            +
            +Create a new nova project with the name <projectname> (you still need to do nova-manage project add <projectname> to add it to the database).
            +

            nova-manage project delete <projectname>

            +
            +Delete a nova project with the name <projectname>.
            +

            nova-manage project environment <projectname> <username>

            +
            +Exports environment variables for the named project to a file named novarc.

            nova-manage project list

            -

            You can run without arguments to see a list of available command categories:

            -

            nova-manage

            -

            You can run with a category argument to see a list of all commands in that -category:

            -

            nova-manage user

            +
            +Outputs a list of all the projects to the screen.
            +

            nova-manage project quota <projectname>

            +
            +Outputs the size and specs of the project’s instances including gigabytes, instances, floating IPs, volumes, and cores.
            +

            nova-manage project remove <projectname>

            +
            +Deletes the project with the name <projectname>.
            +

            nova-manage project zipfile

            +
            +Compresses all related files for a created project into a zip file nova.zip.
            +
            +
            +

            Nova Role

            +

            nova-manage role <action> [<argument>] +nova-manage role add <username> <rolename> <(optional) projectname>

            +
            +Add a user to either a global or project-based role with the indicated <rolename> assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects.
            +
            +
            nova-manage role has <username> <projectname>
            +
            Checks the user or project and responds with True if the user has a global role with a particular project.
            +
            nova-manage role remove <username> <rolename>
            +
            Remove the indicated role from the user.
            +

            Nova Shell

            -
              -
            • -
              shell bpython
              -
                -
              • start a new bpython shell
              • -
              -
              -
              -
            • -
            • -
              shell ipython
              -
                -
              • start a new ipython shell
              • -
              -
              -
              -
            • -
            • -
              shell python
              -
                -
              • start a new python shell
              • -
              -
              -
              -
            • -
            • -
              shell run
              -
                -
              • ???
              • -
              -
              -
              -
            • -
            • -
              shell script: Runs the script from the specifed path with flags set properly.
              -
                -
              • arguments: path
              • -
              -
              +

              nova-manage shell bpython

              +
              +Starts a new bpython shell.
              +

              nova-manage shell ipython

              +
              +Starts a new ipython shell.
              +

              nova-manage shell python

              +
              +Starts a new python shell.
              +

              nova-manage shell run

              +
              +Starts a new shell using python.
              +

              nova-manage shell script <path/scriptname>

              +
              +Runs the named script from the specified path with flags set.
              +
            +
            +

            Nova VPN

            +

            nova-manage vpn list

            +
            +Displays a list of projects, their IP prot numbers, and what state they’re in.
            +

            nova-manage vpn run <projectname>

            +
            +Starts the VPN for the named project.
            +

            nova-manage vpn spawn

            +
            +Runs all VPNs.
            +
            +
            +

            Nova Floating IPs

            +

            nova-manage floating create <host> <ip_range>

            +
            +
            +
            Creates floating IP addresses for the named host by the given range.
            +
            floating delete <ip_range> Deletes floating IP addresses in the range given.
            - -
          + +

          nova-manage floating list

          +
          +Displays a list of all floating IP addresses.

          Concept: Flags

          python-gflags

          @@ -236,6 +300,9 @@ category:

        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/adminguide/single.node.install.html b/doc/build/html/adminguide/single.node.install.html index a47d66541..1cd3bb6b8 100644 --- a/doc/build/html/adminguide/single.node.install.html +++ b/doc/build/html/adminguide/single.node.install.html @@ -47,6 +47,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -393,6 +396,9 @@ sudo reboot
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/autoindex.html b/doc/build/html/api/autoindex.html index 6b6c7e03d..e078001b3 100644 --- a/doc/build/html/api/autoindex.html +++ b/doc/build/html/api/autoindex.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -205,6 +208,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..adminclient.html b/doc/build/html/api/nova..adminclient.html index 7031d9dcf..ff6352d3c 100644 --- a/doc/build/html/api/nova..adminclient.html +++ b/doc/build/html/api/nova..adminclient.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.cloud.html b/doc/build/html/api/nova..api.cloud.html index a6cd0e1cf..ec41ee55d 100644 --- a/doc/build/html/api/nova..api.cloud.html +++ b/doc/build/html/api/nova..api.cloud.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.ec2.admin.html b/doc/build/html/api/nova..api.ec2.admin.html index 1b727dde9..505f1e0c3 100644 --- a/doc/build/html/api/nova..api.ec2.admin.html +++ b/doc/build/html/api/nova..api.ec2.admin.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.ec2.apirequest.html b/doc/build/html/api/nova..api.ec2.apirequest.html index cd52bcb88..6df0faae2 100644 --- a/doc/build/html/api/nova..api.ec2.apirequest.html +++ b/doc/build/html/api/nova..api.ec2.apirequest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.ec2.cloud.html b/doc/build/html/api/nova..api.ec2.cloud.html index e61f71563..55f24e1fb 100644 --- a/doc/build/html/api/nova..api.ec2.cloud.html +++ b/doc/build/html/api/nova..api.ec2.cloud.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.ec2.images.html b/doc/build/html/api/nova..api.ec2.images.html index 0a0e90b13..f2c3b8e47 100644 --- a/doc/build/html/api/nova..api.ec2.images.html +++ b/doc/build/html/api/nova..api.ec2.images.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html b/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html index 640f4e805..37614715b 100644 --- a/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html +++ b/doc/build/html/api/nova..api.ec2.metadatarequesthandler.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.auth.html b/doc/build/html/api/nova..api.openstack.auth.html index 7417ac0b1..f84c10d5a 100644 --- a/doc/build/html/api/nova..api.openstack.auth.html +++ b/doc/build/html/api/nova..api.openstack.auth.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.backup_schedules.html b/doc/build/html/api/nova..api.openstack.backup_schedules.html index 1caa3d407..2d55564f7 100644 --- a/doc/build/html/api/nova..api.openstack.backup_schedules.html +++ b/doc/build/html/api/nova..api.openstack.backup_schedules.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.faults.html b/doc/build/html/api/nova..api.openstack.faults.html index bc426fc73..7c063885b 100644 --- a/doc/build/html/api/nova..api.openstack.faults.html +++ b/doc/build/html/api/nova..api.openstack.faults.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.flavors.html b/doc/build/html/api/nova..api.openstack.flavors.html index 27651ff3c..6d0e1a653 100644 --- a/doc/build/html/api/nova..api.openstack.flavors.html +++ b/doc/build/html/api/nova..api.openstack.flavors.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.images.html b/doc/build/html/api/nova..api.openstack.images.html index a096ddb26..1ef4ae126 100644 --- a/doc/build/html/api/nova..api.openstack.images.html +++ b/doc/build/html/api/nova..api.openstack.images.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.servers.html b/doc/build/html/api/nova..api.openstack.servers.html index 1b6941c41..8727b855d 100644 --- a/doc/build/html/api/nova..api.openstack.servers.html +++ b/doc/build/html/api/nova..api.openstack.servers.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..api.openstack.sharedipgroups.html b/doc/build/html/api/nova..api.openstack.sharedipgroups.html index 6e58a4076..6c4b5a6f9 100644 --- a/doc/build/html/api/nova..api.openstack.sharedipgroups.html +++ b/doc/build/html/api/nova..api.openstack.sharedipgroups.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..auth.dbdriver.html b/doc/build/html/api/nova..auth.dbdriver.html index 343a38837..5207cf7a4 100644 --- a/doc/build/html/api/nova..auth.dbdriver.html +++ b/doc/build/html/api/nova..auth.dbdriver.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..auth.fakeldap.html b/doc/build/html/api/nova..auth.fakeldap.html index 045af4609..45a9f6dba 100644 --- a/doc/build/html/api/nova..auth.fakeldap.html +++ b/doc/build/html/api/nova..auth.fakeldap.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..auth.ldapdriver.html b/doc/build/html/api/nova..auth.ldapdriver.html index f9fd15a4d..554f9a549 100644 --- a/doc/build/html/api/nova..auth.ldapdriver.html +++ b/doc/build/html/api/nova..auth.ldapdriver.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..auth.manager.html b/doc/build/html/api/nova..auth.manager.html index 7afc88179..280a654f7 100644 --- a/doc/build/html/api/nova..auth.manager.html +++ b/doc/build/html/api/nova..auth.manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..auth.signer.html b/doc/build/html/api/nova..auth.signer.html index 0303c3e64..639e286fc 100644 --- a/doc/build/html/api/nova..auth.signer.html +++ b/doc/build/html/api/nova..auth.signer.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..cloudpipe.pipelib.html b/doc/build/html/api/nova..cloudpipe.pipelib.html index dd9345b40..c581f5ae6 100644 --- a/doc/build/html/api/nova..cloudpipe.pipelib.html +++ b/doc/build/html/api/nova..cloudpipe.pipelib.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..compute.disk.html b/doc/build/html/api/nova..compute.disk.html index c02928d75..ee418bb8e 100644 --- a/doc/build/html/api/nova..compute.disk.html +++ b/doc/build/html/api/nova..compute.disk.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..compute.instance_types.html b/doc/build/html/api/nova..compute.instance_types.html index 7fa6f8bcb..4bdd84b9a 100644 --- a/doc/build/html/api/nova..compute.instance_types.html +++ b/doc/build/html/api/nova..compute.instance_types.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..compute.manager.html b/doc/build/html/api/nova..compute.manager.html index 88a56adee..6853a34cf 100644 --- a/doc/build/html/api/nova..compute.manager.html +++ b/doc/build/html/api/nova..compute.manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..compute.monitor.html b/doc/build/html/api/nova..compute.monitor.html index 589b415ad..af9cf9637 100644 --- a/doc/build/html/api/nova..compute.monitor.html +++ b/doc/build/html/api/nova..compute.monitor.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..compute.power_state.html b/doc/build/html/api/nova..compute.power_state.html index 30a24e7f0..ed4035d5f 100644 --- a/doc/build/html/api/nova..compute.power_state.html +++ b/doc/build/html/api/nova..compute.power_state.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..context.html b/doc/build/html/api/nova..context.html index 315928b41..3381bd687 100644 --- a/doc/build/html/api/nova..context.html +++ b/doc/build/html/api/nova..context.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..crypto.html b/doc/build/html/api/nova..crypto.html index 9d610d3cb..f075ff5ed 100644 --- a/doc/build/html/api/nova..crypto.html +++ b/doc/build/html/api/nova..crypto.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..db.api.html b/doc/build/html/api/nova..db.api.html index 5389462c8..0186cf8b5 100644 --- a/doc/build/html/api/nova..db.api.html +++ b/doc/build/html/api/nova..db.api.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..db.sqlalchemy.api.html b/doc/build/html/api/nova..db.sqlalchemy.api.html index 6030f24e4..4fd3332cf 100644 --- a/doc/build/html/api/nova..db.sqlalchemy.api.html +++ b/doc/build/html/api/nova..db.sqlalchemy.api.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..db.sqlalchemy.models.html b/doc/build/html/api/nova..db.sqlalchemy.models.html index db4d18884..5ca3d842e 100644 --- a/doc/build/html/api/nova..db.sqlalchemy.models.html +++ b/doc/build/html/api/nova..db.sqlalchemy.models.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..db.sqlalchemy.session.html b/doc/build/html/api/nova..db.sqlalchemy.session.html index 622b97136..b6e2a24b3 100644 --- a/doc/build/html/api/nova..db.sqlalchemy.session.html +++ b/doc/build/html/api/nova..db.sqlalchemy.session.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..exception.html b/doc/build/html/api/nova..exception.html index 312727354..bbab225be 100644 --- a/doc/build/html/api/nova..exception.html +++ b/doc/build/html/api/nova..exception.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..fakerabbit.html b/doc/build/html/api/nova..fakerabbit.html index ae6cf9b92..ed2ed4158 100644 --- a/doc/build/html/api/nova..fakerabbit.html +++ b/doc/build/html/api/nova..fakerabbit.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..flags.html b/doc/build/html/api/nova..flags.html index a0c61346e..b3b7bff17 100644 --- a/doc/build/html/api/nova..flags.html +++ b/doc/build/html/api/nova..flags.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..image.service.html b/doc/build/html/api/nova..image.service.html index 682e6be33..ea1c163ec 100644 --- a/doc/build/html/api/nova..image.service.html +++ b/doc/build/html/api/nova..image.service.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..manager.html b/doc/build/html/api/nova..manager.html index cb6a0409a..aa0515245 100644 --- a/doc/build/html/api/nova..manager.html +++ b/doc/build/html/api/nova..manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..network.linux_net.html b/doc/build/html/api/nova..network.linux_net.html index f3f1d5e5c..e1a0c3db9 100644 --- a/doc/build/html/api/nova..network.linux_net.html +++ b/doc/build/html/api/nova..network.linux_net.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..network.manager.html b/doc/build/html/api/nova..network.manager.html index a9e7f74d7..943e69073 100644 --- a/doc/build/html/api/nova..network.manager.html +++ b/doc/build/html/api/nova..network.manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..objectstore.bucket.html b/doc/build/html/api/nova..objectstore.bucket.html index e380ad535..7d70ce96b 100644 --- a/doc/build/html/api/nova..objectstore.bucket.html +++ b/doc/build/html/api/nova..objectstore.bucket.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..objectstore.handler.html b/doc/build/html/api/nova..objectstore.handler.html index 26ef1abbd..7361f8210 100644 --- a/doc/build/html/api/nova..objectstore.handler.html +++ b/doc/build/html/api/nova..objectstore.handler.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..objectstore.image.html b/doc/build/html/api/nova..objectstore.image.html index 872d19dd7..ac03daf18 100644 --- a/doc/build/html/api/nova..objectstore.image.html +++ b/doc/build/html/api/nova..objectstore.image.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..objectstore.stored.html b/doc/build/html/api/nova..objectstore.stored.html index a73d96c62..0113156f7 100644 --- a/doc/build/html/api/nova..objectstore.stored.html +++ b/doc/build/html/api/nova..objectstore.stored.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..process.html b/doc/build/html/api/nova..process.html index f126f8e74..139d2451f 100644 --- a/doc/build/html/api/nova..process.html +++ b/doc/build/html/api/nova..process.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..quota.html b/doc/build/html/api/nova..quota.html index cc52faab8..29a43a565 100644 --- a/doc/build/html/api/nova..quota.html +++ b/doc/build/html/api/nova..quota.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..rpc.html b/doc/build/html/api/nova..rpc.html index e8cc9658c..6d1a533e4 100644 --- a/doc/build/html/api/nova..rpc.html +++ b/doc/build/html/api/nova..rpc.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..scheduler.chance.html b/doc/build/html/api/nova..scheduler.chance.html index 7591e5826..53c586fdd 100644 --- a/doc/build/html/api/nova..scheduler.chance.html +++ b/doc/build/html/api/nova..scheduler.chance.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..scheduler.driver.html b/doc/build/html/api/nova..scheduler.driver.html index 2a8e80a37..0bf7a128e 100644 --- a/doc/build/html/api/nova..scheduler.driver.html +++ b/doc/build/html/api/nova..scheduler.driver.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..scheduler.manager.html b/doc/build/html/api/nova..scheduler.manager.html index 32c437085..f23a8f7fc 100644 --- a/doc/build/html/api/nova..scheduler.manager.html +++ b/doc/build/html/api/nova..scheduler.manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..scheduler.simple.html b/doc/build/html/api/nova..scheduler.simple.html index 6a743b708..47e1592c4 100644 --- a/doc/build/html/api/nova..scheduler.simple.html +++ b/doc/build/html/api/nova..scheduler.simple.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..server.html b/doc/build/html/api/nova..server.html index 0e657d8e6..0a11ffeed 100644 --- a/doc/build/html/api/nova..server.html +++ b/doc/build/html/api/nova..server.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..service.html b/doc/build/html/api/nova..service.html index 9136c5d2c..9618be9ac 100644 --- a/doc/build/html/api/nova..service.html +++ b/doc/build/html/api/nova..service.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..test.html b/doc/build/html/api/nova..test.html index dadb754c6..d56167fc8 100644 --- a/doc/build/html/api/nova..test.html +++ b/doc/build/html/api/nova..test.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.access_unittest.html b/doc/build/html/api/nova..tests.access_unittest.html index c5396ceb8..06dbd8324 100644 --- a/doc/build/html/api/nova..tests.access_unittest.html +++ b/doc/build/html/api/nova..tests.access_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.fakes.html b/doc/build/html/api/nova..tests.api.fakes.html index 01f513e2c..ef1de2aa7 100644 --- a/doc/build/html/api/nova..tests.api.fakes.html +++ b/doc/build/html/api/nova..tests.api.fakes.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.fakes.html b/doc/build/html/api/nova..tests.api.openstack.fakes.html index fde7e916f..461bc2d77 100644 --- a/doc/build/html/api/nova..tests.api.openstack.fakes.html +++ b/doc/build/html/api/nova..tests.api.openstack.fakes.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_api.html b/doc/build/html/api/nova..tests.api.openstack.test_api.html index 97d1c1ca5..24358a613 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_api.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_api.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_auth.html b/doc/build/html/api/nova..tests.api.openstack.test_auth.html index 740741b5b..47e60bbb3 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_auth.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_auth.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_faults.html b/doc/build/html/api/nova..tests.api.openstack.test_faults.html index 1c052a6d0..addcae962 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_faults.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_faults.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_flavors.html b/doc/build/html/api/nova..tests.api.openstack.test_flavors.html index 77c0c1048..7424d8326 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_flavors.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_flavors.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_images.html b/doc/build/html/api/nova..tests.api.openstack.test_images.html index 9475d52a8..c1792fc59 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_images.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_images.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html b/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html index 0d948d3d2..3c68f12fb 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_servers.html b/doc/build/html/api/nova..tests.api.openstack.test_servers.html index cb5f04142..2dac591d5 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_servers.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_servers.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html b/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html index e22564a33..9bd9e47ea 100644 --- a/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html +++ b/doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api.test_wsgi.html b/doc/build/html/api/nova..tests.api.test_wsgi.html index df2254044..95a4d56cb 100644 --- a/doc/build/html/api/nova..tests.api.test_wsgi.html +++ b/doc/build/html/api/nova..tests.api.test_wsgi.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api_integration.html b/doc/build/html/api/nova..tests.api_integration.html index 664c7cfa2..712d8c4d3 100644 --- a/doc/build/html/api/nova..tests.api_integration.html +++ b/doc/build/html/api/nova..tests.api_integration.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.api_unittest.html b/doc/build/html/api/nova..tests.api_unittest.html index 31cf4ac95..4ad279263 100644 --- a/doc/build/html/api/nova..tests.api_unittest.html +++ b/doc/build/html/api/nova..tests.api_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.auth_unittest.html b/doc/build/html/api/nova..tests.auth_unittest.html index aa5d687df..6ca964a1c 100644 --- a/doc/build/html/api/nova..tests.auth_unittest.html +++ b/doc/build/html/api/nova..tests.auth_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.cloud_unittest.html b/doc/build/html/api/nova..tests.cloud_unittest.html index d108dfe37..0c8d3687f 100644 --- a/doc/build/html/api/nova..tests.cloud_unittest.html +++ b/doc/build/html/api/nova..tests.cloud_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.compute_unittest.html b/doc/build/html/api/nova..tests.compute_unittest.html index 0666c0d8f..f5ce3fab7 100644 --- a/doc/build/html/api/nova..tests.compute_unittest.html +++ b/doc/build/html/api/nova..tests.compute_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.declare_flags.html b/doc/build/html/api/nova..tests.declare_flags.html index 3afcdcf69..129da5c52 100644 --- a/doc/build/html/api/nova..tests.declare_flags.html +++ b/doc/build/html/api/nova..tests.declare_flags.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.fake_flags.html b/doc/build/html/api/nova..tests.fake_flags.html index 13d16c7d6..b33df49b6 100644 --- a/doc/build/html/api/nova..tests.fake_flags.html +++ b/doc/build/html/api/nova..tests.fake_flags.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.flags_unittest.html b/doc/build/html/api/nova..tests.flags_unittest.html index ecd30a054..8cc34bdf8 100644 --- a/doc/build/html/api/nova..tests.flags_unittest.html +++ b/doc/build/html/api/nova..tests.flags_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.network_unittest.html b/doc/build/html/api/nova..tests.network_unittest.html index f622a499a..33a7e7473 100644 --- a/doc/build/html/api/nova..tests.network_unittest.html +++ b/doc/build/html/api/nova..tests.network_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.objectstore_unittest.html b/doc/build/html/api/nova..tests.objectstore_unittest.html index f21e6dbf2..7dfe1be72 100644 --- a/doc/build/html/api/nova..tests.objectstore_unittest.html +++ b/doc/build/html/api/nova..tests.objectstore_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.process_unittest.html b/doc/build/html/api/nova..tests.process_unittest.html index 7c7d3cdff..a8ba0ce59 100644 --- a/doc/build/html/api/nova..tests.process_unittest.html +++ b/doc/build/html/api/nova..tests.process_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.quota_unittest.html b/doc/build/html/api/nova..tests.quota_unittest.html index 3be7186c7..e05748864 100644 --- a/doc/build/html/api/nova..tests.quota_unittest.html +++ b/doc/build/html/api/nova..tests.quota_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.real_flags.html b/doc/build/html/api/nova..tests.real_flags.html index d91f0635e..e114ed111 100644 --- a/doc/build/html/api/nova..tests.real_flags.html +++ b/doc/build/html/api/nova..tests.real_flags.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.rpc_unittest.html b/doc/build/html/api/nova..tests.rpc_unittest.html index a0676a0f8..990fe2978 100644 --- a/doc/build/html/api/nova..tests.rpc_unittest.html +++ b/doc/build/html/api/nova..tests.rpc_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.runtime_flags.html b/doc/build/html/api/nova..tests.runtime_flags.html index ac0cde93d..c7364d8fa 100644 --- a/doc/build/html/api/nova..tests.runtime_flags.html +++ b/doc/build/html/api/nova..tests.runtime_flags.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.scheduler_unittest.html b/doc/build/html/api/nova..tests.scheduler_unittest.html index e5a8eca35..4ec641f4c 100644 --- a/doc/build/html/api/nova..tests.scheduler_unittest.html +++ b/doc/build/html/api/nova..tests.scheduler_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.service_unittest.html b/doc/build/html/api/nova..tests.service_unittest.html index 1b132022b..500b7dc16 100644 --- a/doc/build/html/api/nova..tests.service_unittest.html +++ b/doc/build/html/api/nova..tests.service_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.twistd_unittest.html b/doc/build/html/api/nova..tests.twistd_unittest.html index 616903cf9..5f815c34f 100644 --- a/doc/build/html/api/nova..tests.twistd_unittest.html +++ b/doc/build/html/api/nova..tests.twistd_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.validator_unittest.html b/doc/build/html/api/nova..tests.validator_unittest.html index 8646d5d3b..7733c866b 100644 --- a/doc/build/html/api/nova..tests.validator_unittest.html +++ b/doc/build/html/api/nova..tests.validator_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.virt_unittest.html b/doc/build/html/api/nova..tests.virt_unittest.html index 06f893ead..6d216d863 100644 --- a/doc/build/html/api/nova..tests.virt_unittest.html +++ b/doc/build/html/api/nova..tests.virt_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..tests.volume_unittest.html b/doc/build/html/api/nova..tests.volume_unittest.html index 01358f784..78e564998 100644 --- a/doc/build/html/api/nova..tests.volume_unittest.html +++ b/doc/build/html/api/nova..tests.volume_unittest.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..twistd.html b/doc/build/html/api/nova..twistd.html index 5e8a2eb1f..05315b865 100644 --- a/doc/build/html/api/nova..twistd.html +++ b/doc/build/html/api/nova..twistd.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..utils.html b/doc/build/html/api/nova..utils.html index 47a08caf3..8e2be80c3 100644 --- a/doc/build/html/api/nova..utils.html +++ b/doc/build/html/api/nova..utils.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..validate.html b/doc/build/html/api/nova..validate.html index 997f18f68..4efcecb45 100644 --- a/doc/build/html/api/nova..validate.html +++ b/doc/build/html/api/nova..validate.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..virt.connection.html b/doc/build/html/api/nova..virt.connection.html index d8d122c89..2761d24a7 100644 --- a/doc/build/html/api/nova..virt.connection.html +++ b/doc/build/html/api/nova..virt.connection.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..virt.fake.html b/doc/build/html/api/nova..virt.fake.html index 4578f5c1f..090e7a223 100644 --- a/doc/build/html/api/nova..virt.fake.html +++ b/doc/build/html/api/nova..virt.fake.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..virt.images.html b/doc/build/html/api/nova..virt.images.html index 2ec504dd4..a00223beb 100644 --- a/doc/build/html/api/nova..virt.images.html +++ b/doc/build/html/api/nova..virt.images.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..virt.libvirt_conn.html b/doc/build/html/api/nova..virt.libvirt_conn.html index f1cda3ada..459871e2e 100644 --- a/doc/build/html/api/nova..virt.libvirt_conn.html +++ b/doc/build/html/api/nova..virt.libvirt_conn.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..virt.xenapi.html b/doc/build/html/api/nova..virt.xenapi.html index 2f888f8ba..0b8bfdfbe 100644 --- a/doc/build/html/api/nova..virt.xenapi.html +++ b/doc/build/html/api/nova..virt.xenapi.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..volume.driver.html b/doc/build/html/api/nova..volume.driver.html index a7b0d8d47..eb58ebc7b 100644 --- a/doc/build/html/api/nova..volume.driver.html +++ b/doc/build/html/api/nova..volume.driver.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..volume.manager.html b/doc/build/html/api/nova..volume.manager.html index 54b80c171..70c1809f6 100644 --- a/doc/build/html/api/nova..volume.manager.html +++ b/doc/build/html/api/nova..volume.manager.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/api/nova..wsgi.html b/doc/build/html/api/nova..wsgi.html index db82ed890..5568569b1 100644 --- a/doc/build/html/api/nova..wsgi.html +++ b/doc/build/html/api/nova..wsgi.html @@ -48,6 +48,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -109,6 +112,9 @@
        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/cloud101.html b/doc/build/html/cloud101.html index e26d94f61..2bd8cd59e 100644 --- a/doc/build/html/cloud101.html +++ b/doc/build/html/cloud101.html @@ -47,6 +47,9 @@
        • index
        • +
        • + modules |
        • next |
        • @@ -186,6 +189,9 @@ can run any software or operating system.

        • index
        • +
        • + modules |
        • next |
        • diff --git a/doc/build/html/code.html b/doc/build/html/code.html index cd16f818f..5f443aa71 100644 --- a/doc/build/html/code.html +++ b/doc/build/html/code.html @@ -45,6 +45,9 @@
        • index
        • +
        • + modules |
        • nova v2010.1 documentation »
        @@ -185,6 +188,9 @@ Generating source/api/nova..wsgi.rst

      • index
      • +
      • + modules |
      • nova v2010.1 documentation »
      diff --git a/doc/build/html/community.html b/doc/build/html/community.html index 226b54cb6..f093dc2bb 100644 --- a/doc/build/html/community.html +++ b/doc/build/html/community.html @@ -46,6 +46,9 @@
    • index
    • +
    • + modules |
    • previous |
    • @@ -168,6 +171,9 @@ aggregation with your blog posts, there are instructions for index +
    • + modules |
    • previous |
    • diff --git a/doc/build/html/devref/api.html b/doc/build/html/devref/api.html index fad85bfa0..55c9c02b1 100644 --- a/doc/build/html/devref/api.html +++ b/doc/build/html/devref/api.html @@ -48,6 +48,9 @@
    • index
    • +
    • + modules |
    • next |
    • @@ -262,6 +265,9 @@ API.

    • index
    • +
    • + modules |
    • next |
    • diff --git a/doc/build/html/devref/architecture.html b/doc/build/html/devref/architecture.html index a8eb08936..e668285be 100644 --- a/doc/build/html/devref/architecture.html +++ b/doc/build/html/devref/architecture.html @@ -45,6 +45,9 @@
    • index
    • +
    • + modules |
    • nova v2010.1 documentation »
    @@ -129,6 +132,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/devref/auth.html b/doc/build/html/devref/auth.html index f7aa9f623..3ec1b029f 100644 --- a/doc/build/html/devref/auth.html +++ b/doc/build/html/devref/auth.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -323,6 +326,9 @@ RBAC of CloudAudit API calls is critical, since detailed system information is a
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/devref/cloudpipe.html b/doc/build/html/devref/cloudpipe.html index c255b9a44..3d930429b 100644 --- a/doc/build/html/devref/cloudpipe.html +++ b/doc/build/html/devref/cloudpipe.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -164,6 +167,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/devref/compute.html b/doc/build/html/devref/compute.html index 4ddc16907..a78ae4739 100644 --- a/doc/build/html/devref/compute.html +++ b/doc/build/html/devref/compute.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -68,14 +71,14 @@
  • The nova.virt.connection Module
  • The nova.compute.disk Module
  • The nova.virt.images Module
  • -
  • The nova.compute.instance_types Module
  • -
  • The nova.compute.power_state Module
  • +
  • The nova.compute.instance_types Module
  • +
  • The nova.compute.power_state Module
  • Drivers
  • Monitoring
      @@ -141,11 +144,18 @@ a specific virtualization backend, read

      The nova.virt.images Module

      -
      -

      The nova.compute.instance_types Module

      +
      +

      The nova.compute.instance_types Module

      +

      The built-in instance properties.

      -
      -

      The nova.compute.power_state Module

      +
      +

      The nova.compute.power_state Module

      +

      The various power states that a VM can be in.

      +
      +
      +nova.compute.power_state.name(code)
      +
      +
      @@ -156,8 +166,201 @@ a specific virtualization backend, read

      The nova.virt.xenapi Driver

      -
      -

      The nova.virt.fake Driver

      +
      +

      The nova.virt.fake Driver

      +

      A fake (in-memory) hypervisor+api.

      +

      Allows nova testing w/o a hypervisor. This module also documents the +semantics of real hypervisor connections.

      +
      +
      +class nova.virt.fake.FakeConnection
      +

      Bases: object

      +

      The interface to this class talks in terms of ‘instances’ (Amazon EC2 and +internal Nova terminology), by which we mean ‘running virtual machine’ +(XenAPI terminology) or domain (Xen or libvirt terminology).

      +

      An instance has an ID, which is the identifier chosen by Nova to represent +the instance further up the stack. This is unfortunately also called a +‘name’ elsewhere. As far as this layer is concerned, ‘instance ID’ and +‘instance name’ are synonyms.

      +

      Note that the instance ID or name is not human-readable or +customer-controlled – it’s an internal ID chosen by Nova. At the +nova.virt layer, instances do not have human-readable names at all – such +things are only known higher up the stack.

      +

      Most virtualization platforms will also have their own identity schemes, +to uniquely identify a VM or domain. These IDs must stay internal to the +platform-specific layer, and never escape the connection interface. The +platform-specific layer is responsible for keeping track of which instance +ID maps to which platform-specific ID, and vice versa.

      +

      In contrast, the list_disks and list_interfaces calls may return +platform-specific IDs. These identify a specific virtual disk or specific +virtual network interface, and these IDs are opaque to the rest of Nova.

      +

      Some methods here take an instance of nova.compute.service.Instance. This +is the datastructure used by nova.compute to store details regarding an +instance, and pass them into this layer. This layer is responsible for +translating that generic datastructure into terms that are specific to the +virtualization platform.

      +
      +
      +FakeConnection.attach_volume(instance_name, device_path, mountpoint)
      +

      Attach the disk at device_path to the instance at mountpoint

      +
      + +
      +
      +FakeConnection.block_stats(instance_name, disk_id)
      +

      Return performance counters associated with the given disk_id on the +given instance_name. These are returned as [rd_req, rd_bytes, wr_req, +wr_bytes, errs], where rd indicates read, wr indicates write, req is +the total number of I/O requests made, bytes is the total number of +bytes transferred, and errs is the number of requests held up due to a +full pipeline.

      +

      All counters are long integers.

      +

      This method is optional. On some platforms (e.g. XenAPI) performance +statistics can be retrieved directly in aggregate form, without Nova +having to do the aggregation. On those platforms, this method is +unused.

      +

      Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

      +
      + +
      +
      +FakeConnection.destroy(instance)
      +

      Destroy (shutdown and delete) the specified instance.

      +

      The given parameter is an instance of nova.compute.service.Instance, +and so the instance is being specified as instance.name.

      +

      The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

      +
      + +
      +
      +FakeConnection.detach_volume(instance_name, mountpoint)
      +

      Detach the disk attached to the instance at mountpoint

      +
      + +
      +
      +FakeConnection.get_console_output(instance)
      +
      + +
      +
      +FakeConnection.get_info(instance_name)
      +

      Get a block of information about the given instance. This is returned +as a dictionary containing ‘state’: The power_state of the instance, +‘max_mem’: The maximum memory for the instance, in KiB, ‘mem’: The +current memory the instance has, in KiB, ‘num_cpu’: The current number +of virtual CPUs the instance has, ‘cpu_time’: The total CPU time used +by the instance, in nanoseconds.

      +

      This method should raise exception.NotFound if the hypervisor has no +knowledge of the instance

      +
      + +
      +
      +classmethod FakeConnection.instance()
      +
      + +
      +
      +FakeConnection.interface_stats(instance_name, iface_id)
      +

      Return performance counters associated with the given iface_id on the +given instance_id. These are returned as [rx_bytes, rx_packets, +rx_errs, rx_drop, tx_bytes, tx_packets, tx_errs, tx_drop], where rx +indicates receive, tx indicates transmit, bytes and packets indicate +the total number of bytes or packets transferred, and errs and dropped +is the total number of packets failed / dropped.

      +

      All counters are long integers.

      +

      This method is optional. On some platforms (e.g. XenAPI) performance +statistics can be retrieved directly in aggregate form, without Nova +having to do the aggregation. On those platforms, this method is +unused.

      +

      Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

      +
      + +
      +
      +FakeConnection.list_disks(instance_name)
      +

      Return the IDs of all the virtual disks attached to the specified +instance, as a list. These IDs are opaque to the caller (they are +only useful for giving back to this layer as a parameter to +disk_stats). These IDs only need to be unique for a given instance.

      +

      Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

      +
      + +
      +
      +FakeConnection.list_instances()
      +

      Return the names of all the instances known to the virtualization +layer, as a list.

      +
      + +
      +
      +FakeConnection.list_interfaces(instance_name)
      +

      Return the IDs of all the virtual network interfaces attached to the +specified instance, as a list. These IDs are opaque to the caller +(they are only useful for giving back to this layer as a parameter to +interface_stats). These IDs only need to be unique for a given +instance.

      +

      Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

      +
      + +
      +
      +FakeConnection.reboot(instance)
      +

      Reboot the specified instance.

      +

      The given parameter is an instance of nova.compute.service.Instance, +and so the instance is being specified as instance.name.

      +

      The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

      +
      + +
      +
      +FakeConnection.rescue(instance)
      +

      Rescue the specified instance.

      +
      + +
      +
      +FakeConnection.spawn(instance)
      +

      Create a new instance/VM/domain on the virtualization platform.

      +

      The given parameter is an instance of nova.compute.service.Instance. +This function should use the data there to guide the creation of +the new instance.

      +

      The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

      +

      Once this successfully completes, the instance should be +running (power_state.RUNNING).

      +

      If this fails, any partial instance should be completely +cleaned up, and the virtualization platform should be in the state +that it was before this call began.

      +
      + +
      +
      +FakeConnection.unrescue(instance)
      +

      Unrescue the specified instance.

      +
      + +
      + +
      +
      +class nova.virt.fake.FakeInstance
      +

      Bases: object

      +
      + +
      +
      +nova.virt.fake.get_connection(_)
      +
      +
      @@ -189,6 +392,9 @@ a specific virtualization backend, read index +
    • + modules |
    • next |
    • diff --git a/doc/build/html/devref/database.html b/doc/build/html/devref/database.html index 40e0e490b..9bc28b63f 100644 --- a/doc/build/html/devref/database.html +++ b/doc/build/html/devref/database.html @@ -48,6 +48,9 @@
    • index
    • +
    • + modules |
    • next |
    • @@ -143,6 +146,9 @@ Failures in the drivers would be dectected in other test cases, though.

    • index
    • +
    • + modules |
    • next |
    • diff --git a/doc/build/html/devref/development.environment.html b/doc/build/html/devref/development.environment.html index eadf137a7..ca1b61ab5 100644 --- a/doc/build/html/devref/development.environment.html +++ b/doc/build/html/devref/development.environment.html @@ -45,6 +45,9 @@
    • index
    • +
    • + modules |
    • nova v2010.1 documentation »
    @@ -96,6 +99,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/devref/fakes.html b/doc/build/html/devref/fakes.html index 2137b9939..180043e53 100644 --- a/doc/build/html/devref/fakes.html +++ b/doc/build/html/devref/fakes.html @@ -48,6 +48,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -63,7 +66,7 @@

    Table Of Contents

    • Fake Drivers
        -
      • The nova.virt.fake Module
      • +
      • The nova.virt.fake Module
      • The nova.auth.fakeldap Module
      • The nova.fakerabbit Module
      • The nova.volume.driver.FakeAOEDriver Class
      • @@ -113,8 +116,201 @@

        When the real thing isn’t available and you have some development to do these fake implementations of various drivers let you get on with your day.

        -
        -

        The nova.virt.fake Module

        +
        +

        The nova.virt.fake Module

        +

        A fake (in-memory) hypervisor+api.

        +

        Allows nova testing w/o a hypervisor. This module also documents the +semantics of real hypervisor connections.

        +
        +
        +class nova.virt.fake.FakeConnection
        +

        Bases: object

        +

        The interface to this class talks in terms of ‘instances’ (Amazon EC2 and +internal Nova terminology), by which we mean ‘running virtual machine’ +(XenAPI terminology) or domain (Xen or libvirt terminology).

        +

        An instance has an ID, which is the identifier chosen by Nova to represent +the instance further up the stack. This is unfortunately also called a +‘name’ elsewhere. As far as this layer is concerned, ‘instance ID’ and +‘instance name’ are synonyms.

        +

        Note that the instance ID or name is not human-readable or +customer-controlled – it’s an internal ID chosen by Nova. At the +nova.virt layer, instances do not have human-readable names at all – such +things are only known higher up the stack.

        +

        Most virtualization platforms will also have their own identity schemes, +to uniquely identify a VM or domain. These IDs must stay internal to the +platform-specific layer, and never escape the connection interface. The +platform-specific layer is responsible for keeping track of which instance +ID maps to which platform-specific ID, and vice versa.

        +

        In contrast, the list_disks and list_interfaces calls may return +platform-specific IDs. These identify a specific virtual disk or specific +virtual network interface, and these IDs are opaque to the rest of Nova.

        +

        Some methods here take an instance of nova.compute.service.Instance. This +is the datastructure used by nova.compute to store details regarding an +instance, and pass them into this layer. This layer is responsible for +translating that generic datastructure into terms that are specific to the +virtualization platform.

        +
        +
        +FakeConnection.attach_volume(instance_name, device_path, mountpoint)
        +

        Attach the disk at device_path to the instance at mountpoint

        +
        + +
        +
        +FakeConnection.block_stats(instance_name, disk_id)
        +

        Return performance counters associated with the given disk_id on the +given instance_name. These are returned as [rd_req, rd_bytes, wr_req, +wr_bytes, errs], where rd indicates read, wr indicates write, req is +the total number of I/O requests made, bytes is the total number of +bytes transferred, and errs is the number of requests held up due to a +full pipeline.

        +

        All counters are long integers.

        +

        This method is optional. On some platforms (e.g. XenAPI) performance +statistics can be retrieved directly in aggregate form, without Nova +having to do the aggregation. On those platforms, this method is +unused.

        +

        Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

        +
        + +
        +
        +FakeConnection.destroy(instance)
        +

        Destroy (shutdown and delete) the specified instance.

        +

        The given parameter is an instance of nova.compute.service.Instance, +and so the instance is being specified as instance.name.

        +

        The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

        +
        + +
        +
        +FakeConnection.detach_volume(instance_name, mountpoint)
        +

        Detach the disk attached to the instance at mountpoint

        +
        + +
        +
        +FakeConnection.get_console_output(instance)
        +
        + +
        +
        +FakeConnection.get_info(instance_name)
        +

        Get a block of information about the given instance. This is returned +as a dictionary containing ‘state’: The power_state of the instance, +‘max_mem’: The maximum memory for the instance, in KiB, ‘mem’: The +current memory the instance has, in KiB, ‘num_cpu’: The current number +of virtual CPUs the instance has, ‘cpu_time’: The total CPU time used +by the instance, in nanoseconds.

        +

        This method should raise exception.NotFound if the hypervisor has no +knowledge of the instance

        +
        + +
        +
        +classmethod FakeConnection.instance()
        +
        + +
        +
        +FakeConnection.interface_stats(instance_name, iface_id)
        +

        Return performance counters associated with the given iface_id on the +given instance_id. These are returned as [rx_bytes, rx_packets, +rx_errs, rx_drop, tx_bytes, tx_packets, tx_errs, tx_drop], where rx +indicates receive, tx indicates transmit, bytes and packets indicate +the total number of bytes or packets transferred, and errs and dropped +is the total number of packets failed / dropped.

        +

        All counters are long integers.

        +

        This method is optional. On some platforms (e.g. XenAPI) performance +statistics can be retrieved directly in aggregate form, without Nova +having to do the aggregation. On those platforms, this method is +unused.

        +

        Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

        +
        + +
        +
        +FakeConnection.list_disks(instance_name)
        +

        Return the IDs of all the virtual disks attached to the specified +instance, as a list. These IDs are opaque to the caller (they are +only useful for giving back to this layer as a parameter to +disk_stats). These IDs only need to be unique for a given instance.

        +

        Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

        +
        + +
        +
        +FakeConnection.list_instances()
        +

        Return the names of all the instances known to the virtualization +layer, as a list.

        +
        + +
        +
        +FakeConnection.list_interfaces(instance_name)
        +

        Return the IDs of all the virtual network interfaces attached to the +specified instance, as a list. These IDs are opaque to the caller +(they are only useful for giving back to this layer as a parameter to +interface_stats). These IDs only need to be unique for a given +instance.

        +

        Note that this function takes an instance ID, not a +compute.service.Instance, so that it can be called by compute.monitor.

        +
        + +
        +
        +FakeConnection.reboot(instance)
        +

        Reboot the specified instance.

        +

        The given parameter is an instance of nova.compute.service.Instance, +and so the instance is being specified as instance.name.

        +

        The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

        +
        + +
        +
        +FakeConnection.rescue(instance)
        +

        Rescue the specified instance.

        +
        + +
        +
        +FakeConnection.spawn(instance)
        +

        Create a new instance/VM/domain on the virtualization platform.

        +

        The given parameter is an instance of nova.compute.service.Instance. +This function should use the data there to guide the creation of +the new instance.

        +

        The work will be done asynchronously. This function returns a +Deferred that allows the caller to detect when it is complete.

        +

        Once this successfully completes, the instance should be +running (power_state.RUNNING).

        +

        If this fails, any partial instance should be completely +cleaned up, and the virtualization platform should be in the state +that it was before this call began.

        +
        + +
        +
        +FakeConnection.unrescue(instance)
        +

        Unrescue the specified instance.

        +
        + +
        + +
        +
        +class nova.virt.fake.FakeInstance
        +

        Bases: object

        +
        + +
        +
        +nova.virt.fake.get_connection(_)
        +
        +

        The nova.auth.fakeldap Module

        @@ -145,6 +341,9 @@ fake implementations of various drivers let you get on with your day.

      • index
      • +
      • + modules |
      • next |
      • diff --git a/doc/build/html/devref/glance.html b/doc/build/html/devref/glance.html index f15a349e3..f4176962e 100644 --- a/doc/build/html/devref/glance.html +++ b/doc/build/html/devref/glance.html @@ -48,6 +48,9 @@
      • index
      • +
      • + modules |
      • next |
      • @@ -119,6 +122,9 @@
      • index
      • +
      • + modules |
      • next |
      • diff --git a/doc/build/html/devref/index.html b/doc/build/html/devref/index.html index dd3e0eb28..0e8fb70d3 100644 --- a/doc/build/html/devref/index.html +++ b/doc/build/html/devref/index.html @@ -47,6 +47,9 @@
      • index
      • +
      • + modules |
      • next |
      • @@ -255,14 +258,14 @@
      • The nova.virt.connection Module
      • The nova.compute.disk Module
      • The nova.virt.images Module
      • -
      • The nova.compute.instance_types Module
      • -
      • The nova.compute.power_state Module
      • +
      • The nova.compute.instance_types Module
      • +
      • The nova.compute.power_state Module
    • Drivers
    • Monitoring
        @@ -378,7 +381,7 @@
    • Fake Drivers @@ -102,6 +105,9 @@
    • index
    • +
    • + modules |
    • nova v2010.1 documentation »
    diff --git a/doc/build/html/livecd.html b/doc/build/html/livecd.html index 4fb6cc63e..d1b7f225d 100644 --- a/doc/build/html/livecd.html +++ b/doc/build/html/livecd.html @@ -47,6 +47,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -106,6 +109,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/man/novamanage.html b/doc/build/html/man/novamanage.html index 95728484b..2a86f24ef 100644 --- a/doc/build/html/man/novamanage.html +++ b/doc/build/html/man/novamanage.html @@ -45,6 +45,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • @@ -56,7 +59,14 @@
  • control and manage cloud computer instances and images
    • SYNOPSIS
    • DESCRIPTION
    • -
    • OPTIONS
    • +
    • OPTIONS +
    • FILES
    • SEE ALSO
    • BUGS
    • @@ -125,58 +135,117 @@ nova-manage <category> <action> [<args>]

      OPTIONS

      -

      Run without arguments to see a list of available command categories. Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. -:: -nova-manage

      -

      You can also run with a category argument such as user to see a list of all commands in that category. -:: -nova-manage user

      -

      Here are the available categories and arguments for nova-manage:

      +

      The standard pattern for executing a nova-manage command is: +nova-manage <category> <command> [<args>]

      +

      For example, to obtain a list of all projects: +nova-manage project list

      +

      Run without arguments to see a list of available command categories: +nova-manage

      +

      Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below.

      +

      You can also run with a category argument such as user to see a list of all commands in that category: +nova-manage user

      +

      These sections describe the available categories and arguments for nova-manage.

      +

      nova-manage user admin <username>

      +
      +Create an admin user with the name <username>.
      +

      nova-manage user create <username>

      +
      +Create a normal user with the name <username>.
      +

      nova-manage user delete <username>

      +
      +Delete the user with the name <username>.
      +

      nova-manage user exports <username>

      +
      +Outputs a list of access key and secret keys for user to the screen
      +

      nova-manage user list

      +
      +Outputs a list of all the user names to the screen.
      +

      nova-manage user modify <accesskey> <secretkey> <admin?T/F>

      +
      +Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it.
      +
      +

      Nova Project

      +

      nova-manage project add <projectname>

      +
      +Add a nova project with the name <projectname> to the database.
      +

      nova-manage project create <projectname>

      +
      +Create a new nova project with the name <projectname> (you still need to do nova-manage project add <projectname> to add it to the database).
      +

      nova-manage project delete <projectname>

      +
      +Delete a nova project with the name <projectname>.
      +

      nova-manage project environment <projectname> <username>

      +
      +Exports environment variables for the named project to a file named novarc.
      +

      nova-manage project list

      +
      +Outputs a list of all the projects to the screen.
      +

      nova-manage project quota <projectname>

      +
      +Outputs the size and specs of the project’s instances including gigabytes, instances, floating IPs, volumes, and cores.
      +

      nova-manage project remove <projectname>

      +
      +Deletes the project with the name <projectname>.
      +

      nova-manage project zipfile

      +
      +Compresses all related files for a created project into a zip file nova.zip.
      +
      +
      +

      Nova Role

      +

      nova-manage role <action> [<argument>] +nova-manage role add <username> <rolename> <(optional) projectname>

      +
      +Add a user to either a global or project-based role with the indicated <rolename> assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects.
      -
      nova-manage user <action> [<argument>]
      -
      user admin <username> Create an admin user with the name <username>. -user create <username> Create a normal user with the name <username>. -user delete <username> Delete the user with the name <username>. -user exports <username> Outputs a list of access key and secret keys for user to the screen -user list Outputs a list of all the user names to the screen. -user modify <accesskey> <secretkey> <admin?T/F> Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it.
      -
      nova-manage project <action> [<argument>]
      -
      project add <projectname> Add a nova project with the name <projectname> to the database. -project create <projectname> Create a new nova project with the name <projectname> (you still need to do nova-manage project add <projectname> to add it to the database). -project delete Delete a nova project with the name <projectname>. -project environment <projectname> <username> Exports environment variables for the named project to a file named novarc. -project list Outputs a list of all the projects to the screen. -project quota <projectname> Outputs the size and specs of the project’s instances including gigabytes, instances, floating IPs, volumes, and cores. -project remove <projectname> Deletes the project with the name <projectname>. -project zipfile Compresses all related files for a created project into a zip file nova.zip.
      -
      nova-manage role <action> [<argument>]
      -
      role add <username> <rolename> <(optional) projectname> Add a user to either a global or project-based role with the indicated <rolename> assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. -role has <username> <projectname> Checks the user or project and responds with True if the user has a global role with a particular project. -role remove <username> <rolename> Remove the indicated role from the user.
      -
      nova-manage shell <action> [<argument>]
      -
      shell bpython Starts a new bpython shell. -shell ipython Starts a new ipython shell. -shell python Starts a new python shell. -shell run Starts a new shell using python. -shell script <path/scriptname> Runs the named script from the specified path with flags set.
      -
      nova-manage vpn <action> [<argument>]
      -
      vpn list Displays a list of projects, their IP prot numbers, and what state they’re in. -vpn run <projectname> Starts the VPN for the named project. -vpn spawn Runs all VPNs.
      -
      nova-manage floating <action> [<argument>]
      -
      floating create <host> <ip_range> Creates floating IP addresses for the named host by the given range. -floating delete <ip_range> Deletes floating IP addresses in the range given. -floating list Displays a list of all floating IP addresses.
      +
      nova-manage role has <username> <projectname>
      +
      Checks the user or project and responds with True if the user has a global role with a particular project.
      +
      nova-manage role remove <username> <rolename>
      +
      Remove the indicated role from the user.
      - --- - - - -
      ---help, -hShow this help message and exit.
      +
      +
      +

      Nova Shell

      +

      nova-manage shell bpython

      +
      +Starts a new bpython shell.
      +

      nova-manage shell ipython

      +
      +Starts a new ipython shell.
      +

      nova-manage shell python

      +
      +Starts a new python shell.
      +

      nova-manage shell run

      +
      +Starts a new shell using python.
      +

      nova-manage shell script <path/scriptname>

      +
      +Runs the named script from the specified path with flags set.
      +
      +
      +

      Nova VPN

      +

      nova-manage vpn list

      +
      +Displays a list of projects, their IP prot numbers, and what state they’re in.
      +

      nova-manage vpn run <projectname>

      +
      +Starts the VPN for the named project.
      +

      nova-manage vpn spawn

      +
      +Runs all VPNs.
      +
      +
      +

      Nova Floating IPs

      +

      nova-manage floating create <host> <ip_range>

      +
      +
      +
      Creates floating IP addresses for the named host by the given range.
      +
      floating delete <ip_range> Deletes floating IP addresses in the range given.
      +
      +
      +

      nova-manage floating list

      +
      +Displays a list of all floating IP addresses.
      +

      FILES

      @@ -210,6 +279,9 @@ floating list Displays a list of all floating IP addresses. index +
    • + modules |
    • nova v2010.1 documentation »
    diff --git a/doc/build/html/nova.concepts.html b/doc/build/html/nova.concepts.html index 04f302dc3..6f8c4f631 100644 --- a/doc/build/html/nova.concepts.html +++ b/doc/build/html/nova.concepts.html @@ -47,6 +47,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -288,6 +291,9 @@ vpn management, and much more.

  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/object.model.html b/doc/build/html/object.model.html index cabe2aab6..aec102391 100644 --- a/doc/build/html/object.model.html +++ b/doc/build/html/object.model.html @@ -45,6 +45,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • @@ -151,6 +154,9 @@ digraph foo {
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv index 337533c60..1e2a63d0f 100644 --- a/doc/build/html/objects.inv +++ b/doc/build/html/objects.inv @@ -2,5 +2,5 @@ # Project: nova # Version: 2010.1 # The remainder of this file is compressed using zlib. -xmPN0 +,l.6ULZyiҤJ -z&T%r{v ?C Z{C`F3h=}C];P~e^ ViFhȲ6Xy2Z(sOah index +
  • + modules |
  • next |
  • @@ -249,6 +252,9 @@ virsh instances and attempt to delete all vlans and bridges.

  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/build/html/search.html b/doc/build/html/search.html index b96e1bd3e..94f207ce1 100644 --- a/doc/build/html/search.html +++ b/doc/build/html/search.html @@ -51,6 +51,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • @@ -99,6 +102,9 @@
  • index
  • +
  • + modules |
  • nova v2010.1 documentation »
  • diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js index c5acadaff..a4753dace 100644 --- a/doc/build/html/searchindex.js +++ b/doc/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{prefix:[58,90],tweet:70,ip_rang:[35,19],novadev:73,under:[53,119],spec:[19,119,70],ramdisk:73,digit:119,everi:[26,52],dectect:69,eucatool:104,upload:[73,24,119],rabbitmq:[58,38,26,65,79],ifac:90,direct:14,chef:90,second:[26,52],ebtabl:[58,57,79,117],aggreg:[131,70],libxslt:58,even:106,keyserv:65,eventlet:[58,79],commonnam:73,poison:[57,117],"new":[38,19,104,121,123,85,70,52,58,43,117,132,73],net:[58,19,65,70,90],maverick:[38,73],metadata:[117,52,119],ongo:[26,43],behavior:123,here:[38,19,10,123,26,35,90,58,117,65,111],path:[132,106,19,43,92],aki:73,permit:[53,121],bashrc:90,unix:79,refenc:14,total:[26,85,119],highli:[123,79,90],describ:[123,26,104,48,70,142,14,117,73,24,119],would:[132,79,119,69],noarch:58,call:[26,119,52,10,117],python26:58,recommend:[104,73,79,90],nate:[106,117],type:[38,48,70,90,53,35,92,73,65,119],until:[73,26],eucalyptussoftwar:58,relat:[134,19,26,70,79,53,119],"10gb":[104,117],notic:[58,79],warn:38,relai:[53,70],vpn:[19,106,26,52,135,35,92,117,73,119,43],must:[38,26,121,85,131,117,8,65,119],join:[117,70],err:58,"0at28z12":73,setup:[104,79,90,58,117,73],work:[38,26,48,79,52,90,53,14,132,73,57,119],conceptu:119,rework:[7,123],hansen:38,root:[38,26,104,90,73,31],overrid:79,defer:[38,131],give:[121,65,104,52,123],indic:[123,19,92],want:[38,19,104,48,26,90,117,65],end:[119,52,90],turn:52,how:[123,26,104,70,90,14,117,57,119],env:[104,90],answer:70,verifi:121,config:[73,90],updat:[121,19,106,52,90,58,117,73,65,119],compute_unittest:[134,15,0,92,125],mess:104,after:[7,121,123,79,104],diagram:[48,26,92,117,106],befor:[26,104,79,73,57,31],test_wsgi:[84,0,92,125,109],demonstr:117,fedora:[73,58],attempt:[132,26,85,104],third:119,bootstrap:90,credenti:[73,85,119,121],receiv:[53,48,26,131,10],"18th":90,environ:[121,19,104,123,48,85,90,127,73,119],exclus:106,ethernet:[7,26],order:[121,26,90,131,117,7],oper:[38,26,121,48,90,53,117,119],diagnos:123,over:[7,48,26,106,90],becaus:[26,104,70],privileg:90,incid:119,flexibl:48,vari:73,fip:119,uuid:121,fit:[58,131],backup_schedul:[0,78,92,125,109],fix:[53,35,26,10],cla:70,better:90,persist:[79,14],cred:90,easier:[132,73,90],them:[121,104,10,90,117,132,73],thei:[19,85,90,79,31,119],proce:117,volume_unittest:[7,74,0,92,125],objectstor:[38,93,0,10,66,125,61,79,135,139,92,23,73,90,131],power_st:[134,0,125,92,107],each:[26,104,48,79,52,90,35,142,131,117,7,57],debug:[123,79],mean:[73,79,131],interop:119,laboratori:123,devref:123,cloud02:73,extract:73,admincli:[13,0,125,92,67],network:[0,106,70,73,38,10,123,79,43,117,119,121,14,89,48,125,52,90,53,35,92,57,135,26,27,142,131],bridge_port:90,newli:73,content:[123,90],got:73,gov:[48,123],ntp:117,free:[38,70,52,58],standard:[48,26,43,123],fakerabbit:[128,0,40,125,92],test_fault:[0,110,92,125,109],ata:7,openssl:[73,58],installt:79,isn:40,onto:[57,117],rang:[19,14,26,90,35,117],independ:119,capac:48,restrict:[121,14],instruct:[38,70],alreadi:[117,90],imagestor:73,primari:7,sometim:26,master:90,autorun:52,john:[121,85],zipfil:[8,19,85,121],listen:[53,26,79],iptabl:[106,57,79,117,58],consol:[53,24],tool:[48,79,90,53,58,14,24],enjoi:121,auth_unittest:[0,45,92,119,125],provid:[123,26,117,48,79,70,35,52,14,106,73,119],tree:123,project:[106,85,8,73,123,56,43,117,119,121,19,14,48,52,90,135,58,131,57,53,26,35,92],matter:121,num_network:35,provis:[48,90],fashion:119,ram:104,mind:123,xensourc:79,seem:131,computemanag:10,deregist:24,simplifi:121,though:[90,104,14,69],usernam:[121,19],object:[123,56,10,53,131,14,132,119],regular:121,cblah2:73,tradit:119,flagfil:[51,14,10,79],doc:[123,26,106,90,142,92,7,73,119],metal:90,doe:[26,31,43],declar:[92,119],came:48,random:[121,26,43],transluc:119,syntax:[7,121,85,104,123],directli:[7,121,90],pkg:90,protocol:119,iscsitarget:79,insnanc:52,dhcpserver:26,priv:73,involv:[123,142,79,70],acquir:121,explain:26,configur:[123,19,104,10,26,52,79,53,58,142,117,73,90,57],apach:119,ldap:[131,26,43,119,79],oct:73,watch:73,amazon:[53,123,26,117,109],root_password:90,report:70,validator_unittest:[77,0,125,92,67],"public":[121,26,10,123,48,52,35,92,117,106,57,31,119],runn:104,respond:[132,19],respons:[10,53,131,132,73,119],best:[79,70],subject:[53,73],databas:[135,19,104,69,79,52,90,53,92,132,73,131],irt:73,discoveri:119,figur:[123,117],outstand:123,simplest:[26,104],irc:70,approach:[121,119],attribut:[48,24,123],accord:[7,48],extend:119,protect:[142,57,117],easi:[123,79],fault:[123,0,125,22,92,109],howev:[106,35,90],against:[58,57,104,117],reservationid:119,logic:[7,119],s3_host:90,login:31,seri:14,com:[26,79,90,58,73,65],compromis:142,applianc:106,"2nd":90,guid:[123,26,106,79,90,92,14],assum:[117,90],etherd:58,three:[35,119],been:[117,121,79,67,90],trigger:[38,131,117],interest:70,basic:[106,79,52,90,53,14,31,119],saa:48,tini:[73,26,31,52,104],quickli:[123,79,104],toller:123,worker:[53,104],ani:[121,19,26,48,85,52,79,119,104],emploi:121,ident:119,servic:[117,123,26,0,88,10,135,48,113,125,106,79,70,90,53,92,14,44,132,73,93],properti:[79,119,90],sourceforg:58,dashboard:[121,131,117],publicli:[121,85],vagu:[123,142],spawn:[35,19,119],clusto:106,printabl:73,toolkit:123,ratelimit:[92,109],conf:[73,19,79],sever:106,cloudaudit:[92,119],perform:[121,26,117,79,90,43,14,7],make:[38,85,10,106,90,53,58,73,132,8],meetup:70,complex:[57,104],split:[73,117,90],complet:[38,121,48,53,73,119],nic:117,rais:117,ownership:119,engin:[53,106],kid:70,kept:79,scenario:[123,14],thu:90,inherit:119,thi:[104,106,85,70,7,73,38,79,14,119,121,19,117,123,52,90,53,127,92,132,26,58,142,65,31,131],gzip:73,countrynam:73,facto:121,just:[121,19,104,123,48,52,142,67],bandwidth:48,human:48,yet:[121,35,67,90],languag:48,previous:73,expos:[121,26,52,10],had:104,spread:10,har:48,save:[73,52],applic:[48,119],mayb:[106,123],background:14,measur:[48,85],daemon:[58,14,10,79],specif:[134,121,26,104,123,106,79,52,90,53,43,14,117,132,119,92],filenam:[121,85],manual:[19,104,26,90,58,57],volumemanag:10,test_serv:[0,109,6,125,92],xlarg:26,underli:[7,26],www:[58,26],right:[121,142,123],old:[7,123,92],deal:132,somehow:90,swiftadmin:123,intern:106,preliminari:119,subclass:[106,10],cnf:[73,90],apirequest:[28,0,92,125,109],condit:[7,26,43],unbundl:24,core:[123,85,56,26,19,79,58,14,90],load_object:132,repositori:[79,90],post:70,"super":121,redownload:52,br100:[26,90],postgresql:90,slightli:104,span:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],libvirt_conn:[4,134,0,92,125],produc:53,meerkat:38,ppa:[65,79,90],tackl:26,"float":[35,19,26,10],encod:52,down:48,contrib:[79,104],storag:[135,26,10,88,48,53,92,7,93,119,131],eth0:[26,90],accordingli:121,git:[58,90],fabric:[53,123],wai:[123,106,79,70,90,14,73],support:[38,26,10,121,48,79,52,90,35,117,109,85,31],nova:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,49,50,52,53,54,55,78,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,58,128,129,130,131,132,133,134,136,137,138,139,140,141,143,144],"class":[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,40,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,92,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,121,122,124,126,128,129,130,131,132,133,136,137,138,139,140,141,143,144],avail:[38,19,123,48,40,26,70,79,53,58,90,43,117,24,85,31,119],reli:[106,79,10],linux_net:[106,0,125,92,27],sqlite3:[123,79,104],form:[19,85],offer:[53,48,70],sqlalchemi:[18,0,69,125,79,90,58,92,39,114],icmp:52,"true":[73,19,121,90],freenod:70,reset:24,projectmanag:[121,19],maximum:119,"0a520304":73,vishi:90,fundament:26,autoconf:58,service_unittest:[126,0,40,125,92],classif:119,featur:[26,117,70],b64:52,"abstract":132,decrypt:[26,43],exist:[121,26,106,85,90,53,35,7,119],glanc:[135,88,10,92],mybucket:73,check:[121,19,85,79,58,73],underutil:48,encrypt:[73,142],when:[38,104,48,40,79,52,90,53,131,117,106,73,65,31,119],role:[121,19,26,85,90,53,92,14,119,131],scriptnam:19,test:[0,104,69,106,81,70,108,82,6,109,7,73,74,110,76,77,9,40,79,80,42,14,15,16,45,119,120,84,122,125,86,20,21,124,50,126,91,54,92,55,93,134,105,58,29,140,97,141,98,64,144,30,31,67],test_imag:[0,125,92,21,109],webob:79,node:[38,123,106,90,53,117,7,73,57],irclog:70,kvm:[58,26,79,104],intens:104,intent:90,consid:90,sql:[131,90],adminguid:123,ignor:121,time:[53,26,104,70,117],concept:[123,26,51,85,142,43],chain:106,skip:85,global:[121,19,26],focus:26,eauthent:119,llc:19,decid:131,depend:[38,48,79,90,58,73,65],zone:24,bpython:[19,43],supposedli:48,sourc:[121,19,0,104,123,79,70,73,8,65],string:[26,43],revalid:58,uml:[26,104],octob:90,word:26,exact:58,nodaemon:79,cool:70,organizationalunitnam:73,administr:[121,26,117,123,79,35,43,14,73,24,57,119],level:[123,85,121,48,142,92,119],rpc_unittest:[0,30,92,67,125],greenlet:[58,79,90],pnova:90,prevent:[53,119],blade:7,sign:[121,70,52,119],port:[117,52],addr:90,current:[121,19,104,35,106,26,79,132,117,109,7,73,57,85,119],gener:[121,26,0,123,40,52,90,117,132,73,31],gawk:[58,79],address:[121,19,56,104,123,106,26,90,53,35,117,85,24,57,119],along:119,wait:[31,131],box:[26,117,10],queue:[53,131,79,90],throughput:37,tunnelingnod:106,particularli:104,"95c71fe2":65,ipc:[26,43],semant:119,tweak:[79,104],modul:[1,2,3,4,5,6,7,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,123,39,40,41,42,44,45,46,47,49,50,52,77,55,78,59,60,61,62,63,64,66,67,68,69,71,72,74,75,76,54,79,80,81,82,83,84,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,112,113,114,115,116,118,119,120,122,124,125,126,58,128,129,130,132,133,134,135,136,137,138,139,140,141,143,144],ipi:[58,79],fake:[134,123,26,0,40,79,125,135,71,98,43,109,16,92],instal:[25,26,104,38,123,79,52,90,58,14,117,73,65,57],newslett:70,todai:48,live:[8,90,123,70,25],handler:[23,93,0,92,125],scope:26,checkout:104,minim:132,afford:[48,121],peopl:[132,48,123,70,90],pylint:79,enhanc:[92,119],easiest:90,behalf:121,focu:35,cat:[58,90],whatev:79,purpos:[121,79],heart:53,agent:[57,119],topic:14,critic:119,api_unittest:[0,109,92,125,80],occur:[26,117],alwai:[123,117,52],lxml:58,multipl:[117,123,26,104,10,48,79,90,53,131,14,109,7],write:[127,90,123,70,73],map:[106,123,119,117,121],aoe:[7,58,79],atao:131,clone:[65,104,90],intrus:142,membership:70,mai:[117,38,85,104,48,79,90,53,14,106,132,119],data:[85,48,52,142,92,132,73,119,131],man:31,hyperv:26,practic:73,favorit:90,inform:[19,10,26,70,92,117,31,119],"switch":[73,26,104,117,106],combin:119,zxvf:58,callabl:132,talk:[123,70,14,131],root_password_again:90,brain:48,use_ldap:104,still:[123,19,90],dynam:[26,131,117],group:[38,19,56,123,48,26,52,79,58,70,90,43,117,106,7,24,119],monitor:[134,0,47,125,79,142,92,14,37],polici:119,amqplib:79,avil:79,platform:[48,26,79],window:104,main:[123,65,14],scheduler_unittest:[141,0,125,92,97],non:[132,38],synopsi:19,initi:[104,90],nation:48,recap:57,now:[38,58,142,123,73],secgroup:119,introduct:[123,26,43,119,92],term:48,workload:123,name:[121,19,26,123,85,90,58,117,73],drop:104,crypto:[99,0,125,92,52],separ:[121,85,131,35],compil:73,replai:119,replac:[7,79,10],individu:[7,106,123,119,121],receipt:121,continu:[53,38,65,79,58],ensur:[53,58,142],wrap:119,keypair:[26,104,52,73,24,31,119],sql_connect:90,happen:132,subnet:[106,57,117,90],shown:[65,131],accomplish:[73,31,14,121],space:[38,104,117],internet:[106,26,70,52,117],she:[85,31],project_manag:85,state:[38,19,106,92,73,65],california:73,org:[58,19,70],care:104,thing:[104,73,40,31,90],place:[106,38,70,48],router:106,principl:58,think:26,first:[38,104,79,90,58,117,65,31],origin:[123,85,48,53,35,14,57],redhat:58,onc:[38,48,70,90,58,14,8,65],yourself:73,environemnt:90,bridgingnod:106,accesskei:[121,19],open:[123,79,70,35,52,117],size:[19,85,117,119],sharedipgroup:[0,109,92,125,32],given:[35,19,57,26,52],workaround:90,iaa:[48,26,123],cumul:119,draft:70,manager_id:85,forthcom:104,especi:131,copi:[106,38,52,73],specifi:[121,85,104,19,52,79,117,132,90,57],broadcast:90,forward:[131,52,90],soren:38,mostli:57,holder:121,than:[38,26],serv:[48,117],wide:[58,119],were:104,browser:8,pre:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,58,128,129,130,133,136,137,138,139,140,141,143,144],san:26,ann:73,argument:[121,19,85,79,35,43],slap:79,dash:[26,117],test_api:[124,0,92,125,109],declare_flag:[0,125,20,67,92],recover:123,date:[38,19,79],destroi:104,xxxxx:10,note:[38,26,121,85,90,58,65,57],ideal:119,take:[53,38,104],noth:131,channel:70,begin:[53,121,90],sure:[38,10],normal:[19,85],tornado:[58,79],compress:19,paid:48,pair:[142,31],twistd_unittest:[91,0,125,92,67],later:70,drive:26,runtim:119,newer:58,show:[19,79],permiss:[121,26,104,119],xml:[73,10],onli:[117,121,26,104,48,79,90,53,35,14,106,85,57],explicitli:26,activ:[119,70],enough:117,sighup:90,variou:[53,121,26,40,104],get:[117,38,26,104,121,48,40,79,70,90,53,123,131,14,73,8,65,24],repo:58,ssl:73,cannot:[121,117],ssh:[106,73,31,104],requir:[38,26,121,48,79,70,90,52,117,65],bzr331:38,priviledg:14,where:[73,70,90],wiki:[123,79,70],kernel:[73,58],netadmin:[121,19,26],auth_driv:79,reserv:[73,52],xenserv:79,concern:[104,131],kmod:58,detect:142,review:[79,119],getattr:132,between:[123,26,10,106,79,90,53,142,117],"import":[73,26,10,121],across:[106,85,90],assumpt:[104,123,79,90],api_command:26,screen:[58,19,104],tut:[123,92],virt_unittest:[134,0,92,125,140],come:[58,70,90],region:24,imf:119,tutori:92,mani:[38,26,48,79,90,43,106,31],overview:[123,14,106,52,35,92,117],period:52,dispatch:53,swift:19,fixed_ip:90,mark:90,real_flag:[76,0,125,92,67],certifi:73,those:[26,142,52],"case":[90,131,119,69],process_unittest:[42,0,125,92,67],xcp_sdk:79,ctrl:104,canon:73,worri:90,blah:73,twistd:[136,0,125,92,67],develop:[121,19,104,123,40,26,127,92,119],saml:119,iscsi:[7,53,131,79,123],same:[121,85,10,106,26,90,58,43,117,57,119],paa:48,subdomain:109,vblade:[58,79],finish:[73,104],confidenti:119,driver:[134,26,0,125,10,69,106,49,40,79,97,135,132,43,119,7,101,92],someon:104,decompress:73,driven:123,capabl:[48,117],openldap:[58,79],extern:[79,90,131,117,57,119],tradition:119,appropri:[106,121],moder:119,pep8:79,without:[121,19,52,43,117,119],disassoci:[26,24],model:[18,121,0,56,69,48,125,53,123,92,14,106],rolenam:19,execut:[53,121,43,90],rest:[119,10],weekli:70,kill:104,touch:132,flavor:[0,36,92,125,109],samba:26,hint:79,except:[0,125,92,117,75,37,67],littl:[132,48],blog:[38,70],vulner:119,real:[40,70,90],mox:[58,79],around:[38,70,90],libc:38,swig:58,traffic:[106,92,117],world:52,server:[0,104,106,34,109,73,38,79,117,119,14,123,48,125,52,90,53,58,130,92,57,35,65,67,131],appic:73,dnsmasq:[106,26,79,117,58],either:[19,79,117,119],cascad:123,output:[53,19,24,104],manag:[68,0,103,106,109,85,102,8,7,73,111,123,10,3,79,43,14,119,121,19,117,89,125,52,90,53,35,92,132,134,135,26,59,97,31,131],udev:58,confirm:[38,65,24],rpm:58,definit:[53,48,119,123],token:119,exit:[19,104],inject:[26,57,31],refer:[135,123,31,92],test_auth:[0,29,92,125,109],power:48,broker:[53,92,119],bazaar:70,central:131,stand:70,act:[57,117,90],bond:117,processor:85,road:73,ansolab:73,euca2ool:[38,121,79,58,14,24,31],effici:26,unregist:119,cloudserv:26,your:[121,26,104,40,79,70,90,52,73],loc:119,log:[142,70],her:85,start:[38,19,104,26,79,35,43,117,73,8,65,57],interfac:[123,26,104,35,79,90,53,58,14,117,57,119],low:119,lot:104,fixed_rang:[35,90],programmat:53,fcbj2non:73,bundl:[121,26,52,43,73,8,24],amongst:10,categor:[121,119,67],congratul:73,pull:104,dirti:[92,119],possibl:[79,90],"default":[121,26,104,79,90,58,117,57,119],bucket:[0,125,61,90,92,73,93,119],virsh:[73,104],expect:[38,73],uid:[38,119],creat:[38,19,85,117,121,26,52,79,53,35,90,14,73,7,8,24,57,31,119],certain:[121,79],use_ppa:65,file:[134,121,19,88,10,104,106,79,70,90,135,58,52,73,93,85,92],again:73,googl:10,fakeldap:[11,0,40,125,92],personnel:121,hybrid:[48,92,119,123],field:121,cleanup:104,collis:7,rdbm:79,you:[104,85,70,8,73,38,10,40,79,43,14,121,19,48,52,90,58,131,26,142,65,92],import_class:[26,43],architectur:[123,104,53,142,131,14],fake_subdomain:[79,90],track:79,vocabulari:119,pool:[48,26,117],cloudpip:[26,0,1,125,52,135,92,117],directori:[38,104,52,90,73,119],descript:[123,85,56,26,19,79,53,35],goe:52,chown:90,libvirt_typ:104,potenti:[131,119],demo:8,all:[121,19,104,10,35,26,70,79,58,142,43,14,117,85,90,57,119,131],dist:73,consider:142,illustr:[26,117],lack:69,ala:106,runtime_flag:[0,125,92,67,120],abil:[48,121],follow:[38,19,104,121,106,26,52,79,53,123,70,14,117,73,90,85,119],disk:[134,38,0,104,106,125,79,135,58,92,7,100],secretkei:[121,19],auth_manag:[26,43],init:90,program:[48,123,79,92],project_id:[121,85,52],liter:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],host_ip:104,managingsecur:123,util:[26,0,119,48,125,85,58,43,14,62,132,24,67,92],mechan:[48,26],failur:[123,69],veri:[123,26,79,70,90,58,67],vishvananda:90,bridge_stp:90,list:[38,19,51,104,121,79,52,90,35,43,73,65,85],user_nam:90,fakeldapdriv:79,past:[38,73],syslog:37,zero:79,design:[123,26,70],pass:[53,57,117,52,119],further:[92,119],what:[48,19,123,79,90],sun:119,section:[19,26,79,35,92,14],abl:[8,79,104],brief:[123,56,35],overload:119,rackspac:[53,73,26],delet:[121,19,104,85,53,35,24,119],version:[38,19,104,79,70,58,14,24,119],intersect:[121,26],method:[132,119,52,10,79],variat:57,trunk:[104,117],renegoti:52,modifi:[121,19,24],valu:[85,104],search:[123,92],mac:[57,117],amount:[48,26,43,131],pick:104,action:[121,19,142],via:[26,14,10,52,43,117,119,131],depart:121,ldapdriv:[0,104,125,79,92,119,133],ask:70,establish:[53,119],select:[35,19,90],rackspacecloud:73,xenwiki:79,regist:[73,24,119,70],two:[26,57,117,14],organizationnam:73,virt:[33,134,26,0,40,125,4,5,71,43,46,92],more:[38,19,104,10,106,26,79,35,43,14,117,73,90,31,119],flat:[123,26,90,35,131,14,57],flag:[121,19,0,10,123,106,125,26,52,79,58,51,43,14,119,132,35,90,112,67,92],particular:[19,26,79],cacert:73,isloat:123,none:[73,85,35,121],endpoint:[53,135,92,109],hour:[48,52],cluster:[117,90],outlin:[132,26],dev:79,learn:[70,14,79],deb:65,dhcpbridg:73,scan:119,challeng:[92,119],registr:119,share:[48,26,31,119,131],accept:132,minimum:[119,117],cours:73,interconnect:119,goal:[142,117],secur:[121,26,56,104,123,106,52,142,43,117,31,119,131],rather:[26,131],anoth:[26,79,90],divis:132,orukptrc:73,simpl:[26,0,97,10,125,52,90,43,138,92],distro:[73,58,123],resourc:[85,48,79,53,35,14],vlan:[123,26,56,104,10,106,79,52,90,53,35,131,14,117,7,85,57],rbac:[121,26,92,119],pat:73,datastor:[106,79,119],associ:[123,26,106,85,52,117,73,24,119],github:90,confus:132,author:[121,19,135,26,53,92,24,119,43],callback:131,allocate_address:26,egg:73,"1b0bh8n":73,help:[19,24,131,90],soon:[52,10],uvh:58,i386:58,through:[121,26,104,10,35,48,79,52,90,53,58,142,70,73,31],paramet:119,style:[26,57,119],binari:[26,79,10,131],might:104,computenod:106,wouldn:38,good:[79,70],"return":[132,121,85,79,119],timestamp:119,framework:53,detach:[53,26,24],mysql_pass:[104,90],document:[134,123,26,104,106,40,79,70,90,132,31],troubleshoot:73,authent:[135,26,10,90,53,142,92,119],easili:[53,121,90],achiev:[26,119],test_ratelimit:[0,125,92,50,109],found:[123,26,117,10],intervent:48,subsystem:[58,79],"340sp34k05bbe9a7":73,api_integr:[0,125,92,82,109],hard:[26,104],connect:[134,19,0,125,48,46,26,52,35,43,117,106,73,119,92],todd:[7,106,104,123],cc_host:90,http:[123,19,48,26,70,79,53,58,131,73,65,90],beyond:90,todo:[117,123,56,104,48,111,40,90,53,127,142,92,14,106,7,65,57],event:[53,79,70],ftp:58,research:123,john_project:[121,85],print:[121,35],postgr:90,proxi:[119,90],advanc:14,pub:58,dhcpdiscov:26,reason:90,base:[38,19,10,121,48,26,79,53,123,43,14,132,73,90,119,131],put:[38,104,123,52,73,111,31],loop0:79,recv:65,bash:[121,90],launch:[121,26,117,79,52,43,14,73,57,85,119,92],script:[38,19,104,121,79,52,90,70,43,73,65,31],heartbeat:90,assign:[121,19,106,26,53,35,117],use_mysql:[104,90],feed:70,major:[53,131],feel:[58,70],misc:[135,92,67],number:[19,26,85,52,90,35,117,7,119],done:[38,104,123,48,58,65],blank:[121,19],stabl:[123,65],losetup:79,differ:[26,104,10,48,79,35,131,117,109,132,57],guest:[57,90],projectnam:[19,85],interact:[121,26,10,123,79,53,35,14],dbdriver:[0,104,125,41,79,92,119],store:[38,0,123,66,125,79,70,53,92,65,93,31,119,131],schema:119,option:[65,19,90,31,79],relationship:[92,119],similarli:106,part:[8,123,79,73],eventu:90,kind:[35,131],yum:58,remot:26,seamlessli:119,bridg:[123,26,104,10,90,35,131,117,57,119],consumpt:85,toward:131,comput:[0,106,70,72,73,38,10,79,43,117,119,19,47,123,48,125,90,53,58,92,57,134,26,107,35,59,142,100,131],packag:[38,65,79,10,73],dedic:[119,117],euca:[104,73,24,31,90],outbound:117,built:[79,131],lib:[38,73],self:48,also:[123,19,104,10,48,26,52,79,58,70,117,106,90,119],folk:90,gpgcheck:58,distribut:[106,58,79,104],"160gb":26,previou:73,quota:[19,0,26,125,85,92,63,119],pipelib:[0,1,92,52,125],most:[26,104,10,106,90,131,117,24,57],plan:119,dai:[48,24,40,73],bzr:[58,65,104,70,90],clear:106,clean:104,latest:[58,38,65,90,73],visibl:117,wsgi:[0,87,10,125,92,67],cdn:[73,79],session:[0,104,69,125,92,39],cdp:119,fine:104,find:[14,70,131,117,24,92],firewal:[106,142,119,117,121],copyright:19,networkmanag:10,solut:131,queu:[53,26],instancemonitor:73,factor:79,localitynam:73,unus:[7,117],express:106,"12t21":73,mainten:[26,43],fastest:[73,14],restart:90,rfc:117,common:[121,79,90,135,92,117,109,67],remov:[121,19,85,53,57,119],crl:52,arp:[57,119,117],certif:[26,52,43,117,73,119,92],set:[38,19,104,10,121,79,52,90,53,127,43,117,85,119],ifconfig:104,see:[38,19,51,104,121,106,26,70,79,58,123,43,14,7,73,65,31,119],bare:90,arg:[19,43],ari:73,kpartx:58,experi:79,signatur:[73,121],c2477062:73,isol:[85,117],ipython:[19,43],both:[26,106,90,142,24,57],last:[19,90],boto:79,context:[0,125,67,129,92],load:[26,10,79,58,43,132,73],simpli:[121,57],point:[132,8,70],tgz:73,schedul:[38,26,0,103,138,135,131,2,49,125,79,97,90,53,35,43,73,92],addressingnod:106,linux:[123,26,79,52,35,117,57],throughout:[53,67],backend:[134,123,106,79,131,119],g06qbntt:73,java:48,devic:[26,10,48,90,58,131],secret:[73,19,26,119,121],strategi:[35,26,10],fire:90,imag:[0,106,109,85,5,8,73,111,123,24,56,10,43,14,118,119,121,19,88,125,52,90,53,139,92,93,57,134,26,137,113,31,131],understand:[132,26],demand:[7,48],look:[106,119,90],straight:26,"while":[38,131,104,117,106],kick:90,abov:52,error:[73,121,90],gmt:73,ami:[104,73,31,119,79],xvzf:73,larger:[26,131],vol:24,itself:119,cento:[73,58],bridge_maxwait:90,network_manag:[10,90],grant:90,belong:117,read:[134,38,26,79,70,90,35,14,73,65],decod:52,zope:79,novarc:[73,19,121,85,90],optim:[48,131,90],wherea:121,user:[104,85,8,73,38,56,43,117,119,121,19,14,48,52,90,53,35,131,24,26,142,31],robust:26,typic:[53,79,70,119],recent:131,stateless:119,lower:92,task:[53,123,132,14],entri:[38,90,53,117,73,57],nova_comput:10,pymox:79,spend:104,propos:119,explan:131,vpn_public_port:52,collabor:70,shape:48,mysql:[104,58,79,90],openstack:[0,70,36,6,109,73,110,38,10,40,81,117,118,19,125,86,21,123,124,50,90,22,58,130,92,78,26,60,29,98,65,32],cut:79,vswitch:35,ganglia:37,subsequ:53,build:[104,79,90,58,73,8],bin:[38,58,90,73],vendor:[53,119],format:[121,119],nginx:58,bit:[132,73,26],formal:70,success:121,docutil:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,75,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,39,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,110,112,113,114,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],resolv:[73,90],manifest:73,collect:[48,70],princip:85,"boolean":90,popular:123,modprob:58,scapi:106,encount:79,creation:[26,119,43,117,90],some:[123,26,104,10,40,70,58,92,132,131],back:[73,79,70],understood:142,sampl:[123,85,48,79,14,73],flatmanag:[10,90],scale:[48,123],novascript:90,"512mb":104,prot:19,per:[26,79,52,135,92,117,57,119],pem:[73,31,104],larg:[7,48,119,10],cloud:[0,104,70,109,73,123,12,79,117,119,121,19,14,48,125,90,53,35,92,26,142,143],stateorprovincenam:73,nose:79,machin:[38,26,104,10,79,52,90,53,131,14,117,73,119],run:[104,106,7,73,38,10,79,43,117,119,19,14,48,52,90,53,58,131,132,24,57,26,35,65,31],agreement:70,step:[58,38,65,90,73],prerequisit:38,wget:[73,58],fakemanag:[40,92],"1gb":[79,117],block:[26,10,52,53,58,131,119],instance_typ:[134,0,72,125,92],within:[121,85,104,106,117,7,119],contributor:70,institut:48,question:70,"long":[132,73,119,52],includ:[121,19,26,70,79,53,65,90],gflag:[19,51,26,10,79,58,43,65],routingnod:106,netomata:106,blueprint:70,properli:43,openstackppa:65,link:[123,26,65,70,131],eauth:[92,119],don:[48,121,79,90],line:[38,123,79,90,73,24,31],objectstore_unittest:[54,93,0,92,125],sdk:79,info:[73,40,111,52,123],cia:119,consist:[106,85,52,35],planet:70,similar:[53,26,57,119,117],my_file_path:79,ec2_url:90,repres:[26,117],chat:70,home:[38,90],curl:[58,79],amqp:[106,26,131,90],titl:[0,125],nat:[106,117],scrub:[85,104],gigabyt:[19,26],lucid:[73,65,104,90],loopback:90,depth:131,nasa:123,addgroup:90,pluggabl:[123,26,43,104],code:[26,104,79,70,90,52,117,73,132,8,65],edg:79,queri:[53,106,119,90],quarantin:121,privat:[123,26,106,52,35,117,48,73,31,119],friendli:70,send:[73,31,10],sens:132,sent:73,unzip:[38,121,90,73],volum:[101,0,85,7,73,123,56,10,40,3,79,43,119,19,125,90,135,131,24,53,26,92],spoof:[57,117],relev:[53,70,90],"try":73,race:7,"0ubuntu2":38,sourcabl:85,pleas:58,fortun:14,cron:52,download:[48,24,58],append:85,compat:[53,123,24,119,90],index:[123,92],access:[121,19,117,48,26,52,92,14,73,85,119],fakeaoedriv:[40,92],can:[104,85,70,73,38,10,79,43,14,119,121,19,117,123,48,52,90,58,131,132,26,35,142,65,31],"17d1333t97fd":73,ec2_secret_kei:73,let:[121,40],ubuntu:[38,104,123,79,90,73,65],becom:121,sinc:[121,119,10,90],convert:131,hypervisor:[53,131],euca_repo_conf_eof:58,technolog:[48,26,35,90],cert:[73,52,90],network_unittest:[64,0,92,125,106],chang:[121,104,10,79,52,90,58,119],chanc:[2,0,125,92,97],revoc:[92,52],control:[121,19,117,123,48,26,70,90,53,35,14,106,85,57,119],danger:31,revok:[24,52],appli:[119,90],app:10,gatewai:[57,117,90],apt:[38,65,79,90],api:[0,104,69,36,6,109,73,110,38,114,10,135,12,40,79,81,142,117,83,16,17,119,84,121,85,125,86,21,123,124,131,50,52,90,22,130,92,78,94,53,26,137,28,60,29,118,98,143,31,32],redi:[38,65,79],test_flavor:[81,0,92,125,109],pxe:90,from:[121,19,104,123,48,26,52,79,53,70,142,43,117,7,73,65,57,85],usb:26,zip:[121,19,85,52,90,73],commun:[123,26,106,79,70,53,142,131,117],next:[7,90],implic:53,few:58,usr:[73,58,90],inet:90,remaind:119,rabbit:[43,90],account:[119,70],retriev:[73,131],carrot:[58,79],obvious:7,fetch:119,employe:121,quickstart:[73,123,104,14,90],tar:[73,79,58],process:[38,0,96,10,123,48,125,52,90,53,92,14,119,73,67,104],lock:53,sudo:[38,104,79,90,73,8,65],high:[123,142,52,90],tag:[26,117,70],onlin:70,gcc:58,rabbit_host:90,filepath:79,instead:[123,26,43,10,104],aoe_rules_eof:58,await:73,physic:[53,35,26,119,90],alloc:[121,85,106,52,53,117,7,24,119],essenti:[26,43],bind:90,issu:[53,90],allow:[121,26,79,52,35,131,117,132,31,119],move:[131,26,43,90],meter:48,lockfil:79,infrastructur:[53,48,26,119,117],openvpn:52,therefor:[31,117],crash:106,python:[38,19,51,26,79,58,43,132,73,65,90,131],auto:90,handi:121,auth:[26,0,104,60,11,131,40,41,68,125,79,116,43,109,133,119,92],devel:58,front:119,strive:123,anyth:[132,119],edit:[58,65,104,70,90],test_sharedipgroup:[0,86,92,125,109],mode:[123,26,14,35,52,90,58,117,57],use_project_ca:52,cloudfil:73,product:[38,24,117,90],consum:48,"static":106,ec2:[121,26,0,137,10,123,28,12,125,79,90,92,109,83,85,94],citrix:[123,79,117],our:[73,70],itsec:[121,19],fake_flag:[0,125,92,67,105],special:[26,85,117],out:[123,10,48,79,117,73,57],variabl:[121,19,85,104],contigu:117,req:58,reboot:[53,73,24,31,119],categori:[19,43],suitabl:79,hardwar:[123,85,106,79,53,117,37,119],dhcp:[26,10,106,90,35,117,57],insid:[117,26,70,52,104],releas:[123,65,24,58],could:[123,106,79,35,117,8,119],vpn_start:35,segreg:117,keep:[26,57,52,90],length:73,enforc:[106,119,117],outsid:[35,52],organiz:85,softwar:[26,48,79,90,53,73],echo:[65,90],vlan_start:35,puppet:90,owner:[121,90],prioriti:[123,104],newus:8,licens:70,mkdir:90,system:[104,70,109,7,73,38,10,79,117,119,121,85,14,123,48,90,58,92,132,57,26,35,142,31,131],messag:[38,19,26,121,106,79,90,53,131,65],attach:[26,10,53,131,7,24,57,119],attack:[142,119],volume_group:79,aoetool:[58,79],termin:[121,26,104,53,24,31,119],"0x10001":73,"final":58,shell:[132,19,43],eavesdrop:70,volumedriv:132,shelf:7,rsa:73,botleneck:58,rst:[123,0],haven:[121,67],structur:[85,119],metadatarequesthandl:[83,0,92,125,109],seriou:123,sec:119,py2:73,cc_addr:90,have:[121,26,104,123,48,40,79,52,90,117,73,65,57,119],tabl:[123,92,119,90],need:[121,19,104,123,48,26,52,79,58,117,132,73,65,90,119],border:142,rout:[53,58,79,10,117],accuraci:58,which:[38,26,10,106,85,70,90,53,58,131,65,119],datacent:90,soap:119,singl:[38,104,123,70,90,53,58,7,73,65,57,119],unless:104,deploy:[123,10,48,79,70,90,131,14],discov:[7,58],deploi:[48,90],vish:[7,123],segment:117,why:48,url:[58,119],request:[121,85,10,70,53,92,73,119,131],snapshot:24,xenapi:[33,134,0,125,79,92],determin:[53,79],occasion:53,fact:106,verbos:[79,90],bring:48,cloudcontrol:106,locat:[73,119,90],launchpad:[104,19,65,70,90],start_on_boot:90,should:[121,104,123,48,79,90,132,117,7,73],local:[73,26,121],contribut:[123,117,70],familiar:14,autom:48,csrc:[48,123],graduat:73,increas:90,lazyplugg:[26,43],enabl:[123,35,48,53,58,142],organ:[121,35,123],"4e6498a2":73,xmlsoft:58,sudoer:104,integr:[135,119,92,88,90],partit:26,contain:[48,19,85,117,90],grab:[7,65,57,52],nist:[48,123],view:19,debconf:90,legaci:[106,92,119],bridge_fd:90,knowledg:70,elast:[48,117],network_s:[35,90],mountainview:73,backchannel:119,modulu:73,quota_unittest:[108,0,125,92,119],pattern:43,boundari:142,written:[123,58],cloud101:123,progress:38,email:48,kei:[121,19,123,106,26,52,142,117,73,65,85,31,119],ec2_access_kei:73,lvm:[7,53],job:119,entir:[106,79],disconnect:52,eclips:48,problem:[7,38,79,104],addit:[123,79,58,117,57,119],plugin:[26,43],admin:[121,19,0,125,117,123,106,109,85,52,90,35,92,14,73,8,94],wsgiref:79,vgcreat:79,etc:[123,26,104,48,79,90,58,106,73,65,57,119],instanc:[117,121,19,85,56,104,48,26,52,53,35,142,14,106,7,73,24,57,31,119],runinst:119,vpn_public_ip:52,guidelin:123,chmod:[73,31,104],distinguish:73,rpc:[26,0,10,106,125,43,95,67,92],respect:35,qemu:[58,26,104],quit:131,addition:119,compos:53,compon:[123,51,106,79,90,53,92,109,37,131],json:73,uroot:90,electr:48,immedi:117,upcom:70,inbound:117,assert:119,present:[26,79],replic:[131,10,90],multi:[73,123,90],align:119,defin:[132,121,26,119,90],ultra:10,layer:[135,119,92,117,69],libxml2:58,flags_unittest:[122,0,125,92,67],archiv:[73,90],fiddl:104,welcom:[123,70],networkcontrol:106,parti:119,member:85,handl:[53,117],"35z":73,slave:90,hostnam:53,upon:[53,121],libvirt:[7,131,79,90],m2crypto:79,access_unittest:[144,0,125,92,119],mysql_prese:90,audit:[142,119],off:[119,90],center:[48,92,119],well:[38,121,79,70,131,109,67],exampl:[121,26,104,123,48,85,43,117,57,31,119],command:[104,106,85,73,123,79,43,14,121,19,52,90,53,58,131,132,24,26,35,142,65,31],choos:90,usual:[7,132,70],xen:[26,79,131],obtain:[57,43],virtual:[134,135,26,104,10,52,53,35,92,73,119,131],simultan:117,adv:65,web:[26,48,53,131,8,119],rapid:48,priorit:119,add:[121,19,56,104,123,79,85,90,58,92,117,73,24,57,31,119],valid:[0,104,115,125,92,67],notauthor:85,match:[73,119],pubsub:119,branch:[104,90],howto:[123,92],prese:90,ldconfig:38,realiz:53,five:[121,19,119],know:[26,90],password:[104,31,90],python2:[73,58],insert:[106,117,123],resid:14,like:[123,26,48,79,70,90,58,131,73,57,119],cloud_unittest:[0,9,92,125,109],necessari:53,page:[123,26,79,70,92,65,31],project_nam:90,eucalyptu:58,twitter:70,"export":[121,19,85,90,7,73],trucker:73,small:[73,26,43,117,131],librari:[135,58,79,67,92],tmp:73,feder:119,lead:132,broad:[53,14],avoid:[7,123,131],reconsid:132,leav:[121,19],investig:119,usag:[121,31,14,104],host:[38,19,104,123,106,26,52,79,53,58,35,70,14,117,132,73,65,90,57,131],although:[132,85,104],user_id:[121,85],about:[134,123,19,104,40,26,70,79,35,14],actual:[26,79,90],anyjson:79,own:[123,117,52],objecstor:[93,92],import_object:[26,43],easy_instal:58,automat:[121,26,117,52,90],automak:58,"56m":73,rectifi:123,merg:[7,123],pictur:119,transfer:[53,48,142],snmp:119,mykei:[73,119],much:[48,26,43],"var":[38,104],cloudadmin:90,"function":[121,26,14,79,53,43,117],baseurl:58,inlin:79,bug:[19,70],deassoci:119,count:79,made:[73,90],wish:[26,85],googlecod:[58,79],displai:[19,85],asynchron:119,record:[106,119],below:[123,19,131,79,90],limit:[121,26,85,92,117,119],signer:[0,116,92,119,125],otherwis:[121,19,79,58],dmz:117,epel:58,pii:119,evalu:[53,90],dure:90,twist:[58,65,131],implement:[123,26,106,40,79,52,35,92,117,132,57,119],pip:79,probabl:[132,26,104,90],boot:[26,90,117,73,57,31],detail:[79,19,106,26,90,92,117,132,73,119],mehod:73,other:[121,26,104,69,123,79,70,90,53,58,35,131,117,132,73,119,142],futur:[135,35,92,88],rememb:121,varieti:104,"100m":79,singleton:132,debian:[73,65,58],stai:26,sphinx:123,nogroup:38,reliabl:26,rule:[121,106,52,58,117,119],emerg:48},objtypes:{},titles:["<no title>","The nova..cloudpipe.pipelib Module","The nova..scheduler.chance Module","The nova..volume.manager Module","The nova..virt.libvirt_conn Module","The nova..virt.images Module","The nova..tests.api.openstack.test_servers Module","Storage Volumes, Disks","Live CD","The nova..tests.cloud_unittest Module","Nova Daemons","The nova..auth.fakeldap Module","The nova..api.ec2.cloud Module","The nova..adminclient Module","Administration Guide","The nova..tests.compute_unittest Module","The nova..tests.api.fakes Module","The nova..db.api Module","The nova..db.sqlalchemy.models Module","nova-manage","The nova..tests.declare_flags Module","The nova..tests.api.openstack.test_images Module","The nova..api.openstack.faults Module","The nova..objectstore.handler Module","Euca2ools","Installing the Live CD","Nova Concepts and Introduction","The nova..network.linux_net Module","The nova..api.ec2.apirequest Module","The nova..tests.api.openstack.test_auth Module","The nova..tests.rpc_unittest Module","Managing Instances","The nova..api.openstack.sharedipgroups Module","The nova..virt.xenapi Module","The nova..server Module","Networking Overview","The nova..api.openstack.flavors Module","Monitoring","Installing on Ubuntu 10.10 (Maverick)","The nova..db.sqlalchemy.session Module","Fake Drivers","The nova..auth.dbdriver Module","The nova..tests.process_unittest Module","The nova-manage command","The nova..service Module","The nova..tests.auth_unittest Module","The nova..virt.connection Module","The nova..compute.monitor Module","Cloud Computing 101","The nova..scheduler.driver Module","The nova..tests.api.openstack.test_ratelimiting Module","Flags and Flagfiles","Cloudpipe – Per Project Vpns","Service Architecture","The nova..tests.objectstore_unittest Module","The nova..test Module","Object Model","Flat Network Mode (Original and Flat)","Installation on other distros (like Debian, Fedora or CentOS )","The nova..compute.manager Module","The nova..api.openstack.auth Module","The nova..objectstore.bucket Module","The nova..utils Module","The nova..quota Module","The nova..tests.network_unittest Module","Installing on Ubuntu 10.04 (Lucid)","The nova..objectstore.stored Module","Common and Misc Libraries","The nova..auth.manager Module","The Database Layer","Getting Involved","The nova..virt.fake Module","The nova..compute.instance_types Module","Installing Nova on a Single Host","The nova..tests.volume_unittest Module","The nova..exception Module","The nova..tests.real_flags Module","The nova..tests.validator_unittest Module","The nova..api.openstack.backup_schedules Module","Getting Started with Nova","The nova..tests.api_unittest Module","The nova..tests.api.openstack.test_flavors Module","The nova..tests.api_integration Module","The nova..api.ec2.metadatarequesthandler Module","The nova..tests.api.test_wsgi Module","Managing Projects","The nova..tests.api.openstack.test_sharedipgroups Module","The nova..wsgi Module","Glance Integration - The Future of File Storage","The nova..network.manager Module","Installing Nova on Multiple Servers","The nova..tests.twistd_unittest Module","Developer Guide","Objectstore - File Storage Service","The nova..api.ec2.admin Module","The nova..rpc Module","The nova..process Module","Scheduler","The nova..tests.api.openstack.fakes Module","The nova..crypto Module","The nova..compute.disk Module","The nova..volume.driver Module","The nova..manager Module","The nova..scheduler.manager Module","Nova Quickstart","The nova..tests.fake_flags Module","Networking","The nova..compute.power_state Module","The nova..tests.quota_unittest Module","API Endpoint","The nova..tests.api.openstack.test_faults Module","Managing Images","The nova..flags Module","The nova..image.service Module","The nova..db.sqlalchemy.api Module","The nova..validate Module","The nova..auth.signer Module","VLAN Network Mode","The nova..api.openstack.images Module","Authentication and Authorization","The nova..tests.runtime_flags Module","Managing Users","The nova..tests.flags_unittest Module","Welcome to Nova’s documentation!","The nova..tests.api.openstack.test_api Module","<no title>","The nova..tests.service_unittest Module","Setting up a development environment","The nova..fakerabbit Module","The nova..context Module","The nova..api.openstack.servers Module","Nova System Architecture","Services, Managers and Drivers","The nova..auth.ldapdriver Module","Virtualization","Module Reference","The nova..twistd Module","The nova..api.ec2.images Module","The nova..scheduler.simple Module","The nova..objectstore.image Module","The nova..tests.virt_unittest Module","The nova..tests.scheduler_unittest Module","Security Considerations","The nova..api.cloud Module","The nova..tests.access_unittest Module"],objnames:{},filenames:["code","api/nova..cloudpipe.pipelib","api/nova..scheduler.chance","api/nova..volume.manager","api/nova..virt.libvirt_conn","api/nova..virt.images","api/nova..tests.api.openstack.test_servers","devref/volume","installer","api/nova..tests.cloud_unittest","adminguide/binaries","api/nova..auth.fakeldap","api/nova..api.ec2.cloud","api/nova..adminclient","adminguide/index","api/nova..tests.compute_unittest","api/nova..tests.api.fakes","api/nova..db.api","api/nova..db.sqlalchemy.models","man/novamanage","api/nova..tests.declare_flags","api/nova..tests.api.openstack.test_images","api/nova..api.openstack.faults","api/nova..objectstore.handler","adminguide/euca2ools","livecd","nova.concepts","api/nova..network.linux_net","api/nova..api.ec2.apirequest","api/nova..tests.api.openstack.test_auth","api/nova..tests.rpc_unittest","adminguide/managing.instances","api/nova..api.openstack.sharedipgroups","api/nova..virt.xenapi","api/nova..server","adminguide/managing.networks","api/nova..api.openstack.flavors","adminguide/monitoring","adminguide/distros/ubuntu.10.10","api/nova..db.sqlalchemy.session","devref/fakes","api/nova..auth.dbdriver","api/nova..tests.process_unittest","adminguide/nova.manage","api/nova..service","api/nova..tests.auth_unittest","api/nova..virt.connection","api/nova..compute.monitor","cloud101","api/nova..scheduler.driver","api/nova..tests.api.openstack.test_ratelimiting","adminguide/flags","devref/cloudpipe","service.architecture","api/nova..tests.objectstore_unittest","api/nova..test","object.model","adminguide/network.flat","adminguide/distros/others","api/nova..compute.manager","api/nova..api.openstack.auth","api/nova..objectstore.bucket","api/nova..utils","api/nova..quota","api/nova..tests.network_unittest","adminguide/distros/ubuntu.10.04","api/nova..objectstore.stored","devref/nova","api/nova..auth.manager","devref/database","community","api/nova..virt.fake","api/nova..compute.instance_types","adminguide/single.node.install","api/nova..tests.volume_unittest","api/nova..exception","api/nova..tests.real_flags","api/nova..tests.validator_unittest","api/nova..api.openstack.backup_schedules","adminguide/getting.started","api/nova..tests.api_unittest","api/nova..tests.api.openstack.test_flavors","api/nova..tests.api_integration","api/nova..api.ec2.metadatarequesthandler","api/nova..tests.api.test_wsgi","adminguide/managing.projects","api/nova..tests.api.openstack.test_sharedipgroups","api/nova..wsgi","devref/glance","api/nova..network.manager","adminguide/multi.node.install","api/nova..tests.twistd_unittest","devref/index","devref/objectstore","api/nova..api.ec2.admin","api/nova..rpc","api/nova..process","devref/scheduler","api/nova..tests.api.openstack.fakes","api/nova..crypto","api/nova..compute.disk","api/nova..volume.driver","api/nova..manager","api/nova..scheduler.manager","quickstart","api/nova..tests.fake_flags","devref/network","api/nova..compute.power_state","api/nova..tests.quota_unittest","devref/api","api/nova..tests.api.openstack.test_faults","adminguide/managing.images","api/nova..flags","api/nova..image.service","api/nova..db.sqlalchemy.api","api/nova..validate","api/nova..auth.signer","adminguide/network.vlan","api/nova..api.openstack.images","devref/auth","api/nova..tests.runtime_flags","adminguide/managing.users","api/nova..tests.flags_unittest","index","api/nova..tests.api.openstack.test_api","api/autoindex","api/nova..tests.service_unittest","devref/development.environment","api/nova..fakerabbit","api/nova..context","api/nova..api.openstack.servers","devref/architecture","devref/services","api/nova..auth.ldapdriver","devref/compute","devref/modules","api/nova..twistd","api/nova..api.ec2.images","api/nova..scheduler.simple","api/nova..objectstore.image","api/nova..tests.virt_unittest","api/nova..tests.scheduler_unittest","adminguide/managingsecurity","api/nova..api.cloud","api/nova..tests.access_unittest"]}) \ No newline at end of file +Search.setIndex({objects:{"nova.virt":{fake:[40,0,1]},nova:{exception:[67,0,1],validate:[67,0,1]},"nova.compute":{instance_types:[134,0,1],power_state:[134,0,1]}},terms:{prefix:[57,90],tweet:70,ip_rang:[139,20,43],novadev:73,under:[52,119],spec:[20,43,70,119],ramdisk:73,digit:119,everi:[27,51],dectect:69,cmd:67,eucatool:104,upload:[73,25,119],rabbitmq:[57,38,27,65,79],ifac:90,direct:15,chef:90,second:[27,51],ebtabl:[57,56,79,117],aggreg:[134,40,131,70],libxslt:57,even:106,keyserv:65,eventlet:[57,79],commonnam:73,poison:[56,117],"new":[134,38,20,104,121,123,40,85,70,51,57,43,117,132,73],net:[20,70,90,57,65,67],maverick:[38,73],metadata:[117,51,119],ongo:[27,43],behavior:123,mem:[134,40],never:[134,40],here:[134,38,27,10,123,40,90,139,57,117,65,111],path:[132,106,20,43,92],aki:73,permit:[52,121],bashrc:90,unix:79,refenc:15,total:[134,27,40,85,119],highli:[123,79,90],describ:[123,20,104,48,27,70,142,43,15,117,73,25,119],would:[132,79,119,69],noarch:57,call:[134,27,10,40,51,117,119],python26:57,recommend:[104,73,79,90],nate:[106,117],type:[38,48,70,90,52,139,92,119,73,65,67],until:[73,27],eucalyptussoftwar:57,relat:[134,20,27,79,70,52,43,119],"10gb":[104,117],notic:[57,79],tx_err:[134,40],warn:38,relai:[52,70],vpn:[20,106,27,51,135,139,43,117,73,119,92],must:[134,38,27,121,40,85,131,117,8,65,119],join:[117,70],err:[134,57,40],"0at28z12":73,setup:[104,79,90,57,117,73],work:[134,38,27,48,40,79,51,90,52,15,132,73,56,119],conceptu:119,rework:[7,123],hansen:38,root:[38,27,104,90,73,32],overrid:79,defer:[134,38,40,131],give:[134,121,104,123,40,51,65],vpn_start:139,indic:[134,123,20,40,43,92],want:[38,20,104,48,27,90,43,117,65],end:[119,51,90],turn:51,how:[123,27,104,70,90,15,117,56,119],env:[104,90],answer:70,verifi:121,config:[73,90],updat:[121,20,106,51,90,57,43,117,73,65,119],compute_unittest:[134,16,0,92,125],mess:104,after:[7,121,123,79,104],diagram:[48,27,92,117,106],befor:[134,27,104,40,79,73,56,32],test_wsgi:[84,0,92,125,109],demonstr:117,fedora:[73,57],attempt:[132,27,85,104],third:119,classmethod:[134,40],opaqu:[134,40],bootstrap:90,credenti:[73,85,119,121],perform:[134,121,27,117,40,79,90,43,15,7],"18th":90,environ:[121,20,104,123,48,85,90,127,43,73,119],exclus:106,ethernet:[7,27],order:[121,27,90,131,117,7],oper:[38,27,121,48,90,52,117,119],diagnos:123,over:[7,48,27,106,90],becaus:[27,104,70],privileg:90,incid:119,flexibl:48,vari:73,fip:119,uuid:121,fit:[57,131],backup_schedul:[0,78,92,125,109],fix:[52,139,27,10],cla:70,better:90,persist:[79,15],cred:90,easier:[132,73,90],them:[134,121,104,10,40,90,117,132,73],wr_req:[134,40],thei:[134,20,40,79,90,43,85,32,119],proce:117,volume_unittest:[7,74,0,92,125],objectstor:[38,93,0,10,66,125,60,79,135,91,92,24,73,90,131],power_st:[134,0,125,107,40,92],each:[27,104,48,79,51,90,139,142,131,117,7,56],debug:[123,79],mean:[134,73,40,79,131],interop:119,laboratori:123,devref:123,group:[38,20,55,123,48,27,51,79,57,70,90,43,117,106,7,25,119],cloud02:73,extract:73,admincli:[13,0,125,92,67],network:[0,106,70,73,38,10,123,40,79,43,117,119,121,15,89,48,125,51,90,52,139,92,56,134,135,27,28,142,131],bridge_port:90,newli:73,content:[123,90],got:73,gov:[48,123],ntp:117,free:[38,70,51,57],standard:[48,20,123,27,43],fakerabbit:[128,0,40,125,92],test_fault:[0,114,92,125,109],ata:7,openssl:[73,57],installt:79,isn:40,confus:132,rang:[20,117,27,90,139,43,15,67],instance_nam:[134,40],fakeinst:[134,40],independ:119,capac:48,restrict:[121,15],instruct:[38,70],alreadi:[117,90],imagestor:73,primari:7,sometim:27,stack:[134,40],master:90,autorun:51,john:[121,85],zipfil:[8,20,85,43,121],listen:[52,27,79],iptabl:[106,56,79,117,57],consol:[52,25],tool:[48,79,90,52,57,15,25],enjoi:121,auth_unittest:[0,45,92,119,125],provid:[123,27,117,48,79,70,139,51,15,106,73,119],tree:123,project:[106,85,8,73,123,55,43,117,119,121,20,15,48,51,90,52,139,131,56,135,27,57,92],matter:121,num_network:139,provis:[48,90],fashion:119,tx_drop:[134,40],mind:123,xensourc:79,seem:131,computemanag:10,deregist:25,transmit:[134,40],simplifi:121,though:[90,104,15,69],usernam:[121,20,43],object:[134,123,55,10,40,52,131,15,132,119],regular:121,cblah2:73,tradit:119,flagfil:[129,15,10,79],max_mem:[134,40],doc:[123,27,106,90,142,92,7,73,119],metal:90,doe:[27,32,43],declar:[92,119],notempti:67,came:48,random:[121,27,43],transluc:119,syntax:[7,121,85,104,123],directli:[7,121,40,134,90],pkg:90,contrib:[79,104],protocol:119,iscsitarget:79,insnanc:51,dhcpserver:27,priv:73,involv:[123,142,79,70],acquir:121,explain:27,configur:[123,20,104,10,27,51,79,52,57,142,117,73,90,56],apach:119,ldap:[131,27,43,119,79],oct:73,watch:73,amazon:[134,123,27,40,52,117,109],root_password:90,report:70,validator_unittest:[53,0,125,92,67],wr_byte:[134,40],"public":[121,27,10,123,48,51,139,92,117,106,56,32,119],runn:104,respond:[132,20,43],respons:[134,10,40,52,131,132,73,119],fail:[134,40],best:[79,70],subject:[52,73],databas:[135,20,104,69,131,79,51,90,52,43,132,73,92],irt:73,discoveri:119,figur:[123,117],outstand:123,simplest:[27,104],irc:70,approach:[121,119],attribut:[48,25,123],accord:[7,48],extend:119,protect:[142,56,117],easi:[123,79],fault:[123,0,125,23,92,109],howev:[106,139,90],against:[57,56,104,117],reservationid:119,logic:[7,119],s3_host:90,login:32,seri:15,com:[27,79,90,57,73,65],compromis:142,applianc:106,"2nd":90,guid:[134,123,27,106,40,79,90,92,15],assum:[117,90],duplic:67,etherd:57,three:[139,119],been:[117,121,79,67,90],trigger:[38,131,117],interest:70,basic:[106,79,51,90,52,15,32,119],saa:48,tini:[73,27,32,51,104],quickli:[123,79,104],toller:123,worker:[52,104],ani:[134,121,20,104,48,40,27,51,79,43,85,119],emploi:121,ident:[134,40,119],servic:[0,106,70,73,123,10,40,79,117,44,15,88,48,125,90,135,92,132,93,134,52,27,113],properti:[134,79,119,90],sourceforg:57,dashboard:[121,131,117],publicli:[121,85],vagu:[123,142],spawn:[134,20,40,139,43,119],clusto:106,printabl:73,toolkit:123,ratelimit:[92,109],conf:[73,20,79],sever:106,cloudaudit:[92,119],receiv:[134,27,10,48,40,52,131],make:[38,85,10,106,90,52,57,73,132,8],meetup:70,complex:[56,104],split:[73,117,90],complet:[134,38,121,48,40,52,73,119],nic:117,rais:[134,40,117,67],ownership:119,kib:[134,40],kid:70,kept:79,scenario:[123,15],thu:90,inherit:119,thi:[104,106,70,7,73,38,40,79,15,119,121,85,117,123,51,90,52,127,92,132,134,27,57,142,65,32,131],gzip:73,countrynam:73,facto:121,just:[121,20,104,123,48,51,142,43,67],bandwidth:48,human:[134,48,40],yet:[139,121,67,90],languag:48,previous:73,expos:[121,27,51,10],had:104,spread:10,har:48,save:[73,51],applic:[48,119],mayb:[106,123],background:15,measur:[48,85],daemon:[57,15,10,79],specif:[134,121,27,104,123,106,40,79,51,90,52,92,15,117,132,119],manual:[20,104,27,90,57,56],volumemanag:10,test_serv:[0,109,6,125,92],xlarg:27,underli:[7,27],www:[57,27],right:[121,142,123],old:[7,123,92],deal:132,somehow:90,intern:[134,106,40],successfulli:[134,40],preliminari:119,subclass:[106,10],cnf:[73,90],apirequest:[29,0,92,125,109],condit:[7,27,43],unbundl:25,core:[123,20,55,27,79,90,57,43,15,85],load_object:132,repositori:[79,90],post:70,"super":121,redownload:51,br100:[27,90],postgresql:90,slightli:104,unfortun:[134,40],span:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],libvirt_conn:[4,134,0,92,125],produc:52,meerkat:38,ppa:[65,79,90],tackl:27,"float":[139,20,27,10,43],encod:51,down:48,wrap:119,storag:[135,27,10,88,48,52,92,7,93,119,131],eth0:[27,90],accordingli:121,git:[57,90],fabric:[52,123],wai:[123,106,79,70,90,15,73],support:[38,27,10,121,48,79,51,90,139,117,109,85,32],nova:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,49,50,51,52,53,54,78,58,59,60,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,57,128,61,130,131,132,133,134,136,137,138,139,140,141,143,144],"class":[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,40,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,92,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,121,122,124,126,128,61,130,131,132,133,134,136,137,138,14,140,141,143,144],avail:[38,20,123,48,40,27,70,79,52,57,90,43,117,25,85,32,119],reli:[106,79,10],linux_net:[106,0,125,92,28],sqlite3:[123,79,104],form:[134,20,40,85],offer:[52,48,70],sqlalchemi:[19,0,69,125,79,90,57,92,39,110],icmp:51,"true":[73,20,121,43,90],freenod:70,reset:25,projectmanag:[121,20,43],rescu:[134,40],maximum:[134,40,119],vishi:90,fundament:27,autoconf:57,service_unittest:[126,0,40,125,92],classif:119,featur:[27,117,70],b64:51,"abstract":132,decrypt:[27,43],exist:[121,27,106,85,90,52,139,7,119],glanc:[135,88,10,92],lutz:67,mybucket:73,check:[121,20,85,79,57,43,73],underutil:48,encrypt:[73,142],when:[134,38,104,48,40,79,51,90,52,131,117,106,73,65,32,119],role:[121,20,27,131,85,90,52,43,15,119,92],scriptnam:[20,43],test:[0,104,69,106,81,70,108,82,6,109,7,73,74,114,76,77,9,40,79,80,42,15,16,17,45,119,120,84,122,125,86,21,22,124,50,126,57,53,92,54,93,134,105,14,30,140,97,141,98,64,144,31,32,67],test_imag:[0,125,92,22,109],webob:79,node:[38,123,106,90,52,117,7,73,56],irclog:70,kvm:[57,27,79,104],intens:104,intent:90,consid:90,sql:[131,90],adminguid:123,ignor:121,time:[134,27,104,40,70,52,117],concept:[123,27,129,85,142,43],chain:106,skip:85,global:[121,20,27,43],focus:27,known:[134,40],eauthent:119,llc:20,decid:131,depend:[38,48,79,90,57,73,65],zone:25,bpython:[20,43],readabl:[134,40],supposedli:48,sourc:[121,20,0,104,123,79,70,73,8,65],string:[27,43],revalid:57,uml:[27,104],octob:90,word:27,exact:57,nodaemon:79,cool:70,organizationalunitnam:73,administr:[121,27,117,123,79,139,43,15,73,25,56,119],level:[123,85,121,48,142,92,119],rpc_unittest:[0,31,92,67,125],greenlet:[57,79,90],pnova:90,prevent:[52,119],blade:7,sign:[121,70,51,119],port:[117,51],addr:90,current:[134,121,20,104,106,40,27,79,139,132,117,109,7,73,56,85,119],gener:[134,121,27,0,123,40,51,90,117,132,73,32],gawk:[57,79],address:[121,20,55,104,123,106,27,90,52,139,43,117,85,25,56,119],along:119,wait:[32,131],box:[27,117,10],queue:[52,131,79,90],throughput:37,tunnelingnod:106,particularli:104,"95c71fe2":65,ipc:[27,43],semant:[134,40,119],tweak:[79,104],modul:[1,2,3,4,5,6,7,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,123,39,40,41,42,44,45,46,47,49,50,51,53,54,78,58,59,60,62,63,64,66,67,68,69,71,72,74,75,76,77,79,80,81,82,83,84,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,112,113,114,115,116,118,119,120,122,124,125,126,57,128,61,130,132,133,134,135,136,137,138,14,140,141,143,144],ipi:[57,79],fake:[134,123,27,0,40,79,125,135,71,98,43,109,17,92],instal:[26,27,104,38,123,79,51,90,57,15,117,73,65,56],newslett:70,tx_byte:[134,40],memori:[134,40],todai:48,live:[8,90,123,70,26],handler:[24,93,0,92,125],scope:27,checkout:104,apierror:67,afford:[48,121],peopl:[132,48,123,70,90],pylint:79,enhanc:[92,119],easiest:90,behalf:121,focu:139,cat:[57,90],whatev:79,purpos:[121,79],heart:52,agent:[56,119],topic:15,critic:119,api_unittest:[0,109,92,125,80],occur:[27,117],alwai:[123,117,51],lxml:57,multipl:[117,123,27,104,10,48,79,90,52,131,15,109,7],write:[134,123,40,70,90,127,73],map:[134,123,121,106,40,117,119],aoe:[7,57,79],atao:131,clone:[65,104,90],intrus:142,membership:70,mai:[117,38,85,104,48,40,134,79,90,52,15,106,132,119],data:[134,85,48,40,51,142,92,132,73,119,131],man:32,hyperv:27,practic:73,favorit:90,inform:[134,20,10,40,27,70,92,117,32,119],"switch":[73,27,104,117,106],combin:119,zxvf:57,callabl:132,talk:[134,123,40,70,131,15],root_password_again:90,brain:48,use_ldap:104,still:[123,20,43,90],dynam:[27,131,117],swiftadmin:123,monitor:[134,0,47,40,79,125,142,92,15,37],polici:119,amqplib:79,avil:79,platform:[134,48,27,40,79],window:104,main:[123,65,15],scheduler_unittest:[141,0,125,92,97],non:[132,38],synopsi:20,initi:[104,90],nation:48,recap:56,now:[38,57,142,123,73],secgroup:119,introduct:[123,27,43,119,92],term:[134,48,40],workload:123,name:[134,121,20,27,123,40,85,90,57,43,117,73],drop:[134,40,104],crypto:[99,0,125,92,51],separ:[139,85,131,121],compil:73,domain:[134,40],replai:119,replac:[7,79,10],individu:[7,106,123,119,121],receipt:121,continu:[52,38,65,79,57],contributor:70,keypair:[27,104,51,73,25,32,119],get_info:[134,40],sql_connect:90,happen:132,subnet:[106,56,117,90],shown:[65,131],accomplish:[73,32,15,121],space:[38,104,117],internet:[106,27,70,51,117],she:[85,32],project_manag:85,state:[134,38,20,106,40,43,73,65,92],california:73,org:[57,20,70],"byte":[134,40],care:104,thing:[134,104,40,90,73,32],place:[106,38,70,48],router:106,principl:57,think:27,first:[38,104,79,90,57,117,65,32],origin:[123,85,48,52,139,15,56],redhat:57,onc:[134,38,48,40,70,90,57,15,8,65],yourself:73,environemnt:90,bridgingnod:106,accesskei:[121,20,43],open:[123,79,70,139,51,117],size:[20,85,43,117,119],sharedipgroup:[0,109,92,125,33],given:[134,20,40,27,51,139,43,56],workaround:90,iaa:[48,27,123],cumul:119,draft:70,manager_id:85,forthcom:104,device_path:[134,40],grant:90,especi:131,copi:[106,38,51,73],specifi:[134,121,20,104,40,79,51,90,43,117,132,85,56],broadcast:90,forward:[131,51,90],soren:38,mostli:56,date:[38,20,79],holder:121,than:[38,27],serv:[48,117],wide:[57,119],were:104,browser:8,pre:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,57,128,61,130,133,136,137,138,14,140,141,143,144],san:27,ann:73,argument:[121,20,85,79,139,43,67],slap:79,dash:[27,117],test_api:[124,0,92,125,109],declare_flag:[0,125,21,67,92],recover:123,disk_stat:[134,40],engin:[52,106],destroi:[134,40,104],xxxxx:10,note:[134,38,27,121,40,85,90,57,65,56],ideal:119,take:[52,38,40,134,104],noth:131,channel:70,begin:[52,121,90],sure:[38,10],normal:[20,85,43],tornado:[57,79],compress:[20,43],paid:48,pair:[142,32],synonym:[134,40],twistd_unittest:[14,0,125,92,67],later:70,drive:27,runtim:119,newer:57,show:79,permiss:[121,27,104,119],xml:[73,10],onli:[117,121,27,104,48,40,134,79,90,52,139,15,106,85,56],explicitli:27,rx_drop:[134,40],activ:[119,70],enough:117,invalidinputexcept:67,sighup:90,variou:[134,121,27,104,40,52],get:[117,38,27,104,121,48,40,134,79,70,90,52,123,131,15,73,8,65,25],repo:57,ssl:73,cannot:[121,117],ssh:[106,73,32,104],requir:[38,27,121,48,79,70,90,51,117,65],bzr331:38,priviledg:15,where:[134,73,40,70,90],wiki:[123,79,70],kernel:[73,57],netadmin:[121,20,27,43],auth_driv:79,reserv:[73,51],rmi:67,xenserv:79,concern:[134,40,104,131],kmod:57,detect:[134,40,142],review:[79,119],getattr:132,between:[123,27,10,106,79,90,52,142,117],"import":[73,27,10,121],across:[106,85,90],assumpt:[104,123,79,90],api_command:27,screen:[57,20,43,104],tut:[123,92],virt_unittest:[134,0,92,125,140],come:[57,70,90],region:25,imf:119,tutori:92,mani:[38,27,48,79,90,43,106,32],overview:[123,15,106,51,139,92,117],period:51,dispatch:52,swift:20,fixed_ip:90,rd_req:[134,40],mark:90,real_flag:[76,0,125,92,67],certifi:73,those:[134,27,40,51,142],"case":[90,131,119,69],process_unittest:[42,0,125,92,67],xcp_sdk:79,ctrl:104,canon:73,worri:90,blah:73,detach_volum:[134,40],twistd:[136,0,125,92,67],develop:[121,20,104,123,40,27,127,92,119,43],saml:119,iscsi:[7,52,131,79,123],same:[121,85,10,106,27,90,57,43,117,56,119],paa:48,html:67,subdomain:109,vblade:[57,79],finish:[73,104],confidenti:119,driver:[134,27,0,125,10,69,106,49,40,79,97,135,132,43,119,7,101,92],someon:104,decompress:73,driven:123,capabl:[48,117],openldap:[57,79],extern:[79,90,131,117,56,119],tradition:119,appropri:[106,121],moder:119,pep8:79,without:[134,121,20,40,51,43,117,119],disassoci:[27,25],model:[19,121,0,55,69,48,125,52,123,92,15,106],rolenam:[20,43],execut:[52,121,20,43,90],rest:[134,40,119,10],weekli:70,kill:104,touch:132,flavor:[0,36,92,125,109],samba:27,hint:79,except:[134,0,40,125,92,117,75,37,67],littl:[132,48],blog:[38,70],versa:[134,40],vulner:119,real:[134,40,70,90],mox:[57,79],around:[38,70,90],libc:38,swig:57,traffic:[106,92,117],world:51,tx_packet:[134,40],integ:[134,40],server:[0,104,106,35,109,73,38,79,117,119,15,123,48,125,51,90,52,139,130,92,56,57,65,67,131],appic:73,dnsmasq:[106,27,79,117,57],either:[20,119,43,117,79],cascad:123,output:[52,20,25,43,104],manag:[68,0,103,106,109,85,102,8,7,73,111,123,10,3,79,43,15,119,121,20,117,89,125,51,90,52,139,92,132,134,135,27,58,97,32,131],udev:57,confirm:[38,65,25],rpm:57,definit:[52,48,119,123],token:119,exit:104,inject:[27,56,32],refer:[135,123,32,92],test_auth:[0,30,92,125,109],power:[134,48],broker:[52,92,119],bazaar:70,central:131,stand:70,act:[56,117,90],bond:117,processor:85,road:73,ansolab:73,euca2ool:[38,121,79,57,15,25,32],effici:27,terminolog:[134,40],unregist:119,cloudserv:27,your:[121,27,104,40,79,70,90,51,73],loc:119,log:[142,70,67],her:85,disk_id:[134,40],start:[38,20,104,27,79,139,43,117,73,8,65,56],interfac:[134,123,27,104,57,40,79,90,52,139,15,117,56,119],low:119,lot:104,fixed_rang:[139,90],programmat:52,fcbj2non:73,bundl:[121,27,51,43,73,8,25],regard:[134,40],interface_stat:[134,40],amongst:10,wrap_except:67,categor:[121,119,67],congratul:73,pull:104,dirti:[92,119],possibl:[79,90],"default":[121,27,104,79,90,57,119,117,56,67],bucket:[0,125,60,90,92,73,93,119],virsh:[73,104],expect:[38,73],uid:[38,119],creat:[85,8,7,73,38,40,79,43,117,119,121,20,15,51,90,52,139,25,56,134,27,32],certain:[121,79],use_ppa:65,file:[134,121,20,88,10,104,106,79,51,90,135,57,70,92,73,93,85,43],again:73,googl:10,fakeldap:[11,0,40,125,92],personnel:121,hybrid:[48,92,119,123],field:121,cleanup:104,collis:7,rdbm:79,you:[104,85,70,8,73,38,10,40,79,43,15,121,20,48,51,90,57,131,27,142,65,92],import_class:[27,43],architectur:[123,104,52,142,131,15],fake_subdomain:[79,90],track:[134,40,79],vocabulari:119,pool:[48,27,117],cloudpip:[27,0,1,125,51,135,92,117],directori:[38,104,51,90,73,119],descript:[123,20,55,27,79,52,139,43,85,67],goe:51,chown:90,libvirt_typ:104,potenti:[131,119],escap:[134,40],cpu:[134,40],demo:8,all:[134,121,20,104,10,57,40,27,70,79,139,142,43,15,117,85,90,56,119,131],dist:73,consider:142,illustr:[27,117],lack:69,ala:106,runtime_flag:[0,125,92,67,120],abil:[48,121],follow:[38,20,104,121,106,27,51,79,52,70,123,43,15,117,73,90,85,119],disk:[134,38,0,104,106,40,79,125,135,57,92,7,100],secretkei:[121,20,43],auth_manag:[27,43],init:90,program:[48,123,79,92],project_id:[121,85,51],liter:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],far:[134,40],host_ip:104,managingsecur:123,util:[27,0,119,48,125,85,57,43,15,62,132,25,67,92],mechan:[48,27],failur:[123,69],veri:[123,27,79,70,90,57,67],typetest:67,vishvananda:90,bridge_stp:90,list:[134,38,20,129,104,121,40,79,51,90,139,43,73,65,85],unrescu:[134,40],stderr:67,user_nam:90,fakeldapdriv:79,past:[38,73],syslog:37,zero:79,design:[123,27,70],pass:[134,40,51,52,117,56,119],further:[134,40,92,119],what:[123,20,48,79,90,43],sun:119,section:[20,27,79,139,43,15,92],abl:[8,79,104],brief:[139,55,123],overload:119,rackspac:[52,73,27],delet:[134,121,20,104,40,85,52,139,43,25,119],version:[38,20,104,79,70,57,15,25,119],intersect:[121,27],method:[134,10,40,79,51,132,119],contrast:[134,40],full:[134,40],variat:56,trunk:[104,117],renegoti:51,modifi:[121,20,25,43],valu:[85,104],search:[123,92],mac:[56,117],amount:[48,27,43,131],pick:104,action:[121,20,142,43],via:[27,15,10,51,43,117,119,131],depart:121,ldapdriv:[0,104,125,79,92,119,133],filenam:[121,85],establish:[52,119],select:[139,20,90],rackspacecloud:73,xenwiki:79,stdout:67,regist:[73,25,119,70],two:[27,56,117,15],organizationnam:73,virt:[34,134,27,0,40,125,4,5,71,43,46,92],more:[38,20,104,10,106,27,79,139,43,15,117,73,90,32,119],flat:[123,27,90,139,131,15,56],flag:[121,20,0,10,123,106,125,27,51,79,139,57,129,43,15,119,132,90,112,67,92],particular:[79,20,27,43],cacert:73,isloat:123,none:[73,85,121,67,139],endpoint:[52,135,92,109],hour:[48,51],cluster:[117,90],outlin:[132,27],dev:79,learn:[70,15,79],deb:65,dhcpbridg:73,scan:119,challeng:[92,119],registr:119,share:[48,27,32,119,131],accept:132,get_console_output:[134,40],minimum:[119,117],cours:73,interconnect:119,goal:[142,117],secur:[121,27,55,104,123,106,51,142,43,117,32,119,131],rather:[27,131],anoth:[27,79,90],divis:132,orukptrc:73,simpl:[27,0,97,10,125,51,90,43,138,92],distro:[73,57,123],resourc:[85,48,79,52,139,15],vlan:[123,27,55,104,10,106,79,51,90,52,139,131,15,117,7,85,56],rbac:[121,27,92,119],pat:73,datastor:[106,79,119],associ:[134,123,27,106,40,85,51,117,73,25,119],github:90,onto:[56,117],author:[121,20,135,27,52,92,25,119,43],callback:131,allocate_address:27,egg:73,"1b0bh8n":73,help:[25,131,90],soon:[51,10],uvh:57,held:[134,40],i386:57,through:[121,27,104,10,57,48,79,51,90,52,139,142,70,73,32],paramet:[134,40,119],style:[27,56,119],binari:[27,79,10,131],might:104,computenod:106,wouldn:38,good:[79,70],"return":[134,121,85,40,79,132,119],timestamp:119,framework:52,detach:[52,134,27,25,40],mysql_pass:[104,90],document:[134,123,27,104,106,40,79,70,90,132,32],troubleshoot:73,datastructur:[134,40],authent:[135,27,10,90,52,142,92,119],easili:[52,121,90],achiev:[27,119],test_ratelimit:[0,125,92,50,109],processexecutionerror:67,found:[123,27,117,10],intervent:48,subsystem:[57,79],"340sp34k05bbe9a7":73,api_integr:[0,125,92,82,109],hard:[27,104],connect:[134,20,0,125,117,48,40,27,51,139,43,46,106,73,119,92],todd:[7,106,104,123],cc_host:90,http:[123,20,48,27,70,79,52,57,131,73,65,90,67],beyond:90,todo:[117,123,55,104,48,111,40,90,52,127,142,92,15,106,7,65,56],event:[52,79,70],ftp:57,research:123,john_project:[121,85],print:[139,121],postgr:90,proxi:[119,90],advanc:15,pub:57,dhcpdiscov:27,reason:90,base:[134,38,20,10,121,48,40,27,79,52,123,43,15,119,132,73,90,67,131],ask:70,loop0:79,recv:65,bash:[121,90],launch:[121,27,117,79,51,43,15,73,56,85,119,92],script:[38,20,104,121,79,51,90,70,43,73,65,32],heartbeat:90,assign:[121,20,106,27,52,139,43,117],use_mysql:[104,90],feed:70,major:[52,131],feel:[57,70],misc:[135,92,67],number:[134,20,40,27,51,90,139,43,117,7,85,119],done:[134,38,104,123,48,40,57,65],blank:[121,20,43],stabl:[123,65],losetup:79,differ:[27,104,10,48,79,139,131,117,109,132,56],guest:[56,90],projectnam:[20,85,43],interact:[121,27,10,123,79,52,139,15],dbdriver:[0,104,125,41,79,92,119],scheme:[134,40],store:[134,38,0,125,123,66,40,79,70,52,92,65,93,32,119,131],schema:119,option:[134,20,40,79,90,43,65,32],relationship:[92,119],similarli:106,part:[8,123,79,73],eventu:90,notfound:[134,40,67],kind:[139,131],yum:57,remot:27,seamlessli:119,bridg:[123,27,104,10,90,139,131,117,56,119],consumpt:85,list_interfac:[134,40],toward:131,comput:[0,106,70,72,73,38,10,40,79,43,117,119,20,47,123,48,125,90,52,139,92,56,134,27,107,57,58,142,100,131],packag:[38,65,79,10,73],dedic:[117,67,119],euca:[104,73,25,32,90],outbound:117,built:[134,79,131],lib:[38,73],self:48,also:[134,123,20,104,10,48,40,27,51,79,57,70,43,117,106,90,119],folk:90,gpgcheck:57,pipelin:[134,40],distribut:[106,57,79,104],"160gb":27,previou:73,quota:[20,0,27,125,85,43,63,119,92],pipelib:[0,1,92,51,125],most:[134,27,104,10,106,40,90,131,117,25,56],plan:119,dai:[48,25,40,73],bzr:[57,65,104,70,90],clear:106,rangetest:67,clean:[134,40,104],latest:[57,38,65,90,73],visibl:117,wsgi:[0,87,10,125,92,67],cdn:[73,79],session:[0,104,69,125,92,39],cdp:119,fine:104,find:[15,70,131,117,25,92],firewal:[106,142,119,117,121],copyright:20,networkmanag:10,solut:131,queu:[52,27],instancemonitor:73,factor:79,localitynam:73,unus:[7,134,40,117],express:106,"12t21":73,mainten:[27,43],fastest:[73,15],restart:90,rfc:117,common:[121,79,90,135,92,117,109,67],remov:[121,85,20,52,43,56,119],crl:51,arp:[56,119,117],certif:[27,51,43,117,73,119,92],set:[38,20,104,10,121,79,51,90,52,127,43,117,85,119],ifconfig:104,see:[38,20,129,104,121,106,27,70,79,57,123,43,15,7,73,65,32,119],bare:90,arg:[20,43],ari:73,kpartx:57,experi:79,signatur:[73,121],c2477062:73,isol:[85,117],ipython:[20,43],both:[27,106,90,142,25,56,67],last:[20,43,90],boto:79,context:[61,0,125,92,67],load:[27,10,79,57,43,132,73],simpli:[121,56],point:[132,8,70],tgz:73,schedul:[38,27,0,103,138,135,131,2,49,125,79,97,90,52,139,43,73,92],addressingnod:106,shutdown:[134,40],linux:[123,27,79,51,139,117,56],throughout:[52,67],backend:[134,123,106,79,131,119],g06qbntt:73,java:48,devic:[27,10,48,90,57,131],due:[134,40],secret:[121,20,27,43,73,119],strategi:[139,27,10],ram:104,fire:90,imag:[0,106,109,85,5,8,73,111,123,25,55,10,43,15,118,119,121,20,88,125,51,90,52,91,92,93,56,134,27,137,113,32,131],understand:[132,27],demand:[7,48],look:[106,119,90],straight:27,"while":[38,131,104,117,106],kick:90,abov:51,error:[73,121,67,90],gmt:73,ami:[104,73,32,119,79],xvzf:73,larger:[27,131],vol:25,block_stat:[134,40],itself:119,cento:[73,57],decor:67,bridge_maxwait:90,network_manag:[10,90],minim:132,belong:117,nanosecond:[134,40],read:[134,38,27,40,79,70,90,139,15,73,65],decod:51,zope:79,higher:[134,40],novarc:[121,20,85,90,43,73],optim:[48,131,90],wherea:121,user:[104,85,8,73,38,55,43,117,119,121,20,15,48,51,90,52,139,131,25,27,142,32],robust:27,typic:[52,79,70,119],recent:131,stateless:119,lower:92,task:[52,123,132,15],entri:[38,90,52,117,73,56],nova_comput:10,pymox:79,spend:104,propos:119,explan:131,vpn_public_port:51,collabor:70,shape:48,mysql:[104,57,79,90],openstack:[0,70,36,6,109,73,114,38,10,40,81,117,118,20,125,86,22,123,124,50,90,23,57,130,92,78,27,59,30,98,65,33],cut:79,vswitch:139,ganglia:37,subsequ:52,build:[104,79,90,57,73,8],bin:[38,57,90,73],vendor:[52,119],format:[121,119],nginx:57,bit:[132,73,27],formal:70,success:121,docutil:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],resolv:[73,90],manifest:73,collect:[48,70],princip:85,"boolean":90,popular:123,modprob:57,scapi:106,encount:79,creation:[134,27,40,90,43,117,119],some:[134,123,27,104,10,40,70,57,92,132,131],back:[134,73,40,79,70],understood:142,sampl:[123,85,48,79,15,73],flatmanag:[10,90],scale:[48,123],novascript:90,"512mb":104,prot:[20,43],per:[27,79,51,135,92,117,56,119],pem:[73,32,104],larg:[7,48,119,10],cloud:[0,104,70,109,73,123,12,79,117,119,121,20,15,48,125,90,52,139,92,27,142,143],stateorprovincenam:73,nose:79,machin:[134,38,27,104,10,40,79,51,90,52,131,15,117,73,119],run:[104,106,7,73,38,10,40,79,43,117,119,20,15,48,51,90,52,139,131,132,25,56,134,27,57,65,32],agreement:70,step:[57,38,65,90,73],prerequisit:38,wget:[73,57],fakemanag:[40,92],"1gb":[79,117],block:[134,27,10,40,51,52,57,131,119],instance_typ:[134,0,72,125,92],within:[121,85,104,106,117,7,119],ensur:[52,57,142],institut:48,question:70,"long":[134,40,51,132,73,119],custom:[134,40],includ:[121,20,27,70,79,52,43,65,90,67],gflag:[20,129,27,10,79,57,43,65],routingnod:106,netomata:106,blueprint:70,properli:[],openstackppa:65,link:[123,27,65,70,131],translat:[134,40],eauth:[92,119],don:[48,121,79,90],line:[38,123,79,90,73,25,32],objectstore_unittest:[77,93,0,92,125],sdk:79,info:[73,40,111,51,123],cia:119,consist:[139,85,51,106],caller:[134,40],planet:70,similar:[52,27,56,119,117],my_file_path:79,ec2_url:90,repres:[134,27,40,117],chat:70,home:[38,90],curl:[57,79],amqp:[106,27,131,90],titl:[0,125],invalid:67,nat:[106,117],scrub:[85,104],gigabyt:[20,27,43],lucid:[73,65,104,90],vice:[134,40],loopback:90,depth:131,nasa:123,addgroup:90,pluggabl:[123,27,43,104],code:[134,27,104,79,70,90,51,117,73,132,8,65,67],partial:[134,40],edg:79,queri:[52,106,119,90],quarantin:121,privat:[123,27,48,51,139,117,106,73,32,119],elsewher:[134,40],friendli:70,send:[73,32,10],sens:132,sent:73,unzip:[38,121,90,73],volum:[101,0,85,7,73,123,55,10,40,3,79,43,119,20,125,90,135,131,25,52,27,92],spoof:[56,117],num_cpu:[134,40],relev:[52,70,90],"try":73,race:7,"0ubuntu2":38,sourcabl:85,pleas:57,fortun:15,uniqu:[134,40],cron:51,download:[48,25,57],append:85,compat:[52,123,25,119,90],index:[123,92],access:[121,20,117,48,27,51,43,15,73,85,119,92],fakeaoedriv:[40,92],can:[104,85,70,73,38,10,40,79,43,15,119,121,20,117,123,48,51,90,139,131,132,134,27,57,142,65,32],"17d1333t97fd":73,ec2_secret_kei:73,let:[121,40],ubuntu:[38,104,123,79,90,73,65],ioerror:67,becom:121,sinc:[121,119,10,90],convert:131,iface_id:[134,40],hypervisor:[52,134,40,131],euca_repo_conf_eof:57,technolog:[48,27,139,90],cert:[73,51,90],network_unittest:[64,0,92,125,106],fakeconnect:[134,40],chang:[121,104,10,79,51,90,57,119],chanc:[2,0,125,92,97],revoc:[92,51],control:[134,121,20,117,123,48,40,27,70,90,52,139,15,106,85,56,119],danger:32,revok:[25,51],appli:[119,90],app:10,gatewai:[56,117,90],apt:[38,65,79,90],api:[0,104,69,36,6,109,73,110,38,114,10,135,12,40,79,81,142,117,83,17,18,119,84,121,85,125,86,22,123,124,131,50,51,90,23,130,92,78,94,134,52,27,137,29,59,30,118,98,143,32,33],redi:[38,65,79],test_flavor:[81,0,92,125,109],pxe:90,from:[121,20,104,123,48,27,51,79,52,70,142,43,117,7,73,65,56,85],usb:27,zip:[121,20,85,51,90,43,73],commun:[123,27,106,79,70,52,142,131,117],next:[7,90],implic:52,few:57,usr:[73,57,90],inet:90,remaind:119,rabbit:[43,90],account:[119,70],retriev:[134,73,40,131],carrot:[57,79],obvious:7,fetch:119,employe:121,quickstart:[73,123,104,15,90],tar:[73,79,57],process:[38,0,96,10,123,48,125,51,90,52,92,15,119,73,67,104],lock:52,sudo:[38,104,79,90,73,8,65],high:[123,142,51,90],tag:[27,117,70],onlin:70,attach_volum:[134,40],gcc:57,rabbit_host:90,filepath:79,instead:[123,27,43,10,104],aoe_rules_eof:57,"0a520304":73,exit_cod:67,physic:[52,139,27,119,90],alloc:[121,85,106,51,52,117,7,25,119],essenti:[27,43],bind:90,counter:[134,40],issu:[52,90],allow:[134,121,27,40,79,51,139,131,117,132,32,119],move:[131,27,43,90],meter:48,lockfil:79,chosen:[134,40],infrastructur:[52,48,27,119,117],openvpn:51,therefor:[32,117],crash:106,python:[38,20,129,27,79,57,43,132,73,65,90,131],auto:90,handi:121,auth:[27,0,104,59,11,131,40,41,68,125,79,116,43,109,133,119,92],devel:57,front:119,strive:123,anyth:[132,119],edit:[57,65,104,70,90],test_sharedipgroup:[0,86,92,125,109],get_connect:[134,40],mode:[123,27,117,57,51,90,139,15,56],use_project_ca:51,cloudfil:73,product:[38,25,117,90],consum:48,"static":106,ec2:[134,121,27,0,137,10,123,29,12,40,79,125,90,92,109,83,85,94],citrix:[123,79,117],our:[73,70],itsec:[121,20,43],fake_flag:[0,125,92,67,105],special:[27,85,117],out:[123,10,48,79,117,73,56],variabl:[121,20,85,43,104],instance_id:[134,40],contigu:117,req:[134,57,40],reboot:[134,40,52,73,25,32,119],identifi:[134,40],categori:[20,43],suitabl:79,hardwar:[123,85,106,79,52,117,37,119],dhcp:[27,10,106,90,139,117,56],statist:[134,40],await:73,insid:[117,27,70,51,104],dictionari:[134,40],releas:[123,65,25,57],could:[123,106,79,139,117,8,119],put:[38,104,123,51,73,111,32],segreg:117,keep:[134,27,40,51,90,56],length:73,enforc:[106,119,117],outsid:[139,51],organiz:85,softwar:[27,48,79,90,52,73],list_inst:[134,40],echo:[65,90],vlan_start:139,puppet:90,owner:[121,90],prioriti:[123,104],newus:8,unknown:67,licens:70,mkdir:90,system:[104,70,109,7,73,38,10,79,117,119,121,85,15,123,48,90,139,92,132,56,27,57,142,32,131],messag:[38,27,121,106,79,90,52,131,65,67],attach:[134,27,10,40,52,131,7,25,56,119],attack:[142,119],volume_group:79,aoetool:[57,79],termin:[121,27,104,52,25,32,119],"0x10001":73,"final":57,shell:[132,20,43],eavesdrop:70,volumedriv:132,shelf:7,rsa:73,botleneck:57,rst:[123,0],haven:[121,67],structur:[85,119],metadatarequesthandl:[83,0,92,125,109],seriou:123,sec:119,py2:73,cc_addr:90,have:[134,121,27,104,123,48,40,79,51,90,117,73,65,56,119],tabl:[123,92,119,90],need:[134,121,20,104,123,48,40,27,51,79,57,43,117,132,73,65,90,119],border:142,rout:[52,57,79,10,117],accuraci:57,which:[134,38,27,10,106,40,85,70,90,52,57,131,65,119],datacent:90,soap:119,singl:[38,104,123,70,90,52,57,7,73,65,56,119],courtesi:67,unless:104,deploy:[123,10,48,79,70,90,131,15],discov:[7,57],deploi:[48,90],vish:[7,123],segment:117,why:48,url:[57,119],request:[134,121,85,10,40,70,52,92,73,119,131],snapshot:25,xenapi:[34,134,0,125,79,40,92],determin:[52,79],occasion:52,fact:106,verbos:[79,90],bring:48,cloudcontrol:106,locat:[73,119,90],launchpad:[104,20,65,70,90],start_on_boot:90,should:[134,121,104,123,48,40,79,90,132,117,7,73,67],local:[73,27,121],contribut:[123,117,70],familiar:15,autom:48,csrc:[48,123],graduat:73,increas:90,lazyplugg:[27,43],enabl:[123,139,48,52,57,142],organ:[139,123,121],"4e6498a2":73,xmlsoft:57,sudoer:104,integr:[135,119,92,88,90],partit:27,contain:[134,20,48,40,85,90,117],grab:[7,65,56,51],nist:[48,123],view:20,debconf:90,legaci:[106,92,119],bridge_fd:90,knowledg:[134,40,70],packet:[134,40],elast:[48,117],network_s:[139,90],mountainview:73,backchannel:119,modulu:73,quota_unittest:[108,0,125,92,119],pattern:[20,43],boundari:142,written:[123,57],cloud101:123,progress:38,email:48,argcheck:67,kei:[121,20,123,106,27,51,142,43,117,73,65,85,32,119],ec2_access_kei:73,lvm:[7,52],job:119,entir:[106,79],disconnect:51,eclips:48,problem:[7,38,79,104],addit:[123,79,57,117,56,119],plugin:[27,43],admin:[121,20,0,125,117,123,106,109,85,51,90,139,43,15,73,8,94,92],wsgiref:79,vgcreat:79,etc:[123,27,104,48,79,90,57,106,73,65,56,119],instanc:[104,106,85,7,73,55,40,43,117,119,121,20,15,48,51,52,139,25,56,134,27,142,32],rx_err:[134,40],runinst:119,vpn_public_ip:51,guidelin:123,chmod:[73,32,104],distinguish:73,rpc:[27,0,10,106,125,43,95,67,92],respect:139,qemu:[57,27,104],quit:131,addition:119,compos:52,compon:[123,129,106,79,90,52,92,109,37,131],json:73,uroot:90,electr:48,immedi:117,upcom:70,inbound:117,assert:119,rd_byte:[134,40],present:[27,79],replic:[131,10,90],multi:[73,123,90],align:119,defin:[132,121,27,119,90],ultra:10,layer:[134,69,40,135,92,117,119],libxml2:57,flags_unittest:[122,0,125,92,67],archiv:[73,90],fiddl:104,welcom:[123,70],networkcontrol:106,parti:119,began:[134,40],member:85,handl:[52,117,67],"35z":73,slave:90,hostnam:52,upon:[52,121],libvirt:[134,40,79,90,131,7],m2crypto:79,access_unittest:[144,0,125,92,119],mysql_prese:90,audit:[142,119],off:[119,90],center:[48,92,119],well:[38,121,79,70,131,109,67],exampl:[121,20,104,123,48,27,43,117,85,56,32,119],command:[104,106,85,73,123,79,43,15,121,20,51,90,52,139,131,132,25,27,57,142,65,32],choos:90,usual:[7,132,70],xen:[134,27,40,79,131],obtain:[20,56,43],virtual:[134,135,27,104,10,40,51,52,139,92,73,119,131],rx_byte:[134,40],simultan:117,adv:65,web:[27,48,52,131,8,119],rapid:48,priorit:119,add:[121,20,55,104,123,79,85,90,57,43,117,73,25,56,32,119,92],valid:[0,104,115,125,92,67],notauthor:[85,67],match:[73,119],pubsub:119,branch:[104,90],howto:[123,92],prese:90,ldconfig:38,realiz:52,five:[121,20,43,119],know:[27,90],password:[104,32,90],python2:[73,57],insert:[106,117,123],resid:15,like:[123,27,48,79,70,90,57,131,73,56,119],cloud_unittest:[0,9,92,125,109],necessari:52,page:[123,27,79,70,92,65,32],project_nam:90,eucalyptu:57,twitter:70,"export":[121,20,85,90,43,7,73],trucker:73,small:[73,27,43,117,131],librari:[135,57,79,67,92],tmp:73,feder:119,lead:132,broad:[52,15],avoid:[7,123,131],reconsid:132,leav:[121,20,43],investig:119,usag:[121,32,15,104],host:[38,20,104,123,106,57,27,51,79,52,139,70,43,15,117,132,73,65,90,56,131],although:[132,85,104],user_id:[121,85],about:[134,123,20,104,40,27,70,79,139,15],actual:[27,79,90],anyjson:79,own:[134,123,40,117,51],objecstor:[93,92],import_object:[27,43],easy_instal:57,automat:[121,27,117,51,90],automak:57,"56m":73,rectifi:123,merg:[7,123],pictur:119,transfer:[52,48,40,134,142],snmp:119,mykei:[73,119],much:[48,27,43],"var":[38,104],cloudadmin:90,"function":[134,121,27,117,40,79,52,43,15],baseurl:57,inlin:79,bug:[20,70],deassoci:119,count:79,made:[134,73,40,90],wish:[27,85],googlecod:[57,79],displai:[20,85,43],asynchron:[134,40,119],record:[106,119],below:[123,20,79,90,131,43],limit:[121,27,85,92,117,119],signer:[0,116,92,119,125],otherwis:[57,121,20,43,79],dmz:117,epel:57,pii:119,evalu:[52,90],dure:90,twist:[57,65,131],implement:[123,27,106,40,79,51,139,92,117,132,56,119],list_disk:[134,40],mountpoint:[134,40],pip:79,probabl:[132,27,104,90],boot:[27,90,117,73,56,32],detail:[134,20,27,106,40,79,90,43,117,132,73,119,92],mehod:73,other:[121,27,104,69,123,79,70,90,52,139,57,142,131,117,132,73,119],futur:[135,139,92,88],rememb:121,varieti:104,rx_packet:[134,40],cpu_tim:[134,40],"100m":79,singleton:132,debian:[73,65,57],stai:[134,27,40],sphinx:123,nogroup:38,reliabl:27,rule:[121,106,51,57,117,119],emerg:48},objtypes:{"0":"py:module"},titles:["<no title>","The nova..cloudpipe.pipelib Module","The nova..scheduler.chance Module","The nova..volume.manager Module","The nova..virt.libvirt_conn Module","The nova..virt.images Module","The nova..tests.api.openstack.test_servers Module","Storage Volumes, Disks","Live CD","The nova..tests.cloud_unittest Module","Nova Daemons","The nova..auth.fakeldap Module","The nova..api.ec2.cloud Module","The nova..adminclient Module","The nova..tests.twistd_unittest Module","Administration Guide","The nova..tests.compute_unittest Module","The nova..tests.api.fakes Module","The nova..db.api Module","The nova..db.sqlalchemy.models Module","nova-manage","The nova..tests.declare_flags Module","The nova..tests.api.openstack.test_images Module","The nova..api.openstack.faults Module","The nova..objectstore.handler Module","Euca2ools","Installing the Live CD","Nova Concepts and Introduction","The nova..network.linux_net Module","The nova..api.ec2.apirequest Module","The nova..tests.api.openstack.test_auth Module","The nova..tests.rpc_unittest Module","Managing Instances","The nova..api.openstack.sharedipgroups Module","The nova..virt.xenapi Module","The nova..server Module","The nova..api.openstack.flavors Module","Monitoring","Installing on Ubuntu 10.10 (Maverick)","The nova..db.sqlalchemy.session Module","Fake Drivers","The nova..auth.dbdriver Module","The nova..tests.process_unittest Module","The nova-manage command","The nova..service Module","The nova..tests.auth_unittest Module","The nova..virt.connection Module","The nova..compute.monitor Module","Cloud Computing 101","The nova..scheduler.driver Module","The nova..tests.api.openstack.test_ratelimiting Module","Cloudpipe – Per Project Vpns","Service Architecture","The nova..tests.validator_unittest Module","The nova..test Module","Object Model","Flat Network Mode (Original and Flat)","Installation on other distros (like Debian, Fedora or CentOS )","The nova..compute.manager Module","The nova..api.openstack.auth Module","The nova..objectstore.bucket Module","The nova..context Module","The nova..utils Module","The nova..quota Module","The nova..tests.network_unittest Module","Installing on Ubuntu 10.04 (Lucid)","The nova..objectstore.stored Module","Common and Misc Libraries","The nova..auth.manager Module","The Database Layer","Getting Involved","The nova..virt.fake Module","The nova..compute.instance_types Module","Installing Nova on a Single Host","The nova..tests.volume_unittest Module","The nova..exception Module","The nova..tests.real_flags Module","The nova..tests.objectstore_unittest Module","The nova..api.openstack.backup_schedules Module","Getting Started with Nova","The nova..tests.api_unittest Module","The nova..tests.api.openstack.test_flavors Module","The nova..tests.api_integration Module","The nova..api.ec2.metadatarequesthandler Module","The nova..tests.api.test_wsgi Module","Managing Projects","The nova..tests.api.openstack.test_sharedipgroups Module","The nova..wsgi Module","Glance Integration - The Future of File Storage","The nova..network.manager Module","Installing Nova on Multiple Servers","The nova..objectstore.image Module","Developer Guide","Objectstore - File Storage Service","The nova..api.ec2.admin Module","The nova..rpc Module","The nova..process Module","Scheduler","The nova..tests.api.openstack.fakes Module","The nova..crypto Module","The nova..compute.disk Module","The nova..volume.driver Module","The nova..manager Module","The nova..scheduler.manager Module","Nova Quickstart","The nova..tests.fake_flags Module","Networking","The nova..compute.power_state Module","The nova..tests.quota_unittest Module","API Endpoint","The nova..db.sqlalchemy.api Module","Managing Images","The nova..flags Module","The nova..image.service Module","The nova..tests.api.openstack.test_faults Module","The nova..validate Module","The nova..auth.signer Module","VLAN Network Mode","The nova..api.openstack.images Module","Authentication and Authorization","The nova..tests.runtime_flags Module","Managing Users","The nova..tests.flags_unittest Module","Welcome to Nova’s documentation!","The nova..tests.api.openstack.test_api Module","<no title>","The nova..tests.service_unittest Module","Setting up a development environment","The nova..fakerabbit Module","Flags and Flagfiles","The nova..api.openstack.servers Module","Nova System Architecture","Services, Managers and Drivers","The nova..auth.ldapdriver Module","Virtualization","Module Reference","The nova..twistd Module","The nova..api.ec2.images Module","The nova..scheduler.simple Module","Networking Overview","The nova..tests.virt_unittest Module","The nova..tests.scheduler_unittest Module","Security Considerations","The nova..api.cloud Module","The nova..tests.access_unittest Module"],objnames:{"0":"Python module"},filenames:["code","api/nova..cloudpipe.pipelib","api/nova..scheduler.chance","api/nova..volume.manager","api/nova..virt.libvirt_conn","api/nova..virt.images","api/nova..tests.api.openstack.test_servers","devref/volume","installer","api/nova..tests.cloud_unittest","adminguide/binaries","api/nova..auth.fakeldap","api/nova..api.ec2.cloud","api/nova..adminclient","api/nova..tests.twistd_unittest","adminguide/index","api/nova..tests.compute_unittest","api/nova..tests.api.fakes","api/nova..db.api","api/nova..db.sqlalchemy.models","man/novamanage","api/nova..tests.declare_flags","api/nova..tests.api.openstack.test_images","api/nova..api.openstack.faults","api/nova..objectstore.handler","adminguide/euca2ools","livecd","nova.concepts","api/nova..network.linux_net","api/nova..api.ec2.apirequest","api/nova..tests.api.openstack.test_auth","api/nova..tests.rpc_unittest","adminguide/managing.instances","api/nova..api.openstack.sharedipgroups","api/nova..virt.xenapi","api/nova..server","api/nova..api.openstack.flavors","adminguide/monitoring","adminguide/distros/ubuntu.10.10","api/nova..db.sqlalchemy.session","devref/fakes","api/nova..auth.dbdriver","api/nova..tests.process_unittest","adminguide/nova.manage","api/nova..service","api/nova..tests.auth_unittest","api/nova..virt.connection","api/nova..compute.monitor","cloud101","api/nova..scheduler.driver","api/nova..tests.api.openstack.test_ratelimiting","devref/cloudpipe","service.architecture","api/nova..tests.validator_unittest","api/nova..test","object.model","adminguide/network.flat","adminguide/distros/others","api/nova..compute.manager","api/nova..api.openstack.auth","api/nova..objectstore.bucket","api/nova..context","api/nova..utils","api/nova..quota","api/nova..tests.network_unittest","adminguide/distros/ubuntu.10.04","api/nova..objectstore.stored","devref/nova","api/nova..auth.manager","devref/database","community","api/nova..virt.fake","api/nova..compute.instance_types","adminguide/single.node.install","api/nova..tests.volume_unittest","api/nova..exception","api/nova..tests.real_flags","api/nova..tests.objectstore_unittest","api/nova..api.openstack.backup_schedules","adminguide/getting.started","api/nova..tests.api_unittest","api/nova..tests.api.openstack.test_flavors","api/nova..tests.api_integration","api/nova..api.ec2.metadatarequesthandler","api/nova..tests.api.test_wsgi","adminguide/managing.projects","api/nova..tests.api.openstack.test_sharedipgroups","api/nova..wsgi","devref/glance","api/nova..network.manager","adminguide/multi.node.install","api/nova..objectstore.image","devref/index","devref/objectstore","api/nova..api.ec2.admin","api/nova..rpc","api/nova..process","devref/scheduler","api/nova..tests.api.openstack.fakes","api/nova..crypto","api/nova..compute.disk","api/nova..volume.driver","api/nova..manager","api/nova..scheduler.manager","quickstart","api/nova..tests.fake_flags","devref/network","api/nova..compute.power_state","api/nova..tests.quota_unittest","devref/api","api/nova..db.sqlalchemy.api","adminguide/managing.images","api/nova..flags","api/nova..image.service","api/nova..tests.api.openstack.test_faults","api/nova..validate","api/nova..auth.signer","adminguide/network.vlan","api/nova..api.openstack.images","devref/auth","api/nova..tests.runtime_flags","adminguide/managing.users","api/nova..tests.flags_unittest","index","api/nova..tests.api.openstack.test_api","api/autoindex","api/nova..tests.service_unittest","devref/development.environment","api/nova..fakerabbit","adminguide/flags","api/nova..api.openstack.servers","devref/architecture","devref/services","api/nova..auth.ldapdriver","devref/compute","devref/modules","api/nova..twistd","api/nova..api.ec2.images","api/nova..scheduler.simple","adminguide/managing.networks","api/nova..tests.virt_unittest","api/nova..tests.scheduler_unittest","adminguide/managingsecurity","api/nova..api.cloud","api/nova..tests.access_unittest"]}) \ No newline at end of file diff --git a/doc/build/html/service.architecture.html b/doc/build/html/service.architecture.html index eb06a8006..347f0e9c0 100644 --- a/doc/build/html/service.architecture.html +++ b/doc/build/html/service.architecture.html @@ -47,6 +47,9 @@
  • index
  • +
  • + modules |
  • next |
  • @@ -174,6 +177,9 @@
  • index
  • +
  • + modules |
  • next |
  • diff --git a/doc/source/adminguide/nova.manage.rst b/doc/source/adminguide/nova.manage.rst index 89fb39669..4235d97b1 100644 --- a/doc/source/adminguide/nova.manage.rst +++ b/doc/source/adminguide/nova.manage.rst @@ -27,37 +27,146 @@ administration and ongoing maintenance of nova, such as user creation, vpn management, and much more. The standard pattern for executing a nova-manage command is: - ``nova-manage []`` For example, to obtain a list of all projects: - ``nova-manage project list`` -You can run without arguments to see a list of available command categories: - +Run without arguments to see a list of available command categories: ``nova-manage`` -You can run with a category argument to see a list of all commands in that -category: +Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. +You can also run with a category argument such as user to see a list of all commands in that category: ``nova-manage user`` +These sections describe the available categories and arguments for nova-manage. + +Nova User +~~~~~~~~~ + +``nova-manage user admin `` + + Create an admin user with the name . + +``nova-manage user create `` + + Create a normal user with the name . + +``nova-manage user delete `` + + Delete the user with the name . + +``nova-manage user exports `` + + Outputs a list of access key and secret keys for user to the screen + +``nova-manage user list`` + + Outputs a list of all the user names to the screen. + +``nova-manage user modify `` + + Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. + +Nova Project +~~~~~~~~~~~~ + +``nova-manage project add `` + + Add a nova project with the name to the database. + +``nova-manage project create `` + + Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). + +``nova-manage project delete `` + + Delete a nova project with the name . + +``nova-manage project environment `` + + Exports environment variables for the named project to a file named novarc. + +``nova-manage project list`` + + Outputs a list of all the projects to the screen. + +``nova-manage project quota `` + + Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. + +``nova-manage project remove `` + + Deletes the project with the name . + +``nova-manage project zipfile`` + + Compresses all related files for a created project into a zip file nova.zip. + +Nova Role +~~~~~~~~~ + +nova-manage role [] +``nova-manage role add <(optional) projectname>`` + + Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. + +``nova-manage role has `` + Checks the user or project and responds with True if the user has a global role with a particular project. + +``nova-manage role remove `` + Remove the indicated role from the user. Nova Shell ~~~~~~~~~~ -* shell bpython - * start a new bpython shell -* shell ipython - * start a new ipython shell -* shell python - * start a new python shell -* shell run - * ??? -* shell script: Runs the script from the specifed path with flags set properly. - * arguments: path +``nova-manage shell bpython`` + + Starts a new bpython shell. + +``nova-manage shell ipython`` + + Starts a new ipython shell. + +``nova-manage shell python`` + + Starts a new python shell. + +``nova-manage shell run`` + + Starts a new shell using python. + +``nova-manage shell script `` + + Runs the named script from the specified path with flags set. + +Nova VPN +~~~~~~~~ + +``nova-manage vpn list`` + + Displays a list of projects, their IP prot numbers, and what state they're in. + +``nova-manage vpn run `` + + Starts the VPN for the named project. + +``nova-manage vpn spawn`` + + Runs all VPNs. + +Nova Floating IPs +~~~~~~~~~~~~~~~~~ + +``nova-manage floating create `` + + Creates floating IP addresses for the named host by the given range. + floating delete Deletes floating IP addresses in the range given. + +``nova-manage floating list`` + Displays a list of all floating IP addresses. Concept: Flags -------------- diff --git a/doc/source/man/novamanage.rst b/doc/source/man/novamanage.rst index acd76aac0..0cb6c7c90 100644 --- a/doc/source/man/novamanage.rst +++ b/doc/source/man/novamanage.rst @@ -26,57 +26,148 @@ nova-manage controls cloud computing instances by managing nova users, nova proj OPTIONS ======= -Run without arguments to see a list of available command categories. Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. -:: -nova-manage +The standard pattern for executing a nova-manage command is: +``nova-manage []`` -You can also run with a category argument such as user to see a list of all commands in that category. -:: -nova-manage user +For example, to obtain a list of all projects: +``nova-manage project list`` -Here are the available categories and arguments for nova-manage: +Run without arguments to see a list of available command categories: +``nova-manage`` -nova-manage user [] - user admin Create an admin user with the name . - user create Create a normal user with the name . - user delete Delete the user with the name . - user exports Outputs a list of access key and secret keys for user to the screen - user list Outputs a list of all the user names to the screen. - user modify Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. - -nova-manage project [] - project add Add a nova project with the name to the database. - project create Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). - project delete Delete a nova project with the name . - project environment Exports environment variables for the named project to a file named novarc. - project list Outputs a list of all the projects to the screen. - project quota Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. - project remove Deletes the project with the name . - project zipfile Compresses all related files for a created project into a zip file nova.zip. +Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. + +You can also run with a category argument such as user to see a list of all commands in that category: +``nova-manage user`` + +These sections describe the available categories and arguments for nova-manage. + +Nova User +~~~~~~~~~ + +``nova-manage user admin `` + + Create an admin user with the name . + +``nova-manage user create `` + + Create a normal user with the name . + +``nova-manage user delete `` + + Delete the user with the name . + +``nova-manage user exports `` + + Outputs a list of access key and secret keys for user to the screen + +``nova-manage user list`` + + Outputs a list of all the user names to the screen. + +``nova-manage user modify `` + + Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. -nova-manage role [] - role add <(optional) projectname> Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. - role has Checks the user or project and responds with True if the user has a global role with a particular project. - role remove Remove the indicated role from the user. +Nova Project +~~~~~~~~~~~~ + +``nova-manage project add `` + + Add a nova project with the name to the database. + +``nova-manage project create `` + + Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). -nova-manage shell [] - shell bpython Starts a new bpython shell. - shell ipython Starts a new ipython shell. - shell python Starts a new python shell. - shell run Starts a new shell using python. - shell script Runs the named script from the specified path with flags set. +``nova-manage project delete `` + + Delete a nova project with the name . + +``nova-manage project environment `` + + Exports environment variables for the named project to a file named novarc. + +``nova-manage project list`` + + Outputs a list of all the projects to the screen. + +``nova-manage project quota `` + + Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. + +``nova-manage project remove `` + + Deletes the project with the name . + +``nova-manage project zipfile`` + + Compresses all related files for a created project into a zip file nova.zip. -nova-manage vpn [] - vpn list Displays a list of projects, their IP prot numbers, and what state they're in. - vpn run Starts the VPN for the named project. - vpn spawn Runs all VPNs. +Nova Role +~~~~~~~~~ + +nova-manage role [] +``nova-manage role add <(optional) projectname>`` + + Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. + +``nova-manage role has `` + Checks the user or project and responds with True if the user has a global role with a particular project. + +``nova-manage role remove `` + Remove the indicated role from the user. + +Nova Shell +~~~~~~~~~~ + +``nova-manage shell bpython`` + + Starts a new bpython shell. + +``nova-manage shell ipython`` + + Starts a new ipython shell. + +``nova-manage shell python`` + + Starts a new python shell. + +``nova-manage shell run`` + + Starts a new shell using python. + +``nova-manage shell script `` + + Runs the named script from the specified path with flags set. + +Nova VPN +~~~~~~~~ + +``nova-manage vpn list`` + + Displays a list of projects, their IP prot numbers, and what state they're in. + +``nova-manage vpn run `` + + Starts the VPN for the named project. + +``nova-manage vpn spawn`` + + Runs all VPNs. -nova-manage floating [] - floating create Creates floating IP addresses for the named host by the given range. - floating delete Deletes floating IP addresses in the range given. - floating list Displays a list of all floating IP addresses. +Nova Floating IPs +~~~~~~~~~~~~~~~~~ + +``nova-manage floating create `` + + Creates floating IP addresses for the named host by the given range. + floating delete Deletes floating IP addresses in the range given. ---help, -h Show this help message and exit. +``nova-manage floating list`` + + Displays a list of all floating IP addresses. + FILES ======== -- cgit From 8257fcc259185e5b13f09d3e15cb81487c799c3b Mon Sep 17 00:00:00 2001 From: Anne Gentle Date: Wed, 17 Nov 2010 15:58:10 -0600 Subject: Documenting all nova-manage commands --- doc/source/adminguide/network.vlan.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/source/adminguide/network.vlan.rst b/doc/source/adminguide/network.vlan.rst index a7cccc098..5bbc54bed 100644 --- a/doc/source/adminguide/network.vlan.rst +++ b/doc/source/adminguide/network.vlan.rst @@ -31,8 +31,9 @@ In this mode, each project gets its own VLAN, Linux networking bridge, and subne In the VLAN network mode, all the VM instances of a project are connected together in a VLAN with the specified private subnet. Each running VM instance is assigned an IP address within the given private subnet. -.. todo:: Insert Figure 2 from "An OpenStack Network Overview" contributed by Citrix - +.. image:: /images/Novadiagram.png + :width: 790 + While network traffic between VM instances belonging to the same VLAN is always open, Nova can enforce isolation of network traffic between different projects by enforcing one VLAN per project. In addition, the network administrator can specify a pool of public IP addresses that users may allocate and then assign to VMs, either at boot or dynamically at run-time. This capability is similar to Amazon's 'elastic IPs'. A public IP address may be associated with a running instances, allowing the VM instance to be accessed from the public network. The public IP addresses are accessible from the network host and NATed to the private IP address of the project. -- cgit From 7712287139c5dbd058909f205609d02065097878 Mon Sep 17 00:00:00 2001 From: Anne Gentle Date: Wed, 17 Nov 2010 16:02:11 -0600 Subject: adding images --- doc/build/doctrees/adminguide/network.vlan.doctree | Bin 44409 -> 43599 bytes doc/build/doctrees/adminguide/nova.manage.doctree | Bin 40037 -> 40401 bytes doc/build/doctrees/environment.pickle | Bin 1802539 -> 1803550 bytes doc/build/doctrees/man/novamanage.doctree | Bin 38494 -> 38822 bytes .../html/_sources/adminguide/network.vlan.txt | 5 +++-- doc/build/html/_sources/adminguide/nova.manage.txt | 3 +++ doc/build/html/_sources/man/novamanage.txt | 3 +++ doc/build/html/adminguide/network.vlan.html | 11 ++++------- doc/build/html/adminguide/nova.manage.html | 4 ++++ doc/build/html/index.html | 21 +++++++++------------ doc/build/html/man/novamanage.html | 4 ++++ doc/build/html/objects.inv | 7 +++++-- doc/build/html/searchindex.js | 2 +- doc/source/adminguide/nova.manage.rst | 5 ++++- 14 files changed, 40 insertions(+), 25 deletions(-) diff --git a/doc/build/doctrees/adminguide/network.vlan.doctree b/doc/build/doctrees/adminguide/network.vlan.doctree index befc018f7..02e6e7ef1 100644 Binary files a/doc/build/doctrees/adminguide/network.vlan.doctree and b/doc/build/doctrees/adminguide/network.vlan.doctree differ diff --git a/doc/build/doctrees/adminguide/nova.manage.doctree b/doc/build/doctrees/adminguide/nova.manage.doctree index 4ecc07aa6..c70fd2d71 100644 Binary files a/doc/build/doctrees/adminguide/nova.manage.doctree and b/doc/build/doctrees/adminguide/nova.manage.doctree differ diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle index df5a85ad9..bcc1d22d0 100644 Binary files a/doc/build/doctrees/environment.pickle and b/doc/build/doctrees/environment.pickle differ diff --git a/doc/build/doctrees/man/novamanage.doctree b/doc/build/doctrees/man/novamanage.doctree index 965e62663..cccfa3e65 100644 Binary files a/doc/build/doctrees/man/novamanage.doctree and b/doc/build/doctrees/man/novamanage.doctree differ diff --git a/doc/build/html/_sources/adminguide/network.vlan.txt b/doc/build/html/_sources/adminguide/network.vlan.txt index a7cccc098..5bbc54bed 100644 --- a/doc/build/html/_sources/adminguide/network.vlan.txt +++ b/doc/build/html/_sources/adminguide/network.vlan.txt @@ -31,8 +31,9 @@ In this mode, each project gets its own VLAN, Linux networking bridge, and subne In the VLAN network mode, all the VM instances of a project are connected together in a VLAN with the specified private subnet. Each running VM instance is assigned an IP address within the given private subnet. -.. todo:: Insert Figure 2 from "An OpenStack Network Overview" contributed by Citrix - +.. image:: /images/Novadiagram.png + :width: 790 + While network traffic between VM instances belonging to the same VLAN is always open, Nova can enforce isolation of network traffic between different projects by enforcing one VLAN per project. In addition, the network administrator can specify a pool of public IP addresses that users may allocate and then assign to VMs, either at boot or dynamically at run-time. This capability is similar to Amazon's 'elastic IPs'. A public IP address may be associated with a running instances, allowing the VM instance to be accessed from the public network. The public IP addresses are accessible from the network host and NATed to the private IP address of the project. diff --git a/doc/build/html/_sources/adminguide/nova.manage.txt b/doc/build/html/_sources/adminguide/nova.manage.txt index ddaab7bbf..4235d97b1 100644 --- a/doc/build/html/_sources/adminguide/nova.manage.txt +++ b/doc/build/html/_sources/adminguide/nova.manage.txt @@ -42,6 +42,9 @@ You can also run with a category argument such as user to see a list of all comm These sections describe the available categories and arguments for nova-manage. +Nova User +~~~~~~~~~ + ``nova-manage user admin `` Create an admin user with the name . diff --git a/doc/build/html/_sources/man/novamanage.txt b/doc/build/html/_sources/man/novamanage.txt index ebc76cc4b..0cb6c7c90 100644 --- a/doc/build/html/_sources/man/novamanage.txt +++ b/doc/build/html/_sources/man/novamanage.txt @@ -42,6 +42,9 @@ You can also run with a category argument such as user to see a list of all comm These sections describe the available categories and arguments for nova-manage. +Nova User +~~~~~~~~~ + ``nova-manage user admin `` Create an admin user with the name . diff --git a/doc/build/html/adminguide/network.vlan.html b/doc/build/html/adminguide/network.vlan.html index 0d87a5273..e31a89bf8 100644 --- a/doc/build/html/adminguide/network.vlan.html +++ b/doc/build/html/adminguide/network.vlan.html @@ -118,13 +118,10 @@ segment for each project’s instances that can be accessed via a dedicated VPN connection from the Internet.

    In this mode, each project gets its own VLAN, Linux networking bridge, and subnet. The subnets are specified by the network administrator, and are assigned dynamically to a project when required. A DHCP Server is started for each VLAN to pass out IP addresses to VM instances from the subnet assigned to the project. All instances belonging to one project are bridged into the same VLAN for that project. The Linux networking bridges and VLANs are created by Nova when required, described in more detail in Nova VLAN Network Management Implementation.

    -
    -

    Todo

    -

    Insert Figure 2 from “An OpenStack Network Overview” contributed by Citrix

    -
    +../_images/Novadiagram.png

    While network traffic between VM instances belonging to the same VLAN is always open, Nova can enforce isolation of network traffic between different projects by enforcing one VLAN per project.

    In addition, the network administrator can specify a pool of public IP addresses that users may allocate and then assign to VMs, either at boot or dynamically at run-time. This capability is similar to Amazon’s ‘elastic IPs’. A public IP address may be associated with a running instances, allowing the VM instance to be accessed from the public network. The public IP addresses are accessible from the network host and NATed to the private IP address of the project.

    -
    +

    Todo

    Describe how a public IP address could be associated with a project (a VLAN)

    @@ -174,7 +171,7 @@ Compute nodes have iptables/ebtables entries created per project and instance to protect against IP/MAC address spoofing and ARP poisoning.

    The network assignment to a project, and IP address assignment to a VM instance, are triggered when a user starts to run a VM instance. When running a VM instance, a user needs to specify a project for the instances, and the security groups (described in Security Groups) when the instance wants to join. If this is the first instance to be created for the project, then Nova (the cloud controller) needs to find a network controller to be the network host for the project; it then sets up a private network by finding an unused VLAN id, an unused subnet, and then the controller assigns them to the project, it also assigns a name to the project’s Linux bridge, and allocating a private IP within the project’s subnet for the new instance.

    If the instance the user wants to start is not the project’s first, a subnet and a VLAN must have already been assigned to the project; therefore the system needs only to find an available IP address within the subnet and assign it to the new starting instance. If there is no private IP available within the subnet, an exception will be raised to the cloud controller, and the VM creation cannot proceed.

    -
    +

    Todo

    insert the name of the Linux bridge, is it always named bridge?

    @@ -254,7 +251,7 @@ instance is started on that host -
    +

    Todo

    need specific Nova configuration added

    diff --git a/doc/build/html/adminguide/nova.manage.html b/doc/build/html/adminguide/nova.manage.html index 2b9a4ae96..eb0af2cc2 100644 --- a/doc/build/html/adminguide/nova.manage.html +++ b/doc/build/html/adminguide/nova.manage.html @@ -67,6 +67,7 @@
    +
    +

    Nova User

    nova-manage user admin <username>

    Create an admin user with the name <username>.
    diff --git a/doc/build/html/index.html b/doc/build/html/index.html index 5642f99ea..a46cc3e26 100644 --- a/doc/build/html/index.html +++ b/doc/build/html/index.html @@ -176,6 +176,15 @@ other ways to interact with the community.

      +
    • +

      need specific Nova configuration added

      +
    • +
    • +

      insert the name of the Linux bridge, is it always named bridge?

      +
    • +
    • +

      Describe how a public IP address could be associated with a project (a VLAN)

      +
    • Add brief description for core models

    • @@ -209,18 +218,6 @@ other ways to interact with the community.

    • Use definitions from http://csrc.nist.gov/groups/SNS/cloud-computing/ and attribute NIST

    • -
    • -

      need specific Nova configuration added

      -
    • -
    • -

      insert the name of the Linux bridge, is it always named bridge?

      -
    • -
    • -

      Describe how a public IP address could be associated with a project (a VLAN)

      -
    • -
    • -

      Insert Figure 2 from “An OpenStack Network Overview” contributed by Citrix

      -
    • add flat network mode configuration examples

    • diff --git a/doc/build/html/man/novamanage.html b/doc/build/html/man/novamanage.html index 2a86f24ef..09e4e2fa4 100644 --- a/doc/build/html/man/novamanage.html +++ b/doc/build/html/man/novamanage.html @@ -60,6 +60,7 @@
    • SYNOPSIS
    • DESCRIPTION
    • OPTIONS
        +
      • Nova User
      • Nova Project
      • Nova Role
      • Nova Shell
      • @@ -145,6 +146,8 @@ nova-manage <category> <action> [<args>]

        You can also run with a category argument such as user to see a list of all commands in that category: nova-manage user

        These sections describe the available categories and arguments for nova-manage.

        +
        +

        Nova User

        nova-manage user admin <username>

        Create an admin user with the name <username>.
        @@ -163,6 +166,7 @@ Outputs a list of all the user names to the screen.

        nova-manage user modify <accesskey> <secretkey> <admin?T/F>

        Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it.
        +

        Nova Project

        nova-manage project add <projectname>

        diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv index 1e2a63d0f..00fdb36e8 100644 --- a/doc/build/html/objects.inv +++ b/doc/build/html/objects.inv @@ -2,5 +2,8 @@ # Project: nova # Version: 2010.1 # The remainder of this file is compressed using zlib. -xڕ?o0| -KeCUtBEn۲H)%r{w%{I 6tёtW¨`?A˃黇G6:44"8t@dEӉJ&!̹<3<1FFh z\S#^ :t7WmS##)&bZxaDTh 9LB-Ɖ`ًF=7! APWD1$B{ہQ'AJ|^XhnTD; |s2|اdvDη "r`d\b9$mr&$)oHekeptѱ8"kIy7\^U%$9-&W?u \ No newline at end of file +xڝ1o w +f,NfCZ.  DrC޻w|=p +uGi@L42-Z +14&HMy]p4hF#ZAD0h@p8 H0sA[3d9wgg9h6hԢw%LIU'1z-YB \{NBRPP6bZˆ0@4=LZ ƋIoًF;˥A{;.`hz`itAQo&?-E>%'rc >rFl6 +.*;[(rW$YvW(ͅu'P5=ǫNBUvǛh z6A \ No newline at end of file diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js index a4753dace..6828fc066 100644 --- a/doc/build/html/searchindex.js +++ b/doc/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"nova.virt":{fake:[40,0,1]},nova:{exception:[67,0,1],validate:[67,0,1]},"nova.compute":{instance_types:[134,0,1],power_state:[134,0,1]}},terms:{prefix:[57,90],tweet:70,ip_rang:[139,20,43],novadev:73,under:[52,119],spec:[20,43,70,119],ramdisk:73,digit:119,everi:[27,51],dectect:69,cmd:67,eucatool:104,upload:[73,25,119],rabbitmq:[57,38,27,65,79],ifac:90,direct:15,chef:90,second:[27,51],ebtabl:[57,56,79,117],aggreg:[134,40,131,70],libxslt:57,even:106,keyserv:65,eventlet:[57,79],commonnam:73,poison:[56,117],"new":[134,38,20,104,121,123,40,85,70,51,57,43,117,132,73],net:[20,70,90,57,65,67],maverick:[38,73],metadata:[117,51,119],ongo:[27,43],behavior:123,mem:[134,40],never:[134,40],here:[134,38,27,10,123,40,90,139,57,117,65,111],path:[132,106,20,43,92],aki:73,permit:[52,121],bashrc:90,unix:79,refenc:15,total:[134,27,40,85,119],highli:[123,79,90],describ:[123,20,104,48,27,70,142,43,15,117,73,25,119],would:[132,79,119,69],noarch:57,call:[134,27,10,40,51,117,119],python26:57,recommend:[104,73,79,90],nate:[106,117],type:[38,48,70,90,52,139,92,119,73,65,67],until:[73,27],eucalyptussoftwar:57,relat:[134,20,27,79,70,52,43,119],"10gb":[104,117],notic:[57,79],tx_err:[134,40],warn:38,relai:[52,70],vpn:[20,106,27,51,135,139,43,117,73,119,92],must:[134,38,27,121,40,85,131,117,8,65,119],join:[117,70],err:[134,57,40],"0at28z12":73,setup:[104,79,90,57,117,73],work:[134,38,27,48,40,79,51,90,52,15,132,73,56,119],conceptu:119,rework:[7,123],hansen:38,root:[38,27,104,90,73,32],overrid:79,defer:[134,38,40,131],give:[134,121,104,123,40,51,65],vpn_start:139,indic:[134,123,20,40,43,92],want:[38,20,104,48,27,90,43,117,65],end:[119,51,90],turn:51,how:[123,27,104,70,90,15,117,56,119],env:[104,90],answer:70,verifi:121,config:[73,90],updat:[121,20,106,51,90,57,43,117,73,65,119],compute_unittest:[134,16,0,92,125],mess:104,after:[7,121,123,79,104],diagram:[48,27,92,117,106],befor:[134,27,104,40,79,73,56,32],test_wsgi:[84,0,92,125,109],demonstr:117,fedora:[73,57],attempt:[132,27,85,104],third:119,classmethod:[134,40],opaqu:[134,40],bootstrap:90,credenti:[73,85,119,121],perform:[134,121,27,117,40,79,90,43,15,7],"18th":90,environ:[121,20,104,123,48,85,90,127,43,73,119],exclus:106,ethernet:[7,27],order:[121,27,90,131,117,7],oper:[38,27,121,48,90,52,117,119],diagnos:123,over:[7,48,27,106,90],becaus:[27,104,70],privileg:90,incid:119,flexibl:48,vari:73,fip:119,uuid:121,fit:[57,131],backup_schedul:[0,78,92,125,109],fix:[52,139,27,10],cla:70,better:90,persist:[79,15],cred:90,easier:[132,73,90],them:[134,121,104,10,40,90,117,132,73],wr_req:[134,40],thei:[134,20,40,79,90,43,85,32,119],proce:117,volume_unittest:[7,74,0,92,125],objectstor:[38,93,0,10,66,125,60,79,135,91,92,24,73,90,131],power_st:[134,0,125,107,40,92],each:[27,104,48,79,51,90,139,142,131,117,7,56],debug:[123,79],mean:[134,73,40,79,131],interop:119,laboratori:123,devref:123,group:[38,20,55,123,48,27,51,79,57,70,90,43,117,106,7,25,119],cloud02:73,extract:73,admincli:[13,0,125,92,67],network:[0,106,70,73,38,10,123,40,79,43,117,119,121,15,89,48,125,51,90,52,139,92,56,134,135,27,28,142,131],bridge_port:90,newli:73,content:[123,90],got:73,gov:[48,123],ntp:117,free:[38,70,51,57],standard:[48,20,123,27,43],fakerabbit:[128,0,40,125,92],test_fault:[0,114,92,125,109],ata:7,openssl:[73,57],installt:79,isn:40,confus:132,rang:[20,117,27,90,139,43,15,67],instance_nam:[134,40],fakeinst:[134,40],independ:119,capac:48,restrict:[121,15],instruct:[38,70],alreadi:[117,90],imagestor:73,primari:7,sometim:27,stack:[134,40],master:90,autorun:51,john:[121,85],zipfil:[8,20,85,43,121],listen:[52,27,79],iptabl:[106,56,79,117,57],consol:[52,25],tool:[48,79,90,52,57,15,25],enjoi:121,auth_unittest:[0,45,92,119,125],provid:[123,27,117,48,79,70,139,51,15,106,73,119],tree:123,project:[106,85,8,73,123,55,43,117,119,121,20,15,48,51,90,52,139,131,56,135,27,57,92],matter:121,num_network:139,provis:[48,90],fashion:119,tx_drop:[134,40],mind:123,xensourc:79,seem:131,computemanag:10,deregist:25,transmit:[134,40],simplifi:121,though:[90,104,15,69],usernam:[121,20,43],object:[134,123,55,10,40,52,131,15,132,119],regular:121,cblah2:73,tradit:119,flagfil:[129,15,10,79],max_mem:[134,40],doc:[123,27,106,90,142,92,7,73,119],metal:90,doe:[27,32,43],declar:[92,119],notempti:67,came:48,random:[121,27,43],transluc:119,syntax:[7,121,85,104,123],directli:[7,121,40,134,90],pkg:90,contrib:[79,104],protocol:119,iscsitarget:79,insnanc:51,dhcpserver:27,priv:73,involv:[123,142,79,70],acquir:121,explain:27,configur:[123,20,104,10,27,51,79,52,57,142,117,73,90,56],apach:119,ldap:[131,27,43,119,79],oct:73,watch:73,amazon:[134,123,27,40,52,117,109],root_password:90,report:70,validator_unittest:[53,0,125,92,67],wr_byte:[134,40],"public":[121,27,10,123,48,51,139,92,117,106,56,32,119],runn:104,respond:[132,20,43],respons:[134,10,40,52,131,132,73,119],fail:[134,40],best:[79,70],subject:[52,73],databas:[135,20,104,69,131,79,51,90,52,43,132,73,92],irt:73,discoveri:119,figur:[123,117],outstand:123,simplest:[27,104],irc:70,approach:[121,119],attribut:[48,25,123],accord:[7,48],extend:119,protect:[142,56,117],easi:[123,79],fault:[123,0,125,23,92,109],howev:[106,139,90],against:[57,56,104,117],reservationid:119,logic:[7,119],s3_host:90,login:32,seri:15,com:[27,79,90,57,73,65],compromis:142,applianc:106,"2nd":90,guid:[134,123,27,106,40,79,90,92,15],assum:[117,90],duplic:67,etherd:57,three:[139,119],been:[117,121,79,67,90],trigger:[38,131,117],interest:70,basic:[106,79,51,90,52,15,32,119],saa:48,tini:[73,27,32,51,104],quickli:[123,79,104],toller:123,worker:[52,104],ani:[134,121,20,104,48,40,27,51,79,43,85,119],emploi:121,ident:[134,40,119],servic:[0,106,70,73,123,10,40,79,117,44,15,88,48,125,90,135,92,132,93,134,52,27,113],properti:[134,79,119,90],sourceforg:57,dashboard:[121,131,117],publicli:[121,85],vagu:[123,142],spawn:[134,20,40,139,43,119],clusto:106,printabl:73,toolkit:123,ratelimit:[92,109],conf:[73,20,79],sever:106,cloudaudit:[92,119],receiv:[134,27,10,48,40,52,131],make:[38,85,10,106,90,52,57,73,132,8],meetup:70,complex:[56,104],split:[73,117,90],complet:[134,38,121,48,40,52,73,119],nic:117,rais:[134,40,117,67],ownership:119,kib:[134,40],kid:70,kept:79,scenario:[123,15],thu:90,inherit:119,thi:[104,106,70,7,73,38,40,79,15,119,121,85,117,123,51,90,52,127,92,132,134,27,57,142,65,32,131],gzip:73,countrynam:73,facto:121,just:[121,20,104,123,48,51,142,43,67],bandwidth:48,human:[134,48,40],yet:[139,121,67,90],languag:48,previous:73,expos:[121,27,51,10],had:104,spread:10,har:48,save:[73,51],applic:[48,119],mayb:[106,123],background:15,measur:[48,85],daemon:[57,15,10,79],specif:[134,121,27,104,123,106,40,79,51,90,52,92,15,117,132,119],manual:[20,104,27,90,57,56],volumemanag:10,test_serv:[0,109,6,125,92],xlarg:27,underli:[7,27],www:[57,27],right:[121,142,123],old:[7,123,92],deal:132,somehow:90,intern:[134,106,40],successfulli:[134,40],preliminari:119,subclass:[106,10],cnf:[73,90],apirequest:[29,0,92,125,109],condit:[7,27,43],unbundl:25,core:[123,20,55,27,79,90,57,43,15,85],load_object:132,repositori:[79,90],post:70,"super":121,redownload:51,br100:[27,90],postgresql:90,slightli:104,unfortun:[134,40],span:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],libvirt_conn:[4,134,0,92,125],produc:52,meerkat:38,ppa:[65,79,90],tackl:27,"float":[139,20,27,10,43],encod:51,down:48,wrap:119,storag:[135,27,10,88,48,52,92,7,93,119,131],eth0:[27,90],accordingli:121,git:[57,90],fabric:[52,123],wai:[123,106,79,70,90,15,73],support:[38,27,10,121,48,79,51,90,139,117,109,85,32],nova:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,49,50,51,52,53,54,78,58,59,60,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,57,128,61,130,131,132,133,134,136,137,138,139,140,141,143,144],"class":[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,40,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,92,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,121,122,124,126,128,61,130,131,132,133,134,136,137,138,14,140,141,143,144],avail:[38,20,123,48,40,27,70,79,52,57,90,43,117,25,85,32,119],reli:[106,79,10],linux_net:[106,0,125,92,28],sqlite3:[123,79,104],form:[134,20,40,85],offer:[52,48,70],sqlalchemi:[19,0,69,125,79,90,57,92,39,110],icmp:51,"true":[73,20,121,43,90],freenod:70,reset:25,projectmanag:[121,20,43],rescu:[134,40],maximum:[134,40,119],vishi:90,fundament:27,autoconf:57,service_unittest:[126,0,40,125,92],classif:119,featur:[27,117,70],b64:51,"abstract":132,decrypt:[27,43],exist:[121,27,106,85,90,52,139,7,119],glanc:[135,88,10,92],lutz:67,mybucket:73,check:[121,20,85,79,57,43,73],underutil:48,encrypt:[73,142],when:[134,38,104,48,40,79,51,90,52,131,117,106,73,65,32,119],role:[121,20,27,131,85,90,52,43,15,119,92],scriptnam:[20,43],test:[0,104,69,106,81,70,108,82,6,109,7,73,74,114,76,77,9,40,79,80,42,15,16,17,45,119,120,84,122,125,86,21,22,124,50,126,57,53,92,54,93,134,105,14,30,140,97,141,98,64,144,31,32,67],test_imag:[0,125,92,22,109],webob:79,node:[38,123,106,90,52,117,7,73,56],irclog:70,kvm:[57,27,79,104],intens:104,intent:90,consid:90,sql:[131,90],adminguid:123,ignor:121,time:[134,27,104,40,70,52,117],concept:[123,27,129,85,142,43],chain:106,skip:85,global:[121,20,27,43],focus:27,known:[134,40],eauthent:119,llc:20,decid:131,depend:[38,48,79,90,57,73,65],zone:25,bpython:[20,43],readabl:[134,40],supposedli:48,sourc:[121,20,0,104,123,79,70,73,8,65],string:[27,43],revalid:57,uml:[27,104],octob:90,word:27,exact:57,nodaemon:79,cool:70,organizationalunitnam:73,administr:[121,27,117,123,79,139,43,15,73,25,56,119],level:[123,85,121,48,142,92,119],rpc_unittest:[0,31,92,67,125],greenlet:[57,79,90],pnova:90,prevent:[52,119],blade:7,sign:[121,70,51,119],port:[117,51],addr:90,current:[134,121,20,104,106,40,27,79,139,132,117,109,7,73,56,85,119],gener:[134,121,27,0,123,40,51,90,117,132,73,32],gawk:[57,79],address:[121,20,55,104,123,106,27,90,52,139,43,117,85,25,56,119],along:119,wait:[32,131],box:[27,117,10],queue:[52,131,79,90],throughput:37,tunnelingnod:106,particularli:104,"95c71fe2":65,ipc:[27,43],semant:[134,40,119],tweak:[79,104],modul:[1,2,3,4,5,6,7,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,123,39,40,41,42,44,45,46,47,49,50,51,53,54,78,58,59,60,62,63,64,66,67,68,69,71,72,74,75,76,77,79,80,81,82,83,84,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,112,113,114,115,116,118,119,120,122,124,125,126,57,128,61,130,132,133,134,135,136,137,138,14,140,141,143,144],ipi:[57,79],fake:[134,123,27,0,40,79,125,135,71,98,43,109,17,92],instal:[26,27,104,38,123,79,51,90,57,15,117,73,65,56],newslett:70,tx_byte:[134,40],memori:[134,40],todai:48,live:[8,90,123,70,26],handler:[24,93,0,92,125],scope:27,checkout:104,apierror:67,afford:[48,121],peopl:[132,48,123,70,90],pylint:79,enhanc:[92,119],easiest:90,behalf:121,focu:139,cat:[57,90],whatev:79,purpos:[121,79],heart:52,agent:[56,119],topic:15,critic:119,api_unittest:[0,109,92,125,80],occur:[27,117],alwai:[123,117,51],lxml:57,multipl:[117,123,27,104,10,48,79,90,52,131,15,109,7],write:[134,123,40,70,90,127,73],map:[134,123,121,106,40,117,119],aoe:[7,57,79],atao:131,clone:[65,104,90],intrus:142,membership:70,mai:[117,38,85,104,48,40,134,79,90,52,15,106,132,119],data:[134,85,48,40,51,142,92,132,73,119,131],man:32,hyperv:27,practic:73,favorit:90,inform:[134,20,10,40,27,70,92,117,32,119],"switch":[73,27,104,117,106],combin:119,zxvf:57,callabl:132,talk:[134,123,40,70,131,15],root_password_again:90,brain:48,use_ldap:104,still:[123,20,43,90],dynam:[27,131,117],swiftadmin:123,monitor:[134,0,47,40,79,125,142,92,15,37],polici:119,amqplib:79,avil:79,platform:[134,48,27,40,79],window:104,main:[123,65,15],scheduler_unittest:[141,0,125,92,97],non:[132,38],synopsi:20,initi:[104,90],nation:48,recap:56,now:[38,57,142,123,73],secgroup:119,introduct:[123,27,43,119,92],term:[134,48,40],workload:123,name:[134,121,20,27,123,40,85,90,57,43,117,73],drop:[134,40,104],crypto:[99,0,125,92,51],separ:[139,85,131,121],compil:73,domain:[134,40],replai:119,replac:[7,79,10],individu:[7,106,123,119,121],receipt:121,continu:[52,38,65,79,57],contributor:70,keypair:[27,104,51,73,25,32,119],get_info:[134,40],sql_connect:90,happen:132,subnet:[106,56,117,90],shown:[65,131],accomplish:[73,32,15,121],space:[38,104,117],internet:[106,27,70,51,117],she:[85,32],project_manag:85,state:[134,38,20,106,40,43,73,65,92],california:73,org:[57,20,70],"byte":[134,40],care:104,thing:[134,104,40,90,73,32],place:[106,38,70,48],router:106,principl:57,think:27,first:[38,104,79,90,57,117,65,32],origin:[123,85,48,52,139,15,56],redhat:57,onc:[134,38,48,40,70,90,57,15,8,65],yourself:73,environemnt:90,bridgingnod:106,accesskei:[121,20,43],open:[123,79,70,139,51,117],size:[20,85,43,117,119],sharedipgroup:[0,109,92,125,33],given:[134,20,40,27,51,139,43,56],workaround:90,iaa:[48,27,123],cumul:119,draft:70,manager_id:85,forthcom:104,device_path:[134,40],grant:90,especi:131,copi:[106,38,51,73],specifi:[134,121,20,104,40,79,51,90,43,117,132,85,56],broadcast:90,forward:[131,51,90],soren:38,mostli:56,date:[38,20,79],holder:121,than:[38,27],serv:[48,117],wide:[57,119],were:104,browser:8,pre:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,57,128,61,130,133,136,137,138,14,140,141,143,144],san:27,ann:73,argument:[121,20,85,79,139,43,67],slap:79,dash:[27,117],test_api:[124,0,92,125,109],declare_flag:[0,125,21,67,92],recover:123,disk_stat:[134,40],engin:[52,106],destroi:[134,40,104],xxxxx:10,note:[134,38,27,121,40,85,90,57,65,56],ideal:119,take:[52,38,40,134,104],noth:131,channel:70,begin:[52,121,90],sure:[38,10],normal:[20,85,43],tornado:[57,79],compress:[20,43],paid:48,pair:[142,32],synonym:[134,40],twistd_unittest:[14,0,125,92,67],later:70,drive:27,runtim:119,newer:57,show:79,permiss:[121,27,104,119],xml:[73,10],onli:[117,121,27,104,48,40,134,79,90,52,139,15,106,85,56],explicitli:27,rx_drop:[134,40],activ:[119,70],enough:117,invalidinputexcept:67,sighup:90,variou:[134,121,27,104,40,52],get:[117,38,27,104,121,48,40,134,79,70,90,52,123,131,15,73,8,65,25],repo:57,ssl:73,cannot:[121,117],ssh:[106,73,32,104],requir:[38,27,121,48,79,70,90,51,117,65],bzr331:38,priviledg:15,where:[134,73,40,70,90],wiki:[123,79,70],kernel:[73,57],netadmin:[121,20,27,43],auth_driv:79,reserv:[73,51],rmi:67,xenserv:79,concern:[134,40,104,131],kmod:57,detect:[134,40,142],review:[79,119],getattr:132,between:[123,27,10,106,79,90,52,142,117],"import":[73,27,10,121],across:[106,85,90],assumpt:[104,123,79,90],api_command:27,screen:[57,20,43,104],tut:[123,92],virt_unittest:[134,0,92,125,140],come:[57,70,90],region:25,imf:119,tutori:92,mani:[38,27,48,79,90,43,106,32],overview:[123,15,106,51,139,92,117],period:51,dispatch:52,swift:20,fixed_ip:90,rd_req:[134,40],mark:90,real_flag:[76,0,125,92,67],certifi:73,those:[134,27,40,51,142],"case":[90,131,119,69],process_unittest:[42,0,125,92,67],xcp_sdk:79,ctrl:104,canon:73,worri:90,blah:73,detach_volum:[134,40],twistd:[136,0,125,92,67],develop:[121,20,104,123,40,27,127,92,119,43],saml:119,iscsi:[7,52,131,79,123],same:[121,85,10,106,27,90,57,43,117,56,119],paa:48,html:67,subdomain:109,vblade:[57,79],finish:[73,104],confidenti:119,driver:[134,27,0,125,10,69,106,49,40,79,97,135,132,43,119,7,101,92],someon:104,decompress:73,driven:123,capabl:[48,117],openldap:[57,79],extern:[79,90,131,117,56,119],tradition:119,appropri:[106,121],moder:119,pep8:79,without:[134,121,20,40,51,43,117,119],disassoci:[27,25],model:[19,121,0,55,69,48,125,52,123,92,15,106],rolenam:[20,43],execut:[52,121,20,43,90],rest:[134,40,119,10],weekli:70,kill:104,touch:132,flavor:[0,36,92,125,109],samba:27,hint:79,except:[134,0,40,125,92,117,75,37,67],littl:[132,48],blog:[38,70],versa:[134,40],vulner:119,real:[134,40,70,90],mox:[57,79],around:[38,70,90],libc:38,swig:57,traffic:[106,92,117],world:51,tx_packet:[134,40],integ:[134,40],server:[0,104,106,35,109,73,38,79,117,119,15,123,48,125,51,90,52,139,130,92,56,57,65,67,131],appic:73,dnsmasq:[106,27,79,117,57],either:[20,119,43,117,79],cascad:123,output:[52,20,25,43,104],manag:[68,0,103,106,109,85,102,8,7,73,111,123,10,3,79,43,15,119,121,20,117,89,125,51,90,52,139,92,132,134,135,27,58,97,32,131],udev:57,confirm:[38,65,25],rpm:57,definit:[52,48,119,123],token:119,exit:104,inject:[27,56,32],refer:[135,123,32,92],test_auth:[0,30,92,125,109],power:[134,48],broker:[52,92,119],bazaar:70,central:131,stand:70,act:[56,117,90],bond:117,processor:85,road:73,ansolab:73,euca2ool:[38,121,79,57,15,25,32],effici:27,terminolog:[134,40],unregist:119,cloudserv:27,your:[121,27,104,40,79,70,90,51,73],loc:119,log:[142,70,67],her:85,disk_id:[134,40],start:[38,20,104,27,79,139,43,117,73,8,65,56],interfac:[134,123,27,104,57,40,79,90,52,139,15,117,56,119],low:119,lot:104,fixed_rang:[139,90],programmat:52,fcbj2non:73,bundl:[121,27,51,43,73,8,25],regard:[134,40],interface_stat:[134,40],amongst:10,wrap_except:67,categor:[121,119,67],congratul:73,pull:104,dirti:[92,119],possibl:[79,90],"default":[121,27,104,79,90,57,119,117,56,67],bucket:[0,125,60,90,92,73,93,119],virsh:[73,104],expect:[38,73],uid:[38,119],creat:[85,8,7,73,38,40,79,43,117,119,121,20,15,51,90,52,139,25,56,134,27,32],certain:[121,79],use_ppa:65,file:[134,121,20,88,10,104,106,79,51,90,135,57,70,92,73,93,85,43],again:73,googl:10,fakeldap:[11,0,40,125,92],personnel:121,hybrid:[48,92,119,123],field:121,cleanup:104,collis:7,rdbm:79,you:[104,85,70,8,73,38,10,40,79,43,15,121,20,48,51,90,57,131,27,142,65,92],import_class:[27,43],architectur:[123,104,52,142,131,15],fake_subdomain:[79,90],track:[134,40,79],vocabulari:119,pool:[48,27,117],cloudpip:[27,0,1,125,51,135,92,117],directori:[38,104,51,90,73,119],descript:[123,20,55,27,79,52,139,43,85,67],goe:51,chown:90,libvirt_typ:104,potenti:[131,119],escap:[134,40],cpu:[134,40],demo:8,all:[134,121,20,104,10,57,40,27,70,79,139,142,43,15,117,85,90,56,119,131],dist:73,consider:142,illustr:[27,117],lack:69,ala:106,runtime_flag:[0,125,92,67,120],abil:[48,121],follow:[38,20,104,121,106,27,51,79,52,70,123,43,15,117,73,90,85,119],disk:[134,38,0,104,106,40,79,125,135,57,92,7,100],secretkei:[121,20,43],auth_manag:[27,43],init:90,program:[48,123,79,92],project_id:[121,85,51],liter:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],far:[134,40],host_ip:104,managingsecur:123,util:[27,0,119,48,125,85,57,43,15,62,132,25,67,92],mechan:[48,27],failur:[123,69],veri:[123,27,79,70,90,57,67],typetest:67,vishvananda:90,bridge_stp:90,list:[134,38,20,129,104,121,40,79,51,90,139,43,73,65,85],unrescu:[134,40],stderr:67,user_nam:90,fakeldapdriv:79,past:[38,73],syslog:37,zero:79,design:[123,27,70],pass:[134,40,51,52,117,56,119],further:[134,40,92,119],what:[123,20,48,79,90,43],sun:119,section:[20,27,79,139,43,15,92],abl:[8,79,104],brief:[139,55,123],overload:119,rackspac:[52,73,27],delet:[134,121,20,104,40,85,52,139,43,25,119],version:[38,20,104,79,70,57,15,25,119],intersect:[121,27],method:[134,10,40,79,51,132,119],contrast:[134,40],full:[134,40],variat:56,trunk:[104,117],renegoti:51,modifi:[121,20,25,43],valu:[85,104],search:[123,92],mac:[56,117],amount:[48,27,43,131],pick:104,action:[121,20,142,43],via:[27,15,10,51,43,117,119,131],depart:121,ldapdriv:[0,104,125,79,92,119,133],filenam:[121,85],establish:[52,119],select:[139,20,90],rackspacecloud:73,xenwiki:79,stdout:67,regist:[73,25,119,70],two:[27,56,117,15],organizationnam:73,virt:[34,134,27,0,40,125,4,5,71,43,46,92],more:[38,20,104,10,106,27,79,139,43,15,117,73,90,32,119],flat:[123,27,90,139,131,15,56],flag:[121,20,0,10,123,106,125,27,51,79,139,57,129,43,15,119,132,90,112,67,92],particular:[79,20,27,43],cacert:73,isloat:123,none:[73,85,121,67,139],endpoint:[52,135,92,109],hour:[48,51],cluster:[117,90],outlin:[132,27],dev:79,learn:[70,15,79],deb:65,dhcpbridg:73,scan:119,challeng:[92,119],registr:119,share:[48,27,32,119,131],accept:132,get_console_output:[134,40],minimum:[119,117],cours:73,interconnect:119,goal:[142,117],secur:[121,27,55,104,123,106,51,142,43,117,32,119,131],rather:[27,131],anoth:[27,79,90],divis:132,orukptrc:73,simpl:[27,0,97,10,125,51,90,43,138,92],distro:[73,57,123],resourc:[85,48,79,52,139,15],vlan:[123,27,55,104,10,106,79,51,90,52,139,131,15,117,7,85,56],rbac:[121,27,92,119],pat:73,datastor:[106,79,119],associ:[134,123,27,106,40,85,51,117,73,25,119],github:90,onto:[56,117],author:[121,20,135,27,52,92,25,119,43],callback:131,allocate_address:27,egg:73,"1b0bh8n":73,help:[25,131,90],soon:[51,10],uvh:57,held:[134,40],i386:57,through:[121,27,104,10,57,48,79,51,90,52,139,142,70,73,32],paramet:[134,40,119],style:[27,56,119],binari:[27,79,10,131],might:104,computenod:106,wouldn:38,good:[79,70],"return":[134,121,85,40,79,132,119],timestamp:119,framework:52,detach:[52,134,27,25,40],mysql_pass:[104,90],document:[134,123,27,104,106,40,79,70,90,132,32],troubleshoot:73,datastructur:[134,40],authent:[135,27,10,90,52,142,92,119],easili:[52,121,90],achiev:[27,119],test_ratelimit:[0,125,92,50,109],processexecutionerror:67,found:[123,27,117,10],intervent:48,subsystem:[57,79],"340sp34k05bbe9a7":73,api_integr:[0,125,92,82,109],hard:[27,104],connect:[134,20,0,125,117,48,40,27,51,139,43,46,106,73,119,92],todd:[7,106,104,123],cc_host:90,http:[123,20,48,27,70,79,52,57,131,73,65,90,67],beyond:90,todo:[117,123,55,104,48,111,40,90,52,127,142,92,15,106,7,65,56],event:[52,79,70],ftp:57,research:123,john_project:[121,85],print:[139,121],postgr:90,proxi:[119,90],advanc:15,pub:57,dhcpdiscov:27,reason:90,base:[134,38,20,10,121,48,40,27,79,52,123,43,15,119,132,73,90,67,131],ask:70,loop0:79,recv:65,bash:[121,90],launch:[121,27,117,79,51,43,15,73,56,85,119,92],script:[38,20,104,121,79,51,90,70,43,73,65,32],heartbeat:90,assign:[121,20,106,27,52,139,43,117],use_mysql:[104,90],feed:70,major:[52,131],feel:[57,70],misc:[135,92,67],number:[134,20,40,27,51,90,139,43,117,7,85,119],done:[134,38,104,123,48,40,57,65],blank:[121,20,43],stabl:[123,65],losetup:79,differ:[27,104,10,48,79,139,131,117,109,132,56],guest:[56,90],projectnam:[20,85,43],interact:[121,27,10,123,79,52,139,15],dbdriver:[0,104,125,41,79,92,119],scheme:[134,40],store:[134,38,0,125,123,66,40,79,70,52,92,65,93,32,119,131],schema:119,option:[134,20,40,79,90,43,65,32],relationship:[92,119],similarli:106,part:[8,123,79,73],eventu:90,notfound:[134,40,67],kind:[139,131],yum:57,remot:27,seamlessli:119,bridg:[123,27,104,10,90,139,131,117,56,119],consumpt:85,list_interfac:[134,40],toward:131,comput:[0,106,70,72,73,38,10,40,79,43,117,119,20,47,123,48,125,90,52,139,92,56,134,27,107,57,58,142,100,131],packag:[38,65,79,10,73],dedic:[117,67,119],euca:[104,73,25,32,90],outbound:117,built:[134,79,131],lib:[38,73],self:48,also:[134,123,20,104,10,48,40,27,51,79,57,70,43,117,106,90,119],folk:90,gpgcheck:57,pipelin:[134,40],distribut:[106,57,79,104],"160gb":27,previou:73,quota:[20,0,27,125,85,43,63,119,92],pipelib:[0,1,92,51,125],most:[134,27,104,10,106,40,90,131,117,25,56],plan:119,dai:[48,25,40,73],bzr:[57,65,104,70,90],clear:106,rangetest:67,clean:[134,40,104],latest:[57,38,65,90,73],visibl:117,wsgi:[0,87,10,125,92,67],cdn:[73,79],session:[0,104,69,125,92,39],cdp:119,fine:104,find:[15,70,131,117,25,92],firewal:[106,142,119,117,121],copyright:20,networkmanag:10,solut:131,queu:[52,27],instancemonitor:73,factor:79,localitynam:73,unus:[7,134,40,117],express:106,"12t21":73,mainten:[27,43],fastest:[73,15],restart:90,rfc:117,common:[121,79,90,135,92,117,109,67],remov:[121,85,20,52,43,56,119],crl:51,arp:[56,119,117],certif:[27,51,43,117,73,119,92],set:[38,20,104,10,121,79,51,90,52,127,43,117,85,119],ifconfig:104,see:[38,20,129,104,121,106,27,70,79,57,123,43,15,7,73,65,32,119],bare:90,arg:[20,43],ari:73,kpartx:57,experi:79,signatur:[73,121],c2477062:73,isol:[85,117],ipython:[20,43],both:[27,106,90,142,25,56,67],last:[20,43,90],boto:79,context:[61,0,125,92,67],load:[27,10,79,57,43,132,73],simpli:[121,56],point:[132,8,70],tgz:73,schedul:[38,27,0,103,138,135,131,2,49,125,79,97,90,52,139,43,73,92],addressingnod:106,shutdown:[134,40],linux:[123,27,79,51,139,117,56],throughout:[52,67],backend:[134,123,106,79,131,119],g06qbntt:73,java:48,devic:[27,10,48,90,57,131],due:[134,40],secret:[121,20,27,43,73,119],strategi:[139,27,10],ram:104,fire:90,imag:[0,106,109,85,5,8,73,111,123,25,55,10,43,15,118,119,121,20,88,125,51,90,52,91,92,93,56,134,27,137,113,32,131],understand:[132,27],demand:[7,48],look:[106,119,90],straight:27,"while":[38,131,104,117,106],kick:90,abov:51,error:[73,121,67,90],gmt:73,ami:[104,73,32,119,79],xvzf:73,larger:[27,131],vol:25,block_stat:[134,40],itself:119,cento:[73,57],decor:67,bridge_maxwait:90,network_manag:[10,90],minim:132,belong:117,nanosecond:[134,40],read:[134,38,27,40,79,70,90,139,15,73,65],decod:51,zope:79,higher:[134,40],novarc:[121,20,85,90,43,73],optim:[48,131,90],wherea:121,user:[104,85,8,73,38,55,43,117,119,121,20,15,48,51,90,52,139,131,25,27,142,32],robust:27,typic:[52,79,70,119],recent:131,stateless:119,lower:92,task:[52,123,132,15],entri:[38,90,52,117,73,56],nova_comput:10,pymox:79,spend:104,propos:119,explan:131,vpn_public_port:51,collabor:70,shape:48,mysql:[104,57,79,90],openstack:[0,70,36,6,109,73,114,38,10,40,81,117,118,20,125,86,22,123,124,50,90,23,57,130,92,78,27,59,30,98,65,33],cut:79,vswitch:139,ganglia:37,subsequ:52,build:[104,79,90,57,73,8],bin:[38,57,90,73],vendor:[52,119],format:[121,119],nginx:57,bit:[132,73,27],formal:70,success:121,docutil:[1,2,3,4,5,6,9,11,12,13,16,17,18,19,21,22,23,24,28,29,30,31,33,34,35,36,75,41,42,44,45,46,47,49,50,53,54,78,58,59,60,62,63,64,66,68,71,72,74,39,76,77,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,61,130,133,136,137,138,14,140,141,143,144],resolv:[73,90],manifest:73,collect:[48,70],princip:85,"boolean":90,popular:123,modprob:57,scapi:106,encount:79,creation:[134,27,40,90,43,117,119],some:[134,123,27,104,10,40,70,57,92,132,131],back:[134,73,40,79,70],understood:142,sampl:[123,85,48,79,15,73],flatmanag:[10,90],scale:[48,123],novascript:90,"512mb":104,prot:[20,43],per:[27,79,51,135,92,117,56,119],pem:[73,32,104],larg:[7,48,119,10],cloud:[0,104,70,109,73,123,12,79,117,119,121,20,15,48,125,90,52,139,92,27,142,143],stateorprovincenam:73,nose:79,machin:[134,38,27,104,10,40,79,51,90,52,131,15,117,73,119],run:[104,106,7,73,38,10,40,79,43,117,119,20,15,48,51,90,52,139,131,132,25,56,134,27,57,65,32],agreement:70,step:[57,38,65,90,73],prerequisit:38,wget:[73,57],fakemanag:[40,92],"1gb":[79,117],block:[134,27,10,40,51,52,57,131,119],instance_typ:[134,0,72,125,92],within:[121,85,104,106,117,7,119],ensur:[52,57,142],institut:48,question:70,"long":[134,40,51,132,73,119],custom:[134,40],includ:[121,20,27,70,79,52,43,65,90,67],gflag:[20,129,27,10,79,57,43,65],routingnod:106,netomata:106,blueprint:70,properli:[],openstackppa:65,link:[123,27,65,70,131],translat:[134,40],eauth:[92,119],don:[48,121,79,90],line:[38,123,79,90,73,25,32],objectstore_unittest:[77,93,0,92,125],sdk:79,info:[73,40,111,51,123],cia:119,consist:[139,85,51,106],caller:[134,40],planet:70,similar:[52,27,56,119,117],my_file_path:79,ec2_url:90,repres:[134,27,40,117],chat:70,home:[38,90],curl:[57,79],amqp:[106,27,131,90],titl:[0,125],invalid:67,nat:[106,117],scrub:[85,104],gigabyt:[20,27,43],lucid:[73,65,104,90],vice:[134,40],loopback:90,depth:131,nasa:123,addgroup:90,pluggabl:[123,27,43,104],code:[134,27,104,79,70,90,51,117,73,132,8,65,67],partial:[134,40],edg:79,queri:[52,106,119,90],quarantin:121,privat:[123,27,48,51,139,117,106,73,32,119],elsewher:[134,40],friendli:70,send:[73,32,10],sens:132,sent:73,unzip:[38,121,90,73],volum:[101,0,85,7,73,123,55,10,40,3,79,43,119,20,125,90,135,131,25,52,27,92],spoof:[56,117],num_cpu:[134,40],relev:[52,70,90],"try":73,race:7,"0ubuntu2":38,sourcabl:85,pleas:57,fortun:15,uniqu:[134,40],cron:51,download:[48,25,57],append:85,compat:[52,123,25,119,90],index:[123,92],access:[121,20,117,48,27,51,43,15,73,85,119,92],fakeaoedriv:[40,92],can:[104,85,70,73,38,10,40,79,43,15,119,121,20,117,123,48,51,90,139,131,132,134,27,57,142,65,32],"17d1333t97fd":73,ec2_secret_kei:73,let:[121,40],ubuntu:[38,104,123,79,90,73,65],ioerror:67,becom:121,sinc:[121,119,10,90],convert:131,iface_id:[134,40],hypervisor:[52,134,40,131],euca_repo_conf_eof:57,technolog:[48,27,139,90],cert:[73,51,90],network_unittest:[64,0,92,125,106],fakeconnect:[134,40],chang:[121,104,10,79,51,90,57,119],chanc:[2,0,125,92,97],revoc:[92,51],control:[134,121,20,117,123,48,40,27,70,90,52,139,15,106,85,56,119],danger:32,revok:[25,51],appli:[119,90],app:10,gatewai:[56,117,90],apt:[38,65,79,90],api:[0,104,69,36,6,109,73,110,38,114,10,135,12,40,79,81,142,117,83,17,18,119,84,121,85,125,86,22,123,124,131,50,51,90,23,130,92,78,94,134,52,27,137,29,59,30,118,98,143,32,33],redi:[38,65,79],test_flavor:[81,0,92,125,109],pxe:90,from:[121,20,104,123,48,27,51,79,52,70,142,43,117,7,73,65,56,85],usb:27,zip:[121,20,85,51,90,43,73],commun:[123,27,106,79,70,52,142,131,117],next:[7,90],implic:52,few:57,usr:[73,57,90],inet:90,remaind:119,rabbit:[43,90],account:[119,70],retriev:[134,73,40,131],carrot:[57,79],obvious:7,fetch:119,employe:121,quickstart:[73,123,104,15,90],tar:[73,79,57],process:[38,0,96,10,123,48,125,51,90,52,92,15,119,73,67,104],lock:52,sudo:[38,104,79,90,73,8,65],high:[123,142,51,90],tag:[27,117,70],onlin:70,attach_volum:[134,40],gcc:57,rabbit_host:90,filepath:79,instead:[123,27,43,10,104],aoe_rules_eof:57,"0a520304":73,exit_cod:67,physic:[52,139,27,119,90],alloc:[121,85,106,51,52,117,7,25,119],essenti:[27,43],bind:90,counter:[134,40],issu:[52,90],allow:[134,121,27,40,79,51,139,131,117,132,32,119],move:[131,27,43,90],meter:48,lockfil:79,chosen:[134,40],infrastructur:[52,48,27,119,117],openvpn:51,therefor:[32,117],crash:106,python:[38,20,129,27,79,57,43,132,73,65,90,131],auto:90,handi:121,auth:[27,0,104,59,11,131,40,41,68,125,79,116,43,109,133,119,92],devel:57,front:119,strive:123,anyth:[132,119],edit:[57,65,104,70,90],test_sharedipgroup:[0,86,92,125,109],get_connect:[134,40],mode:[123,27,117,57,51,90,139,15,56],use_project_ca:51,cloudfil:73,product:[38,25,117,90],consum:48,"static":106,ec2:[134,121,27,0,137,10,123,29,12,40,79,125,90,92,109,83,85,94],citrix:[123,79,117],our:[73,70],itsec:[121,20,43],fake_flag:[0,125,92,67,105],special:[27,85,117],out:[123,10,48,79,117,73,56],variabl:[121,20,85,43,104],instance_id:[134,40],contigu:117,req:[134,57,40],reboot:[134,40,52,73,25,32,119],identifi:[134,40],categori:[20,43],suitabl:79,hardwar:[123,85,106,79,52,117,37,119],dhcp:[27,10,106,90,139,117,56],statist:[134,40],await:73,insid:[117,27,70,51,104],dictionari:[134,40],releas:[123,65,25,57],could:[123,106,79,139,117,8,119],put:[38,104,123,51,73,111,32],segreg:117,keep:[134,27,40,51,90,56],length:73,enforc:[106,119,117],outsid:[139,51],organiz:85,softwar:[27,48,79,90,52,73],list_inst:[134,40],echo:[65,90],vlan_start:139,puppet:90,owner:[121,90],prioriti:[123,104],newus:8,unknown:67,licens:70,mkdir:90,system:[104,70,109,7,73,38,10,79,117,119,121,85,15,123,48,90,139,92,132,56,27,57,142,32,131],messag:[38,27,121,106,79,90,52,131,65,67],attach:[134,27,10,40,52,131,7,25,56,119],attack:[142,119],volume_group:79,aoetool:[57,79],termin:[121,27,104,52,25,32,119],"0x10001":73,"final":57,shell:[132,20,43],eavesdrop:70,volumedriv:132,shelf:7,rsa:73,botleneck:57,rst:[123,0],haven:[121,67],structur:[85,119],metadatarequesthandl:[83,0,92,125,109],seriou:123,sec:119,py2:73,cc_addr:90,have:[134,121,27,104,123,48,40,79,51,90,117,73,65,56,119],tabl:[123,92,119,90],need:[134,121,20,104,123,48,40,27,51,79,57,43,117,132,73,65,90,119],border:142,rout:[52,57,79,10,117],accuraci:57,which:[134,38,27,10,106,40,85,70,90,52,57,131,65,119],datacent:90,soap:119,singl:[38,104,123,70,90,52,57,7,73,65,56,119],courtesi:67,unless:104,deploy:[123,10,48,79,70,90,131,15],discov:[7,57],deploi:[48,90],vish:[7,123],segment:117,why:48,url:[57,119],request:[134,121,85,10,40,70,52,92,73,119,131],snapshot:25,xenapi:[34,134,0,125,79,40,92],determin:[52,79],occasion:52,fact:106,verbos:[79,90],bring:48,cloudcontrol:106,locat:[73,119,90],launchpad:[104,20,65,70,90],start_on_boot:90,should:[134,121,104,123,48,40,79,90,132,117,7,73,67],local:[73,27,121],contribut:[123,117,70],familiar:15,autom:48,csrc:[48,123],graduat:73,increas:90,lazyplugg:[27,43],enabl:[123,139,48,52,57,142],organ:[139,123,121],"4e6498a2":73,xmlsoft:57,sudoer:104,integr:[135,119,92,88,90],partit:27,contain:[134,20,48,40,85,90,117],grab:[7,65,56,51],nist:[48,123],view:20,debconf:90,legaci:[106,92,119],bridge_fd:90,knowledg:[134,40,70],packet:[134,40],elast:[48,117],network_s:[139,90],mountainview:73,backchannel:119,modulu:73,quota_unittest:[108,0,125,92,119],pattern:[20,43],boundari:142,written:[123,57],cloud101:123,progress:38,email:48,argcheck:67,kei:[121,20,123,106,27,51,142,43,117,73,65,85,32,119],ec2_access_kei:73,lvm:[7,52],job:119,entir:[106,79],disconnect:51,eclips:48,problem:[7,38,79,104],addit:[123,79,57,117,56,119],plugin:[27,43],admin:[121,20,0,125,117,123,106,109,85,51,90,139,43,15,73,8,94,92],wsgiref:79,vgcreat:79,etc:[123,27,104,48,79,90,57,106,73,65,56,119],instanc:[104,106,85,7,73,55,40,43,117,119,121,20,15,48,51,52,139,25,56,134,27,142,32],rx_err:[134,40],runinst:119,vpn_public_ip:51,guidelin:123,chmod:[73,32,104],distinguish:73,rpc:[27,0,10,106,125,43,95,67,92],respect:139,qemu:[57,27,104],quit:131,addition:119,compos:52,compon:[123,129,106,79,90,52,92,109,37,131],json:73,uroot:90,electr:48,immedi:117,upcom:70,inbound:117,assert:119,rd_byte:[134,40],present:[27,79],replic:[131,10,90],multi:[73,123,90],align:119,defin:[132,121,27,119,90],ultra:10,layer:[134,69,40,135,92,117,119],libxml2:57,flags_unittest:[122,0,125,92,67],archiv:[73,90],fiddl:104,welcom:[123,70],networkcontrol:106,parti:119,began:[134,40],member:85,handl:[52,117,67],"35z":73,slave:90,hostnam:52,upon:[52,121],libvirt:[134,40,79,90,131,7],m2crypto:79,access_unittest:[144,0,125,92,119],mysql_prese:90,audit:[142,119],off:[119,90],center:[48,92,119],well:[38,121,79,70,131,109,67],exampl:[121,20,104,123,48,27,43,117,85,56,32,119],command:[104,106,85,73,123,79,43,15,121,20,51,90,52,139,131,132,25,27,57,142,65,32],choos:90,usual:[7,132,70],xen:[134,27,40,79,131],obtain:[20,56,43],virtual:[134,135,27,104,10,40,51,52,139,92,73,119,131],rx_byte:[134,40],simultan:117,adv:65,web:[27,48,52,131,8,119],rapid:48,priorit:119,add:[121,20,55,104,123,79,85,90,57,43,117,73,25,56,32,119,92],valid:[0,104,115,125,92,67],notauthor:[85,67],match:[73,119],pubsub:119,branch:[104,90],howto:[123,92],prese:90,ldconfig:38,realiz:52,five:[121,20,43,119],know:[27,90],password:[104,32,90],python2:[73,57],insert:[106,117,123],resid:15,like:[123,27,48,79,70,90,57,131,73,56,119],cloud_unittest:[0,9,92,125,109],necessari:52,page:[123,27,79,70,92,65,32],project_nam:90,eucalyptu:57,twitter:70,"export":[121,20,85,90,43,7,73],trucker:73,small:[73,27,43,117,131],librari:[135,57,79,67,92],tmp:73,feder:119,lead:132,broad:[52,15],avoid:[7,123,131],reconsid:132,leav:[121,20,43],investig:119,usag:[121,32,15,104],host:[38,20,104,123,106,57,27,51,79,52,139,70,43,15,117,132,73,65,90,56,131],although:[132,85,104],user_id:[121,85],about:[134,123,20,104,40,27,70,79,139,15],actual:[27,79,90],anyjson:79,own:[134,123,40,117,51],objecstor:[93,92],import_object:[27,43],easy_instal:57,automat:[121,27,117,51,90],automak:57,"56m":73,rectifi:123,merg:[7,123],pictur:119,transfer:[52,48,40,134,142],snmp:119,mykei:[73,119],much:[48,27,43],"var":[38,104],cloudadmin:90,"function":[134,121,27,117,40,79,52,43,15],baseurl:57,inlin:79,bug:[20,70],deassoci:119,count:79,made:[134,73,40,90],wish:[27,85],googlecod:[57,79],displai:[20,85,43],asynchron:[134,40,119],record:[106,119],below:[123,20,79,90,131,43],limit:[121,27,85,92,117,119],signer:[0,116,92,119,125],otherwis:[57,121,20,43,79],dmz:117,epel:57,pii:119,evalu:[52,90],dure:90,twist:[57,65,131],implement:[123,27,106,40,79,51,139,92,117,132,56,119],list_disk:[134,40],mountpoint:[134,40],pip:79,probabl:[132,27,104,90],boot:[27,90,117,73,56,32],detail:[134,20,27,106,40,79,90,43,117,132,73,119,92],mehod:73,other:[121,27,104,69,123,79,70,90,52,139,57,142,131,117,132,73,119],futur:[135,139,92,88],rememb:121,varieti:104,rx_packet:[134,40],cpu_tim:[134,40],"100m":79,singleton:132,debian:[73,65,57],stai:[134,27,40],sphinx:123,nogroup:38,reliabl:27,rule:[121,106,51,57,117,119],emerg:48},objtypes:{"0":"py:module"},titles:["<no title>","The nova..cloudpipe.pipelib Module","The nova..scheduler.chance Module","The nova..volume.manager Module","The nova..virt.libvirt_conn Module","The nova..virt.images Module","The nova..tests.api.openstack.test_servers Module","Storage Volumes, Disks","Live CD","The nova..tests.cloud_unittest Module","Nova Daemons","The nova..auth.fakeldap Module","The nova..api.ec2.cloud Module","The nova..adminclient Module","The nova..tests.twistd_unittest Module","Administration Guide","The nova..tests.compute_unittest Module","The nova..tests.api.fakes Module","The nova..db.api Module","The nova..db.sqlalchemy.models Module","nova-manage","The nova..tests.declare_flags Module","The nova..tests.api.openstack.test_images Module","The nova..api.openstack.faults Module","The nova..objectstore.handler Module","Euca2ools","Installing the Live CD","Nova Concepts and Introduction","The nova..network.linux_net Module","The nova..api.ec2.apirequest Module","The nova..tests.api.openstack.test_auth Module","The nova..tests.rpc_unittest Module","Managing Instances","The nova..api.openstack.sharedipgroups Module","The nova..virt.xenapi Module","The nova..server Module","The nova..api.openstack.flavors Module","Monitoring","Installing on Ubuntu 10.10 (Maverick)","The nova..db.sqlalchemy.session Module","Fake Drivers","The nova..auth.dbdriver Module","The nova..tests.process_unittest Module","The nova-manage command","The nova..service Module","The nova..tests.auth_unittest Module","The nova..virt.connection Module","The nova..compute.monitor Module","Cloud Computing 101","The nova..scheduler.driver Module","The nova..tests.api.openstack.test_ratelimiting Module","Cloudpipe – Per Project Vpns","Service Architecture","The nova..tests.validator_unittest Module","The nova..test Module","Object Model","Flat Network Mode (Original and Flat)","Installation on other distros (like Debian, Fedora or CentOS )","The nova..compute.manager Module","The nova..api.openstack.auth Module","The nova..objectstore.bucket Module","The nova..context Module","The nova..utils Module","The nova..quota Module","The nova..tests.network_unittest Module","Installing on Ubuntu 10.04 (Lucid)","The nova..objectstore.stored Module","Common and Misc Libraries","The nova..auth.manager Module","The Database Layer","Getting Involved","The nova..virt.fake Module","The nova..compute.instance_types Module","Installing Nova on a Single Host","The nova..tests.volume_unittest Module","The nova..exception Module","The nova..tests.real_flags Module","The nova..tests.objectstore_unittest Module","The nova..api.openstack.backup_schedules Module","Getting Started with Nova","The nova..tests.api_unittest Module","The nova..tests.api.openstack.test_flavors Module","The nova..tests.api_integration Module","The nova..api.ec2.metadatarequesthandler Module","The nova..tests.api.test_wsgi Module","Managing Projects","The nova..tests.api.openstack.test_sharedipgroups Module","The nova..wsgi Module","Glance Integration - The Future of File Storage","The nova..network.manager Module","Installing Nova on Multiple Servers","The nova..objectstore.image Module","Developer Guide","Objectstore - File Storage Service","The nova..api.ec2.admin Module","The nova..rpc Module","The nova..process Module","Scheduler","The nova..tests.api.openstack.fakes Module","The nova..crypto Module","The nova..compute.disk Module","The nova..volume.driver Module","The nova..manager Module","The nova..scheduler.manager Module","Nova Quickstart","The nova..tests.fake_flags Module","Networking","The nova..compute.power_state Module","The nova..tests.quota_unittest Module","API Endpoint","The nova..db.sqlalchemy.api Module","Managing Images","The nova..flags Module","The nova..image.service Module","The nova..tests.api.openstack.test_faults Module","The nova..validate Module","The nova..auth.signer Module","VLAN Network Mode","The nova..api.openstack.images Module","Authentication and Authorization","The nova..tests.runtime_flags Module","Managing Users","The nova..tests.flags_unittest Module","Welcome to Nova’s documentation!","The nova..tests.api.openstack.test_api Module","<no title>","The nova..tests.service_unittest Module","Setting up a development environment","The nova..fakerabbit Module","Flags and Flagfiles","The nova..api.openstack.servers Module","Nova System Architecture","Services, Managers and Drivers","The nova..auth.ldapdriver Module","Virtualization","Module Reference","The nova..twistd Module","The nova..api.ec2.images Module","The nova..scheduler.simple Module","Networking Overview","The nova..tests.virt_unittest Module","The nova..tests.scheduler_unittest Module","Security Considerations","The nova..api.cloud Module","The nova..tests.access_unittest Module"],objnames:{"0":"Python module"},filenames:["code","api/nova..cloudpipe.pipelib","api/nova..scheduler.chance","api/nova..volume.manager","api/nova..virt.libvirt_conn","api/nova..virt.images","api/nova..tests.api.openstack.test_servers","devref/volume","installer","api/nova..tests.cloud_unittest","adminguide/binaries","api/nova..auth.fakeldap","api/nova..api.ec2.cloud","api/nova..adminclient","api/nova..tests.twistd_unittest","adminguide/index","api/nova..tests.compute_unittest","api/nova..tests.api.fakes","api/nova..db.api","api/nova..db.sqlalchemy.models","man/novamanage","api/nova..tests.declare_flags","api/nova..tests.api.openstack.test_images","api/nova..api.openstack.faults","api/nova..objectstore.handler","adminguide/euca2ools","livecd","nova.concepts","api/nova..network.linux_net","api/nova..api.ec2.apirequest","api/nova..tests.api.openstack.test_auth","api/nova..tests.rpc_unittest","adminguide/managing.instances","api/nova..api.openstack.sharedipgroups","api/nova..virt.xenapi","api/nova..server","api/nova..api.openstack.flavors","adminguide/monitoring","adminguide/distros/ubuntu.10.10","api/nova..db.sqlalchemy.session","devref/fakes","api/nova..auth.dbdriver","api/nova..tests.process_unittest","adminguide/nova.manage","api/nova..service","api/nova..tests.auth_unittest","api/nova..virt.connection","api/nova..compute.monitor","cloud101","api/nova..scheduler.driver","api/nova..tests.api.openstack.test_ratelimiting","devref/cloudpipe","service.architecture","api/nova..tests.validator_unittest","api/nova..test","object.model","adminguide/network.flat","adminguide/distros/others","api/nova..compute.manager","api/nova..api.openstack.auth","api/nova..objectstore.bucket","api/nova..context","api/nova..utils","api/nova..quota","api/nova..tests.network_unittest","adminguide/distros/ubuntu.10.04","api/nova..objectstore.stored","devref/nova","api/nova..auth.manager","devref/database","community","api/nova..virt.fake","api/nova..compute.instance_types","adminguide/single.node.install","api/nova..tests.volume_unittest","api/nova..exception","api/nova..tests.real_flags","api/nova..tests.objectstore_unittest","api/nova..api.openstack.backup_schedules","adminguide/getting.started","api/nova..tests.api_unittest","api/nova..tests.api.openstack.test_flavors","api/nova..tests.api_integration","api/nova..api.ec2.metadatarequesthandler","api/nova..tests.api.test_wsgi","adminguide/managing.projects","api/nova..tests.api.openstack.test_sharedipgroups","api/nova..wsgi","devref/glance","api/nova..network.manager","adminguide/multi.node.install","api/nova..objectstore.image","devref/index","devref/objectstore","api/nova..api.ec2.admin","api/nova..rpc","api/nova..process","devref/scheduler","api/nova..tests.api.openstack.fakes","api/nova..crypto","api/nova..compute.disk","api/nova..volume.driver","api/nova..manager","api/nova..scheduler.manager","quickstart","api/nova..tests.fake_flags","devref/network","api/nova..compute.power_state","api/nova..tests.quota_unittest","devref/api","api/nova..db.sqlalchemy.api","adminguide/managing.images","api/nova..flags","api/nova..image.service","api/nova..tests.api.openstack.test_faults","api/nova..validate","api/nova..auth.signer","adminguide/network.vlan","api/nova..api.openstack.images","devref/auth","api/nova..tests.runtime_flags","adminguide/managing.users","api/nova..tests.flags_unittest","index","api/nova..tests.api.openstack.test_api","api/autoindex","api/nova..tests.service_unittest","devref/development.environment","api/nova..fakerabbit","adminguide/flags","api/nova..api.openstack.servers","devref/architecture","devref/services","api/nova..auth.ldapdriver","devref/compute","devref/modules","api/nova..twistd","api/nova..api.ec2.images","api/nova..scheduler.simple","adminguide/managing.networks","api/nova..tests.virt_unittest","api/nova..tests.scheduler_unittest","adminguide/managingsecurity","api/nova..api.cloud","api/nova..tests.access_unittest"]}) \ No newline at end of file +Search.setIndex({objects:{"nova.virt":{fake:[40,0,1]},nova:{validate:[67,0,1],exception:[67,0,1]},"nova.compute":{instance_types:[134,0,1],power_state:[134,0,1]}},terms:{prefix:[127,90],tweet:70,ip_rang:[35,19,43],novadev:73,under:[53,119],spec:[19,43,70,119],ramdisk:73,digit:119,everi:[26,52],ident:[134,40,119],cmd:67,eucatool:104,upload:[73,24,119],rabbitmq:[79,38,26,65,127],ifac:90,direct:14,chef:90,second:[26,52],ebtabl:[127,57,79,117],aggreg:[134,40,131,70],libxslt:127,even:106,keyserv:65,eventlet:[127,79],commonnam:73,poison:[57,117],"new":[134,38,19,104,121,123,40,85,52,127,70,43,117,132,73],net:[19,70,90,127,65,67],maverick:[38,73],metadata:[117,52,119],ongo:[26,43],abov:52,mem:[134,40],never:[134,40],here:[134,38,26,10,123,40,35,90,127,117,65,111],path:[132,106,19,43,92],aki:73,permit:[53,121],bashrc:90,unix:79,refenc:14,total:[134,26,40,85,119],prese:90,highli:[123,79,90],describ:[123,19,104,48,26,70,142,43,14,117,73,24,119],would:[132,79,119,69],noarch:127,call:[134,26,10,40,52,117,119],python26:127,recommend:[104,73,79,90],nate:[106,117],type:[38,48,70,90,53,35,92,119,73,65,67],until:[73,26],eucalyptussoftwar:127,relat:[134,19,26,79,70,53,43,119],"10gb":[104,117],notic:[127,79],warn:38,relai:[53,70],vpn:[19,106,26,52,135,35,92,117,73,119,43],must:[134,38,26,121,40,85,131,117,8,65,119],word:26,err:[134,127,40],"0at28z12":73,setup:[104,79,90,127,117,73],blade:7,conceptu:119,rework:[7,123],hansen:38,root:[38,26,104,90,73,31],overrid:79,defer:[134,38,40,131],give:[134,121,104,123,40,52,65],vpn_start:35,indic:[134,123,19,40,43,92],segreg:117,want:[38,19,104,48,26,90,43,117,65],keep:[134,26,40,52,90,57],end:[119,52,90],turn:52,how:[123,26,104,70,90,14,117,57,119],env:[104,90],answer:70,verifi:121,config:[73,90],updat:[121,19,106,52,90,127,43,117,73,65,119],compute_unittest:[134,15,0,92,125],mess:104,after:[7,121,123,79,104],diagram:[48,26,92,117,106],befor:[134,26,104,40,79,73,57,31],test_wsgi:[84,0,92,125,109],demonstr:117,fedora:[127,73],attempt:[132,26,85,104],third:119,classmethod:[134,40],opaqu:[134,40],bootstrap:90,credenti:[73,85,119,121],perform:[134,121,26,117,40,79,90,43,14,7],"18th":90,environ:[121,19,104,123,48,85,90,58,43,73,119],exclus:106,ethernet:[7,26],order:[121,26,90,131,117,7],oper:[38,26,121,48,90,53,117,119],diagnos:123,over:[7,48,26,106,90],becaus:[26,104,70],privileg:90,incid:119,flexibl:48,vari:73,fip:119,uuid:121,fit:[127,131],backup_schedul:[0,78,92,125,109],fix:[53,35,26,10],cla:70,better:90,persist:[79,14],cred:90,easier:[132,73,90],them:[134,121,104,10,40,90,117,132,73],wr_req:[134,40],thei:[134,19,40,79,90,43,85,31,119],proce:117,volume_unittest:[7,74,0,92,125],objectstor:[38,93,0,10,66,125,61,79,135,139,92,23,73,90,131],power_st:[134,0,125,107,40,92],each:[26,104,48,79,52,90,35,142,131,117,7,57],debug:[123,79],mean:[134,73,40,79,131],interop:119,laboratori:123,devref:123,cloud02:73,extract:73,admincli:[13,0,125,92,67],network:[0,106,70,73,38,10,123,40,79,43,117,119,121,14,89,48,125,52,90,53,35,92,57,134,135,26,27,142,131],bridge_port:90,newli:73,content:[123,90],got:73,gov:[48,123],written:[127,123],ntp:117,free:[38,70,52,127],renegoti:52,fakerabbit:[128,0,40,125,92],test_fault:[0,114,92,125,109],ata:7,openssl:[127,73],installt:79,isn:40,apirequest:[28,0,92,125,109],confus:132,rang:[19,117,26,90,35,43,14,67],instance_nam:[134,40],fakeinst:[134,40],independ:119,system:[104,70,109,7,73,38,10,79,117,119,121,85,14,123,48,90,127,92,132,57,26,35,142,31,131],restrict:[121,14],instruct:[38,70],alreadi:[117,90],imagestor:73,primari:7,sometim:26,stack:[134,40],master:90,autorun:52,john:[121,85],zipfil:[8,19,85,43,121],listen:[53,26,79],iptabl:[127,57,79,117,106],consol:[53,24],tool:[48,79,90,53,127,14,24],enjoi:121,auth_unittest:[0,45,92,119,125],provid:[123,26,117,48,79,70,35,52,14,106,73,119],tree:123,project:[106,85,8,73,123,56,43,117,119,121,19,14,48,52,90,135,127,131,57,53,26,35,92],matter:121,num_network:35,provis:[48,90],fashion:119,tx_drop:[134,40],mind:123,xensourc:79,libvirt:[134,40,79,90,131,7],seem:131,computemanag:10,volumedriv:132,transmit:[134,40],simplifi:121,though:[90,104,14,69],usernam:[121,19,43],object:[134,123,56,10,40,53,131,14,132,119],regular:121,cblah2:73,tradit:119,don:[48,121,79,90],max_mem:[134,40],doc:[123,26,106,90,142,92,7,73,119],metal:90,doe:[26,31,43],declar:[92,119],notempti:67,came:48,random:[121,26,43],transluc:119,syntax:[7,121,85,104,123],directli:[7,121,40,134,90],sourcabl:85,contrib:[79,104],protocol:119,iscsitarget:79,insnanc:52,dhcpserver:26,priv:73,involv:[123,142,79,70],acquir:121,explain:26,configur:[123,19,104,10,26,52,79,53,127,142,117,73,90,57],apach:119,ldap:[131,26,43,119,79],oct:73,watch:73,amazon:[134,123,26,40,53,117,109],root_password:90,report:70,validator_unittest:[77,0,125,92,67],wr_byte:[134,40],method:[134,10,40,79,52,132,119],runn:104,respond:[132,19,43],respons:[134,10,40,53,131,132,73,119],fail:[134,40],best:[79,70],subject:[53,73],databas:[135,19,104,69,131,79,52,90,53,43,132,73,92],irt:73,discoveri:119,figur:[],outstand:123,simplest:[26,104],irc:70,approach:[121,119],attribut:[48,24,123],accord:[7,48],extend:119,protect:[142,57,117],easi:[123,79],fault:[123,0,125,22,92,109],howev:[106,35,90],against:[127,57,104,117],reservationid:119,logic:[7,119],s3_host:90,login:31,seri:14,com:[26,79,90,127,73,65],compromis:142,applianc:106,"2nd":90,guid:[134,123,26,106,40,79,90,92,14],assum:[117,90],duplic:67,etherd:127,three:[35,119],been:[117,121,79,67,90],trigger:[38,131,117],interest:70,basic:[106,79,52,90,53,14,31,119],ann:73,tini:[73,26,31,52,104],quickli:[123,79,104],toller:123,rather:[26,131],worker:[53,104],ani:[134,121,19,104,48,40,26,52,79,43,85,119],emploi:121,dectect:69,servic:[0,106,70,73,123,10,40,79,117,44,14,88,48,125,90,53,92,132,93,134,135,26,141],properti:[134,79,119,90],sourceforg:127,dashboard:[121,131,117],publicli:[121,85],vagu:[123,142],spawn:[134,19,40,35,43,119],clusto:106,printabl:73,tabl:[123,92,119,90],toolkit:123,ratelimit:[92,109],conf:[73,19,79],sever:106,cloudaudit:[92,119],receiv:[134,26,10,48,40,53,131],make:[38,85,10,106,90,53,127,73,132,8],meetup:70,complex:[57,104],split:[73,117,90],complet:[134,38,121,48,40,53,73,119],nic:117,rais:[134,40,117,67],ownership:119,kib:[134,40],kid:70,kept:79,scenario:[123,14],thu:90,inherit:119,thi:[104,106,70,7,73,38,40,79,14,119,121,85,117,123,52,90,53,127,92,132,134,26,58,142,65,31,131],gzip:73,countrynam:73,facto:121,just:[121,19,104,123,48,52,142,43,67],bandwidth:48,human:[134,48,40],yet:[121,35,67,90],languag:48,previous:73,expos:[121,26,52,10],had:104,spread:10,har:48,save:[73,52],applic:[48,119],mayb:[106,123],background:14,measur:[48,85],daemon:[127,14,10,79],specif:[134,121,26,104,123,106,40,79,52,90,53,92,14,117,132,119],manual:[19,104,26,90,127,57],volumemanag:10,channel:70,xlarg:26,underli:[7,26],www:[127,26],right:[121,142,123],old:[7,123,92],deal:132,somehow:90,intern:[134,106,40],successfulli:[134,40],deploy:[123,10,48,79,70,90,131,14],subclass:[106,10],cnf:[73,90],track:[134,40,79],uml:[26,104],unbundl:24,core:[123,19,56,26,79,127,43,14,90,85],load_object:132,repositori:[79,90],post:70,"super":121,redownload:52,br100:[26,90],postgresql:90,slightli:104,unfortun:[134,40],span:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,39,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,75,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],libvirt_conn:[4,134,0,92,125],produc:53,zxvf:127,ppa:[65,79,90],regist:[73,24,119,70],"float":[35,19,26,10,43],encod:52,down:48,wrap:119,storag:[135,26,10,88,48,53,92,7,93,119,131],eth0:[26,90],accordingli:121,git:[127,90],fabric:[53,123],wai:[123,106,79,70,90,14,73],support:[38,26,10,121,48,79,52,90,35,117,109,85,31],nova:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,49,50,52,53,54,55,78,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,143,144],why:48,avail:[38,19,123,48,40,26,70,79,53,127,90,43,117,24,85,31,119],reli:[106,79,10],linux_net:[106,0,125,92,27],declare_flag:[0,125,20,67,92],form:[134,19,40,85],offer:[53,48,70],sqlalchemi:[18,0,69,125,79,90,127,92,75,110],icmp:52,"true":[73,19,121,43,90],freenod:70,reset:24,projectmanag:[121,19,43],rescu:[134,40],maximum:[134,40,119],vishi:90,fundament:26,autoconf:127,service_unittest:[126,0,40,125,92],classif:119,featur:[26,117,70],b64:52,"abstract":132,decrypt:[26,43],exist:[121,26,106,85,90,53,35,7,119],glanc:[135,88,10,92],mybucket:73,check:[121,19,79,127,43,73,85],underutil:48,encrypt:[73,142],when:[134,38,104,48,40,79,52,90,53,131,117,106,73,65,31,119],role:[121,19,26,131,85,90,53,43,14,119,92],scriptnam:[19,43],test:[0,104,69,106,81,70,108,82,6,109,7,73,74,114,76,77,9,40,79,80,42,14,15,16,45,119,120,84,122,125,86,20,21,124,50,126,127,54,92,55,93,134,105,91,29,140,97,113,98,64,144,30,31,67],snapshot:24,webob:79,xenapi:[33,134,0,125,79,40,92],node:[38,123,106,90,53,117,7,73,57],irclog:70,kvm:[127,26,79,104],intens:104,intent:90,consid:90,sql:[131,90],adminguid:123,ignor:121,time:[134,26,104,40,70,53,117],concept:[123,26,51,85,142,43],chain:106,skip:85,global:[121,19,26,43],focus:26,known:[134,40],eauthent:119,llc:19,decid:131,depend:[38,48,79,90,127,73,65],zone:24,bpython:[19,43],readabl:[134,40],supposedli:48,sourc:[121,19,0,104,123,79,70,73,8,65],string:[26,43],revalid:127,condit:[7,26,43],octob:90,join:[117,70],exact:127,nodaemon:79,cool:70,organizationalunitnam:73,administr:[121,26,117,123,79,35,43,14,73,24,57,119],level:[123,85,121,48,142,92,119],rpc_unittest:[0,30,92,67,125],greenlet:[127,79,90],pnova:90,prevent:[53,119],work:[134,38,26,48,40,79,52,90,53,14,132,73,57,119],sign:[121,70,52,119],port:[117,52],addr:90,current:[134,121,19,104,35,106,40,26,79,132,117,109,7,73,57,85,119],gener:[134,121,26,0,123,40,52,90,117,132,73,31],gawk:[127,79],address:[121,19,56,104,123,106,26,90,53,35,43,117,85,24,57,119],along:119,wait:[31,131],box:[26,117,10],queue:[53,131,79,90],throughput:37,tunnelingnod:106,particularli:104,"95c71fe2":65,ipc:[26,43],semant:[134,40,119],tweak:[79,104],modul:[1,2,3,4,5,6,7,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,123,39,40,41,42,44,45,46,47,49,50,52,77,55,78,59,60,61,62,63,64,66,67,68,69,71,72,74,75,76,54,79,80,81,82,83,84,86,87,88,89,139,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,112,113,114,115,116,118,119,120,122,124,125,126,127,128,129,130,132,133,134,135,136,137,138,91,140,141,143,144],ipi:[127,79],visibl:117,instal:[25,26,104,38,123,79,52,90,127,14,117,73,65,57],newslett:70,tx_byte:[134,40],memori:[134,40],todai:48,live:[8,90,123,70,25],handler:[23,93,0,92,125],scope:26,checkout:104,challeng:[92,119],afford:[48,121],peopl:[132,48,123,70,90],pylint:79,enhanc:[92,119],easiest:90,behalf:121,uniqu:[134,40],cat:[127,90],whatev:79,purpos:[121,79],heart:53,agent:[57,119],topic:14,critic:119,api_unittest:[0,109,92,125,80],occur:[26,117],alwai:[123,117,52],lxml:127,multipl:[117,123,26,104,10,48,79,90,53,131,14,109,7],write:[134,123,40,70,90,58,73],map:[134,123,121,106,40,117,119],aoe:[7,127,79],atao:131,clone:[65,104,90],intrus:142,membership:70,mai:[117,38,85,104,48,40,134,79,90,53,14,106,132,119],data:[134,85,48,40,52,142,92,132,73,119,131],man:31,hyperv:26,practic:73,favorit:90,inform:[134,19,10,40,26,70,92,117,31,119],"switch":[73,26,104,117,106],combin:119,meerkat:38,callabl:132,talk:[134,123,40,70,131,14],root_password_again:90,brain:48,use_ldap:104,still:[123,19,43,90],dynam:[26,131,117],swiftadmin:123,monitor:[134,0,47,40,79,125,142,92,14,37],polici:119,amqplib:79,avil:79,platform:[134,48,26,40,79],window:104,main:[123,65,14],scheduler_unittest:[113,0,125,92,97],non:[132,38],synopsi:19,initi:[104,90],nation:48,recap:57,now:[38,142,73,123,127],secgroup:119,introduct:[123,26,43,119,92],term:[134,48,40],workload:123,name:[134,121,19,123,40,26,90,127,43,117,73,85],drop:[134,40,104],crypto:[99,0,125,92,52],separ:[121,85,131,35],compil:73,domain:[134,40],replai:119,replac:[7,79,10],individu:[7,106,123,119,121],receipt:121,continu:[53,38,65,79,127],contributor:70,keypair:[26,104,52,73,24,31,119],get_info:[134,40],resourc:[85,48,79,53,35,14],happen:132,subnet:[106,57,117,90],shown:[65,131],accomplish:[73,31,14,121],vlan_start:35,space:[38,104,117],internet:[106,26,70,52,117],integr:[135,119,92,88,90],project_manag:85,california:73,org:[127,19,70],"byte":[134,40],care:104,thing:[134,104,40,90,73,31],place:[106,38,70,48],router:106,principl:127,think:26,first:[38,104,79,90,127,117,65,31],origin:[123,85,48,53,35,14,57],redhat:127,onc:[134,38,48,40,70,90,127,14,8,65],yourself:73,environemnt:90,bridgingnod:106,accesskei:[121,19,43],open:[123,79,70,35,52,117],size:[19,85,43,117,119],sharedipgroup:[0,109,92,125,32],given:[134,19,40,26,52,35,43,57],workaround:90,iaa:[48,26,123],cumul:119,draft:70,manager_id:85,forthcom:104,device_path:[134,40],grant:90,especi:131,copi:[106,38,52,73],specifi:[134,121,19,104,40,79,52,90,43,117,132,85,57],broadcast:90,forward:[131,52,90],soren:38,mostli:57,holder:121,than:[38,26],serv:[48,117],wide:[127,119],were:104,browser:8,pre:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,39,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,75,76,54,80,81,82,83,84,86,87,89,139,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,127,128,129,130,133,136,137,138,91,140,141,143,144],san:26,saa:48,argument:[121,19,85,79,35,43,67],slap:79,dash:[26,117],test_api:[124,0,92,125,109],recover:123,disk_stat:[134,40],engin:[53,106],destroi:[134,40,104],backchannel:119,note:[134,38,26,121,40,85,90,127,65,57],ideal:119,take:[53,38,40,134,104],noth:131,test_serv:[0,109,6,125,92],begin:[53,121,90],sure:[38,10],normal:[19,85,43],tornado:[127,79],compress:[19,43],paid:48,pair:[142,31],synonym:[134,40],twistd_unittest:[91,0,125,92,67],later:70,drive:26,runtim:119,newer:127,show:79,permiss:[121,26,104,119],xml:[73,10],onli:[117,121,26,104,48,40,134,79,90,53,35,14,106,85,57],explicitli:26,rx_drop:[134,40],activ:[119,70],enough:117,invalidinputexcept:67,sighup:90,variou:[134,121,26,104,40,53],get:[117,38,26,104,121,48,40,134,79,70,90,53,123,131,14,73,8,65,24],repo:127,ssl:73,cannot:[121,117],ssh:[106,73,31,104],requir:[38,26,121,48,79,70,90,52,117,65],bzr331:38,priviledg:14,where:[134,73,40,70,90],wiki:[123,79,70],kernel:[127,73],netadmin:[121,19,26,43],auth_driv:79,rmi:67,xenserv:79,concern:[134,40,104,131],kmod:127,detect:[134,40,142],review:[79,119],getattr:132,between:[123,26,10,106,79,90,53,142,117],"import":[73,26,10,121],across:[106,85,90],assumpt:[104,123,79,90],api_command:26,screen:[127,19,43,104],tut:[123,92],virt_unittest:[134,0,92,125,140],come:[127,70,90],region:24,imf:119,tutori:92,mani:[38,26,48,79,90,43,106,31],overview:[106,35,52,14,92],period:52,dispatch:53,eclips:48,fixed_ip:90,rd_req:[134,40],mark:90,real_flag:[76,0,125,92,67],certifi:73,zope:79,those:[134,26,40,52,142],"case":[90,131,119,69],process_unittest:[42,0,125,92,67],xcp_sdk:79,stdout:67,canon:73,worri:90,cluster:[117,90],detach_volum:[134,40],twistd:[136,0,125,92,67],develop:[121,19,104,123,40,26,58,92,119,43],saml:119,iscsi:[7,53,131,79,123],same:[121,26,10,106,85,90,127,43,117,57,119],binari:[26,79,10,131],html:67,subdomain:109,vblade:[127,79],finish:[73,104],confidenti:119,driver:[134,26,0,125,10,69,106,49,40,79,97,135,132,43,119,7,101,92],someon:104,decompress:73,driven:123,capabl:[48,117],openldap:[127,79],extern:[79,90,131,117,57,119],tradition:119,appropri:[106,121],moder:119,pep8:79,without:[134,121,19,40,52,43,117,119],disassoci:[26,24],model:[18,121,0,56,69,48,125,53,123,92,14,106],rolenam:[19,43],execut:[53,121,19,43,90],rest:[134,40,119,10],weekli:70,kill:104,touch:132,flavor:[0,36,92,125,109],samba:26,hint:79,except:[134,0,40,125,92,117,39,37,67],littl:[132,48],blog:[38,70],versa:[134,40],vulner:119,real:[134,40,70,90],mox:[127,79],around:[38,70,90],read:[134,38,26,40,79,70,90,35,14,73,65],swig:127,traffic:[106,92,117],world:52,tx_packet:[134,40],integ:[134,40],server:[0,104,106,34,109,73,38,79,117,119,14,123,48,125,52,90,53,127,130,92,57,35,65,67,131],appic:73,dnsmasq:[127,26,79,117,106],either:[19,119,43,117,79],cascad:123,output:[53,19,24,43,104],manag:[68,0,103,106,109,85,102,8,7,73,111,123,10,3,79,43,14,119,121,19,117,89,125,52,90,53,35,92,132,134,135,26,59,97,31,131],udev:127,confirm:[38,65,24],qemu:[127,26,104],definit:[53,48,119,123],achiev:[26,119],exit:104,inject:[26,57,31],refer:[135,123,31,92],test_auth:[0,29,92,125,109],power:[134,48],broker:[53,92,119],bazaar:70,central:131,stand:70,act:[57,117,90],bond:117,processor:85,road:73,ansolab:73,euca2ool:[38,121,79,127,14,24,31],effici:26,terminolog:[134,40],unregist:119,your:[121,26,104,40,79,70,90,52,73],loc:119,log:[142,70,67],her:85,disk_id:[134,40],start:[38,19,104,26,79,35,43,117,73,8,65,57],interfac:[134,123,26,104,35,40,79,90,53,127,14,117,57,119],low:119,lot:104,fixed_rang:[35,90],fcbj2non:73,bundl:[121,26,52,43,73,8,24],regard:[134,40],interface_stat:[134,40],amongst:10,wrap_except:67,categor:[121,119,67],congratul:73,pull:104,dirti:[92,119],possibl:[79,90],"default":[121,26,104,79,90,127,119,117,57,67],bucket:[0,125,61,90,92,73,93,119],virsh:[73,104],connect:[134,19,0,125,117,48,40,26,52,35,43,46,106,73,119,92],uid:[38,119],creat:[85,8,7,73,38,40,79,43,117,119,121,19,14,52,90,53,35,24,57,134,26,31],certain:[121,79],use_ppa:65,file:[134,121,19,88,10,104,106,79,52,90,135,127,70,92,73,93,85,43],again:73,googl:10,fakeldap:[11,0,40,125,92],personnel:121,hybrid:[48,92,119,123],field:121,cleanup:104,collis:7,rdbm:79,you:[104,85,70,8,73,38,10,40,79,43,14,121,19,48,52,90,127,131,26,142,65,92],import_class:[26,43],architectur:[123,104,53,142,131,14],fake_subdomain:[79,90],vocabulari:119,pool:[48,26,117],cloudpip:[26,0,1,125,52,135,92,117],directori:[38,104,52,90,73,119],descript:[123,19,56,26,79,53,35,43,85,67],goe:52,chown:90,libvirt_typ:104,potenti:[131,119],escap:[134,40],cpu:[134,40],all:[134,121,19,104,10,35,40,26,70,79,127,142,43,14,117,85,90,57,119,131],dist:73,consider:142,illustr:[26,117],lack:69,ala:106,runtime_flag:[0,125,92,67,120],abil:[48,121],follow:[38,19,104,121,106,26,52,79,53,70,123,43,14,117,73,90,85,119],disk:[134,38,0,104,106,40,79,125,135,127,92,7,100],secretkei:[121,19,43],auth_manag:[26,43],init:90,program:[48,123,79,92],project_id:[121,85,52],liter:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,39,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,75,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],far:[134,40],host_ip:104,managingsecur:123,util:[26,0,119,48,125,85,127,43,14,62,132,24,67,92],mechan:[48,26],failur:[123,69],veri:[123,26,79,70,90,127,67],typetest:67,vishvananda:90,bridge_stp:90,list:[134,38,19,51,104,121,40,79,52,90,35,43,73,65,85],unrescu:[134,40],stderr:67,user_nam:90,fakeldapdriv:79,disconnect:52,past:[38,73],syslog:37,zero:79,design:[123,26,70],pass:[134,40,52,53,117,57,119],further:[134,40,92,119],what:[123,19,48,79,90,43],sun:119,section:[19,26,79,35,92,14,43],abl:[8,79,104],brief:[123,56,35],overload:119,rackspac:[53,73,26],delet:[134,121,19,104,40,85,53,35,43,24,119],version:[38,19,104,79,70,127,14,24,119],intersect:[121,26],"public":[121,26,10,123,48,52,35,92,117,106,57,31,119],contrast:[134,40],full:[134,40],variat:57,trunk:[104,117],standard:[48,19,123,26,43],modifi:[121,19,24,43],valu:[85,104],search:[123,92],amount:[48,26,43,131],pick:104,action:[121,19,142,43],via:[26,14,10,52,43,117,119,131],depart:121,ldapdriv:[0,104,125,79,92,119,133],filenam:[121,85],establish:[53,119],select:[35,19,90],rackspacecloud:73,xenwiki:79,ctrl:104,tackl:26,two:[26,57,117,14],organizationnam:73,virt:[33,134,26,0,40,125,4,5,71,43,46,92],more:[38,19,104,10,106,26,79,35,43,14,117,73,90,31,119],flat:[123,26,90,35,131,14,57],flag:[121,19,0,10,123,106,125,26,52,79,127,51,43,14,119,132,35,90,112,67,92],particular:[79,19,26,43],cacert:73,isloat:123,none:[73,85,35,67,121],endpoint:[53,135,92,109],hour:[48,52],blah:73,outlin:[132,26],dev:79,learn:[70,14,79],deb:65,dhcpbridg:73,scan:119,apierror:67,registr:119,share:[48,26,31,119,131],accept:132,fiddl:104,minimum:[119,117],cours:73,interconnect:119,goal:[142,117],secur:[121,26,56,104,123,106,52,142,43,117,31,119,131],programmat:53,anoth:[26,79,90],divis:132,orukptrc:73,simpl:[26,0,97,10,125,52,90,43,138,92],distro:[127,123,73],sql_connect:90,vlan:[123,26,56,104,10,106,79,52,90,53,35,131,14,117,7,85,57],rbac:[121,26,92,119],pat:73,datastor:[106,79,119],associ:[134,123,26,106,40,85,52,117,73,24,119],github:90,libxml2:127,onto:[57,117],author:[121,19,135,26,53,92,24,119,43],callback:131,allocate_address:26,egg:73,"1b0bh8n":73,help:[24,131,90],soon:[52,10],uvh:127,held:[134,40],i386:127,through:[121,26,104,10,35,48,79,52,90,53,127,142,70,73,31],paramet:[134,40,119],style:[26,57,119],paa:48,might:104,computenod:106,wouldn:38,good:[79,70],"return":[134,121,85,40,79,132,119],timestamp:119,framework:53,detach:[53,134,26,24,40],mysql_pass:[104,90],document:[134,123,26,104,106,40,79,70,90,132,31],troubleshoot:73,datastructur:[134,40],authent:[135,26,10,90,53,142,92,119],easili:[53,121,90],token:119,test_ratelimit:[0,125,92,50,109],processexecutionerror:67,found:[123,26,117,10],intervent:48,subsystem:[127,79],"340sp34k05bbe9a7":73,api_integr:[0,125,92,82,109],hard:[26,104],expect:[38,73],todd:[7,106,104,123],cc_host:90,slave:90,beyond:90,todo:[117,123,56,104,48,111,40,90,53,58,142,92,14,106,7,65,57],event:[53,79,70],ftp:127,research:123,john_project:[121,85],print:[121,35],postgr:90,proxi:[119,90],advanc:14,pub:127,dhcpdiscov:26,reason:90,base:[134,38,19,10,121,48,40,26,79,53,123,43,14,119,132,73,90,67,131],ask:70,loop0:79,recv:65,bash:[121,90],launch:[121,26,117,79,52,43,14,73,57,85,119,92],script:[38,19,104,121,79,52,90,70,43,73,65,31],heartbeat:90,assign:[121,19,106,26,53,35,43,117],use_mysql:[104,90],feed:70,major:[53,131],feel:[127,70],misc:[135,92,67],number:[134,19,40,26,52,90,35,43,117,7,85,119],done:[134,38,104,123,48,40,127,65],blank:[121,19,43],stabl:[123,65],losetup:79,differ:[26,104,10,48,79,35,131,117,109,132,57],guest:[57,90],projectnam:[19,85,43],interact:[121,26,10,123,79,53,35,14],dbdriver:[0,104,125,41,79,92,119],scheme:[134,40],store:[134,38,0,125,123,66,40,79,70,53,92,65,93,31,119,131],schema:119,option:[134,19,40,79,90,43,65,31],relationship:[92,119],similarli:106,part:[8,123,79,73],eventu:90,notfound:[134,40,67],kind:[35,131],remot:26,seamlessli:119,bridg:[123,26,104,10,90,35,131,117,57,119],consumpt:85,list_interfac:[134,40],toward:131,comput:[0,106,70,72,73,38,10,40,79,43,117,119,19,47,123,48,125,90,53,127,92,57,134,26,107,35,59,142,100,131],packag:[38,65,79,10,73],dedic:[117,67,119],euca:[104,73,24,31,90],outbound:117,built:[134,79,131],lib:[38,73],self:48,also:[134,123,19,104,10,48,40,26,52,79,127,70,43,117,106,90,119],append:85,gpgcheck:127,pipelin:[134,40],distribut:[106,127,79,104],"160gb":26,previou:73,quota:[19,0,26,125,85,43,63,119,92],pipelib:[0,1,92,52,125],most:[134,26,104,10,106,40,90,131,117,24,57],plan:119,bzr:[127,65,104,70,90],clear:106,rangetest:67,clean:[134,40,104],usual:[7,132,70],wsgi:[0,87,10,125,92,67],cdn:[73,79],session:[0,104,69,125,92,75],cdp:119,fine:104,find:[14,70,131,117,24,92],firewal:[106,142,119,117,121],copyright:19,networkmanag:10,solut:131,queu:[53,26],instancemonitor:73,factor:79,localitynam:73,unus:[7,134,40,117],express:106,"12t21":73,mainten:[26,43],fastest:[73,14],restart:90,rfc:117,common:[121,79,90,135,92,117,109,67],remov:[121,85,19,53,43,57,119],crl:52,arp:[57,119,117],certif:[26,52,43,117,73,119,92],set:[38,19,104,10,121,79,52,90,53,58,43,117,85,119],ifconfig:104,see:[38,19,51,104,121,106,26,70,79,127,123,43,14,7,73,65,31,119],bare:90,arg:[19,43],ari:73,kpartx:127,experi:79,signatur:[73,121],c2477062:73,isol:[85,117],ipython:[19,43],both:[26,106,90,142,24,57,67],last:[19,43,90],boto:79,context:[0,125,67,129,92],load:[26,10,79,127,43,132,73],simpli:[121,57],point:[132,8,70],tgz:73,schedul:[38,26,0,103,138,135,131,2,49,125,79,97,90,53,35,43,73,92],addressingnod:106,shutdown:[134,40],linux:[123,26,79,52,35,117,57],throughout:[53,67],backend:[134,123,106,79,131,119],g06qbntt:73,java:48,devic:[26,10,48,90,127,131],due:[134,40],secret:[121,19,26,43,73,119],strategi:[35,26,10],ram:104,fire:90,imag:[0,106,109,85,5,8,73,111,123,24,56,10,43,14,118,119,121,19,88,125,52,90,53,139,92,93,57,134,26,137,141,31,131],understand:[132,26],demand:[7,48],look:[106,119,90],straight:26,"while":[38,131,104,117,106],kick:90,behavior:123,error:[73,121,67,90],pubsub:119,ami:[104,73,31,119,79],xvzf:73,euca_repo_conf_eof:127,vol:24,block_stat:[134,40],itself:119,cento:[127,73],decor:67,bridge_maxwait:90,network_manag:[10,90],minim:132,belong:117,nanosecond:[134,40],libc:38,decod:52,sqlite3:[123,79,104],higher:[134,40],novarc:[121,19,85,90,43,73],optim:[48,131,90],wherea:121,user:[104,85,8,73,38,56,43,117,119,121,19,14,48,52,90,53,35,131,24,26,142,31],robust:26,nogroup:38,typic:[53,79,70,119],recent:131,stateless:119,lower:92,task:[53,123,132,14],entri:[38,90,53,117,73,57],nova_comput:10,pymox:79,spend:104,propos:119,explan:131,revoc:[92,52],vpn_public_port:52,collabor:70,shape:48,mysql:[104,127,79,90],openstack:[0,70,36,6,109,73,114,38,10,40,81,118,19,125,86,21,123,124,50,90,22,127,130,92,78,26,60,29,98,65,32],cut:79,vswitch:35,ganglia:37,subsequ:53,build:[104,79,90,127,73,8],bin:[38,90,73,127],vendor:[53,119],format:[121,119],nginx:127,bit:[132,73,26],formal:70,cloud_unittest:[0,9,92,125,109],docutil:[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,39,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,75,76,54,80,81,82,83,84,86,87,89,91,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,122,124,126,128,129,130,133,136,137,138,139,140,141,143,144],resolv:[73,90],manifest:73,collect:[48,70],princip:85,api:[0,104,69,36,6,109,73,110,38,114,10,135,12,40,79,81,142,117,83,16,17,119,84,121,85,125,86,21,123,124,131,50,52,90,22,130,92,78,94,134,53,26,137,28,60,29,118,98,143,31,32],popular:123,modprob:127,scapi:106,encount:79,creation:[134,26,40,90,43,117,119],some:[134,123,26,104,10,40,70,127,92,132,131],back:[134,73,40,79,70],understood:142,sampl:[123,85,48,79,14,73],flatmanag:[10,90],scale:[48,123],novascript:90,"512mb":104,prot:[19,43],per:[26,79,52,135,92,117,57,119],pem:[73,31,104],larg:[7,48,119,10],cloud:[0,104,70,109,73,123,12,79,117,119,121,19,14,48,125,90,53,35,92,26,142,143],stateorprovincenam:73,nose:79,machin:[134,38,26,104,10,40,79,52,90,53,131,14,117,73,119],run:[104,106,7,73,38,10,40,79,43,117,119,19,14,48,52,90,53,127,131,132,24,57,134,26,35,65,31],agreement:70,step:[38,65,90,73,127],prerequisit:38,wget:[127,73],fakemanag:[40,92],"1gb":[79,117],block:[134,26,10,40,52,53,127,131,119],instance_typ:[134,0,72,125,92],within:[121,85,104,106,117,7,119],ensur:[53,127,142],institut:48,question:70,"long":[134,40,52,132,73,119],custom:[134,40],includ:[121,19,26,70,79,53,43,65,90,67],gflag:[19,51,10,26,79,127,43,65],routingnod:106,netomata:106,blueprint:70,properli:[],link:[123,26,65,70,131],translat:[134,40],eauth:[92,119],flagfil:[51,14,10,79],line:[38,123,79,90,73,24,31],objectstore_unittest:[54,93,0,92,125],sdk:79,info:[73,40,111,52,123],cia:119,consist:[106,85,52,35],caller:[134,40],planet:70,inet:90,similar:[53,26,57,119,117],my_file_path:79,trucker:73,repres:[134,26,40,117],chat:70,curl:[127,79],amqp:[106,26,131,90],titl:[0,125],invalid:67,nat:[106,117],scrub:[85,104],gigabyt:[19,26,43],lucid:[73,65,104,90],vice:[134,40],loopback:90,depth:131,nasa:123,addgroup:90,pluggabl:[123,26,43,104],code:[134,26,104,79,70,90,52,117,73,132,8,65,67],partial:[134,40],edg:79,queri:[53,106,119,90],quarantin:121,privat:[123,26,106,52,35,117,48,73,31,119],elsewher:[134,40],friendli:70,send:[73,31,10],sens:132,sent:73,unzip:[38,121,90,73],volum:[101,0,85,7,73,123,56,10,40,3,79,43,119,19,125,90,135,131,24,53,26,92],spoof:[57,117],num_cpu:[134,40],relev:[53,70,90],"try":73,race:7,"0ubuntu2":38,pkg:90,pleas:127,small:[73,26,43,117,131],fortun:14,focu:35,cron:52,download:[48,24,127],folk:90,compat:[53,123,24,119,90],index:[123,92],access:[121,19,117,48,26,52,43,14,73,85,119,92],fakeaoedriv:[40,92],can:[104,85,70,73,38,10,40,79,43,14,119,121,19,117,123,48,52,90,127,131,132,134,26,35,142,65,31],"17d1333t97fd":73,ec2_secret_kei:73,let:[121,40],ubuntu:[38,104,123,79,90,73,65],ioerror:67,becom:121,sinc:[121,119,10,90],convert:131,iface_id:[134,40],hypervisor:[53,134,40,131],larger:[26,131],technolog:[48,26,35,90],cert:[73,52,90],network_unittest:[64,0,92,125,106],fakeconnect:[134,40],chang:[121,104,10,79,52,90,127,119],chanc:[2,0,125,92,97],fake:[134,123,26,0,40,79,125,135,71,98,43,109,16,92],control:[134,121,19,117,123,48,40,26,70,90,53,35,14,106,85,57,119],danger:31,revok:[24,52],appli:[119,90],app:10,gatewai:[57,117,90],apt:[38,65,79,90],"boolean":90,redi:[38,65,79],test_flavor:[81,0,92,125,109],pxe:90,from:[121,19,104,123,48,26,52,79,53,70,142,43,117,7,73,65,57,85],usb:26,zip:[121,19,85,52,90,43,73],commun:[123,26,106,79,70,53,142,131,117],next:[7,90],implic:53,few:127,usr:[127,90,73],lutz:67,remaind:119,rabbit:[43,90],account:[119,70],retriev:[134,73,40,131],carrot:[127,79],obvious:7,fetch:119,employe:121,quickstart:[73,123,104,14,90],tar:[127,79,73],process:[38,0,96,10,123,48,125,52,90,53,92,14,119,73,67,104],lock:53,sudo:[38,104,79,90,73,8,65],high:[123,142,52,90],tag:[26,117,70],onlin:70,attach_volum:[134,40],gcc:127,rabbit_host:90,filepath:79,instead:[123,26,43,10,104],aoe_rules_eof:127,"0a520304":73,exit_cod:67,physic:[53,35,26,119,90],alloc:[121,85,106,52,53,117,7,24,119],essenti:[26,43],bind:90,counter:[134,40],issu:[53,90],allow:[134,121,26,40,79,52,35,131,117,132,31,119],move:[131,26,43,90],meter:48,lockfil:79,chosen:[134,40],infrastructur:[53,48,26,119,117],openvpn:52,therefor:[31,117],crash:106,python:[38,19,51,26,79,127,43,132,73,65,90,131],auto:90,handi:121,auth:[26,0,104,60,11,131,40,41,68,125,79,116,43,109,133,119,92],devel:127,"4e6498a2":73,front:119,strive:123,anyth:[132,119],edit:[127,65,104,70,90],test_sharedipgroup:[0,86,92,125,109],get_connect:[134,40],mode:[123,26,117,35,52,90,127,14,57],use_project_ca:52,cloudfil:73,product:[38,24,117,90],consum:48,"static":106,ec2:[134,121,26,0,137,10,123,28,12,40,79,125,90,92,109,83,85,94],citrix:79,our:[73,70],itsec:[121,19,43],fake_flag:[0,125,92,67,105],special:[26,85,117],out:[123,10,48,79,117,73,57],variabl:[121,19,85,43,104],instance_id:[134,40],contigu:117,req:[134,127,40],reboot:[134,40,53,73,24,31,119],identifi:[134,40],categori:[19,43],suitabl:79,hardwar:[123,85,106,79,53,117,37,119],dhcp:[26,10,106,90,35,117,57],statist:[134,40],await:73,insid:[117,26,70,52,104],dictionari:[134,40],releas:[127,65,24,123],could:[123,106,79,35,117,8,119],put:[38,104,123,52,73,111,31],mac:[57,117],openstackppa:65,length:73,enforc:[106,119,117],outsid:[35,52],organiz:85,softwar:[26,48,79,90,53,73],list_inst:[134,40],echo:[65,90],date:[38,19,79],puppet:90,owner:[121,90],prioriti:[123,104],newus:8,unknown:67,licens:70,mkdir:90,capac:48,messag:[38,26,121,106,79,90,53,131,65,67],attach:[134,26,10,40,53,131,7,24,57,119],attack:[142,119],volume_group:79,aoetool:[127,79],termin:[121,26,104,53,24,31,119],"0x10001":73,"final":127,shell:[132,19,43],eavesdrop:70,deregist:24,shelf:7,rsa:73,botleneck:127,rst:[123,0],haven:[121,67],structur:[85,119],metadatarequesthandl:[83,0,92,125,109],seriou:123,sec:119,py2:73,cc_addr:90,have:[134,121,26,104,123,48,40,79,52,90,117,73,65,57,119],reserv:[73,52],need:[134,121,19,104,123,48,40,26,52,79,127,43,117,132,73,65,90,119],border:142,rout:[53,127,79,10,117],accuraci:127,which:[134,38,26,10,106,40,85,70,90,53,127,131,65,119],datacent:90,soap:119,singl:[38,104,123,70,90,53,127,7,73,65,57,119],courtesi:67,unless:104,preliminari:119,discov:[7,127],deploi:[48,90],vish:[7,123],segment:117,"class":[1,2,3,4,5,6,9,11,12,13,15,16,17,18,20,21,22,23,27,28,29,30,32,33,34,36,39,40,41,42,44,45,46,47,49,50,77,55,78,59,60,61,62,63,64,66,68,71,72,74,75,76,54,80,81,82,83,84,86,87,89,91,92,94,95,96,98,99,100,101,102,103,105,107,108,114,112,113,110,115,116,118,120,121,122,124,126,128,129,130,131,132,133,134,136,137,138,139,140,141,143,144],url:[127,119],request:[134,121,85,10,40,70,53,92,73,119,131],test_imag:[0,125,92,21,109],yum:127,determin:[53,79],occasion:53,fact:106,verbos:[79,90],bring:48,cloudcontrol:106,locat:[73,119,90],launchpad:[104,19,65,70,90],start_on_boot:90,should:[134,121,104,123,48,40,79,90,132,117,7,73,67],local:[73,26,121],contribut:70,familiar:14,autom:48,csrc:[48,123],increas:90,lazyplugg:[26,43],enabl:[123,127,48,53,35,142],organ:[121,35,123],graduat:73,xmlsoft:127,sudoer:104,she:[85,31],partit:26,contain:[134,19,48,40,85,90,117],grab:[7,65,57,52],nist:[48,123],view:19,debconf:90,legaci:[106,92,119],bridge_fd:90,knowledg:[134,40,70],packet:[134,40],elast:[48,117],network_s:[35,90],mountainview:73,xxxxx:10,modulu:73,quota_unittest:[108,0,125,92,119],pattern:[19,43],boundari:142,state:[134,38,19,106,40,43,73,65,92],cloud101:123,progress:38,email:48,argcheck:67,kei:[121,19,123,106,26,52,142,43,117,73,65,85,31,119],ec2_access_kei:73,signer:[0,116,92,119,125],job:119,entir:[106,79],group:[38,19,56,123,48,26,52,79,127,70,90,43,117,106,7,24,119],swift:19,dmz:117,addit:[123,79,127,117,57,119],plugin:[26,43],admin:[121,19,0,125,117,123,106,109,85,52,90,35,43,14,73,8,94,92],wsgiref:79,vgcreat:79,etc:[123,26,104,48,79,90,127,106,73,65,57,119],instanc:[104,106,85,7,73,56,40,43,117,119,121,19,14,48,52,53,35,24,57,134,26,142,31],rx_err:[134,40],runinst:119,pii:119,guidelin:123,chmod:[73,31,104],distinguish:73,rpc:[26,0,10,106,125,43,95,67,92],respect:35,rpm:127,quit:131,addition:119,compos:53,compon:[123,51,106,79,90,53,92,109,37,131],json:73,uroot:90,electr:48,immedi:117,upcom:70,inbound:117,assert:119,rd_byte:[134,40],present:[26,79],replic:[131,10,90],multi:[73,123,90],align:119,defin:[132,121,26,119,90],ultra:10,layer:[134,69,40,135,92,117,119],demo:8,flags_unittest:[122,0,125,92,67],archiv:[73,90],get_console_output:[134,40],welcom:[123,70],networkcontrol:106,parti:119,began:[134,40],member:85,handl:[53,117,67],"35z":73,http:[123,19,48,26,70,79,53,127,131,73,65,90,67],hostnam:53,upon:[53,121],dai:[48,24,40,73],m2crypto:79,access_unittest:[144,0,125,92,119],mysql_prese:90,audit:[142,119],off:[119,90],center:[48,92,119],well:[38,121,79,70,131,109,67],exampl:[121,19,104,123,48,26,43,117,85,57,31,119],command:[104,106,85,73,123,79,43,14,121,19,52,90,53,127,131,132,24,26,35,142,65,31],choos:90,latest:[38,65,90,73,127],xen:[134,26,40,79,131],obtain:[19,57,43],mehod:73,rx_byte:[134,40],simultan:117,adv:65,web:[26,48,53,131,8,119],rapid:48,priorit:119,add:[121,19,56,104,123,79,85,90,127,43,117,73,24,57,31,119,92],valid:[0,104,115,125,92,67],notauthor:[85,67],match:[73,119],gmt:73,rememb:121,howto:[123,92],cloudserv:26,ldconfig:38,realiz:53,five:[121,19,43,119],know:[26,90],password:[104,31,90],python2:[127,73],insert:[106,117,123],resid:14,like:[123,26,48,79,70,90,127,131,73,57,119],success:121,necessari:53,page:[123,26,79,70,92,65,31],project_nam:90,eucalyptu:127,twitter:70,"export":[121,19,85,90,43,7,73],ec2_url:90,home:[38,90],librari:[135,127,79,67,92],tmp:73,feder:119,lead:132,broad:[53,14],avoid:[7,123,131],reconsid:132,leav:[121,19,43],investig:119,usag:[121,31,14,104],host:[38,19,104,123,106,26,52,79,53,127,70,35,43,14,117,132,73,65,90,57,131],although:[132,85,104],user_id:[121,85],about:[134,123,19,104,40,26,70,79,35,14],actual:[26,79,90],anyjson:79,own:[134,123,40,117,52],objecstor:[93,92],import_object:[26,43],easy_instal:127,automat:[121,26,117,52,90],automak:127,"56m":73,rectifi:123,merg:[7,123],pictur:119,transfer:[53,48,40,134,142],snmp:119,mykei:[73,119],much:[48,26,43],"var":[38,104],cloudadmin:90,"function":[134,121,26,117,40,79,53,43,14],baseurl:127,inlin:79,bug:[19,70],deassoci:119,count:79,made:[134,73,40,90],wish:[26,85],googlecod:[127,79],displai:[19,85,43],asynchron:[134,40,119],record:[106,119],below:[123,19,79,90,131,43],limit:[121,26,85,92,117,119],lvm:[7,53],otherwis:[127,19,121,43,79],problem:[7,38,79,104],epel:127,vpn_public_ip:52,evalu:[53,90],dure:90,twist:[127,65,131],implement:[123,26,106,40,79,52,35,92,117,132,57,119],list_disk:[134,40],mountpoint:[134,40],pip:79,probabl:[132,26,104,90],boot:[26,90,117,73,57,31],detail:[134,19,26,106,40,79,90,43,117,132,73,119,92],virtual:[134,135,26,104,10,40,52,53,35,92,73,119,131],other:[121,26,104,69,123,79,70,90,53,127,35,131,117,132,73,119,142],futur:[135,35,92,88],branch:[104,90],varieti:104,rx_packet:[134,40],cpu_tim:[134,40],"100m":79,singleton:132,debian:[127,65,73],stai:[134,26,40],sphinx:123,tx_err:[134,40],reliabl:26,rule:[121,106,52,127,117,119],emerg:48},objtypes:{"0":"py:module"},titles:["<no title>","The nova..cloudpipe.pipelib Module","The nova..scheduler.chance Module","The nova..volume.manager Module","The nova..virt.libvirt_conn Module","The nova..virt.images Module","The nova..tests.api.openstack.test_servers Module","Storage Volumes, Disks","Live CD","The nova..tests.cloud_unittest Module","Nova Daemons","The nova..auth.fakeldap Module","The nova..api.ec2.cloud Module","The nova..adminclient Module","Administration Guide","The nova..tests.compute_unittest Module","The nova..tests.api.fakes Module","The nova..db.api Module","The nova..db.sqlalchemy.models Module","nova-manage","The nova..tests.declare_flags Module","The nova..tests.api.openstack.test_images Module","The nova..api.openstack.faults Module","The nova..objectstore.handler Module","Euca2ools","Installing the Live CD","Nova Concepts and Introduction","The nova..network.linux_net Module","The nova..api.ec2.apirequest Module","The nova..tests.api.openstack.test_auth Module","The nova..tests.rpc_unittest Module","Managing Instances","The nova..api.openstack.sharedipgroups Module","The nova..virt.xenapi Module","The nova..server Module","Networking Overview","The nova..api.openstack.flavors Module","Monitoring","Installing on Ubuntu 10.10 (Maverick)","The nova..exception Module","Fake Drivers","The nova..auth.dbdriver Module","The nova..tests.process_unittest Module","The nova-manage command","The nova..service Module","The nova..tests.auth_unittest Module","The nova..virt.connection Module","The nova..compute.monitor Module","Cloud Computing 101","The nova..scheduler.driver Module","The nova..tests.api.openstack.test_ratelimiting Module","Flags and Flagfiles","Cloudpipe – Per Project Vpns","Service Architecture","The nova..tests.objectstore_unittest Module","The nova..test Module","Object Model","Flat Network Mode (Original and Flat)","Setting up a development environment","The nova..compute.manager Module","The nova..api.openstack.auth Module","The nova..objectstore.bucket Module","The nova..utils Module","The nova..quota Module","The nova..tests.network_unittest Module","Installing on Ubuntu 10.04 (Lucid)","The nova..objectstore.stored Module","Common and Misc Libraries","The nova..auth.manager Module","The Database Layer","Getting Involved","The nova..virt.fake Module","The nova..compute.instance_types Module","Installing Nova on a Single Host","The nova..tests.volume_unittest Module","The nova..db.sqlalchemy.session Module","The nova..tests.real_flags Module","The nova..tests.validator_unittest Module","The nova..api.openstack.backup_schedules Module","Getting Started with Nova","The nova..tests.api_unittest Module","The nova..tests.api.openstack.test_flavors Module","The nova..tests.api_integration Module","The nova..api.ec2.metadatarequesthandler Module","The nova..tests.api.test_wsgi Module","Managing Projects","The nova..tests.api.openstack.test_sharedipgroups Module","The nova..wsgi Module","Glance Integration - The Future of File Storage","The nova..network.manager Module","Installing Nova on Multiple Servers","The nova..tests.twistd_unittest Module","Developer Guide","Objectstore - File Storage Service","The nova..api.ec2.admin Module","The nova..rpc Module","The nova..process Module","Scheduler","The nova..tests.api.openstack.fakes Module","The nova..crypto Module","The nova..compute.disk Module","The nova..volume.driver Module","The nova..manager Module","The nova..scheduler.manager Module","Nova Quickstart","The nova..tests.fake_flags Module","Networking","The nova..compute.power_state Module","The nova..tests.quota_unittest Module","API Endpoint","The nova..db.sqlalchemy.api Module","Managing Images","The nova..flags Module","The nova..tests.scheduler_unittest Module","The nova..tests.api.openstack.test_faults Module","The nova..validate Module","The nova..auth.signer Module","VLAN Network Mode","The nova..api.openstack.images Module","Authentication and Authorization","The nova..tests.runtime_flags Module","Managing Users","The nova..tests.flags_unittest Module","Welcome to Nova’s documentation!","The nova..tests.api.openstack.test_api Module","<no title>","The nova..tests.service_unittest Module","Installation on other distros (like Debian, Fedora or CentOS )","The nova..fakerabbit Module","The nova..context Module","The nova..api.openstack.servers Module","Nova System Architecture","Services, Managers and Drivers","The nova..auth.ldapdriver Module","Virtualization","Module Reference","The nova..twistd Module","The nova..api.ec2.images Module","The nova..scheduler.simple Module","The nova..objectstore.image Module","The nova..tests.virt_unittest Module","The nova..image.service Module","Security Considerations","The nova..api.cloud Module","The nova..tests.access_unittest Module"],objnames:{"0":"Python module"},filenames:["code","api/nova..cloudpipe.pipelib","api/nova..scheduler.chance","api/nova..volume.manager","api/nova..virt.libvirt_conn","api/nova..virt.images","api/nova..tests.api.openstack.test_servers","devref/volume","installer","api/nova..tests.cloud_unittest","adminguide/binaries","api/nova..auth.fakeldap","api/nova..api.ec2.cloud","api/nova..adminclient","adminguide/index","api/nova..tests.compute_unittest","api/nova..tests.api.fakes","api/nova..db.api","api/nova..db.sqlalchemy.models","man/novamanage","api/nova..tests.declare_flags","api/nova..tests.api.openstack.test_images","api/nova..api.openstack.faults","api/nova..objectstore.handler","adminguide/euca2ools","livecd","nova.concepts","api/nova..network.linux_net","api/nova..api.ec2.apirequest","api/nova..tests.api.openstack.test_auth","api/nova..tests.rpc_unittest","adminguide/managing.instances","api/nova..api.openstack.sharedipgroups","api/nova..virt.xenapi","api/nova..server","adminguide/managing.networks","api/nova..api.openstack.flavors","adminguide/monitoring","adminguide/distros/ubuntu.10.10","api/nova..exception","devref/fakes","api/nova..auth.dbdriver","api/nova..tests.process_unittest","adminguide/nova.manage","api/nova..service","api/nova..tests.auth_unittest","api/nova..virt.connection","api/nova..compute.monitor","cloud101","api/nova..scheduler.driver","api/nova..tests.api.openstack.test_ratelimiting","adminguide/flags","devref/cloudpipe","service.architecture","api/nova..tests.objectstore_unittest","api/nova..test","object.model","adminguide/network.flat","devref/development.environment","api/nova..compute.manager","api/nova..api.openstack.auth","api/nova..objectstore.bucket","api/nova..utils","api/nova..quota","api/nova..tests.network_unittest","adminguide/distros/ubuntu.10.04","api/nova..objectstore.stored","devref/nova","api/nova..auth.manager","devref/database","community","api/nova..virt.fake","api/nova..compute.instance_types","adminguide/single.node.install","api/nova..tests.volume_unittest","api/nova..db.sqlalchemy.session","api/nova..tests.real_flags","api/nova..tests.validator_unittest","api/nova..api.openstack.backup_schedules","adminguide/getting.started","api/nova..tests.api_unittest","api/nova..tests.api.openstack.test_flavors","api/nova..tests.api_integration","api/nova..api.ec2.metadatarequesthandler","api/nova..tests.api.test_wsgi","adminguide/managing.projects","api/nova..tests.api.openstack.test_sharedipgroups","api/nova..wsgi","devref/glance","api/nova..network.manager","adminguide/multi.node.install","api/nova..tests.twistd_unittest","devref/index","devref/objectstore","api/nova..api.ec2.admin","api/nova..rpc","api/nova..process","devref/scheduler","api/nova..tests.api.openstack.fakes","api/nova..crypto","api/nova..compute.disk","api/nova..volume.driver","api/nova..manager","api/nova..scheduler.manager","quickstart","api/nova..tests.fake_flags","devref/network","api/nova..compute.power_state","api/nova..tests.quota_unittest","devref/api","api/nova..db.sqlalchemy.api","adminguide/managing.images","api/nova..flags","api/nova..tests.scheduler_unittest","api/nova..tests.api.openstack.test_faults","api/nova..validate","api/nova..auth.signer","adminguide/network.vlan","api/nova..api.openstack.images","devref/auth","api/nova..tests.runtime_flags","adminguide/managing.users","api/nova..tests.flags_unittest","index","api/nova..tests.api.openstack.test_api","api/autoindex","api/nova..tests.service_unittest","adminguide/distros/others","api/nova..fakerabbit","api/nova..context","api/nova..api.openstack.servers","devref/architecture","devref/services","api/nova..auth.ldapdriver","devref/compute","devref/modules","api/nova..twistd","api/nova..api.ec2.images","api/nova..scheduler.simple","api/nova..objectstore.image","api/nova..tests.virt_unittest","api/nova..image.service","adminguide/managingsecurity","api/nova..api.cloud","api/nova..tests.access_unittest"]}) \ No newline at end of file diff --git a/doc/source/adminguide/nova.manage.rst b/doc/source/adminguide/nova.manage.rst index 4235d97b1..0e5c4e062 100644 --- a/doc/source/adminguide/nova.manage.rst +++ b/doc/source/adminguide/nova.manage.rst @@ -162,7 +162,10 @@ Nova Floating IPs ``nova-manage floating create `` Creates floating IP addresses for the named host by the given range. - floating delete Deletes floating IP addresses in the range given. + +``nova-manage floating delete `` + + Deletes floating IP addresses in the range given. ``nova-manage floating list`` -- cgit From 2a06dfc2aa83e6f3f77404f047a66791b91ec10c Mon Sep 17 00:00:00 2001 From: Anne Gentle Date: Wed, 17 Nov 2010 16:03:09 -0600 Subject: really adding images --- .DS_Store | Bin 0 -> 6148 bytes doc/.DS_Store | Bin 0 -> 6148 bytes doc/build/.DS_Store | Bin 0 -> 6148 bytes doc/build/html/.buildinfo | 4 - .../html/.doctrees/adminguide/binaries.doctree | Bin 11915 -> 0 bytes .../.doctrees/adminguide/distros/others.doctree | Bin 13777 -> 0 bytes .../adminguide/distros/ubuntu.10.04.doctree | Bin 8787 -> 0 bytes .../adminguide/distros/ubuntu.10.10.doctree | Bin 9906 -> 0 bytes .../html/.doctrees/adminguide/euca2ools.doctree | Bin 15156 -> 0 bytes doc/build/html/.doctrees/adminguide/flags.doctree | Bin 4917 -> 0 bytes .../.doctrees/adminguide/getting.started.doctree | Bin 37699 -> 0 bytes doc/build/html/.doctrees/adminguide/index.doctree | Bin 16133 -> 0 bytes .../.doctrees/adminguide/managing.images.doctree | Bin 4991 -> 0 bytes .../adminguide/managing.instances.doctree | Bin 8530 -> 0 bytes .../.doctrees/adminguide/managing.networks.doctree | Bin 23566 -> 0 bytes .../.doctrees/adminguide/managing.projects.doctree | Bin 24817 -> 0 bytes .../.doctrees/adminguide/managing.users.doctree | Bin 34523 -> 0 bytes .../.doctrees/adminguide/managingsecurity.doctree | Bin 7476 -> 0 bytes .../html/.doctrees/adminguide/monitoring.doctree | Bin 5600 -> 0 bytes .../adminguide/multi.node.install.doctree | Bin 49860 -> 0 bytes .../html/.doctrees/adminguide/network.flat.doctree | Bin 12519 -> 0 bytes .../html/.doctrees/adminguide/network.vlan.doctree | Bin 44409 -> 0 bytes .../html/.doctrees/adminguide/nova.manage.doctree | Bin 22878 -> 0 bytes .../adminguide/single.node.install.doctree | Bin 41777 -> 0 bytes doc/build/html/.doctrees/api/autoindex.doctree | Bin 6648 -> 0 bytes .../html/.doctrees/api/nova..adminclient.doctree | Bin 4144 -> 0 bytes .../html/.doctrees/api/nova..api.cloud.doctree | Bin 4122 -> 0 bytes .../html/.doctrees/api/nova..api.ec2.admin.doctree | Bin 4166 -> 0 bytes .../.doctrees/api/nova..api.ec2.apirequest.doctree | Bin 4221 -> 0 bytes .../html/.doctrees/api/nova..api.ec2.cloud.doctree | Bin 4166 -> 0 bytes .../.doctrees/api/nova..api.ec2.images.doctree | Bin 4177 -> 0 bytes .../nova..api.ec2.metadatarequesthandler.doctree | Bin 4353 -> 0 bytes .../.doctrees/api/nova..api.openstack.auth.doctree | Bin 4221 -> 0 bytes .../nova..api.openstack.backup_schedules.doctree | Bin 4353 -> 0 bytes .../api/nova..api.openstack.faults.doctree | Bin 4243 -> 0 bytes .../api/nova..api.openstack.flavors.doctree | Bin 4254 -> 0 bytes .../api/nova..api.openstack.images.doctree | Bin 4243 -> 0 bytes .../api/nova..api.openstack.servers.doctree | Bin 4254 -> 0 bytes .../api/nova..api.openstack.sharedipgroups.doctree | Bin 4331 -> 0 bytes .../html/.doctrees/api/nova..auth.dbdriver.doctree | Bin 4166 -> 0 bytes .../html/.doctrees/api/nova..auth.fakeldap.doctree | Bin 4166 -> 0 bytes .../.doctrees/api/nova..auth.ldapdriver.doctree | Bin 4188 -> 0 bytes .../html/.doctrees/api/nova..auth.manager.doctree | Bin 4155 -> 0 bytes .../html/.doctrees/api/nova..auth.signer.doctree | Bin 4144 -> 0 bytes .../.doctrees/api/nova..cloudpipe.pipelib.doctree | Bin 4210 -> 0 bytes .../html/.doctrees/api/nova..compute.disk.doctree | Bin 4155 -> 0 bytes .../api/nova..compute.instance_types.doctree | Bin 4265 -> 0 bytes .../.doctrees/api/nova..compute.manager.doctree | Bin 4188 -> 0 bytes .../.doctrees/api/nova..compute.monitor.doctree | Bin 4188 -> 0 bytes .../api/nova..compute.power_state.doctree | Bin 4232 -> 0 bytes doc/build/html/.doctrees/api/nova..context.doctree | Bin 4100 -> 0 bytes doc/build/html/.doctrees/api/nova..crypto.doctree | Bin 4089 -> 0 bytes doc/build/html/.doctrees/api/nova..db.api.doctree | Bin 4089 -> 0 bytes .../.doctrees/api/nova..db.sqlalchemy.api.doctree | Bin 4210 -> 0 bytes .../api/nova..db.sqlalchemy.models.doctree | Bin 4243 -> 0 bytes .../api/nova..db.sqlalchemy.session.doctree | Bin 4254 -> 0 bytes .../html/.doctrees/api/nova..exception.doctree | Bin 4122 -> 0 bytes .../html/.doctrees/api/nova..fakerabbit.doctree | Bin 4133 -> 0 bytes doc/build/html/.doctrees/api/nova..flags.doctree | Bin 4078 -> 0 bytes .../html/.doctrees/api/nova..image.service.doctree | Bin 4166 -> 0 bytes doc/build/html/.doctrees/api/nova..manager.doctree | Bin 4100 -> 0 bytes .../.doctrees/api/nova..network.linux_net.doctree | Bin 4210 -> 0 bytes .../.doctrees/api/nova..network.manager.doctree | Bin 4188 -> 0 bytes .../.doctrees/api/nova..objectstore.bucket.doctree | Bin 4221 -> 0 bytes .../api/nova..objectstore.handler.doctree | Bin 4232 -> 0 bytes .../.doctrees/api/nova..objectstore.image.doctree | Bin 4210 -> 0 bytes .../.doctrees/api/nova..objectstore.stored.doctree | Bin 4221 -> 0 bytes doc/build/html/.doctrees/api/nova..process.doctree | Bin 4100 -> 0 bytes doc/build/html/.doctrees/api/nova..quota.doctree | Bin 4078 -> 0 bytes doc/build/html/.doctrees/api/nova..rpc.doctree | Bin 4056 -> 0 bytes .../.doctrees/api/nova..scheduler.chance.doctree | Bin 4199 -> 0 bytes .../.doctrees/api/nova..scheduler.driver.doctree | Bin 4199 -> 0 bytes .../.doctrees/api/nova..scheduler.manager.doctree | Bin 4210 -> 0 bytes .../.doctrees/api/nova..scheduler.simple.doctree | Bin 4199 -> 0 bytes doc/build/html/.doctrees/api/nova..server.doctree | Bin 4089 -> 0 bytes doc/build/html/.doctrees/api/nova..service.doctree | Bin 4100 -> 0 bytes doc/build/html/.doctrees/api/nova..test.doctree | Bin 4067 -> 0 bytes .../api/nova..tests.access_unittest.doctree | Bin 4254 -> 0 bytes .../.doctrees/api/nova..tests.api.fakes.doctree | Bin 4188 -> 0 bytes .../api/nova..tests.api.openstack.fakes.doctree | Bin 4298 -> 0 bytes .../api/nova..tests.api.openstack.test_api.doctree | Bin 4331 -> 0 bytes .../nova..tests.api.openstack.test_auth.doctree | Bin 4342 -> 0 bytes .../nova..tests.api.openstack.test_faults.doctree | Bin 4364 -> 0 bytes .../nova..tests.api.openstack.test_flavors.doctree | Bin 4375 -> 0 bytes .../nova..tests.api.openstack.test_images.doctree | Bin 4364 -> 0 bytes .....tests.api.openstack.test_ratelimiting.doctree | Bin 4430 -> 0 bytes .../nova..tests.api.openstack.test_servers.doctree | Bin 4375 -> 0 bytes ...tests.api.openstack.test_sharedipgroups.doctree | Bin 4452 -> 0 bytes .../api/nova..tests.api.test_wsgi.doctree | Bin 4232 -> 0 bytes .../api/nova..tests.api_integration.doctree | Bin 4254 -> 0 bytes .../.doctrees/api/nova..tests.api_unittest.doctree | Bin 4221 -> 0 bytes .../api/nova..tests.auth_unittest.doctree | Bin 4232 -> 0 bytes .../api/nova..tests.cloud_unittest.doctree | Bin 4243 -> 0 bytes .../api/nova..tests.compute_unittest.doctree | Bin 4265 -> 0 bytes .../api/nova..tests.declare_flags.doctree | Bin 4232 -> 0 bytes .../.doctrees/api/nova..tests.fake_flags.doctree | Bin 4199 -> 0 bytes .../api/nova..tests.flags_unittest.doctree | Bin 4243 -> 0 bytes .../api/nova..tests.network_unittest.doctree | Bin 4265 -> 0 bytes .../api/nova..tests.objectstore_unittest.doctree | Bin 4309 -> 0 bytes .../api/nova..tests.process_unittest.doctree | Bin 4265 -> 0 bytes .../api/nova..tests.quota_unittest.doctree | Bin 4243 -> 0 bytes .../.doctrees/api/nova..tests.real_flags.doctree | Bin 4199 -> 0 bytes .../.doctrees/api/nova..tests.rpc_unittest.doctree | Bin 4221 -> 0 bytes .../api/nova..tests.runtime_flags.doctree | Bin 4232 -> 0 bytes .../api/nova..tests.scheduler_unittest.doctree | Bin 4287 -> 0 bytes .../api/nova..tests.service_unittest.doctree | Bin 4265 -> 0 bytes .../api/nova..tests.twistd_unittest.doctree | Bin 4254 -> 0 bytes .../api/nova..tests.validator_unittest.doctree | Bin 4287 -> 0 bytes .../api/nova..tests.virt_unittest.doctree | Bin 4232 -> 0 bytes .../api/nova..tests.volume_unittest.doctree | Bin 4254 -> 0 bytes doc/build/html/.doctrees/api/nova..twistd.doctree | Bin 4089 -> 0 bytes doc/build/html/.doctrees/api/nova..utils.doctree | Bin 4078 -> 0 bytes .../html/.doctrees/api/nova..validate.doctree | Bin 4111 -> 0 bytes .../.doctrees/api/nova..virt.connection.doctree | Bin 4188 -> 0 bytes .../html/.doctrees/api/nova..virt.fake.doctree | Bin 4122 -> 0 bytes .../html/.doctrees/api/nova..virt.images.doctree | Bin 4144 -> 0 bytes .../.doctrees/api/nova..virt.libvirt_conn.doctree | Bin 4210 -> 0 bytes .../html/.doctrees/api/nova..virt.xenapi.doctree | Bin 4144 -> 0 bytes .../html/.doctrees/api/nova..volume.driver.doctree | Bin 4166 -> 0 bytes .../.doctrees/api/nova..volume.manager.doctree | Bin 4177 -> 0 bytes doc/build/html/.doctrees/api/nova..wsgi.doctree | Bin 4067 -> 0 bytes doc/build/html/.doctrees/cloud101.doctree | Bin 16806 -> 0 bytes doc/build/html/.doctrees/code.doctree | Bin 11873 -> 0 bytes doc/build/html/.doctrees/community.doctree | Bin 24317 -> 0 bytes doc/build/html/.doctrees/devref/api.doctree | Bin 65750 -> 0 bytes .../html/.doctrees/devref/architecture.doctree | Bin 11727 -> 0 bytes doc/build/html/.doctrees/devref/auth.doctree | Bin 57755 -> 0 bytes doc/build/html/.doctrees/devref/cloudpipe.doctree | Bin 20717 -> 0 bytes doc/build/html/.doctrees/devref/compute.doctree | Bin 30516 -> 0 bytes doc/build/html/.doctrees/devref/database.doctree | Bin 13184 -> 0 bytes .../devref/development.environment.doctree | Bin 5035 -> 0 bytes doc/build/html/.doctrees/devref/fakes.doctree | Bin 17916 -> 0 bytes doc/build/html/.doctrees/devref/glance.doctree | Bin 6177 -> 0 bytes doc/build/html/.doctrees/devref/index.doctree | Bin 10079 -> 0 bytes doc/build/html/.doctrees/devref/modules.doctree | Bin 3166 -> 0 bytes doc/build/html/.doctrees/devref/network.doctree | Bin 24991 -> 0 bytes doc/build/html/.doctrees/devref/nova.doctree | Bin 46154 -> 0 bytes .../html/.doctrees/devref/objectstore.doctree | Bin 14674 -> 0 bytes doc/build/html/.doctrees/devref/scheduler.doctree | Bin 14504 -> 0 bytes doc/build/html/.doctrees/devref/services.doctree | Bin 12171 -> 0 bytes doc/build/html/.doctrees/devref/volume.doctree | Bin 13881 -> 0 bytes doc/build/html/.doctrees/environment.pickle | Bin 1748540 -> 0 bytes doc/build/html/.doctrees/index.doctree | Bin 18401 -> 0 bytes doc/build/html/.doctrees/installer.doctree | Bin 4868 -> 0 bytes doc/build/html/.doctrees/livecd.doctree | Bin 2484 -> 0 bytes doc/build/html/.doctrees/man/novamanage.doctree | Bin 29090 -> 0 bytes doc/build/html/.doctrees/nova.concepts.doctree | Bin 42051 -> 0 bytes doc/build/html/.doctrees/object.model.doctree | Bin 6809 -> 0 bytes doc/build/html/.doctrees/quickstart.doctree | Bin 28924 -> 0 bytes .../html/.doctrees/service.architecture.doctree | Bin 17800 -> 0 bytes doc/build/html/_images/cloudpipe.png | Bin 89812 -> 0 bytes doc/build/html/_images/fabric.png | Bin 125915 -> 0 bytes doc/build/html/_sources/adminguide/binaries.txt | 57 - .../html/_sources/adminguide/distros/others.txt | 88 - .../_sources/adminguide/distros/ubuntu.10.04.txt | 41 - .../_sources/adminguide/distros/ubuntu.10.10.txt | 41 - doc/build/html/_sources/adminguide/euca2ools.txt | 49 - doc/build/html/_sources/adminguide/flags.txt | 23 - .../html/_sources/adminguide/getting.started.txt | 168 - doc/build/html/_sources/adminguide/index.txt | 90 - .../html/_sources/adminguide/managing.images.txt | 21 - .../_sources/adminguide/managing.instances.txt | 59 - .../html/_sources/adminguide/managing.networks.txt | 85 - .../html/_sources/adminguide/managing.projects.txt | 68 - .../html/_sources/adminguide/managing.users.txt | 82 - .../html/_sources/adminguide/managingsecurity.txt | 39 - doc/build/html/_sources/adminguide/monitoring.txt | 27 - .../_sources/adminguide/multi.node.install.txt | 298 - .../html/_sources/adminguide/network.flat.txt | 60 - .../html/_sources/adminguide/network.vlan.txt | 180 - doc/build/html/_sources/adminguide/nova.manage.txt | 225 - .../_sources/adminguide/single.node.install.txt | 344 - doc/build/html/_sources/api/autoindex.txt | 99 - doc/build/html/_sources/api/nova..adminclient.txt | 6 - doc/build/html/_sources/api/nova..api.cloud.txt | 6 - .../html/_sources/api/nova..api.ec2.admin.txt | 6 - .../html/_sources/api/nova..api.ec2.apirequest.txt | 6 - .../html/_sources/api/nova..api.ec2.cloud.txt | 6 - .../html/_sources/api/nova..api.ec2.images.txt | 6 - .../api/nova..api.ec2.metadatarequesthandler.txt | 6 - .../html/_sources/api/nova..api.openstack.auth.txt | 6 - .../api/nova..api.openstack.backup_schedules.txt | 6 - .../_sources/api/nova..api.openstack.faults.txt | 6 - .../_sources/api/nova..api.openstack.flavors.txt | 6 - .../_sources/api/nova..api.openstack.images.txt | 6 - .../_sources/api/nova..api.openstack.servers.txt | 6 - .../api/nova..api.openstack.sharedipgroups.txt | 6 - .../html/_sources/api/nova..auth.dbdriver.txt | 6 - .../html/_sources/api/nova..auth.fakeldap.txt | 6 - .../html/_sources/api/nova..auth.ldapdriver.txt | 6 - doc/build/html/_sources/api/nova..auth.manager.txt | 6 - doc/build/html/_sources/api/nova..auth.signer.txt | 6 - .../html/_sources/api/nova..cloudpipe.pipelib.txt | 6 - doc/build/html/_sources/api/nova..compute.disk.txt | 6 - .../_sources/api/nova..compute.instance_types.txt | 6 - .../html/_sources/api/nova..compute.manager.txt | 6 - .../html/_sources/api/nova..compute.monitor.txt | 6 - .../_sources/api/nova..compute.power_state.txt | 6 - doc/build/html/_sources/api/nova..context.txt | 6 - doc/build/html/_sources/api/nova..crypto.txt | 6 - doc/build/html/_sources/api/nova..db.api.txt | 6 - .../html/_sources/api/nova..db.sqlalchemy.api.txt | 6 - .../_sources/api/nova..db.sqlalchemy.models.txt | 6 - .../_sources/api/nova..db.sqlalchemy.session.txt | 6 - doc/build/html/_sources/api/nova..exception.txt | 6 - doc/build/html/_sources/api/nova..fakerabbit.txt | 6 - doc/build/html/_sources/api/nova..flags.txt | 6 - .../html/_sources/api/nova..image.service.txt | 6 - doc/build/html/_sources/api/nova..manager.txt | 6 - .../html/_sources/api/nova..network.linux_net.txt | 6 - .../html/_sources/api/nova..network.manager.txt | 6 - .../html/_sources/api/nova..objectstore.bucket.txt | 6 - .../_sources/api/nova..objectstore.handler.txt | 6 - .../html/_sources/api/nova..objectstore.image.txt | 6 - .../html/_sources/api/nova..objectstore.stored.txt | 6 - doc/build/html/_sources/api/nova..process.txt | 6 - doc/build/html/_sources/api/nova..quota.txt | 6 - doc/build/html/_sources/api/nova..rpc.txt | 6 - .../html/_sources/api/nova..scheduler.chance.txt | 6 - .../html/_sources/api/nova..scheduler.driver.txt | 6 - .../html/_sources/api/nova..scheduler.manager.txt | 6 - .../html/_sources/api/nova..scheduler.simple.txt | 6 - doc/build/html/_sources/api/nova..server.txt | 6 - doc/build/html/_sources/api/nova..service.txt | 6 - doc/build/html/_sources/api/nova..test.txt | 6 - .../_sources/api/nova..tests.access_unittest.txt | 6 - .../html/_sources/api/nova..tests.api.fakes.txt | 6 - .../api/nova..tests.api.openstack.fakes.txt | 6 - .../api/nova..tests.api.openstack.test_api.txt | 6 - .../api/nova..tests.api.openstack.test_auth.txt | 6 - .../api/nova..tests.api.openstack.test_faults.txt | 6 - .../api/nova..tests.api.openstack.test_flavors.txt | 6 - .../api/nova..tests.api.openstack.test_images.txt | 6 - ...nova..tests.api.openstack.test_ratelimiting.txt | 6 - .../api/nova..tests.api.openstack.test_servers.txt | 6 - ...va..tests.api.openstack.test_sharedipgroups.txt | 6 - .../_sources/api/nova..tests.api.test_wsgi.txt | 6 - .../_sources/api/nova..tests.api_integration.txt | 6 - .../html/_sources/api/nova..tests.api_unittest.txt | 6 - .../_sources/api/nova..tests.auth_unittest.txt | 6 - .../_sources/api/nova..tests.cloud_unittest.txt | 6 - .../_sources/api/nova..tests.compute_unittest.txt | 6 - .../_sources/api/nova..tests.declare_flags.txt | 6 - .../html/_sources/api/nova..tests.fake_flags.txt | 6 - .../_sources/api/nova..tests.flags_unittest.txt | 6 - .../_sources/api/nova..tests.network_unittest.txt | 6 - .../api/nova..tests.objectstore_unittest.txt | 6 - .../_sources/api/nova..tests.process_unittest.txt | 6 - .../_sources/api/nova..tests.quota_unittest.txt | 6 - .../html/_sources/api/nova..tests.real_flags.txt | 6 - .../html/_sources/api/nova..tests.rpc_unittest.txt | 6 - .../_sources/api/nova..tests.runtime_flags.txt | 6 - .../api/nova..tests.scheduler_unittest.txt | 6 - .../_sources/api/nova..tests.service_unittest.txt | 6 - .../_sources/api/nova..tests.twistd_unittest.txt | 6 - .../api/nova..tests.validator_unittest.txt | 6 - .../_sources/api/nova..tests.virt_unittest.txt | 6 - .../_sources/api/nova..tests.volume_unittest.txt | 6 - doc/build/html/_sources/api/nova..twistd.txt | 6 - doc/build/html/_sources/api/nova..utils.txt | 6 - doc/build/html/_sources/api/nova..validate.txt | 6 - .../html/_sources/api/nova..virt.connection.txt | 6 - doc/build/html/_sources/api/nova..virt.fake.txt | 6 - doc/build/html/_sources/api/nova..virt.images.txt | 6 - .../html/_sources/api/nova..virt.libvirt_conn.txt | 6 - doc/build/html/_sources/api/nova..virt.xenapi.txt | 6 - .../html/_sources/api/nova..volume.driver.txt | 6 - .../html/_sources/api/nova..volume.manager.txt | 6 - doc/build/html/_sources/api/nova..wsgi.txt | 6 - doc/build/html/_sources/cloud101.txt | 85 - doc/build/html/_sources/code.txt | 96 - doc/build/html/_sources/community.txt | 84 - doc/build/html/_sources/devref/api.txt | 296 - doc/build/html/_sources/devref/architecture.txt | 52 - doc/build/html/_sources/devref/auth.txt | 276 - doc/build/html/_sources/devref/cloudpipe.txt | 95 - doc/build/html/_sources/devref/compute.txt | 153 - doc/build/html/_sources/devref/database.txt | 63 - .../_sources/devref/development.environment.txt | 21 - doc/build/html/_sources/devref/fakes.txt | 85 - doc/build/html/_sources/devref/glance.txt | 28 - doc/build/html/_sources/devref/index.txt | 62 - doc/build/html/_sources/devref/modules.txt | 19 - doc/build/html/_sources/devref/network.txt | 128 - doc/build/html/_sources/devref/nova.txt | 235 - doc/build/html/_sources/devref/objectstore.txt | 71 - doc/build/html/_sources/devref/scheduler.txt | 71 - doc/build/html/_sources/devref/services.txt | 55 - doc/build/html/_sources/devref/volume.txt | 66 - doc/build/html/_sources/index.txt | 88 - doc/build/html/_sources/installer.txt | 12 - doc/build/html/_sources/livecd.txt | 2 - doc/build/html/_sources/man/novamanage.txt | 189 - doc/build/html/_sources/nova.concepts.txt | 203 - doc/build/html/_sources/object.model.txt | 53 - doc/build/html/_sources/quickstart.txt | 178 - doc/build/html/_sources/service.architecture.txt | 60 - doc/build/html/_static/basic.css | 509 - doc/build/html/_static/contents.png | Bin 202 -> 0 bytes doc/build/html/_static/doctools.js | 247 - doc/build/html/_static/file.png | Bin 392 -> 0 bytes doc/build/html/_static/jquery.js | 154 - doc/build/html/_static/jquery.tweet.js | 154 - doc/build/html/_static/minus.png | Bin 199 -> 0 bytes doc/build/html/_static/navigation.png | Bin 218 -> 0 bytes doc/build/html/_static/plus.png | Bin 199 -> 0 bytes doc/build/html/_static/pygments.css | 62 - doc/build/html/_static/searchtools.js | 518 - doc/build/html/_static/sphinxdoc.css | 339 - doc/build/html/_static/tweaks.css | 71 - doc/build/html/_static/underscore.js | 16 - doc/build/html/adminguide/binaries.html | 149 - doc/build/html/adminguide/distros/others.html | 208 - .../html/adminguide/distros/ubuntu.10.04.html | 168 - .../html/adminguide/distros/ubuntu.10.10.html | 173 - doc/build/html/adminguide/euca2ools.html | 177 - doc/build/html/adminguide/flags.html | 137 - doc/build/html/adminguide/getting.started.html | 288 - doc/build/html/adminguide/index.html | 214 - doc/build/html/adminguide/managing.images.html | 136 - doc/build/html/adminguide/managing.instances.html | 169 - doc/build/html/adminguide/managing.networks.html | 241 - doc/build/html/adminguide/managing.projects.html | 239 - doc/build/html/adminguide/managing.users.html | 271 - doc/build/html/adminguide/managingsecurity.html | 133 - doc/build/html/adminguide/monitoring.html | 140 - doc/build/html/adminguide/multi.node.install.html | 390 - doc/build/html/adminguide/network.flat.html | 179 - doc/build/html/adminguide/network.vlan.html | 292 - doc/build/html/adminguide/nova.manage.html | 325 - doc/build/html/adminguide/single.node.install.html | 416 - doc/build/html/api/autoindex.html | 229 - doc/build/html/api/nova..adminclient.html | 134 - doc/build/html/api/nova..api.cloud.html | 134 - doc/build/html/api/nova..api.ec2.admin.html | 134 - doc/build/html/api/nova..api.ec2.apirequest.html | 134 - doc/build/html/api/nova..api.ec2.cloud.html | 134 - doc/build/html/api/nova..api.ec2.images.html | 134 - .../api/nova..api.ec2.metadatarequesthandler.html | 134 - doc/build/html/api/nova..api.openstack.auth.html | 134 - .../api/nova..api.openstack.backup_schedules.html | 134 - doc/build/html/api/nova..api.openstack.faults.html | 134 - .../html/api/nova..api.openstack.flavors.html | 134 - doc/build/html/api/nova..api.openstack.images.html | 134 - .../html/api/nova..api.openstack.servers.html | 134 - .../api/nova..api.openstack.sharedipgroups.html | 134 - doc/build/html/api/nova..auth.dbdriver.html | 134 - doc/build/html/api/nova..auth.fakeldap.html | 134 - doc/build/html/api/nova..auth.ldapdriver.html | 134 - doc/build/html/api/nova..auth.manager.html | 134 - doc/build/html/api/nova..auth.signer.html | 134 - doc/build/html/api/nova..cloudpipe.pipelib.html | 134 - doc/build/html/api/nova..compute.disk.html | 134 - .../html/api/nova..compute.instance_types.html | 134 - doc/build/html/api/nova..compute.manager.html | 134 - doc/build/html/api/nova..compute.monitor.html | 134 - doc/build/html/api/nova..compute.power_state.html | 134 - doc/build/html/api/nova..context.html | 134 - doc/build/html/api/nova..crypto.html | 134 - doc/build/html/api/nova..db.api.html | 134 - doc/build/html/api/nova..db.sqlalchemy.api.html | 134 - doc/build/html/api/nova..db.sqlalchemy.models.html | 134 - .../html/api/nova..db.sqlalchemy.session.html | 134 - doc/build/html/api/nova..exception.html | 134 - doc/build/html/api/nova..fakerabbit.html | 134 - doc/build/html/api/nova..flags.html | 134 - doc/build/html/api/nova..image.service.html | 134 - doc/build/html/api/nova..manager.html | 134 - doc/build/html/api/nova..network.linux_net.html | 134 - doc/build/html/api/nova..network.manager.html | 134 - doc/build/html/api/nova..objectstore.bucket.html | 134 - doc/build/html/api/nova..objectstore.handler.html | 134 - doc/build/html/api/nova..objectstore.image.html | 134 - doc/build/html/api/nova..objectstore.stored.html | 134 - doc/build/html/api/nova..process.html | 134 - doc/build/html/api/nova..quota.html | 134 - doc/build/html/api/nova..rpc.html | 134 - doc/build/html/api/nova..scheduler.chance.html | 134 - doc/build/html/api/nova..scheduler.driver.html | 134 - doc/build/html/api/nova..scheduler.manager.html | 134 - doc/build/html/api/nova..scheduler.simple.html | 134 - doc/build/html/api/nova..server.html | 134 - doc/build/html/api/nova..service.html | 134 - doc/build/html/api/nova..test.html | 134 - .../html/api/nova..tests.access_unittest.html | 134 - doc/build/html/api/nova..tests.api.fakes.html | 134 - .../html/api/nova..tests.api.openstack.fakes.html | 134 - .../api/nova..tests.api.openstack.test_api.html | 134 - .../api/nova..tests.api.openstack.test_auth.html | 134 - .../api/nova..tests.api.openstack.test_faults.html | 134 - .../nova..tests.api.openstack.test_flavors.html | 134 - .../api/nova..tests.api.openstack.test_images.html | 134 - ...ova..tests.api.openstack.test_ratelimiting.html | 134 - .../nova..tests.api.openstack.test_servers.html | 134 - ...a..tests.api.openstack.test_sharedipgroups.html | 134 - doc/build/html/api/nova..tests.api.test_wsgi.html | 134 - .../html/api/nova..tests.api_integration.html | 134 - doc/build/html/api/nova..tests.api_unittest.html | 134 - doc/build/html/api/nova..tests.auth_unittest.html | 134 - doc/build/html/api/nova..tests.cloud_unittest.html | 134 - .../html/api/nova..tests.compute_unittest.html | 134 - doc/build/html/api/nova..tests.declare_flags.html | 134 - doc/build/html/api/nova..tests.fake_flags.html | 134 - doc/build/html/api/nova..tests.flags_unittest.html | 134 - .../html/api/nova..tests.network_unittest.html | 134 - .../html/api/nova..tests.objectstore_unittest.html | 134 - .../html/api/nova..tests.process_unittest.html | 134 - doc/build/html/api/nova..tests.quota_unittest.html | 134 - doc/build/html/api/nova..tests.real_flags.html | 134 - doc/build/html/api/nova..tests.rpc_unittest.html | 134 - doc/build/html/api/nova..tests.runtime_flags.html | 134 - .../html/api/nova..tests.scheduler_unittest.html | 134 - .../html/api/nova..tests.service_unittest.html | 134 - .../html/api/nova..tests.twistd_unittest.html | 134 - .../html/api/nova..tests.validator_unittest.html | 134 - doc/build/html/api/nova..tests.virt_unittest.html | 134 - .../html/api/nova..tests.volume_unittest.html | 134 - doc/build/html/api/nova..twistd.html | 134 - doc/build/html/api/nova..utils.html | 134 - doc/build/html/api/nova..validate.html | 134 - doc/build/html/api/nova..virt.connection.html | 134 - doc/build/html/api/nova..virt.fake.html | 134 - doc/build/html/api/nova..virt.images.html | 134 - doc/build/html/api/nova..virt.libvirt_conn.html | 134 - doc/build/html/api/nova..virt.xenapi.html | 134 - doc/build/html/api/nova..volume.driver.html | 134 - doc/build/html/api/nova..volume.manager.html | 134 - doc/build/html/api/nova..wsgi.html | 134 - doc/build/html/cloud101.html | 209 - doc/build/html/code.html | 202 - doc/build/html/community.html | 188 - doc/build/html/devref/api.html | 286 - doc/build/html/devref/architecture.html | 146 - doc/build/html/devref/auth.html | 347 - doc/build/html/devref/cloudpipe.html | 188 - doc/build/html/devref/compute.html | 413 - doc/build/html/devref/database.html | 167 - doc/build/html/devref/development.environment.html | 113 - doc/build/html/devref/fakes.html | 362 - doc/build/html/devref/glance.html | 143 - doc/build/html/devref/index.html | 489 - doc/build/html/devref/modules.html | 126 - doc/build/html/devref/network.html | 236 - doc/build/html/devref/nova.html | 305 - doc/build/html/devref/objectstore.html | 165 - doc/build/html/devref/scheduler.html | 165 - doc/build/html/devref/services.html | 156 - doc/build/html/devref/volume.html | 169 - doc/build/html/genindex.html | 110 - doc/build/html/index.html | 276 - doc/build/html/installer.html | 119 - doc/build/html/livecd.html | 129 - doc/build/html/man/novamanage.html | 297 - doc/build/html/nova.concepts.html | 311 - doc/build/html/object.model.html | 168 - doc/build/html/objects.inv | 9 - doc/build/html/quickstart.html | 272 - doc/build/html/search.html | 116 - doc/build/html/searchindex.js | 1 - doc/build/html/service.architecture.html | 197 - doc/source/.DS_Store | Bin 0 -> 6148 bytes doc/source/images/NOVA_ARCH.png | Bin 0 -> 191332 bytes doc/source/images/NOVA_ARCH.svg | 5854 +++++++ doc/source/images/NOVA_ARCH_200dpi.png | Bin 0 -> 439024 bytes doc/source/images/NOVA_ARCH_66dpi.png | Bin 0 -> 110890 bytes doc/source/images/NOVA_clouds_A_B.png | Bin 0 -> 77007 bytes doc/source/images/NOVA_clouds_A_B.svg | 16342 +++++++++++++++++++ doc/source/images/NOVA_clouds_C1_C2.svg | 9763 +++++++++++ doc/source/images/NOVA_clouds_C1_C2.svg.png | Bin 0 -> 448574 bytes doc/source/images/Novadiagram.png | Bin 0 -> 52609 bytes 470 files changed, 31959 insertions(+), 31738 deletions(-) create mode 100644 .DS_Store create mode 100644 doc/.DS_Store create mode 100644 doc/build/.DS_Store delete mode 100644 doc/build/html/.buildinfo delete mode 100644 doc/build/html/.doctrees/adminguide/binaries.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/distros/others.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/distros/ubuntu.10.04.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/distros/ubuntu.10.10.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/euca2ools.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/flags.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/getting.started.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/index.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managing.images.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managing.instances.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managing.networks.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managing.projects.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managing.users.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/managingsecurity.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/monitoring.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/multi.node.install.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/network.flat.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/network.vlan.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/nova.manage.doctree delete mode 100644 doc/build/html/.doctrees/adminguide/single.node.install.doctree delete mode 100644 doc/build/html/.doctrees/api/autoindex.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..adminclient.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.cloud.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.ec2.admin.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.ec2.apirequest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.ec2.cloud.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.ec2.images.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.ec2.metadatarequesthandler.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.auth.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.backup_schedules.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.faults.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.flavors.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.images.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.servers.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..api.openstack.sharedipgroups.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..auth.dbdriver.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..auth.fakeldap.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..auth.ldapdriver.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..auth.manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..auth.signer.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..cloudpipe.pipelib.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..compute.disk.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..compute.instance_types.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..compute.manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..compute.monitor.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..compute.power_state.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..context.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..crypto.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..db.api.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..db.sqlalchemy.api.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..db.sqlalchemy.models.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..db.sqlalchemy.session.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..exception.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..fakerabbit.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..flags.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..image.service.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..network.linux_net.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..network.manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..objectstore.bucket.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..objectstore.handler.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..objectstore.image.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..objectstore.stored.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..process.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..quota.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..rpc.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..scheduler.chance.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..scheduler.driver.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..scheduler.manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..scheduler.simple.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..server.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..service.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..test.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.access_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.fakes.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.fakes.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_api.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_auth.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_faults.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_flavors.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_images.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_servers.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api.test_wsgi.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api_integration.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.api_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.auth_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.cloud_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.compute_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.declare_flags.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.fake_flags.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.flags_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.network_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.objectstore_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.process_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.quota_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.real_flags.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.rpc_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.runtime_flags.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.scheduler_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.service_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.twistd_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.validator_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.virt_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..tests.volume_unittest.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..twistd.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..utils.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..validate.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..virt.connection.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..virt.fake.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..virt.images.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..virt.libvirt_conn.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..virt.xenapi.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..volume.driver.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..volume.manager.doctree delete mode 100644 doc/build/html/.doctrees/api/nova..wsgi.doctree delete mode 100644 doc/build/html/.doctrees/cloud101.doctree delete mode 100644 doc/build/html/.doctrees/code.doctree delete mode 100644 doc/build/html/.doctrees/community.doctree delete mode 100644 doc/build/html/.doctrees/devref/api.doctree delete mode 100644 doc/build/html/.doctrees/devref/architecture.doctree delete mode 100644 doc/build/html/.doctrees/devref/auth.doctree delete mode 100644 doc/build/html/.doctrees/devref/cloudpipe.doctree delete mode 100644 doc/build/html/.doctrees/devref/compute.doctree delete mode 100644 doc/build/html/.doctrees/devref/database.doctree delete mode 100644 doc/build/html/.doctrees/devref/development.environment.doctree delete mode 100644 doc/build/html/.doctrees/devref/fakes.doctree delete mode 100644 doc/build/html/.doctrees/devref/glance.doctree delete mode 100644 doc/build/html/.doctrees/devref/index.doctree delete mode 100644 doc/build/html/.doctrees/devref/modules.doctree delete mode 100644 doc/build/html/.doctrees/devref/network.doctree delete mode 100644 doc/build/html/.doctrees/devref/nova.doctree delete mode 100644 doc/build/html/.doctrees/devref/objectstore.doctree delete mode 100644 doc/build/html/.doctrees/devref/scheduler.doctree delete mode 100644 doc/build/html/.doctrees/devref/services.doctree delete mode 100644 doc/build/html/.doctrees/devref/volume.doctree delete mode 100644 doc/build/html/.doctrees/environment.pickle delete mode 100644 doc/build/html/.doctrees/index.doctree delete mode 100644 doc/build/html/.doctrees/installer.doctree delete mode 100644 doc/build/html/.doctrees/livecd.doctree delete mode 100644 doc/build/html/.doctrees/man/novamanage.doctree delete mode 100644 doc/build/html/.doctrees/nova.concepts.doctree delete mode 100644 doc/build/html/.doctrees/object.model.doctree delete mode 100644 doc/build/html/.doctrees/quickstart.doctree delete mode 100644 doc/build/html/.doctrees/service.architecture.doctree delete mode 100644 doc/build/html/_images/cloudpipe.png delete mode 100644 doc/build/html/_images/fabric.png delete mode 100644 doc/build/html/_sources/adminguide/binaries.txt delete mode 100644 doc/build/html/_sources/adminguide/distros/others.txt delete mode 100644 doc/build/html/_sources/adminguide/distros/ubuntu.10.04.txt delete mode 100644 doc/build/html/_sources/adminguide/distros/ubuntu.10.10.txt delete mode 100644 doc/build/html/_sources/adminguide/euca2ools.txt delete mode 100644 doc/build/html/_sources/adminguide/flags.txt delete mode 100644 doc/build/html/_sources/adminguide/getting.started.txt delete mode 100644 doc/build/html/_sources/adminguide/index.txt delete mode 100644 doc/build/html/_sources/adminguide/managing.images.txt delete mode 100644 doc/build/html/_sources/adminguide/managing.instances.txt delete mode 100644 doc/build/html/_sources/adminguide/managing.networks.txt delete mode 100644 doc/build/html/_sources/adminguide/managing.projects.txt delete mode 100644 doc/build/html/_sources/adminguide/managing.users.txt delete mode 100644 doc/build/html/_sources/adminguide/managingsecurity.txt delete mode 100644 doc/build/html/_sources/adminguide/monitoring.txt delete mode 100644 doc/build/html/_sources/adminguide/multi.node.install.txt delete mode 100644 doc/build/html/_sources/adminguide/network.flat.txt delete mode 100644 doc/build/html/_sources/adminguide/network.vlan.txt delete mode 100644 doc/build/html/_sources/adminguide/nova.manage.txt delete mode 100644 doc/build/html/_sources/adminguide/single.node.install.txt delete mode 100644 doc/build/html/_sources/api/autoindex.txt delete mode 100644 doc/build/html/_sources/api/nova..adminclient.txt delete mode 100644 doc/build/html/_sources/api/nova..api.cloud.txt delete mode 100644 doc/build/html/_sources/api/nova..api.ec2.admin.txt delete mode 100644 doc/build/html/_sources/api/nova..api.ec2.apirequest.txt delete mode 100644 doc/build/html/_sources/api/nova..api.ec2.cloud.txt delete mode 100644 doc/build/html/_sources/api/nova..api.ec2.images.txt delete mode 100644 doc/build/html/_sources/api/nova..api.ec2.metadatarequesthandler.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.auth.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.backup_schedules.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.faults.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.flavors.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.images.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.servers.txt delete mode 100644 doc/build/html/_sources/api/nova..api.openstack.sharedipgroups.txt delete mode 100644 doc/build/html/_sources/api/nova..auth.dbdriver.txt delete mode 100644 doc/build/html/_sources/api/nova..auth.fakeldap.txt delete mode 100644 doc/build/html/_sources/api/nova..auth.ldapdriver.txt delete mode 100644 doc/build/html/_sources/api/nova..auth.manager.txt delete mode 100644 doc/build/html/_sources/api/nova..auth.signer.txt delete mode 100644 doc/build/html/_sources/api/nova..cloudpipe.pipelib.txt delete mode 100644 doc/build/html/_sources/api/nova..compute.disk.txt delete mode 100644 doc/build/html/_sources/api/nova..compute.instance_types.txt delete mode 100644 doc/build/html/_sources/api/nova..compute.manager.txt delete mode 100644 doc/build/html/_sources/api/nova..compute.monitor.txt delete mode 100644 doc/build/html/_sources/api/nova..compute.power_state.txt delete mode 100644 doc/build/html/_sources/api/nova..context.txt delete mode 100644 doc/build/html/_sources/api/nova..crypto.txt delete mode 100644 doc/build/html/_sources/api/nova..db.api.txt delete mode 100644 doc/build/html/_sources/api/nova..db.sqlalchemy.api.txt delete mode 100644 doc/build/html/_sources/api/nova..db.sqlalchemy.models.txt delete mode 100644 doc/build/html/_sources/api/nova..db.sqlalchemy.session.txt delete mode 100644 doc/build/html/_sources/api/nova..exception.txt delete mode 100644 doc/build/html/_sources/api/nova..fakerabbit.txt delete mode 100644 doc/build/html/_sources/api/nova..flags.txt delete mode 100644 doc/build/html/_sources/api/nova..image.service.txt delete mode 100644 doc/build/html/_sources/api/nova..manager.txt delete mode 100644 doc/build/html/_sources/api/nova..network.linux_net.txt delete mode 100644 doc/build/html/_sources/api/nova..network.manager.txt delete mode 100644 doc/build/html/_sources/api/nova..objectstore.bucket.txt delete mode 100644 doc/build/html/_sources/api/nova..objectstore.handler.txt delete mode 100644 doc/build/html/_sources/api/nova..objectstore.image.txt delete mode 100644 doc/build/html/_sources/api/nova..objectstore.stored.txt delete mode 100644 doc/build/html/_sources/api/nova..process.txt delete mode 100644 doc/build/html/_sources/api/nova..quota.txt delete mode 100644 doc/build/html/_sources/api/nova..rpc.txt delete mode 100644 doc/build/html/_sources/api/nova..scheduler.chance.txt delete mode 100644 doc/build/html/_sources/api/nova..scheduler.driver.txt delete mode 100644 doc/build/html/_sources/api/nova..scheduler.manager.txt delete mode 100644 doc/build/html/_sources/api/nova..scheduler.simple.txt delete mode 100644 doc/build/html/_sources/api/nova..server.txt delete mode 100644 doc/build/html/_sources/api/nova..service.txt delete mode 100644 doc/build/html/_sources/api/nova..test.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.access_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.fakes.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.fakes.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_api.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_auth.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_faults.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_flavors.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_images.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_ratelimiting.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_servers.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.openstack.test_sharedipgroups.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api.test_wsgi.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api_integration.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.api_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.auth_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.cloud_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.compute_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.declare_flags.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.fake_flags.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.flags_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.network_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.objectstore_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.process_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.quota_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.real_flags.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.rpc_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.runtime_flags.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.scheduler_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.service_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.twistd_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.validator_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.virt_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..tests.volume_unittest.txt delete mode 100644 doc/build/html/_sources/api/nova..twistd.txt delete mode 100644 doc/build/html/_sources/api/nova..utils.txt delete mode 100644 doc/build/html/_sources/api/nova..validate.txt delete mode 100644 doc/build/html/_sources/api/nova..virt.connection.txt delete mode 100644 doc/build/html/_sources/api/nova..virt.fake.txt delete mode 100644 doc/build/html/_sources/api/nova..virt.images.txt delete mode 100644 doc/build/html/_sources/api/nova..virt.libvirt_conn.txt delete mode 100644 doc/build/html/_sources/api/nova..virt.xenapi.txt delete mode 100644 doc/build/html/_sources/api/nova..volume.driver.txt delete mode 100644 doc/build/html/_sources/api/nova..volume.manager.txt delete mode 100644 doc/build/html/_sources/api/nova..wsgi.txt delete mode 100644 doc/build/html/_sources/cloud101.txt delete mode 100644 doc/build/html/_sources/code.txt delete mode 100644 doc/build/html/_sources/community.txt delete mode 100644 doc/build/html/_sources/devref/api.txt delete mode 100644 doc/build/html/_sources/devref/architecture.txt delete mode 100644 doc/build/html/_sources/devref/auth.txt delete mode 100644 doc/build/html/_sources/devref/cloudpipe.txt delete mode 100644 doc/build/html/_sources/devref/compute.txt delete mode 100644 doc/build/html/_sources/devref/database.txt delete mode 100644 doc/build/html/_sources/devref/development.environment.txt delete mode 100644 doc/build/html/_sources/devref/fakes.txt delete mode 100644 doc/build/html/_sources/devref/glance.txt delete mode 100644 doc/build/html/_sources/devref/index.txt delete mode 100644 doc/build/html/_sources/devref/modules.txt delete mode 100644 doc/build/html/_sources/devref/network.txt delete mode 100644 doc/build/html/_sources/devref/nova.txt delete mode 100644 doc/build/html/_sources/devref/objectstore.txt delete mode 100644 doc/build/html/_sources/devref/scheduler.txt delete mode 100644 doc/build/html/_sources/devref/services.txt delete mode 100644 doc/build/html/_sources/devref/volume.txt delete mode 100644 doc/build/html/_sources/index.txt delete mode 100644 doc/build/html/_sources/installer.txt delete mode 100644 doc/build/html/_sources/livecd.txt delete mode 100644 doc/build/html/_sources/man/novamanage.txt delete mode 100644 doc/build/html/_sources/nova.concepts.txt delete mode 100644 doc/build/html/_sources/object.model.txt delete mode 100644 doc/build/html/_sources/quickstart.txt delete mode 100644 doc/build/html/_sources/service.architecture.txt delete mode 100644 doc/build/html/_static/basic.css delete mode 100644 doc/build/html/_static/contents.png delete mode 100644 doc/build/html/_static/doctools.js delete mode 100644 doc/build/html/_static/file.png delete mode 100644 doc/build/html/_static/jquery.js delete mode 100644 doc/build/html/_static/jquery.tweet.js delete mode 100644 doc/build/html/_static/minus.png delete mode 100644 doc/build/html/_static/navigation.png delete mode 100644 doc/build/html/_static/plus.png delete mode 100644 doc/build/html/_static/pygments.css delete mode 100644 doc/build/html/_static/searchtools.js delete mode 100644 doc/build/html/_static/sphinxdoc.css delete mode 100644 doc/build/html/_static/tweaks.css delete mode 100644 doc/build/html/_static/underscore.js delete mode 100644 doc/build/html/adminguide/binaries.html delete mode 100644 doc/build/html/adminguide/distros/others.html delete mode 100644 doc/build/html/adminguide/distros/ubuntu.10.04.html delete mode 100644 doc/build/html/adminguide/distros/ubuntu.10.10.html delete mode 100644 doc/build/html/adminguide/euca2ools.html delete mode 100644 doc/build/html/adminguide/flags.html delete mode 100644 doc/build/html/adminguide/getting.started.html delete mode 100644 doc/build/html/adminguide/index.html delete mode 100644 doc/build/html/adminguide/managing.images.html delete mode 100644 doc/build/html/adminguide/managing.instances.html delete mode 100644 doc/build/html/adminguide/managing.networks.html delete mode 100644 doc/build/html/adminguide/managing.projects.html delete mode 100644 doc/build/html/adminguide/managing.users.html delete mode 100644 doc/build/html/adminguide/managingsecurity.html delete mode 100644 doc/build/html/adminguide/monitoring.html delete mode 100644 doc/build/html/adminguide/multi.node.install.html delete mode 100644 doc/build/html/adminguide/network.flat.html delete mode 100644 doc/build/html/adminguide/network.vlan.html delete mode 100644 doc/build/html/adminguide/nova.manage.html delete mode 100644 doc/build/html/adminguide/single.node.install.html delete mode 100644 doc/build/html/api/autoindex.html delete mode 100644 doc/build/html/api/nova..adminclient.html delete mode 100644 doc/build/html/api/nova..api.cloud.html delete mode 100644 doc/build/html/api/nova..api.ec2.admin.html delete mode 100644 doc/build/html/api/nova..api.ec2.apirequest.html delete mode 100644 doc/build/html/api/nova..api.ec2.cloud.html delete mode 100644 doc/build/html/api/nova..api.ec2.images.html delete mode 100644 doc/build/html/api/nova..api.ec2.metadatarequesthandler.html delete mode 100644 doc/build/html/api/nova..api.openstack.auth.html delete mode 100644 doc/build/html/api/nova..api.openstack.backup_schedules.html delete mode 100644 doc/build/html/api/nova..api.openstack.faults.html delete mode 100644 doc/build/html/api/nova..api.openstack.flavors.html delete mode 100644 doc/build/html/api/nova..api.openstack.images.html delete mode 100644 doc/build/html/api/nova..api.openstack.servers.html delete mode 100644 doc/build/html/api/nova..api.openstack.sharedipgroups.html delete mode 100644 doc/build/html/api/nova..auth.dbdriver.html delete mode 100644 doc/build/html/api/nova..auth.fakeldap.html delete mode 100644 doc/build/html/api/nova..auth.ldapdriver.html delete mode 100644 doc/build/html/api/nova..auth.manager.html delete mode 100644 doc/build/html/api/nova..auth.signer.html delete mode 100644 doc/build/html/api/nova..cloudpipe.pipelib.html delete mode 100644 doc/build/html/api/nova..compute.disk.html delete mode 100644 doc/build/html/api/nova..compute.instance_types.html delete mode 100644 doc/build/html/api/nova..compute.manager.html delete mode 100644 doc/build/html/api/nova..compute.monitor.html delete mode 100644 doc/build/html/api/nova..compute.power_state.html delete mode 100644 doc/build/html/api/nova..context.html delete mode 100644 doc/build/html/api/nova..crypto.html delete mode 100644 doc/build/html/api/nova..db.api.html delete mode 100644 doc/build/html/api/nova..db.sqlalchemy.api.html delete mode 100644 doc/build/html/api/nova..db.sqlalchemy.models.html delete mode 100644 doc/build/html/api/nova..db.sqlalchemy.session.html delete mode 100644 doc/build/html/api/nova..exception.html delete mode 100644 doc/build/html/api/nova..fakerabbit.html delete mode 100644 doc/build/html/api/nova..flags.html delete mode 100644 doc/build/html/api/nova..image.service.html delete mode 100644 doc/build/html/api/nova..manager.html delete mode 100644 doc/build/html/api/nova..network.linux_net.html delete mode 100644 doc/build/html/api/nova..network.manager.html delete mode 100644 doc/build/html/api/nova..objectstore.bucket.html delete mode 100644 doc/build/html/api/nova..objectstore.handler.html delete mode 100644 doc/build/html/api/nova..objectstore.image.html delete mode 100644 doc/build/html/api/nova..objectstore.stored.html delete mode 100644 doc/build/html/api/nova..process.html delete mode 100644 doc/build/html/api/nova..quota.html delete mode 100644 doc/build/html/api/nova..rpc.html delete mode 100644 doc/build/html/api/nova..scheduler.chance.html delete mode 100644 doc/build/html/api/nova..scheduler.driver.html delete mode 100644 doc/build/html/api/nova..scheduler.manager.html delete mode 100644 doc/build/html/api/nova..scheduler.simple.html delete mode 100644 doc/build/html/api/nova..server.html delete mode 100644 doc/build/html/api/nova..service.html delete mode 100644 doc/build/html/api/nova..test.html delete mode 100644 doc/build/html/api/nova..tests.access_unittest.html delete mode 100644 doc/build/html/api/nova..tests.api.fakes.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.fakes.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_api.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_auth.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_faults.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_flavors.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_images.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_ratelimiting.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_servers.html delete mode 100644 doc/build/html/api/nova..tests.api.openstack.test_sharedipgroups.html delete mode 100644 doc/build/html/api/nova..tests.api.test_wsgi.html delete mode 100644 doc/build/html/api/nova..tests.api_integration.html delete mode 100644 doc/build/html/api/nova..tests.api_unittest.html delete mode 100644 doc/build/html/api/nova..tests.auth_unittest.html delete mode 100644 doc/build/html/api/nova..tests.cloud_unittest.html delete mode 100644 doc/build/html/api/nova..tests.compute_unittest.html delete mode 100644 doc/build/html/api/nova..tests.declare_flags.html delete mode 100644 doc/build/html/api/nova..tests.fake_flags.html delete mode 100644 doc/build/html/api/nova..tests.flags_unittest.html delete mode 100644 doc/build/html/api/nova..tests.network_unittest.html delete mode 100644 doc/build/html/api/nova..tests.objectstore_unittest.html delete mode 100644 doc/build/html/api/nova..tests.process_unittest.html delete mode 100644 doc/build/html/api/nova..tests.quota_unittest.html delete mode 100644 doc/build/html/api/nova..tests.real_flags.html delete mode 100644 doc/build/html/api/nova..tests.rpc_unittest.html delete mode 100644 doc/build/html/api/nova..tests.runtime_flags.html delete mode 100644 doc/build/html/api/nova..tests.scheduler_unittest.html delete mode 100644 doc/build/html/api/nova..tests.service_unittest.html delete mode 100644 doc/build/html/api/nova..tests.twistd_unittest.html delete mode 100644 doc/build/html/api/nova..tests.validator_unittest.html delete mode 100644 doc/build/html/api/nova..tests.virt_unittest.html delete mode 100644 doc/build/html/api/nova..tests.volume_unittest.html delete mode 100644 doc/build/html/api/nova..twistd.html delete mode 100644 doc/build/html/api/nova..utils.html delete mode 100644 doc/build/html/api/nova..validate.html delete mode 100644 doc/build/html/api/nova..virt.connection.html delete mode 100644 doc/build/html/api/nova..virt.fake.html delete mode 100644 doc/build/html/api/nova..virt.images.html delete mode 100644 doc/build/html/api/nova..virt.libvirt_conn.html delete mode 100644 doc/build/html/api/nova..virt.xenapi.html delete mode 100644 doc/build/html/api/nova..volume.driver.html delete mode 100644 doc/build/html/api/nova..volume.manager.html delete mode 100644 doc/build/html/api/nova..wsgi.html delete mode 100644 doc/build/html/cloud101.html delete mode 100644 doc/build/html/code.html delete mode 100644 doc/build/html/community.html delete mode 100644 doc/build/html/devref/api.html delete mode 100644 doc/build/html/devref/architecture.html delete mode 100644 doc/build/html/devref/auth.html delete mode 100644 doc/build/html/devref/cloudpipe.html delete mode 100644 doc/build/html/devref/compute.html delete mode 100644 doc/build/html/devref/database.html delete mode 100644 doc/build/html/devref/development.environment.html delete mode 100644 doc/build/html/devref/fakes.html delete mode 100644 doc/build/html/devref/glance.html delete mode 100644 doc/build/html/devref/index.html delete mode 100644 doc/build/html/devref/modules.html delete mode 100644 doc/build/html/devref/network.html delete mode 100644 doc/build/html/devref/nova.html delete mode 100644 doc/build/html/devref/objectstore.html delete mode 100644 doc/build/html/devref/scheduler.html delete mode 100644 doc/build/html/devref/services.html delete mode 100644 doc/build/html/devref/volume.html delete mode 100644 doc/build/html/genindex.html delete mode 100644 doc/build/html/index.html delete mode 100644 doc/build/html/installer.html delete mode 100644 doc/build/html/livecd.html delete mode 100644 doc/build/html/man/novamanage.html delete mode 100644 doc/build/html/nova.concepts.html delete mode 100644 doc/build/html/object.model.html delete mode 100644 doc/build/html/objects.inv delete mode 100644 doc/build/html/quickstart.html delete mode 100644 doc/build/html/search.html delete mode 100644 doc/build/html/searchindex.js delete mode 100644 doc/build/html/service.architecture.html create mode 100644 doc/source/.DS_Store create mode 100644 doc/source/images/NOVA_ARCH.png create mode 100644 doc/source/images/NOVA_ARCH.svg create mode 100644 doc/source/images/NOVA_ARCH_200dpi.png create mode 100644 doc/source/images/NOVA_ARCH_66dpi.png create mode 100644 doc/source/images/NOVA_clouds_A_B.png create mode 100644 doc/source/images/NOVA_clouds_A_B.svg create mode 100644 doc/source/images/NOVA_clouds_C1_C2.svg create mode 100644 doc/source/images/NOVA_clouds_C1_C2.svg.png create mode 100644 doc/source/images/Novadiagram.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..d5e4503e7 Binary files /dev/null and b/.DS_Store differ diff --git a/doc/.DS_Store b/doc/.DS_Store new file mode 100644 index 000000000..b4cadf952 Binary files /dev/null and b/doc/.DS_Store differ diff --git a/doc/build/.DS_Store b/doc/build/.DS_Store new file mode 100644 index 000000000..5008ddfcf Binary files /dev/null and b/doc/build/.DS_Store differ diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo deleted file mode 100644 index 0885fbe1f..000000000 --- a/doc/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# 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: -tags: diff --git a/doc/build/html/.doctrees/adminguide/binaries.doctree b/doc/build/html/.doctrees/adminguide/binaries.doctree deleted file mode 100644 index 8006245a9..000000000 Binary files a/doc/build/html/.doctrees/adminguide/binaries.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/distros/others.doctree b/doc/build/html/.doctrees/adminguide/distros/others.doctree deleted file mode 100644 index c7f14fb91..000000000 Binary files a/doc/build/html/.doctrees/adminguide/distros/others.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.04.doctree b/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.04.doctree deleted file mode 100644 index 135763bf7..000000000 Binary files a/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.04.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.10.doctree b/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.10.doctree deleted file mode 100644 index 2005aa78c..000000000 Binary files a/doc/build/html/.doctrees/adminguide/distros/ubuntu.10.10.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/euca2ools.doctree b/doc/build/html/.doctrees/adminguide/euca2ools.doctree deleted file mode 100644 index 390845265..000000000 Binary files a/doc/build/html/.doctrees/adminguide/euca2ools.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/flags.doctree b/doc/build/html/.doctrees/adminguide/flags.doctree deleted file mode 100644 index 0fd0522b8..000000000 Binary files a/doc/build/html/.doctrees/adminguide/flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/getting.started.doctree b/doc/build/html/.doctrees/adminguide/getting.started.doctree deleted file mode 100644 index a4d1fce7a..000000000 Binary files a/doc/build/html/.doctrees/adminguide/getting.started.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/index.doctree b/doc/build/html/.doctrees/adminguide/index.doctree deleted file mode 100644 index 43791ff9d..000000000 Binary files a/doc/build/html/.doctrees/adminguide/index.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managing.images.doctree b/doc/build/html/.doctrees/adminguide/managing.images.doctree deleted file mode 100644 index 764bc8ace..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managing.images.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managing.instances.doctree b/doc/build/html/.doctrees/adminguide/managing.instances.doctree deleted file mode 100644 index 3bd9917de..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managing.instances.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managing.networks.doctree b/doc/build/html/.doctrees/adminguide/managing.networks.doctree deleted file mode 100644 index e34f6ae28..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managing.networks.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managing.projects.doctree b/doc/build/html/.doctrees/adminguide/managing.projects.doctree deleted file mode 100644 index 041c1dd61..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managing.projects.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managing.users.doctree b/doc/build/html/.doctrees/adminguide/managing.users.doctree deleted file mode 100644 index c21f05487..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managing.users.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/managingsecurity.doctree b/doc/build/html/.doctrees/adminguide/managingsecurity.doctree deleted file mode 100644 index 8d5a35097..000000000 Binary files a/doc/build/html/.doctrees/adminguide/managingsecurity.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/monitoring.doctree b/doc/build/html/.doctrees/adminguide/monitoring.doctree deleted file mode 100644 index c0c83f29a..000000000 Binary files a/doc/build/html/.doctrees/adminguide/monitoring.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/multi.node.install.doctree b/doc/build/html/.doctrees/adminguide/multi.node.install.doctree deleted file mode 100644 index 0b24939e6..000000000 Binary files a/doc/build/html/.doctrees/adminguide/multi.node.install.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/network.flat.doctree b/doc/build/html/.doctrees/adminguide/network.flat.doctree deleted file mode 100644 index 99b60132e..000000000 Binary files a/doc/build/html/.doctrees/adminguide/network.flat.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/network.vlan.doctree b/doc/build/html/.doctrees/adminguide/network.vlan.doctree deleted file mode 100644 index befc018f7..000000000 Binary files a/doc/build/html/.doctrees/adminguide/network.vlan.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/nova.manage.doctree b/doc/build/html/.doctrees/adminguide/nova.manage.doctree deleted file mode 100644 index 74a389b7b..000000000 Binary files a/doc/build/html/.doctrees/adminguide/nova.manage.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/adminguide/single.node.install.doctree b/doc/build/html/.doctrees/adminguide/single.node.install.doctree deleted file mode 100644 index a0a0c9271..000000000 Binary files a/doc/build/html/.doctrees/adminguide/single.node.install.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/autoindex.doctree b/doc/build/html/.doctrees/api/autoindex.doctree deleted file mode 100644 index ca690eeab..000000000 Binary files a/doc/build/html/.doctrees/api/autoindex.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..adminclient.doctree b/doc/build/html/.doctrees/api/nova..adminclient.doctree deleted file mode 100644 index 054ddc0a9..000000000 Binary files a/doc/build/html/.doctrees/api/nova..adminclient.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.cloud.doctree b/doc/build/html/.doctrees/api/nova..api.cloud.doctree deleted file mode 100644 index 36f2d4e1b..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.cloud.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.ec2.admin.doctree b/doc/build/html/.doctrees/api/nova..api.ec2.admin.doctree deleted file mode 100644 index e990f2153..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.ec2.admin.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.ec2.apirequest.doctree b/doc/build/html/.doctrees/api/nova..api.ec2.apirequest.doctree deleted file mode 100644 index fe4889125..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.ec2.apirequest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.ec2.cloud.doctree b/doc/build/html/.doctrees/api/nova..api.ec2.cloud.doctree deleted file mode 100644 index d9bf795d6..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.ec2.cloud.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.ec2.images.doctree b/doc/build/html/.doctrees/api/nova..api.ec2.images.doctree deleted file mode 100644 index f9fb8410e..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.ec2.images.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.ec2.metadatarequesthandler.doctree b/doc/build/html/.doctrees/api/nova..api.ec2.metadatarequesthandler.doctree deleted file mode 100644 index fb91634a9..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.ec2.metadatarequesthandler.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.auth.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.auth.doctree deleted file mode 100644 index f141f42e9..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.auth.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.backup_schedules.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.backup_schedules.doctree deleted file mode 100644 index 782143b74..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.backup_schedules.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.faults.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.faults.doctree deleted file mode 100644 index ef8a3e1f7..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.faults.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.flavors.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.flavors.doctree deleted file mode 100644 index cda06eea5..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.flavors.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.images.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.images.doctree deleted file mode 100644 index 89ad9c9ec..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.images.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.servers.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.servers.doctree deleted file mode 100644 index a43145bab..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.servers.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..api.openstack.sharedipgroups.doctree b/doc/build/html/.doctrees/api/nova..api.openstack.sharedipgroups.doctree deleted file mode 100644 index 22076591f..000000000 Binary files a/doc/build/html/.doctrees/api/nova..api.openstack.sharedipgroups.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..auth.dbdriver.doctree b/doc/build/html/.doctrees/api/nova..auth.dbdriver.doctree deleted file mode 100644 index ba8863ec3..000000000 Binary files a/doc/build/html/.doctrees/api/nova..auth.dbdriver.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..auth.fakeldap.doctree b/doc/build/html/.doctrees/api/nova..auth.fakeldap.doctree deleted file mode 100644 index c63566ba7..000000000 Binary files a/doc/build/html/.doctrees/api/nova..auth.fakeldap.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..auth.ldapdriver.doctree b/doc/build/html/.doctrees/api/nova..auth.ldapdriver.doctree deleted file mode 100644 index e1df8e5af..000000000 Binary files a/doc/build/html/.doctrees/api/nova..auth.ldapdriver.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..auth.manager.doctree b/doc/build/html/.doctrees/api/nova..auth.manager.doctree deleted file mode 100644 index a808e5469..000000000 Binary files a/doc/build/html/.doctrees/api/nova..auth.manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..auth.signer.doctree b/doc/build/html/.doctrees/api/nova..auth.signer.doctree deleted file mode 100644 index be8b802a6..000000000 Binary files a/doc/build/html/.doctrees/api/nova..auth.signer.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..cloudpipe.pipelib.doctree b/doc/build/html/.doctrees/api/nova..cloudpipe.pipelib.doctree deleted file mode 100644 index 24c2e94af..000000000 Binary files a/doc/build/html/.doctrees/api/nova..cloudpipe.pipelib.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..compute.disk.doctree b/doc/build/html/.doctrees/api/nova..compute.disk.doctree deleted file mode 100644 index b4d2e418d..000000000 Binary files a/doc/build/html/.doctrees/api/nova..compute.disk.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..compute.instance_types.doctree b/doc/build/html/.doctrees/api/nova..compute.instance_types.doctree deleted file mode 100644 index 1f77e18de..000000000 Binary files a/doc/build/html/.doctrees/api/nova..compute.instance_types.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..compute.manager.doctree b/doc/build/html/.doctrees/api/nova..compute.manager.doctree deleted file mode 100644 index 5eb311aad..000000000 Binary files a/doc/build/html/.doctrees/api/nova..compute.manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..compute.monitor.doctree b/doc/build/html/.doctrees/api/nova..compute.monitor.doctree deleted file mode 100644 index 656324737..000000000 Binary files a/doc/build/html/.doctrees/api/nova..compute.monitor.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..compute.power_state.doctree b/doc/build/html/.doctrees/api/nova..compute.power_state.doctree deleted file mode 100644 index 5ac9e5ac3..000000000 Binary files a/doc/build/html/.doctrees/api/nova..compute.power_state.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..context.doctree b/doc/build/html/.doctrees/api/nova..context.doctree deleted file mode 100644 index e0f618ae6..000000000 Binary files a/doc/build/html/.doctrees/api/nova..context.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..crypto.doctree b/doc/build/html/.doctrees/api/nova..crypto.doctree deleted file mode 100644 index 9062aa13e..000000000 Binary files a/doc/build/html/.doctrees/api/nova..crypto.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..db.api.doctree b/doc/build/html/.doctrees/api/nova..db.api.doctree deleted file mode 100644 index 381e7a7eb..000000000 Binary files a/doc/build/html/.doctrees/api/nova..db.api.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.api.doctree b/doc/build/html/.doctrees/api/nova..db.sqlalchemy.api.doctree deleted file mode 100644 index 9d60f9659..000000000 Binary files a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.api.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.models.doctree b/doc/build/html/.doctrees/api/nova..db.sqlalchemy.models.doctree deleted file mode 100644 index b4545c6cf..000000000 Binary files a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.models.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.session.doctree b/doc/build/html/.doctrees/api/nova..db.sqlalchemy.session.doctree deleted file mode 100644 index 8c169f08a..000000000 Binary files a/doc/build/html/.doctrees/api/nova..db.sqlalchemy.session.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..exception.doctree b/doc/build/html/.doctrees/api/nova..exception.doctree deleted file mode 100644 index 43c08f7ce..000000000 Binary files a/doc/build/html/.doctrees/api/nova..exception.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..fakerabbit.doctree b/doc/build/html/.doctrees/api/nova..fakerabbit.doctree deleted file mode 100644 index bffd1c648..000000000 Binary files a/doc/build/html/.doctrees/api/nova..fakerabbit.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..flags.doctree b/doc/build/html/.doctrees/api/nova..flags.doctree deleted file mode 100644 index d3e58d1bc..000000000 Binary files a/doc/build/html/.doctrees/api/nova..flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..image.service.doctree b/doc/build/html/.doctrees/api/nova..image.service.doctree deleted file mode 100644 index d4b4db40c..000000000 Binary files a/doc/build/html/.doctrees/api/nova..image.service.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..manager.doctree b/doc/build/html/.doctrees/api/nova..manager.doctree deleted file mode 100644 index cba863ab7..000000000 Binary files a/doc/build/html/.doctrees/api/nova..manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..network.linux_net.doctree b/doc/build/html/.doctrees/api/nova..network.linux_net.doctree deleted file mode 100644 index 9fa9ea8bd..000000000 Binary files a/doc/build/html/.doctrees/api/nova..network.linux_net.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..network.manager.doctree b/doc/build/html/.doctrees/api/nova..network.manager.doctree deleted file mode 100644 index 6fc68e0ba..000000000 Binary files a/doc/build/html/.doctrees/api/nova..network.manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..objectstore.bucket.doctree b/doc/build/html/.doctrees/api/nova..objectstore.bucket.doctree deleted file mode 100644 index 9f88b7006..000000000 Binary files a/doc/build/html/.doctrees/api/nova..objectstore.bucket.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..objectstore.handler.doctree b/doc/build/html/.doctrees/api/nova..objectstore.handler.doctree deleted file mode 100644 index 46a6d7638..000000000 Binary files a/doc/build/html/.doctrees/api/nova..objectstore.handler.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..objectstore.image.doctree b/doc/build/html/.doctrees/api/nova..objectstore.image.doctree deleted file mode 100644 index f37c9025b..000000000 Binary files a/doc/build/html/.doctrees/api/nova..objectstore.image.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..objectstore.stored.doctree b/doc/build/html/.doctrees/api/nova..objectstore.stored.doctree deleted file mode 100644 index b776a1fdb..000000000 Binary files a/doc/build/html/.doctrees/api/nova..objectstore.stored.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..process.doctree b/doc/build/html/.doctrees/api/nova..process.doctree deleted file mode 100644 index 9c0ba4e2f..000000000 Binary files a/doc/build/html/.doctrees/api/nova..process.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..quota.doctree b/doc/build/html/.doctrees/api/nova..quota.doctree deleted file mode 100644 index 9331bc054..000000000 Binary files a/doc/build/html/.doctrees/api/nova..quota.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..rpc.doctree b/doc/build/html/.doctrees/api/nova..rpc.doctree deleted file mode 100644 index e20293b36..000000000 Binary files a/doc/build/html/.doctrees/api/nova..rpc.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..scheduler.chance.doctree b/doc/build/html/.doctrees/api/nova..scheduler.chance.doctree deleted file mode 100644 index 543464d3b..000000000 Binary files a/doc/build/html/.doctrees/api/nova..scheduler.chance.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..scheduler.driver.doctree b/doc/build/html/.doctrees/api/nova..scheduler.driver.doctree deleted file mode 100644 index 26141ae79..000000000 Binary files a/doc/build/html/.doctrees/api/nova..scheduler.driver.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..scheduler.manager.doctree b/doc/build/html/.doctrees/api/nova..scheduler.manager.doctree deleted file mode 100644 index 02f3b6ce3..000000000 Binary files a/doc/build/html/.doctrees/api/nova..scheduler.manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..scheduler.simple.doctree b/doc/build/html/.doctrees/api/nova..scheduler.simple.doctree deleted file mode 100644 index 207eb2671..000000000 Binary files a/doc/build/html/.doctrees/api/nova..scheduler.simple.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..server.doctree b/doc/build/html/.doctrees/api/nova..server.doctree deleted file mode 100644 index d4df9a18c..000000000 Binary files a/doc/build/html/.doctrees/api/nova..server.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..service.doctree b/doc/build/html/.doctrees/api/nova..service.doctree deleted file mode 100644 index ab06c6158..000000000 Binary files a/doc/build/html/.doctrees/api/nova..service.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..test.doctree b/doc/build/html/.doctrees/api/nova..test.doctree deleted file mode 100644 index d7a84581e..000000000 Binary files a/doc/build/html/.doctrees/api/nova..test.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.access_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.access_unittest.doctree deleted file mode 100644 index 7464afd08..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.access_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.fakes.doctree b/doc/build/html/.doctrees/api/nova..tests.api.fakes.doctree deleted file mode 100644 index 12fbe3aa9..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.fakes.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.fakes.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.fakes.doctree deleted file mode 100644 index 32ff53359..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.fakes.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_api.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_api.doctree deleted file mode 100644 index f948ddf25..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_api.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_auth.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_auth.doctree deleted file mode 100644 index 7e826d0f0..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_auth.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_faults.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_faults.doctree deleted file mode 100644 index c34d2a36b..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_faults.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_flavors.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_flavors.doctree deleted file mode 100644 index 979430fa0..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_flavors.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_images.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_images.doctree deleted file mode 100644 index f9b50d078..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_images.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree deleted file mode 100644 index 8cf2a10d8..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_ratelimiting.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_servers.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_servers.doctree deleted file mode 100644 index 2d7148e04..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_servers.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree b/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree deleted file mode 100644 index f15f42510..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.openstack.test_sharedipgroups.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api.test_wsgi.doctree b/doc/build/html/.doctrees/api/nova..tests.api.test_wsgi.doctree deleted file mode 100644 index b338e30b4..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api.test_wsgi.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api_integration.doctree b/doc/build/html/.doctrees/api/nova..tests.api_integration.doctree deleted file mode 100644 index 40f3bce82..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api_integration.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.api_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.api_unittest.doctree deleted file mode 100644 index ec226452c..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.api_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.auth_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.auth_unittest.doctree deleted file mode 100644 index 9a4120379..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.auth_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.cloud_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.cloud_unittest.doctree deleted file mode 100644 index 4fd382e6d..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.cloud_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.compute_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.compute_unittest.doctree deleted file mode 100644 index 8704fe728..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.compute_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.declare_flags.doctree b/doc/build/html/.doctrees/api/nova..tests.declare_flags.doctree deleted file mode 100644 index 161b5242c..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.declare_flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.fake_flags.doctree b/doc/build/html/.doctrees/api/nova..tests.fake_flags.doctree deleted file mode 100644 index 183fc8d46..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.fake_flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.flags_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.flags_unittest.doctree deleted file mode 100644 index 53f669795..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.flags_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.network_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.network_unittest.doctree deleted file mode 100644 index 56436d8ed..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.network_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.objectstore_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.objectstore_unittest.doctree deleted file mode 100644 index a560cb8c5..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.objectstore_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.process_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.process_unittest.doctree deleted file mode 100644 index f393416e6..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.process_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.quota_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.quota_unittest.doctree deleted file mode 100644 index e001cbe8d..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.quota_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.real_flags.doctree b/doc/build/html/.doctrees/api/nova..tests.real_flags.doctree deleted file mode 100644 index e5c331eb4..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.real_flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.rpc_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.rpc_unittest.doctree deleted file mode 100644 index 40c37e097..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.rpc_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.runtime_flags.doctree b/doc/build/html/.doctrees/api/nova..tests.runtime_flags.doctree deleted file mode 100644 index 1602d1b71..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.runtime_flags.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.scheduler_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.scheduler_unittest.doctree deleted file mode 100644 index 2ff5f8320..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.scheduler_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.service_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.service_unittest.doctree deleted file mode 100644 index 4522500be..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.service_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.twistd_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.twistd_unittest.doctree deleted file mode 100644 index 794c02f17..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.twistd_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.validator_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.validator_unittest.doctree deleted file mode 100644 index e1f52b00f..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.validator_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.virt_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.virt_unittest.doctree deleted file mode 100644 index 5c27b5c28..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.virt_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..tests.volume_unittest.doctree b/doc/build/html/.doctrees/api/nova..tests.volume_unittest.doctree deleted file mode 100644 index 807bbaac2..000000000 Binary files a/doc/build/html/.doctrees/api/nova..tests.volume_unittest.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..twistd.doctree b/doc/build/html/.doctrees/api/nova..twistd.doctree deleted file mode 100644 index 41a9335ee..000000000 Binary files a/doc/build/html/.doctrees/api/nova..twistd.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..utils.doctree b/doc/build/html/.doctrees/api/nova..utils.doctree deleted file mode 100644 index e801085f2..000000000 Binary files a/doc/build/html/.doctrees/api/nova..utils.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..validate.doctree b/doc/build/html/.doctrees/api/nova..validate.doctree deleted file mode 100644 index 2f3cd4461..000000000 Binary files a/doc/build/html/.doctrees/api/nova..validate.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..virt.connection.doctree b/doc/build/html/.doctrees/api/nova..virt.connection.doctree deleted file mode 100644 index 77789df65..000000000 Binary files a/doc/build/html/.doctrees/api/nova..virt.connection.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..virt.fake.doctree b/doc/build/html/.doctrees/api/nova..virt.fake.doctree deleted file mode 100644 index 9b8ebe42f..000000000 Binary files a/doc/build/html/.doctrees/api/nova..virt.fake.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..virt.images.doctree b/doc/build/html/.doctrees/api/nova..virt.images.doctree deleted file mode 100644 index abfb4850a..000000000 Binary files a/doc/build/html/.doctrees/api/nova..virt.images.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..virt.libvirt_conn.doctree b/doc/build/html/.doctrees/api/nova..virt.libvirt_conn.doctree deleted file mode 100644 index d305479a4..000000000 Binary files a/doc/build/html/.doctrees/api/nova..virt.libvirt_conn.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..virt.xenapi.doctree b/doc/build/html/.doctrees/api/nova..virt.xenapi.doctree deleted file mode 100644 index 0a4e21b8a..000000000 Binary files a/doc/build/html/.doctrees/api/nova..virt.xenapi.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..volume.driver.doctree b/doc/build/html/.doctrees/api/nova..volume.driver.doctree deleted file mode 100644 index a62cc606e..000000000 Binary files a/doc/build/html/.doctrees/api/nova..volume.driver.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..volume.manager.doctree b/doc/build/html/.doctrees/api/nova..volume.manager.doctree deleted file mode 100644 index 0c8b454a1..000000000 Binary files a/doc/build/html/.doctrees/api/nova..volume.manager.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/api/nova..wsgi.doctree b/doc/build/html/.doctrees/api/nova..wsgi.doctree deleted file mode 100644 index d177a5a8e..000000000 Binary files a/doc/build/html/.doctrees/api/nova..wsgi.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/cloud101.doctree b/doc/build/html/.doctrees/cloud101.doctree deleted file mode 100644 index e7667f866..000000000 Binary files a/doc/build/html/.doctrees/cloud101.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/code.doctree b/doc/build/html/.doctrees/code.doctree deleted file mode 100644 index ce5ad4485..000000000 Binary files a/doc/build/html/.doctrees/code.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/community.doctree b/doc/build/html/.doctrees/community.doctree deleted file mode 100644 index 6837addb6..000000000 Binary files a/doc/build/html/.doctrees/community.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/api.doctree b/doc/build/html/.doctrees/devref/api.doctree deleted file mode 100644 index a999307c0..000000000 Binary files a/doc/build/html/.doctrees/devref/api.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/architecture.doctree b/doc/build/html/.doctrees/devref/architecture.doctree deleted file mode 100644 index b5de0bc69..000000000 Binary files a/doc/build/html/.doctrees/devref/architecture.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/auth.doctree b/doc/build/html/.doctrees/devref/auth.doctree deleted file mode 100644 index c81eba43b..000000000 Binary files a/doc/build/html/.doctrees/devref/auth.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/cloudpipe.doctree b/doc/build/html/.doctrees/devref/cloudpipe.doctree deleted file mode 100644 index 6c43a0feb..000000000 Binary files a/doc/build/html/.doctrees/devref/cloudpipe.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/compute.doctree b/doc/build/html/.doctrees/devref/compute.doctree deleted file mode 100644 index bb56b1c9a..000000000 Binary files a/doc/build/html/.doctrees/devref/compute.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/database.doctree b/doc/build/html/.doctrees/devref/database.doctree deleted file mode 100644 index 189239f0f..000000000 Binary files a/doc/build/html/.doctrees/devref/database.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/development.environment.doctree b/doc/build/html/.doctrees/devref/development.environment.doctree deleted file mode 100644 index 4862bd192..000000000 Binary files a/doc/build/html/.doctrees/devref/development.environment.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/fakes.doctree b/doc/build/html/.doctrees/devref/fakes.doctree deleted file mode 100644 index fe68337e8..000000000 Binary files a/doc/build/html/.doctrees/devref/fakes.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/glance.doctree b/doc/build/html/.doctrees/devref/glance.doctree deleted file mode 100644 index 01eec6987..000000000 Binary files a/doc/build/html/.doctrees/devref/glance.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/index.doctree b/doc/build/html/.doctrees/devref/index.doctree deleted file mode 100644 index 8c155355e..000000000 Binary files a/doc/build/html/.doctrees/devref/index.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/modules.doctree b/doc/build/html/.doctrees/devref/modules.doctree deleted file mode 100644 index e6dcde834..000000000 Binary files a/doc/build/html/.doctrees/devref/modules.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/network.doctree b/doc/build/html/.doctrees/devref/network.doctree deleted file mode 100644 index da867cb86..000000000 Binary files a/doc/build/html/.doctrees/devref/network.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/nova.doctree b/doc/build/html/.doctrees/devref/nova.doctree deleted file mode 100644 index f823fa170..000000000 Binary files a/doc/build/html/.doctrees/devref/nova.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/objectstore.doctree b/doc/build/html/.doctrees/devref/objectstore.doctree deleted file mode 100644 index 45ab43f49..000000000 Binary files a/doc/build/html/.doctrees/devref/objectstore.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/scheduler.doctree b/doc/build/html/.doctrees/devref/scheduler.doctree deleted file mode 100644 index 69a7337bd..000000000 Binary files a/doc/build/html/.doctrees/devref/scheduler.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/services.doctree b/doc/build/html/.doctrees/devref/services.doctree deleted file mode 100644 index 4c3c9c52f..000000000 Binary files a/doc/build/html/.doctrees/devref/services.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/devref/volume.doctree b/doc/build/html/.doctrees/devref/volume.doctree deleted file mode 100644 index a565a9592..000000000 Binary files a/doc/build/html/.doctrees/devref/volume.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/environment.pickle b/doc/build/html/.doctrees/environment.pickle deleted file mode 100644 index 6fd05ef44..000000000 Binary files a/doc/build/html/.doctrees/environment.pickle and /dev/null differ diff --git a/doc/build/html/.doctrees/index.doctree b/doc/build/html/.doctrees/index.doctree deleted file mode 100644 index 0ce64eaea..000000000 Binary files a/doc/build/html/.doctrees/index.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/installer.doctree b/doc/build/html/.doctrees/installer.doctree deleted file mode 100644 index b193cbe32..000000000 Binary files a/doc/build/html/.doctrees/installer.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/livecd.doctree b/doc/build/html/.doctrees/livecd.doctree deleted file mode 100644 index 7e9ae7f3e..000000000 Binary files a/doc/build/html/.doctrees/livecd.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/man/novamanage.doctree b/doc/build/html/.doctrees/man/novamanage.doctree deleted file mode 100644 index 78a658e48..000000000 Binary files a/doc/build/html/.doctrees/man/novamanage.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/nova.concepts.doctree b/doc/build/html/.doctrees/nova.concepts.doctree deleted file mode 100644 index 71fcc46bf..000000000 Binary files a/doc/build/html/.doctrees/nova.concepts.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/object.model.doctree b/doc/build/html/.doctrees/object.model.doctree deleted file mode 100644 index 16500b8e9..000000000 Binary files a/doc/build/html/.doctrees/object.model.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/quickstart.doctree b/doc/build/html/.doctrees/quickstart.doctree deleted file mode 100644 index fad66f8dd..000000000 Binary files a/doc/build/html/.doctrees/quickstart.doctree and /dev/null differ diff --git a/doc/build/html/.doctrees/service.architecture.doctree b/doc/build/html/.doctrees/service.architecture.doctree deleted file mode 100644 index 4fc09dd05..000000000 Binary files a/doc/build/html/.doctrees/service.architecture.doctree and /dev/null differ diff --git a/doc/build/html/_images/cloudpipe.png b/doc/build/html/_images/cloudpipe.png deleted file mode 100644 index ffdd181f2..000000000 Binary files a/doc/build/html/_images/cloudpipe.png and /dev/null differ diff --git a/doc/build/html/_images/fabric.png b/doc/build/html/_images/fabric.png deleted file mode 100644 index a5137e377..000000000 Binary files a/doc/build/html/_images/fabric.png and /dev/null differ diff --git a/doc/build/html/_sources/adminguide/binaries.txt b/doc/build/html/_sources/adminguide/binaries.txt deleted file mode 100644 index 25605adf9..000000000 --- a/doc/build/html/_sources/adminguide/binaries.txt +++ /dev/null @@ -1,57 +0,0 @@ -.. - Copyright 2010 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. - -.. _binaries: - -Nova Daemons -============= - -The configuration of these binaries relies on "flagfiles" using the google -gflags package:: - - $ nova-xxxxx --flagfile flagfile - -The binaries can all run on the same machine or be spread out amongst multiple boxes in a large deployment. - -nova-api --------- - -Nova api receives xml requests and sends them to the rest of the system. It is a wsgi app that routes and authenticate requests. It supports the ec2 and openstack apis. - -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-compute ------------- - -Nova compute is responsible for managing virtual machines. It loads a Service object which exposes the public methods on ComputeManager via rpc. - -nova-volume ------------ - -Nova volume is responsible for managing attachable block storage devices. It loads a Service object which exposes the public methods on VolumeManager via rpc. - -nova-network ------------- - -Nova network is responsible for managing floating and fixed ips, dhcp, bridging and vlans. It loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are as simple as changing the network_manager flag:: - - $ nova-network --network_manager=nova.network.manager.FlatManager - -IMPORTANT: Make sure that you also set the network_manager on nova-api and nova_compute, since make some calls to network manager in process instead of through rpc. More information on the interactions between services, managers, and drivers can be found :ref:`here ` diff --git a/doc/build/html/_sources/adminguide/distros/others.txt b/doc/build/html/_sources/adminguide/distros/others.txt deleted file mode 100644 index ec14a9abb..000000000 --- a/doc/build/html/_sources/adminguide/distros/others.txt +++ /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/build/html/_sources/adminguide/distros/ubuntu.10.04.txt b/doc/build/html/_sources/adminguide/distros/ubuntu.10.04.txt deleted file mode 100644 index ce368fab8..000000000 --- a/doc/build/html/_sources/adminguide/distros/ubuntu.10.04.txt +++ /dev/null @@ -1,41 +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 and optionally you can use redis for storing state, so install these first. - -*Note:* You must have sudo installed to run these commands as shown here. - -:: - - 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. - -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-twisted - - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 95C71FE2 - sudo sh -c 'echo "deb http://ppa.launchpad.net/openstack/openstack-ppa/ubuntu lucid main" > /etc/apt/sources.list.d/openstackppa.list' - sudo apt-get update && sudo apt-get install python-gflags - - -Once you've done this, continue at Step 3 here: :doc:`../single.node.install` diff --git a/doc/build/html/_sources/adminguide/distros/ubuntu.10.10.txt b/doc/build/html/_sources/adminguide/distros/ubuntu.10.10.txt deleted file mode 100644 index a3fa2def1..000000000 --- a/doc/build/html/_sources/adminguide/distros/ubuntu.10.10.txt +++ /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/build/html/_sources/adminguide/euca2ools.txt b/doc/build/html/_sources/adminguide/euca2ools.txt deleted file mode 100644 index 6f0c57358..000000000 --- a/doc/build/html/_sources/adminguide/euca2ools.txt +++ /dev/null @@ -1,49 +0,0 @@ -Euca2ools -========= - -Nova is compatible with most of the euca2ools command line utilities. Both Administrators and Users will find these tools helpful for day-to-day administration. - -* euca-add-group -* euca-delete-bundle -* euca-describe-instances -* euca-register -* euca-add-keypair -* euca-delete-group -* euca-describe-keypairs -* euca-release-address -* euca-allocate-address -* euca-delete-keypair -* euca-describe-regions -* euca-reset-image-attribute -* euca-associate-address -* euca-delete-snapshot -* euca-describe-snapshots -* euca-revoke -* euca-attach-volume -* euca-delete-volume -* euca-describe-volumes -* euca-run-instances -* euca-authorize -* euca-deregister -* euca-detach-volume -* euca-terminate-instances -* euca-bundle-image -* euca-describe-addresses -* euca-disassociate-address -* euca-unbundle -* euca-bundle-vol -* euca-describe-availability-zones -* euca-download-bundle -* euca-upload-bundle -* euca-confirm-product-instance -* euca-describe-groups -* euca-get-console-output -* euca-version -* euca-create-snapshot -* euca-describe-image-attribute -* euca-modify-image-attribute -* euca-create-volume -* euca-describe-images -* euca-reboot-instances - - diff --git a/doc/build/html/_sources/adminguide/flags.txt b/doc/build/html/_sources/adminguide/flags.txt deleted file mode 100644 index 4c950aa88..000000000 --- a/doc/build/html/_sources/adminguide/flags.txt +++ /dev/null @@ -1,23 +0,0 @@ -.. - Copyright 2010 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/build/html/_sources/adminguide/getting.started.txt b/doc/build/html/_sources/adminguide/getting.started.txt deleted file mode 100644 index 7075a0b02..000000000 --- a/doc/build/html/_sources/adminguide/getting.started.txt +++ /dev/null @@ -1,168 +0,0 @@ -.. - Copyright 2010 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. - -Getting Started with Nova -========================= - -This code base is continually changing, so dependencies also change. If you -encounter any problems, see the :doc:`../community` page. -The `contrib/nova.sh` script should be kept up to date, and may be a good -resource to review when debugging. - -The purpose of this document is to get a system installed that you can use to -test your setup assumptions. Working from this base installtion you can -tweak configurations and work with different flags to monitor interaction with -your hardware, network, and other factors that will allow you to determine -suitability for your deployment. After following this setup method, you should -be able to experiment with different managers, drivers, and flags to get the -best performance. - -Dependencies ------------- - -Related servers we rely on - -* **RabbitMQ**: messaging queue, used for all communication between components - -Optional servers - -* **OpenLDAP**: By default, the auth server uses the RDBMS-backed datastore by - setting FLAGS.auth_driver to `nova.auth.dbdriver.DbDriver`. But OpenLDAP - (or LDAP) could be configured by specifying `nova.auth.ldapdriver.LdapDriver`. - There is a script in the sources (`nova/auth/slap.sh`) to install a very basic - openldap server on ubuntu. -* **ReDIS**: There is a fake ldap auth driver - `nova.auth.ldapdriver.FakeLdapDriver` that backends to redis. This was - created for testing ldap implementation on systems that don't have an easy - means to install ldap. -* **MySQL**: Either MySQL or another database supported by sqlalchemy needs to - be avilable. Currently, only sqlite3 an mysql have been tested. - -Python libraries that we use (from pip-requires): - -.. literalinclude:: ../../../tools/pip-requires - -Other libraries: - -* **XenAPI**: Needed only for Xen Cloud Platform or XenServer support. Available - from http://wiki.xensource.com/xenwiki/XCP_SDK or - http://community.citrix.com/cdn/xs/sdks. - -External unix tools that are required: - -* iptables -* ebtables -* gawk -* curl -* kvm -* libvirt -* dnsmasq -* vlan -* open-iscsi and iscsitarget (if you use iscsi volumes) -* aoetools and vblade-persist (if you use aoe-volumes) - -Nova uses cutting-edge versions of many packages. There are ubuntu packages in -the nova-core ppa. You can use add this ppa to your sources list on an ubuntu -machine with the following commands:: - - sudo apt-get install -y python-software-properties - sudo add-apt-repository ppa:nova-core/ppa - -Recommended ------------ - -* euca2ools: python implementation of aws ec2-tools and ami tools -* build tornado to use C module for evented section - - -Installation --------------- - -You can install from packages for your particular Linux distribution if they are -available. Otherwise you can install from source by checking out the source -files from the `Nova Source Code Repository `_ -and running:: - - python setup.py install - -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`. - -* Create a volume group (you can use an actual disk for the volume group as - well):: - - # This creates a 1GB file to create volumes out of - dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10 - losetup --show -f MY_FILE_PATH - # replace /dev/loop0 below with whatever losetup returns - # nova-volumes is the default for the --volume_group flag - vgcreate nova-volumes /dev/loop0 - - -Configuring Nova -~~~~~~~~~~~~~~~~ - -Configuration of the entire system is performed through python-gflags. The -best way to track configuration is through the use of a flagfile. - -A flagfile is specified with the ``--flagfile=FILEPATH`` argument to the binary -when you launch it. Flagfiles for nova are typically stored in -``/etc/nova/nova.conf``, and flags specific to a certain program are stored in -``/etc/nova/nova-COMMAND.conf``. Each configuration file can include another -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. - -A sample configuration to test the system follows:: - - --verbose - --nodaemon - --FAKE_subdomain=ec2 - --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`. - -Launch supporting services - -* rabbitmq -* redis (optional) -* mysql (optional) -* openldap (optional) - -Launch nova components, each should have ``--flagfile=/etc/nova/nova.conf`` - -* nova-api -* nova-compute -* nova-objectstore -* nova-volume -* nova-scheduler diff --git a/doc/build/html/_sources/adminguide/index.txt b/doc/build/html/_sources/adminguide/index.txt deleted file mode 100644 index 51228b319..000000000 --- a/doc/build/html/_sources/adminguide/index.txt +++ /dev/null @@ -1,90 +0,0 @@ -.. - Copyright 2010 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. - -Administration Guide -==================== - -This guide describes the basics of running and managing Nova. - -Running the Cloud ------------------ - -The fastest way to get a test cloud running is by following the directions in the :doc:`../quickstart`. - -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 ------------------------- - -There are two main tools that a system administrator will find useful to manage their Nova cloud: - -.. toctree:: - :maxdepth: 1 - - nova.manage - euca2ools - -nova-manage may only be run by users with admin priviledges. euca2ools can be used by all users, though specific commands may be restricted by Role Based Access Control. You can read more about creating and managing users in :doc:`managing.users` - -User and Resource Management ----------------------------- - -nova-manage and euca2ools provide the basic interface to perform a broad range of administration functions. In this section, you can read more about how to accomplish specific administration tasks. - -For background on the core objects refenced in this section, see :doc:`../object.model` - -.. toctree:: - :maxdepth: 1 - - managing.users - managing.projects - managing.instances - managing.images - managing.volumes - managing.networks - -Deployment ----------- - -.. todo:: talk about deployment scenarios - -.. toctree:: - :maxdepth: 1 - - multi.node.install - - -Networking -^^^^^^^^^^ - -.. toctree:: - :maxdepth: 1 - - multi.node.install - network.vlan.rst - network.flat.rst - - -Advanced Topics ---------------- - -.. toctree:: - :maxdepth: 1 - - flags - monitoring - diff --git a/doc/build/html/_sources/adminguide/managing.images.txt b/doc/build/html/_sources/adminguide/managing.images.txt deleted file mode 100644 index df71db23b..000000000 --- a/doc/build/html/_sources/adminguide/managing.images.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. - Copyright 2010 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. - -Managing Images -=============== - -.. todo:: Put info on managing images here! diff --git a/doc/build/html/_sources/adminguide/managing.instances.txt b/doc/build/html/_sources/adminguide/managing.instances.txt deleted file mode 100644 index d97567bb2..000000000 --- a/doc/build/html/_sources/adminguide/managing.instances.txt +++ /dev/null @@ -1,59 +0,0 @@ -.. - Copyright 2010 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. - -Managing Instances -================== - -Keypairs --------- - -Images can be shared by many users, so it is dangerous to put passwords into the images. Nova therefore supports injecting ssh keys into instances before they are booted. This allows a user to login to the instances that he or she creates securely. Generally the first thing that a user does when using the system is create a keypair. Nova generates a public and private key pair, and sends the private key to the user. The public key is stored so that it can be injected into instances. - -Keypairs are created through the api. They can be created on the command line using the euca2ools script euca-add-keypair. Refer to the man page for the available options. Example usage:: - - euca-add-keypair test > test.pem - chmod 600 test.pem - euca-run-instances -k test -t m1.tiny ami-tiny - # wait for boot - ssh -i test.pem root@ip.of.instance - - -Basic Management ----------------- -Instance management can be accomplished with euca commands: - - -To run an instance: - -:: - - euca-run-instances - - -To terminate an instance: - -:: - - euca-terminate-instances - -To reboot an instance: - -:: - - euca-reboot-instances - -See the euca2ools documentation for more information diff --git a/doc/build/html/_sources/adminguide/managing.networks.txt b/doc/build/html/_sources/adminguide/managing.networks.txt deleted file mode 100644 index c8df471e8..000000000 --- a/doc/build/html/_sources/adminguide/managing.networks.txt +++ /dev/null @@ -1,85 +0,0 @@ -.. - Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. - Overview Sections Copyright 2010 Citrix - 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. - -Networking Overview -=================== -In Nova, users organize their cloud resources in projects. A Nova project consists of a number of VM instances created by a user. For each VM instance, Nova assigns to it a private IP address. (Currently, Nova only supports Linux bridge networking that allows the virtual interfaces to connect to the outside network through the physical interface. Other virtual network technologies, such as Open vSwitch, could be supported in the future.) The Network Controller provides virtual networks to enable compute servers to interact with each other and with the public network. - -.. - (perhaps some of this should be moved elsewhere) - Introduction - ------------ - - Nova consists of seven main components, with the Cloud Controller component representing the global state and interacting with all other components. API Server acts as the Web services front end for the cloud controller. Compute Controller provides compute server resources, and the Object Store component provides storage services. Auth Manager provides authentication and authorization services. Volume Controller provides fast and permanent block-level storage for the comput servers. Network Controller provides virtual networks to enable compute servers to interact with each other and with the public network. Scheduler selects the most suitable compute controller to host an instance. - - .. todo:: Insert Figure 1 image from "An OpenStack Network Overview" contributed by Citrix - - Nova is built on a shared-nothing, messaging-based architecture. All of the major components, that is Compute Controller, Volume Controller, Network Controller, and Object Store can be run on multiple servers. Cloud Controller communicates with Object Store via HTTP (Hyper Text Transfer Protocol), but it communicates with Scheduler, Network Controller, and Volume Controller via AMQP (Advanced Message Queue Protocol). To avoid blocking each component while waiting for a response, Nova uses asynchronous calls, with a call-back that gets triggered when a response is received. - - To achieve the shared-nothing property with multiple copies of the same component, Nova keeps all the cloud system state in a distributed data store. Updates to system state are written into this store, using atomic transactions when required. Requests for system state are read out of this store. In limited cases, the read results are cached within controllers for short periods of time (for example, the current list of system users.) - - .. note:: The database schema is available on the `OpenStack Wiki _`. - -Nova Network Strategies ------------------------ - -Currently, Nova supports three kinds of networks, implemented in three "Network Manager" types respectively: Flat Network Manager, Flat DHCP Network Manager, and VLAN Network Manager. The three kinds of networks can c-exist in a cloud system. However, the scheduler for selecting the type of network for a given project is not yet implemented. Here is a brief description of each of the different network strategies, with a focus on the VLAN Manager in a separate section. - -Read more about Nova network strategies here: - -.. toctree:: - :maxdepth: 1 - - network.flat.rst - network.vlan.rst - - -Network Management Commands ---------------------------- - -Admins and Network Administrators can use the 'nova-manage' command to manage network resources: - -VPN Management -~~~~~~~~~~~~~~ - -* vpn list: Print a listing of the VPNs for all projects. - * arguments: none -* vpn run: Start the VPN for a given project. - * arguments: project -* vpn spawn: Run all VPNs. - * arguments: none - - -Floating IP Management -~~~~~~~~~~~~~~~~~~~~~~ - -* floating create: Creates floating ips for host by range - * arguments: host ip_range -* floating delete: Deletes floating ips by range - * arguments: range -* floating list: Prints a listing of all floating ips - * arguments: none - -Network Management -~~~~~~~~~~~~~~~~~~ - -* network create: Creates fixed ips for host by range - * arguments: [fixed_range=FLAG], [num_networks=FLAG], - [network_size=FLAG], [vlan_start=FLAG], - [vpn_start=FLAG] - diff --git a/doc/build/html/_sources/adminguide/managing.projects.txt b/doc/build/html/_sources/adminguide/managing.projects.txt deleted file mode 100644 index b592e14d7..000000000 --- a/doc/build/html/_sources/adminguide/managing.projects.txt +++ /dev/null @@ -1,68 +0,0 @@ -.. - Copyright 2010 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. - -Managing Projects -================= - -Projects are isolated resource containers forming the principal organizational structure within Nova. They consist of a separate vlan, volumes, instances, images, keys, and users. - -Although the original ec2 api only supports users, nova adds the concept of projects. A user can specify which project he or she wishes to use by appending `:project_id` to his or her access key. If no project is specified in the api request, nova will attempt to use a project with the same id as the user. - -The api will return NotAuthorized if a normal user attempts to make requests for a project that he or she is not a member of. Note that admins or users with special admin roles skip this check and can make requests for any project. - -To create a project, use the `project create` command of nova-manage. The syntax is nova-manage project create projectname manager_id [description] You must specify a projectname and a manager_id. For example:: - nova-manage project create john_project john "This is a sample project" - -You can add and remove users from projects with `project add` and `project remove`:: - nova-manage project add john_project john - nova-manage project remove john_project john - -Project Commands ----------------- - -Admins and Project Managers can use the 'nova-manage project' command to manage project resources: - -* project add: Adds user to project - * arguments: project user -* project create: Creates a new project - * arguments: name project_manager [description] -* project delete: Deletes an existing project - * arguments: project_id -* project environment: Exports environment variables to an sourcable file - * arguments: project_id user_id [filename='novarc] -* project list: lists all projects - * arguments: none -* project remove: Removes user from project - * arguments: project user -* project scrub: Deletes data associated with project - * arguments: project -* project zipfile: Exports credentials for project to a zip file - * arguments: project_id user_id [filename='nova.zip] - -Setting Quotas --------------- -Nova utilizes a quota system at the project level to control resource consumption across available hardware resources. Current quota controls are available to limit the: - -* Number of volumes which may be created -* Total size of all volumes within a project as measured in GB -* Number of instances which may be launched -* Number of processor cores which may be allocated -* Publicly accessible IP addresses - -Use the following command to set quotas for a project -* project quota: Set or display quotas for project - * arguments: project_id [key] [value] diff --git a/doc/build/html/_sources/adminguide/managing.users.txt b/doc/build/html/_sources/adminguide/managing.users.txt deleted file mode 100644 index 392142e86..000000000 --- a/doc/build/html/_sources/adminguide/managing.users.txt +++ /dev/null @@ -1,82 +0,0 @@ -Managing Users -============== - - -Users and Access Keys ---------------------- - -Access to the ec2 api is controlled by an access and secret key. The user's access key needs to be included in the request, and the request must be signed with the secret key. Upon receipt of api requests, nova will verify the signature and execute commands on behalf of the user. - -In order to begin using nova, you will need a to create a user. This can be easily accomplished using the user create or user admin commands in nova-manage. `user create` will create a regular user, whereas `user admin` will create an admin user. The syntax of the command is nova-manage user create username [access] [secret]. For example:: - - nova-manage user create john my-access-key a-super-secret-key - -If you do not specify an access or secret key, a random uuid will be created automatically. - -Credentials ------------ - -Nova can generate a handy set of credentials for a user. These credentials include a CA for bundling images and a file for setting environment variables to be used by euca2ools. If you don't need to bundle images, just the environment script is required. You can export one with the `project environment` command. The syntax of the command is nova-manage project environment project_id user_id [filename]. If you don't specify a filename, it will be exported as novarc. After generating the file, you can simply source it in bash to add the variables to your environment:: - - nova-manage project environment john_project john - . novarc - -If you do need to bundle images, you will need to get all of the credentials using `project zipfile`. Note that zipfile will give you an error message if networks haven't been created yet. Otherwise zipfile has the same syntax as environment, only the default file name is nova.zip. Example usage:: - - nova-manage project zipfile john_project john - unzip nova.zip - . novarc - -Role Based Access Control -------------------------- -Roles control the api actions that a user is allowed to perform. For example, a user cannot allocate a public ip without the `netadmin` role. It is important to remember that a users de facto permissions in a project is the intersection of user (global) roles and project (local) roles. So for john to have netadmin permissions in his project, he needs to separate roles specified. You can add roles with `role add`. The syntax is nova-manage role add user_id role [project_id]. Let's give john the netadmin role for his project:: - - nova-manage role add john netadmin - nova-manage role add john netadmin john_project - -Role-based access control (RBAC) is an approach to restricting system access to authorized users based on an individual’s role within an organization. Various employee functions require certain levels of system access in order to be successful. These functions are mapped to defined roles and individuals are categorized accordingly. Since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of assigning appropriate roles to the user. This simplifies common operations, such as adding a user, or changing a user's department. - -Nova’s rights management system employs the RBAC model and currently supports the following five roles: - -* **Cloud Administrator.** (admin) Users of this class enjoy complete system access. -* **IT Security.** (itsec) This role is limited to IT security personnel. It permits role holders to quarantine instances. -* **Project Manager.** (projectmanager)The default for project owners, this role affords users the ability to add other users to a project, interact with project images, and launch and terminate instances. -* **Network Administrator.** (netadmin) Users with this role are permitted to allocate and assign publicly accessible IP addresses as well as create and modify firewall rules. -* **Developer.** This is a general purpose role that is assigned to users by default. - -RBAC management is exposed through the dashboard for simplified user management. - - -User Commands -~~~~~~~~~~~~ - -Users, including admins, are created through the ``user`` commands. - -* user admin: creates a new admin and prints exports - * arguments: name [access] [secret] -* user create: creates a new user and prints exports - * arguments: name [access] [secret] -* user delete: deletes an existing user - * arguments: name -* user exports: prints access and secrets for user in export format - * arguments: name -* user list: lists all users - * arguments: none -* user modify: update a users keys & admin flag - * arguments: accesskey secretkey admin - * leave any field blank to ignore it, admin should be 'T', 'F', or blank - - -User Role Management -~~~~~~~~~~~~~~~~~~~~ - -* role add: adds role to user - * if project is specified, adds project specific role - * arguments: user, role [project] -* role has: checks to see if user has role - * if project is specified, returns True if user has - the global role and the project role - * arguments: user, role [project] -* role remove: removes role from user - * if project is specified, removes project specific role - * arguments: user, role [project] diff --git a/doc/build/html/_sources/adminguide/managingsecurity.txt b/doc/build/html/_sources/adminguide/managingsecurity.txt deleted file mode 100644 index 3b11b181a..000000000 --- a/doc/build/html/_sources/adminguide/managingsecurity.txt +++ /dev/null @@ -1,39 +0,0 @@ -.. - Copyright 2010 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. - -Security Considerations -======================= - -.. todo:: This doc is vague and just high-level right now. Describe architecture that enables security. - -The goal of securing a cloud computing system involves both protecting the instances, data on the instances, and -ensuring users are authenticated for actions and that borders are understood by the users and the system. -Protecting the system from intrusion or attack involves authentication, network protections, and -compromise detection. - -Key Concepts ------------- - -Authentication - Each instance is authenticated with a key pair. - -Network - Instances can communicate with each other but you can configure the boundaries through firewall -configuration. - -Monitoring - Log all API commands and audit those logs. - -Encryption - Data transfer between instances is not encrypted. - diff --git a/doc/build/html/_sources/adminguide/monitoring.txt b/doc/build/html/_sources/adminguide/monitoring.txt deleted file mode 100644 index e7766a6e7..000000000 --- a/doc/build/html/_sources/adminguide/monitoring.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. - Copyright 2010 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. - -Monitoring -========== - -* components -* throughput -* exceptions -* hardware - -* ganglia -* syslog diff --git a/doc/build/html/_sources/adminguide/multi.node.install.txt b/doc/build/html/_sources/adminguide/multi.node.install.txt deleted file mode 100644 index fa0652bc8..000000000 --- a/doc/build/html/_sources/adminguide/multi.node.install.txt +++ /dev/null @@ -1,298 +0,0 @@ -.. - Copyright 2010 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. - -Installing Nova on Multiple Servers -=================================== - -When you move beyond evaluating the technology and into building an actual -production environemnt, 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 in the installation and configuration scripts as of October 18th 2010. It also needs to eventually be generalized, but the intent here is to get the multi-node configuration bootstrapped so folks can move forward. - - -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 Postgres. 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. - - - -Step 1 Use apt-get to get the latest code ------------------------------------------ - -1. Setup Nova PPA with https://launchpad.net/~nova-core/+archive/ppa. - -:: - - sudo apt-get install python-software-properties - sudo add-apt-repository ppa:nova-core/ppa - -2. Run update. - -:: - - sudo apt-get update - -3. Install nova-pkgs (dependencies should be automatically installed). - -:: - - sudo apt-get install python-greenlet - sudo apt-get install nova-common nova-doc python-nova nova-api nova-network nova-objectstore nova-scheduler - -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 Setup configuration files (installed in /etc/nova) ---------------------------------------------------------- - -Note: CC_ADDR= - -1. These need to be defined in EACH configuration file - -:: - - --sql_connection=mysql://root:nova@$CC_ADDR/nova # location of nova sql db - --s3_host=$CC_ADDR # This is where nova is hosting the objectstore service, which - # will contain the VM images and buckets - --rabbit_host=$CC_ADDR # This is where the rabbit AMQP messaging service is hosted - --cc_host=$CC_ADDR # This is where the the nova-api service lives - --verbose # Optional but very helpful during initial setup - --ec2_url=http://$CC_ADDR:8773/services/Cloud - --network_manager=nova.network.manager.FlatManager # simple, no-vlan networking type - - -2. nova-manage specific flags - -:: - - --FAKE_subdomain=ec2 # workaround for ec2/euca api - --fixed_range= # ip network to use for VM guests, ex 192.168.2.64/26 - --network_size=<# of addrs> # number of ip addrs to use for VM guests, ex 64 - - -3. nova-network specific flags - -:: - - --fixed_range= # ip network to use for VM guests, ex 192.168.2.64/26 - --network_size=<# of addrs> # number of ip addrs to use for VM guests, ex 64 - -4. nova-api specific flags - -:: - - --FAKE_subdomain=ec2 # workaround for ec2/euca api - -5. Create a nova group - -:: - - sudo addgroup nova - -6. nova-objectstore specific flags < no specific config needed > - -Config files should be have their owner set to root:nova, and mode set to 0640, since they contain your MySQL server's root password. - -:: - - cd /etc/nova - chown -R root:nova . - -Step 3 Setup the sql db ------------------------ - -1. First you 'preseed' (using vishy's :doc:`../quickstart`). Run this as root. - -:: - - sudo apt-get install bzr git-core - sudo bash - export MYSQL_PASS=nova - - -:: - - cat < - /usr/bin/python /usr/bin/nova-manage project create - /usr/bin/python /usr/bin/nova-manage project create network - -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 this 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. We ended up doing this manually, (update query fired directly in the DB). Is there a better way to mark a network as bridged? - -Update: This has been resolved w.e.f 27/10. network is marked as bridged automatically based on the type of n/w manager selected. - -More networking details to create a network bridge for flat network -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Nova defaults to a bridge device named 'br100'. This needs to be created and somehow integrated into YOUR network. In my case, I wanted to keep things as simple as possible and have all the vm guests on the same network as the vm hosts (the compute nodes). Thus, I set the compute node's external IP address to be on the bridge and added 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 - -Step 5: Create nova certs. --------------------------- - -Generate the certs as a zip file:: - - mkdir creds - sudo /usr/bin/python /usr/bin/nova-manage project zip admin admin creds/nova.zip - -you can get the rc file more easily with:: - - sudo /usr/bin/python /usr/bin/nova-manage project env admin admin creds/novarc - -unzip them in your home directory, and add them to your environment:: - - unzip creds/nova.zip - echo ". creds/novarc" >> ~/.bashrc - ~/.bashrc - - -Step 6 Restart all relevant services ------------------------------------- - -Restart Libvirt:: - - sudo /etc/init.d/libvirt-bin restart - -Restart relevant nova services:: - - sudo /etc/init.d/nova-compute restart - sudo /etc/init.d/nova-volume restart - - -.. todo:: do we still need the content below? - -Bare-metal Provisioning ------------------------ - -To install the base operating system you can use PXE booting. - -Types of Hosts --------------- - -A single machine in your cluster can act as one or more of the following types -of host: - -Nova Services - -* Network -* Compute -* Volume -* API -* Objectstore - -Other supporting services - -* Message Queue -* Database (optional) -* Authentication database (optional) - -Initial Setup -------------- - -* Networking -* Cloudadmin User Creation - -Deployment Technologies ------------------------ - -Once you have machines with a base operating system installation, you can deploy -code and configuration with your favorite tools to specify which machines in -your cluster have which roles: - -* Puppet -* Chef diff --git a/doc/build/html/_sources/adminguide/network.flat.txt b/doc/build/html/_sources/adminguide/network.flat.txt deleted file mode 100644 index 1b8661a40..000000000 --- a/doc/build/html/_sources/adminguide/network.flat.txt +++ /dev/null @@ -1,60 +0,0 @@ -.. - Copyright 2010 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. - - -Flat Network Mode (Original and Flat) -===================================== - -Flat network mode removes most of the complexity of VLAN mode by simply -bridging all instance interfaces onto a single network. - -There are two variations of flat mode that differ mostly in how IP addresses -are given to instances. - - -Original Flat Mode ------------------- -IP addresses for VM instances are grabbed from a subnet specified by the network administrator, and injected into the image on launch. All instances of the system are attached to the same Linux networking bridge, configured manually by the network administrator both on the network controller hosting the network and on the computer controllers hosting the instances. To recap: - -* Each compute host creates a single bridge for all instances to use to attach to the external network. -* The networking configuration is injected into the instance before it is booted or it is obtained by a guest agent installed in the instance. - -Note that the configuration injection currently only works on linux-style systems that keep networking -configuration in /etc/network/interfaces. - - -Flat DHCP Mode --------------- -IP addresses for VM instances are grabbed from a subnet specified by the network administrator. Similar to the flat network, a single Linux networking bridge is created and configured manually by the network administrator and used for all instances. A DHCP server is started to pass out IP addresses to VM instances from the specified subnet. To recap: - -* Like flat mode, all instances are attached to a single bridge on the compute node. -* In addition a DHCP server is running to configure instances. - -Implementation --------------- - -The network nodes do not act as a default gateway in flat mode. Instances -are given public IP addresses. - -Compute nodes have iptables/ebtables entries created per project and -instance to protect against IP/MAC address spoofing and ARP poisoning. - - -Examples --------- - -.. todo:: add flat network mode configuration examples diff --git a/doc/build/html/_sources/adminguide/network.vlan.txt b/doc/build/html/_sources/adminguide/network.vlan.txt deleted file mode 100644 index 5bbc54bed..000000000 --- a/doc/build/html/_sources/adminguide/network.vlan.txt +++ /dev/null @@ -1,180 +0,0 @@ -.. - Copyright 2010 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. - - -VLAN Network Mode -================= -VLAN Network Mode is the default mode for Nova. It provides a private network -segment for each project's instances that can be accessed via a dedicated -VPN connection from the Internet. - -In this mode, each project gets its own VLAN, Linux networking bridge, and subnet. The subnets are specified by the network administrator, and are assigned dynamically to a project when required. A DHCP Server is started for each VLAN to pass out IP addresses to VM instances from the subnet assigned to the project. All instances belonging to one project are bridged into the same VLAN for that project. The Linux networking bridges and VLANs are created by Nova when required, described in more detail in Nova VLAN Network Management Implementation. - -.. - (this text revised above) - Because the flat network and flat DhCP network are simple to understand and yet do not scale well enough for real-world cloud systems, this section focuses on the VLAN network implementation by the VLAN Network Manager. - - - In the VLAN network mode, all the VM instances of a project are connected together in a VLAN with the specified private subnet. Each running VM instance is assigned an IP address within the given private subnet. - -.. image:: /images/Novadiagram.png - :width: 790 - -While network traffic between VM instances belonging to the same VLAN is always open, Nova can enforce isolation of network traffic between different projects by enforcing one VLAN per project. - -In addition, the network administrator can specify a pool of public IP addresses that users may allocate and then assign to VMs, either at boot or dynamically at run-time. This capability is similar to Amazon's 'elastic IPs'. A public IP address may be associated with a running instances, allowing the VM instance to be accessed from the public network. The public IP addresses are accessible from the network host and NATed to the private IP address of the project. - -.. todo:: Describe how a public IP address could be associated with a project (a VLAN) - -This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code named :ref:`cloudpipe `) needs to be created. Nova generates a certificate and key for the user to access the vpn and starts the vpn automatically. More information on cloudpipe can be found :ref:`here `. - -The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds) - -.. image:: /images/cloudpipe.png - :width: 100% - -Goals ------ - -* each project is in a protected network segment - - * RFC-1918 IP space - * public IP via NAT - * no default inbound Internet access without public NAT - * limited (project-admin controllable) outbound Internet access - * limited (project-admin controllable) access to other project segments - * all connectivity to instance and cloud API is via VPN into the project segment - -* common DMZ segment for support services (only visible from project segment) - - * metadata - * dashboard - - -Limitations ------------ - -* Projects / cluster limited to available VLANs in switching infrastructure -* Requires VPN for access to project segment - - -Implementation --------------- -Currently Nova segregates project VLANs using 802.1q VLAN tagging in the -switching layer. Compute hosts create VLAN-specific interfaces and bridges -as required. - -The network nodes act as default gateway for project networks and contain -all of the routing and firewall rules implementing security groups. The -network node also handles DHCP to provide instance IPs for each project. - -VPN access is provided by running a small instance called CloudPipe -on the IP immediately following the gateway IP for each project. The -network node maps a dedicated public IP/port to the CloudPipe instance. - -Compute nodes have per-VLAN interfaces and bridges created as required. -These do NOT have IP addresses in the host to protect host access. -Compute nodes have iptables/ebtables entries created per project and -instance to protect against IP/MAC address spoofing and ARP poisoning. - -The network assignment to a project, and IP address assignment to a VM instance, are triggered when a user starts to run a VM instance. When running a VM instance, a user needs to specify a project for the instances, and the security groups (described in Security Groups) when the instance wants to join. If this is the first instance to be created for the project, then Nova (the cloud controller) needs to find a network controller to be the network host for the project; it then sets up a private network by finding an unused VLAN id, an unused subnet, and then the controller assigns them to the project, it also assigns a name to the project's Linux bridge, and allocating a private IP within the project's subnet for the new instance. - -If the instance the user wants to start is not the project's first, a subnet and a VLAN must have already been assigned to the project; therefore the system needs only to find an available IP address within the subnet and assign it to the new starting instance. If there is no private IP available within the subnet, an exception will be raised to the cloud controller, and the VM creation cannot proceed. - -.. todo:: insert the name of the Linux bridge, is it always named bridge? - -External Infrastructure ------------------------ - -Nova assumes the following is available: - -* DNS -* NTP -* Internet connectivity - - -Example -------- - -This example network configuration demonstrates most of the capabilities -of VLAN Mode. It splits administrative access to the nodes onto a dedicated -management network and uses dedicated network nodes to handle all -routing and gateway functions. - -It uses a 10GB network for instance traffic and a 1GB network for management. - - -Hardware -~~~~~~~~ - -* All nodes have a minimum of two NICs for management and production. - - * management is 1GB - * production is 10GB - * add additional NICs for bonding or HA/performance - -* network nodes should have an additional NIC dedicated to public Internet traffic -* switch needs to support enough simultaneous VLANs for number of projects -* production network configured as 802.1q trunk on switch - - -Operation -~~~~~~~~~ - -The network node controls the project network configuration: - -* assigns each project a VLAN and private IP range -* starts dnsmasq on project VLAN to serve private IP range -* configures iptables on network node for default project access -* launches CloudPipe instance and configures iptables access - -When starting an instance the network node: - -* sets up a VLAN interface and bridge on each host as required when an - instance is started on that host -* assigns private IP to instance -* generates MAC address for instance -* update dnsmasq with IP/MAC for instance - -When starting an instance the compute node: - -* sets up a VLAN interface and bridge on each host as required when an - instance is started on that host - - -Setup -~~~~~ - -* Assign VLANs in the switch: - - * public Internet segment - * production network - * management network - * cluster DMZ - -* Assign a contiguous range of VLANs to Nova for project use. -* Configure management NIC ports as management VLAN access ports. -* Configure management VLAN with Internet access as required -* Configure production NIC ports as 802.1q trunk ports. -* Configure Nova (need to add specifics here) - - * public IPs - * instance IPs - * project network size - * DMZ network - -.. todo:: need specific Nova configuration added diff --git a/doc/build/html/_sources/adminguide/nova.manage.txt b/doc/build/html/_sources/adminguide/nova.manage.txt deleted file mode 100644 index 4235d97b1..000000000 --- a/doc/build/html/_sources/adminguide/nova.manage.txt +++ /dev/null @@ -1,225 +0,0 @@ -.. - Copyright 2010 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. - - -The nova-manage command -======================= - -Introduction -~~~~~~~~~~~~ - -The nova-manage command is used to perform many essential functions for -administration and ongoing maintenance of nova, such as user creation, -vpn management, and much more. - -The standard pattern for executing a nova-manage command is: -``nova-manage []`` - -For example, to obtain a list of all projects: -``nova-manage project list`` - -Run without arguments to see a list of available command categories: -``nova-manage`` - -Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. - -You can also run with a category argument such as user to see a list of all commands in that category: -``nova-manage user`` - -These sections describe the available categories and arguments for nova-manage. - -Nova User -~~~~~~~~~ - -``nova-manage user admin `` - - Create an admin user with the name . - -``nova-manage user create `` - - Create a normal user with the name . - -``nova-manage user delete `` - - Delete the user with the name . - -``nova-manage user exports `` - - Outputs a list of access key and secret keys for user to the screen - -``nova-manage user list`` - - Outputs a list of all the user names to the screen. - -``nova-manage user modify `` - - Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. - -Nova Project -~~~~~~~~~~~~ - -``nova-manage project add `` - - Add a nova project with the name to the database. - -``nova-manage project create `` - - Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). - -``nova-manage project delete `` - - Delete a nova project with the name . - -``nova-manage project environment `` - - Exports environment variables for the named project to a file named novarc. - -``nova-manage project list`` - - Outputs a list of all the projects to the screen. - -``nova-manage project quota `` - - Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. - -``nova-manage project remove `` - - Deletes the project with the name . - -``nova-manage project zipfile`` - - Compresses all related files for a created project into a zip file nova.zip. - -Nova Role -~~~~~~~~~ - -nova-manage role [] -``nova-manage role add <(optional) projectname>`` - - Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. - -``nova-manage role has `` - Checks the user or project and responds with True if the user has a global role with a particular project. - -``nova-manage role remove `` - Remove the indicated role from the user. - -Nova Shell -~~~~~~~~~~ - -``nova-manage shell bpython`` - - Starts a new bpython shell. - -``nova-manage shell ipython`` - - Starts a new ipython shell. - -``nova-manage shell python`` - - Starts a new python shell. - -``nova-manage shell run`` - - Starts a new shell using python. - -``nova-manage shell script `` - - Runs the named script from the specified path with flags set. - -Nova VPN -~~~~~~~~ - -``nova-manage vpn list`` - - Displays a list of projects, their IP prot numbers, and what state they're in. - -``nova-manage vpn run `` - - Starts the VPN for the named project. - -``nova-manage vpn spawn`` - - Runs all VPNs. - -Nova Floating IPs -~~~~~~~~~~~~~~~~~ - -``nova-manage floating create `` - - Creates floating IP addresses for the named host by the given range. - floating delete Deletes floating IP addresses in the range given. - -``nova-manage floating list`` - - Displays a list of all floating IP addresses. - -Concept: Flags --------------- - -python-gflags - - -Concept: Plugins ----------------- - -* Managers/Drivers: utils.import_object from string flag -* virt/connections: conditional loading from string flag -* db: LazyPluggable via string flag -* auth_manager: utils.import_class based on string flag -* Volumes: moving to pluggable driver instead of manager -* Network: pluggable managers -* Compute: same driver used, but pluggable at connection - - -Concept: IPC/RPC ----------------- - -Rabbit! - - -Concept: Fakes --------------- - -* auth -* ldap - - -Concept: Scheduler ------------------- - -* simple -* random - - -Concept: Security Groups ------------------------- - -Security groups - - -Concept: Certificate Authority ------------------------------- - -Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns <../cloudpipe>` and decrypting bundled images. - - -Concept: Images ---------------- - -* launching -* bundling diff --git a/doc/build/html/_sources/adminguide/single.node.install.txt b/doc/build/html/_sources/adminguide/single.node.install.txt deleted file mode 100644 index 27597962a..000000000 --- a/doc/build/html/_sources/adminguide/single.node.install.txt +++ /dev/null @@ -1,344 +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 mehod 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 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 5: 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 6: 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 7: Source the rc file --------------------------- -Type or copy/paste the following to source the novarc file in your current working directory. - -:: - - . novarc - - -Step 8: Pat yourself on the back :) ------------------------------------ -Congratulations, your cloud is up and running, you’ve created an admin user, retrieved the user's credentials and put them in your environment. - -Now you need an image. - - -Step 9: 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) [appication/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 10: 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 11: 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/build/html/_sources/api/autoindex.txt b/doc/build/html/_sources/api/autoindex.txt deleted file mode 100644 index 6265b082b..000000000 --- a/doc/build/html/_sources/api/autoindex.txt +++ /dev/null @@ -1,99 +0,0 @@ -.. toctree:: - :maxdepth: 1 - - nova..adminclient.rst - nova..api.cloud.rst - nova..api.ec2.admin.rst - nova..api.ec2.apirequest.rst - nova..api.ec2.cloud.rst - nova..api.ec2.images.rst - nova..api.ec2.metadatarequesthandler.rst - nova..api.openstack.auth.rst - nova..api.openstack.backup_schedules.rst - nova..api.openstack.faults.rst - nova..api.openstack.flavors.rst - nova..api.openstack.images.rst - nova..api.openstack.servers.rst - nova..api.openstack.sharedipgroups.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.disk.rst - nova..compute.instance_types.rst - nova..compute.manager.rst - nova..compute.monitor.rst - nova..compute.power_state.rst - nova..context.rst - nova..crypto.rst - nova..db.api.rst - nova..db.sqlalchemy.api.rst - nova..db.sqlalchemy.models.rst - nova..db.sqlalchemy.session.rst - nova..exception.rst - nova..fakerabbit.rst - nova..flags.rst - nova..image.service.rst - nova..manager.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..process.rst - nova..quota.rst - nova..rpc.rst - nova..scheduler.chance.rst - nova..scheduler.driver.rst - nova..scheduler.manager.rst - nova..scheduler.simple.rst - nova..server.rst - nova..service.rst - nova..test.rst - nova..tests.access_unittest.rst - nova..tests.api.fakes.rst - nova..tests.api.openstack.fakes.rst - nova..tests.api.openstack.test_api.rst - nova..tests.api.openstack.test_auth.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_sharedipgroups.rst - nova..tests.api.test_wsgi.rst - nova..tests.api_integration.rst - nova..tests.api_unittest.rst - nova..tests.auth_unittest.rst - nova..tests.cloud_unittest.rst - nova..tests.compute_unittest.rst - nova..tests.declare_flags.rst - nova..tests.fake_flags.rst - nova..tests.flags_unittest.rst - nova..tests.network_unittest.rst - nova..tests.objectstore_unittest.rst - nova..tests.process_unittest.rst - nova..tests.quota_unittest.rst - nova..tests.real_flags.rst - nova..tests.rpc_unittest.rst - nova..tests.runtime_flags.rst - nova..tests.scheduler_unittest.rst - nova..tests.service_unittest.rst - nova..tests.twistd_unittest.rst - nova..tests.validator_unittest.rst - nova..tests.virt_unittest.rst - nova..tests.volume_unittest.rst - nova..twistd.rst - nova..utils.rst - nova..validate.rst - nova..virt.connection.rst - nova..virt.fake.rst - nova..virt.images.rst - nova..virt.libvirt_conn.rst - nova..virt.xenapi.rst - nova..volume.driver.rst - nova..volume.manager.rst - nova..wsgi.rst diff --git a/doc/build/html/_sources/api/nova..adminclient.txt b/doc/build/html/_sources/api/nova..adminclient.txt deleted file mode 100644 index 35fa839e1..000000000 --- a/doc/build/html/_sources/api/nova..adminclient.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..adminclient` Module -============================================================================== -.. automodule:: nova..adminclient - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.cloud.txt b/doc/build/html/_sources/api/nova..api.cloud.txt deleted file mode 100644 index 413840185..000000000 --- a/doc/build/html/_sources/api/nova..api.cloud.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.cloud` Module -============================================================================== -.. automodule:: nova..api.cloud - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.ec2.admin.txt b/doc/build/html/_sources/api/nova..api.ec2.admin.txt deleted file mode 100644 index 4e9ab308b..000000000 --- a/doc/build/html/_sources/api/nova..api.ec2.admin.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.ec2.admin` Module -============================================================================== -.. automodule:: nova..api.ec2.admin - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.ec2.apirequest.txt b/doc/build/html/_sources/api/nova..api.ec2.apirequest.txt deleted file mode 100644 index c17a2ff3a..000000000 --- a/doc/build/html/_sources/api/nova..api.ec2.apirequest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.ec2.apirequest` Module -============================================================================== -.. automodule:: nova..api.ec2.apirequest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.ec2.cloud.txt b/doc/build/html/_sources/api/nova..api.ec2.cloud.txt deleted file mode 100644 index f6145c217..000000000 --- a/doc/build/html/_sources/api/nova..api.ec2.cloud.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.ec2.cloud` Module -============================================================================== -.. automodule:: nova..api.ec2.cloud - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.ec2.images.txt b/doc/build/html/_sources/api/nova..api.ec2.images.txt deleted file mode 100644 index 012d800e4..000000000 --- a/doc/build/html/_sources/api/nova..api.ec2.images.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.ec2.images` Module -============================================================================== -.. automodule:: nova..api.ec2.images - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.ec2.metadatarequesthandler.txt b/doc/build/html/_sources/api/nova..api.ec2.metadatarequesthandler.txt deleted file mode 100644 index 75f5169e5..000000000 --- a/doc/build/html/_sources/api/nova..api.ec2.metadatarequesthandler.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.ec2.metadatarequesthandler` Module -============================================================================== -.. automodule:: nova..api.ec2.metadatarequesthandler - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.auth.txt b/doc/build/html/_sources/api/nova..api.openstack.auth.txt deleted file mode 100644 index 8c3f8f2da..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.auth.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.auth` Module -============================================================================== -.. automodule:: nova..api.openstack.auth - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.backup_schedules.txt b/doc/build/html/_sources/api/nova..api.openstack.backup_schedules.txt deleted file mode 100644 index 6b406f12d..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.backup_schedules.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.backup_schedules` Module -============================================================================== -.. automodule:: nova..api.openstack.backup_schedules - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.faults.txt b/doc/build/html/_sources/api/nova..api.openstack.faults.txt deleted file mode 100644 index 7b25561f7..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.faults.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.faults` Module -============================================================================== -.. automodule:: nova..api.openstack.faults - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.flavors.txt b/doc/build/html/_sources/api/nova..api.openstack.flavors.txt deleted file mode 100644 index 0deb724de..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.flavors.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.flavors` Module -============================================================================== -.. automodule:: nova..api.openstack.flavors - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.images.txt b/doc/build/html/_sources/api/nova..api.openstack.images.txt deleted file mode 100644 index 82bd5f1e8..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.images.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.images` Module -============================================================================== -.. automodule:: nova..api.openstack.images - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.servers.txt b/doc/build/html/_sources/api/nova..api.openstack.servers.txt deleted file mode 100644 index c36856ea2..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.servers.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.servers` Module -============================================================================== -.. automodule:: nova..api.openstack.servers - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..api.openstack.sharedipgroups.txt b/doc/build/html/_sources/api/nova..api.openstack.sharedipgroups.txt deleted file mode 100644 index 07632acc8..000000000 --- a/doc/build/html/_sources/api/nova..api.openstack.sharedipgroups.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..api.openstack.sharedipgroups` Module -============================================================================== -.. automodule:: nova..api.openstack.sharedipgroups - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..auth.dbdriver.txt b/doc/build/html/_sources/api/nova..auth.dbdriver.txt deleted file mode 100644 index 7de68b6e0..000000000 --- a/doc/build/html/_sources/api/nova..auth.dbdriver.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..auth.dbdriver` Module -============================================================================== -.. automodule:: nova..auth.dbdriver - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..auth.fakeldap.txt b/doc/build/html/_sources/api/nova..auth.fakeldap.txt deleted file mode 100644 index ca8a3ad4d..000000000 --- a/doc/build/html/_sources/api/nova..auth.fakeldap.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..auth.fakeldap` Module -============================================================================== -.. automodule:: nova..auth.fakeldap - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..auth.ldapdriver.txt b/doc/build/html/_sources/api/nova..auth.ldapdriver.txt deleted file mode 100644 index c44463522..000000000 --- a/doc/build/html/_sources/api/nova..auth.ldapdriver.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..auth.ldapdriver` Module -============================================================================== -.. automodule:: nova..auth.ldapdriver - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..auth.manager.txt b/doc/build/html/_sources/api/nova..auth.manager.txt deleted file mode 100644 index bc5ce2ec3..000000000 --- a/doc/build/html/_sources/api/nova..auth.manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..auth.manager` Module -============================================================================== -.. automodule:: nova..auth.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..auth.signer.txt b/doc/build/html/_sources/api/nova..auth.signer.txt deleted file mode 100644 index aad824ead..000000000 --- a/doc/build/html/_sources/api/nova..auth.signer.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..auth.signer` Module -============================================================================== -.. automodule:: nova..auth.signer - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..cloudpipe.pipelib.txt b/doc/build/html/_sources/api/nova..cloudpipe.pipelib.txt deleted file mode 100644 index 054aaf484..000000000 --- a/doc/build/html/_sources/api/nova..cloudpipe.pipelib.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..cloudpipe.pipelib` Module -============================================================================== -.. automodule:: nova..cloudpipe.pipelib - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..compute.disk.txt b/doc/build/html/_sources/api/nova..compute.disk.txt deleted file mode 100644 index 6410af6f3..000000000 --- a/doc/build/html/_sources/api/nova..compute.disk.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..compute.disk` Module -============================================================================== -.. automodule:: nova..compute.disk - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..compute.instance_types.txt b/doc/build/html/_sources/api/nova..compute.instance_types.txt deleted file mode 100644 index d206ff3a4..000000000 --- a/doc/build/html/_sources/api/nova..compute.instance_types.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..compute.instance_types` Module -============================================================================== -.. automodule:: nova..compute.instance_types - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..compute.manager.txt b/doc/build/html/_sources/api/nova..compute.manager.txt deleted file mode 100644 index 33a337c39..000000000 --- a/doc/build/html/_sources/api/nova..compute.manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..compute.manager` Module -============================================================================== -.. automodule:: nova..compute.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..compute.monitor.txt b/doc/build/html/_sources/api/nova..compute.monitor.txt deleted file mode 100644 index a91169ecd..000000000 --- a/doc/build/html/_sources/api/nova..compute.monitor.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..compute.monitor` Module -============================================================================== -.. automodule:: nova..compute.monitor - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..compute.power_state.txt b/doc/build/html/_sources/api/nova..compute.power_state.txt deleted file mode 100644 index 41b1080e5..000000000 --- a/doc/build/html/_sources/api/nova..compute.power_state.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..compute.power_state` Module -============================================================================== -.. automodule:: nova..compute.power_state - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..context.txt b/doc/build/html/_sources/api/nova..context.txt deleted file mode 100644 index 9de1adb24..000000000 --- a/doc/build/html/_sources/api/nova..context.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..context` Module -============================================================================== -.. automodule:: nova..context - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..crypto.txt b/doc/build/html/_sources/api/nova..crypto.txt deleted file mode 100644 index af9f63634..000000000 --- a/doc/build/html/_sources/api/nova..crypto.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..crypto` Module -============================================================================== -.. automodule:: nova..crypto - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..db.api.txt b/doc/build/html/_sources/api/nova..db.api.txt deleted file mode 100644 index 6d998fbb2..000000000 --- a/doc/build/html/_sources/api/nova..db.api.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..db.api` Module -============================================================================== -.. automodule:: nova..db.api - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..db.sqlalchemy.api.txt b/doc/build/html/_sources/api/nova..db.sqlalchemy.api.txt deleted file mode 100644 index 76d0c1bd3..000000000 --- a/doc/build/html/_sources/api/nova..db.sqlalchemy.api.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..db.sqlalchemy.api` Module -============================================================================== -.. automodule:: nova..db.sqlalchemy.api - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..db.sqlalchemy.models.txt b/doc/build/html/_sources/api/nova..db.sqlalchemy.models.txt deleted file mode 100644 index 9c795d7f5..000000000 --- a/doc/build/html/_sources/api/nova..db.sqlalchemy.models.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..db.sqlalchemy.models` Module -============================================================================== -.. automodule:: nova..db.sqlalchemy.models - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..db.sqlalchemy.session.txt b/doc/build/html/_sources/api/nova..db.sqlalchemy.session.txt deleted file mode 100644 index cbfd6416a..000000000 --- a/doc/build/html/_sources/api/nova..db.sqlalchemy.session.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..db.sqlalchemy.session` Module -============================================================================== -.. automodule:: nova..db.sqlalchemy.session - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..exception.txt b/doc/build/html/_sources/api/nova..exception.txt deleted file mode 100644 index 97ac6b752..000000000 --- a/doc/build/html/_sources/api/nova..exception.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..exception` Module -============================================================================== -.. automodule:: nova..exception - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..fakerabbit.txt b/doc/build/html/_sources/api/nova..fakerabbit.txt deleted file mode 100644 index f1e27c266..000000000 --- a/doc/build/html/_sources/api/nova..fakerabbit.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..fakerabbit` Module -============================================================================== -.. automodule:: nova..fakerabbit - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..flags.txt b/doc/build/html/_sources/api/nova..flags.txt deleted file mode 100644 index 08165be44..000000000 --- a/doc/build/html/_sources/api/nova..flags.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..flags` Module -============================================================================== -.. automodule:: nova..flags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..image.service.txt b/doc/build/html/_sources/api/nova..image.service.txt deleted file mode 100644 index 78ef1ecca..000000000 --- a/doc/build/html/_sources/api/nova..image.service.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..image.service` Module -============================================================================== -.. automodule:: nova..image.service - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..manager.txt b/doc/build/html/_sources/api/nova..manager.txt deleted file mode 100644 index 576902491..000000000 --- a/doc/build/html/_sources/api/nova..manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..manager` Module -============================================================================== -.. automodule:: nova..manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..network.linux_net.txt b/doc/build/html/_sources/api/nova..network.linux_net.txt deleted file mode 100644 index 7af78d5ad..000000000 --- a/doc/build/html/_sources/api/nova..network.linux_net.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..network.linux_net` Module -============================================================================== -.. automodule:: nova..network.linux_net - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..network.manager.txt b/doc/build/html/_sources/api/nova..network.manager.txt deleted file mode 100644 index 0ea705533..000000000 --- a/doc/build/html/_sources/api/nova..network.manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..network.manager` Module -============================================================================== -.. automodule:: nova..network.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..objectstore.bucket.txt b/doc/build/html/_sources/api/nova..objectstore.bucket.txt deleted file mode 100644 index 3bfdf639c..000000000 --- a/doc/build/html/_sources/api/nova..objectstore.bucket.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..objectstore.bucket` Module -============================================================================== -.. automodule:: nova..objectstore.bucket - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..objectstore.handler.txt b/doc/build/html/_sources/api/nova..objectstore.handler.txt deleted file mode 100644 index 0eb8c4efb..000000000 --- a/doc/build/html/_sources/api/nova..objectstore.handler.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..objectstore.handler` Module -============================================================================== -.. automodule:: nova..objectstore.handler - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..objectstore.image.txt b/doc/build/html/_sources/api/nova..objectstore.image.txt deleted file mode 100644 index fa4c971f1..000000000 --- a/doc/build/html/_sources/api/nova..objectstore.image.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..objectstore.image` Module -============================================================================== -.. automodule:: nova..objectstore.image - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..objectstore.stored.txt b/doc/build/html/_sources/api/nova..objectstore.stored.txt deleted file mode 100644 index 2b1d997a3..000000000 --- a/doc/build/html/_sources/api/nova..objectstore.stored.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..objectstore.stored` Module -============================================================================== -.. automodule:: nova..objectstore.stored - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..process.txt b/doc/build/html/_sources/api/nova..process.txt deleted file mode 100644 index 91eff8379..000000000 --- a/doc/build/html/_sources/api/nova..process.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..process` Module -============================================================================== -.. automodule:: nova..process - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..quota.txt b/doc/build/html/_sources/api/nova..quota.txt deleted file mode 100644 index 4140d95d6..000000000 --- a/doc/build/html/_sources/api/nova..quota.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..quota` Module -============================================================================== -.. automodule:: nova..quota - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..rpc.txt b/doc/build/html/_sources/api/nova..rpc.txt deleted file mode 100644 index 5b2a9b8e2..000000000 --- a/doc/build/html/_sources/api/nova..rpc.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..rpc` Module -============================================================================== -.. automodule:: nova..rpc - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..scheduler.chance.txt b/doc/build/html/_sources/api/nova..scheduler.chance.txt deleted file mode 100644 index 89c074c8f..000000000 --- a/doc/build/html/_sources/api/nova..scheduler.chance.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..scheduler.chance` Module -============================================================================== -.. automodule:: nova..scheduler.chance - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..scheduler.driver.txt b/doc/build/html/_sources/api/nova..scheduler.driver.txt deleted file mode 100644 index 793ed9c7b..000000000 --- a/doc/build/html/_sources/api/nova..scheduler.driver.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..scheduler.driver` Module -============================================================================== -.. automodule:: nova..scheduler.driver - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..scheduler.manager.txt b/doc/build/html/_sources/api/nova..scheduler.manager.txt deleted file mode 100644 index d0fc7c423..000000000 --- a/doc/build/html/_sources/api/nova..scheduler.manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..scheduler.manager` Module -============================================================================== -.. automodule:: nova..scheduler.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..scheduler.simple.txt b/doc/build/html/_sources/api/nova..scheduler.simple.txt deleted file mode 100644 index dacc2cf30..000000000 --- a/doc/build/html/_sources/api/nova..scheduler.simple.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..scheduler.simple` Module -============================================================================== -.. automodule:: nova..scheduler.simple - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..server.txt b/doc/build/html/_sources/api/nova..server.txt deleted file mode 100644 index 7cb2cfa54..000000000 --- a/doc/build/html/_sources/api/nova..server.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..server` Module -============================================================================== -.. automodule:: nova..server - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..service.txt b/doc/build/html/_sources/api/nova..service.txt deleted file mode 100644 index 2d2dfcf2e..000000000 --- a/doc/build/html/_sources/api/nova..service.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..service` Module -============================================================================== -.. automodule:: nova..service - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..test.txt b/doc/build/html/_sources/api/nova..test.txt deleted file mode 100644 index a6bdb6f1f..000000000 --- a/doc/build/html/_sources/api/nova..test.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..test` Module -============================================================================== -.. automodule:: nova..test - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.access_unittest.txt b/doc/build/html/_sources/api/nova..tests.access_unittest.txt deleted file mode 100644 index 89554e430..000000000 --- a/doc/build/html/_sources/api/nova..tests.access_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.access_unittest` Module -============================================================================== -.. automodule:: nova..tests.access_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api.fakes.txt b/doc/build/html/_sources/api/nova..tests.api.fakes.txt deleted file mode 100644 index 5728b18f3..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.fakes.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api.fakes` Module -============================================================================== -.. automodule:: nova..tests.api.fakes - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api.openstack.fakes.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.fakes.txt deleted file mode 100644 index 4a9ff5938..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.fakes.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api.openstack.fakes` Module -============================================================================== -.. automodule:: nova..tests.api.openstack.fakes - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api.openstack.test_api.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_api.txt deleted file mode 100644 index 68106d221..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_api.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_auth.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_auth.txt deleted file mode 100644 index 9f0011669..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_auth.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_faults.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_faults.txt deleted file mode 100644 index b839ae8a3..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_faults.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_flavors.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_flavors.txt deleted file mode 100644 index 471fac56e..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_flavors.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_images.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_images.txt deleted file mode 100644 index 57ae93c8c..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_images.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_ratelimiting.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_ratelimiting.txt deleted file mode 100644 index 9a857f795..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_ratelimiting.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_servers.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_servers.txt deleted file mode 100644 index ea602e6ab..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_servers.txt +++ /dev/null @@ -1,6 +0,0 @@ -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/build/html/_sources/api/nova..tests.api.openstack.test_sharedipgroups.txt b/doc/build/html/_sources/api/nova..tests.api.openstack.test_sharedipgroups.txt deleted file mode 100644 index 1fad49147..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.openstack.test_sharedipgroups.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api.openstack.test_sharedipgroups` Module -============================================================================== -.. automodule:: nova..tests.api.openstack.test_sharedipgroups - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api.test_wsgi.txt b/doc/build/html/_sources/api/nova..tests.api.test_wsgi.txt deleted file mode 100644 index 8e79caa4d..000000000 --- a/doc/build/html/_sources/api/nova..tests.api.test_wsgi.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api.test_wsgi` Module -============================================================================== -.. automodule:: nova..tests.api.test_wsgi - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api_integration.txt b/doc/build/html/_sources/api/nova..tests.api_integration.txt deleted file mode 100644 index fd217acf7..000000000 --- a/doc/build/html/_sources/api/nova..tests.api_integration.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api_integration` Module -============================================================================== -.. automodule:: nova..tests.api_integration - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.api_unittest.txt b/doc/build/html/_sources/api/nova..tests.api_unittest.txt deleted file mode 100644 index 44a65d48c..000000000 --- a/doc/build/html/_sources/api/nova..tests.api_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.api_unittest` Module -============================================================================== -.. automodule:: nova..tests.api_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.auth_unittest.txt b/doc/build/html/_sources/api/nova..tests.auth_unittest.txt deleted file mode 100644 index 5805dcf38..000000000 --- a/doc/build/html/_sources/api/nova..tests.auth_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.auth_unittest` Module -============================================================================== -.. automodule:: nova..tests.auth_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.cloud_unittest.txt b/doc/build/html/_sources/api/nova..tests.cloud_unittest.txt deleted file mode 100644 index d2ca3b013..000000000 --- a/doc/build/html/_sources/api/nova..tests.cloud_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.cloud_unittest` Module -============================================================================== -.. automodule:: nova..tests.cloud_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.compute_unittest.txt b/doc/build/html/_sources/api/nova..tests.compute_unittest.txt deleted file mode 100644 index 6a30bf744..000000000 --- a/doc/build/html/_sources/api/nova..tests.compute_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.compute_unittest` Module -============================================================================== -.. automodule:: nova..tests.compute_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.declare_flags.txt b/doc/build/html/_sources/api/nova..tests.declare_flags.txt deleted file mode 100644 index 524e72e91..000000000 --- a/doc/build/html/_sources/api/nova..tests.declare_flags.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.declare_flags` Module -============================================================================== -.. automodule:: nova..tests.declare_flags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.fake_flags.txt b/doc/build/html/_sources/api/nova..tests.fake_flags.txt deleted file mode 100644 index a8dc3df36..000000000 --- a/doc/build/html/_sources/api/nova..tests.fake_flags.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.fake_flags` Module -============================================================================== -.. automodule:: nova..tests.fake_flags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.flags_unittest.txt b/doc/build/html/_sources/api/nova..tests.flags_unittest.txt deleted file mode 100644 index 61087e683..000000000 --- a/doc/build/html/_sources/api/nova..tests.flags_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.flags_unittest` Module -============================================================================== -.. automodule:: nova..tests.flags_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.network_unittest.txt b/doc/build/html/_sources/api/nova..tests.network_unittest.txt deleted file mode 100644 index df057d813..000000000 --- a/doc/build/html/_sources/api/nova..tests.network_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.network_unittest` Module -============================================================================== -.. automodule:: nova..tests.network_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.objectstore_unittest.txt b/doc/build/html/_sources/api/nova..tests.objectstore_unittest.txt deleted file mode 100644 index 0ae252f04..000000000 --- a/doc/build/html/_sources/api/nova..tests.objectstore_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.objectstore_unittest` Module -============================================================================== -.. automodule:: nova..tests.objectstore_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.process_unittest.txt b/doc/build/html/_sources/api/nova..tests.process_unittest.txt deleted file mode 100644 index 30d1e129c..000000000 --- a/doc/build/html/_sources/api/nova..tests.process_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.process_unittest` Module -============================================================================== -.. automodule:: nova..tests.process_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.quota_unittest.txt b/doc/build/html/_sources/api/nova..tests.quota_unittest.txt deleted file mode 100644 index 6ab813104..000000000 --- a/doc/build/html/_sources/api/nova..tests.quota_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.quota_unittest` Module -============================================================================== -.. automodule:: nova..tests.quota_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.real_flags.txt b/doc/build/html/_sources/api/nova..tests.real_flags.txt deleted file mode 100644 index e9c0d1abd..000000000 --- a/doc/build/html/_sources/api/nova..tests.real_flags.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.real_flags` Module -============================================================================== -.. automodule:: nova..tests.real_flags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.rpc_unittest.txt b/doc/build/html/_sources/api/nova..tests.rpc_unittest.txt deleted file mode 100644 index e6c7ceb2e..000000000 --- a/doc/build/html/_sources/api/nova..tests.rpc_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.rpc_unittest` Module -============================================================================== -.. automodule:: nova..tests.rpc_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.runtime_flags.txt b/doc/build/html/_sources/api/nova..tests.runtime_flags.txt deleted file mode 100644 index 984e21199..000000000 --- a/doc/build/html/_sources/api/nova..tests.runtime_flags.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.runtime_flags` Module -============================================================================== -.. automodule:: nova..tests.runtime_flags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.scheduler_unittest.txt b/doc/build/html/_sources/api/nova..tests.scheduler_unittest.txt deleted file mode 100644 index ae3a06616..000000000 --- a/doc/build/html/_sources/api/nova..tests.scheduler_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.scheduler_unittest` Module -============================================================================== -.. automodule:: nova..tests.scheduler_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.service_unittest.txt b/doc/build/html/_sources/api/nova..tests.service_unittest.txt deleted file mode 100644 index c7c746d17..000000000 --- a/doc/build/html/_sources/api/nova..tests.service_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.service_unittest` Module -============================================================================== -.. automodule:: nova..tests.service_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.twistd_unittest.txt b/doc/build/html/_sources/api/nova..tests.twistd_unittest.txt deleted file mode 100644 index ce88202e1..000000000 --- a/doc/build/html/_sources/api/nova..tests.twistd_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.twistd_unittest` Module -============================================================================== -.. automodule:: nova..tests.twistd_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.validator_unittest.txt b/doc/build/html/_sources/api/nova..tests.validator_unittest.txt deleted file mode 100644 index 980284327..000000000 --- a/doc/build/html/_sources/api/nova..tests.validator_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.validator_unittest` Module -============================================================================== -.. automodule:: nova..tests.validator_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.virt_unittest.txt b/doc/build/html/_sources/api/nova..tests.virt_unittest.txt deleted file mode 100644 index 2189be41e..000000000 --- a/doc/build/html/_sources/api/nova..tests.virt_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.virt_unittest` Module -============================================================================== -.. automodule:: nova..tests.virt_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..tests.volume_unittest.txt b/doc/build/html/_sources/api/nova..tests.volume_unittest.txt deleted file mode 100644 index 791e192f5..000000000 --- a/doc/build/html/_sources/api/nova..tests.volume_unittest.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..tests.volume_unittest` Module -============================================================================== -.. automodule:: nova..tests.volume_unittest - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..twistd.txt b/doc/build/html/_sources/api/nova..twistd.txt deleted file mode 100644 index d4145396d..000000000 --- a/doc/build/html/_sources/api/nova..twistd.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..twistd` Module -============================================================================== -.. automodule:: nova..twistd - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..utils.txt b/doc/build/html/_sources/api/nova..utils.txt deleted file mode 100644 index 1131d1080..000000000 --- a/doc/build/html/_sources/api/nova..utils.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..utils` Module -============================================================================== -.. automodule:: nova..utils - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..validate.txt b/doc/build/html/_sources/api/nova..validate.txt deleted file mode 100644 index 1d142f103..000000000 --- a/doc/build/html/_sources/api/nova..validate.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..validate` Module -============================================================================== -.. automodule:: nova..validate - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..virt.connection.txt b/doc/build/html/_sources/api/nova..virt.connection.txt deleted file mode 100644 index caf766765..000000000 --- a/doc/build/html/_sources/api/nova..virt.connection.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..virt.connection` Module -============================================================================== -.. automodule:: nova..virt.connection - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..virt.fake.txt b/doc/build/html/_sources/api/nova..virt.fake.txt deleted file mode 100644 index 06ecdbf7d..000000000 --- a/doc/build/html/_sources/api/nova..virt.fake.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..virt.fake` Module -============================================================================== -.. automodule:: nova..virt.fake - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..virt.images.txt b/doc/build/html/_sources/api/nova..virt.images.txt deleted file mode 100644 index 4fdeb7af8..000000000 --- a/doc/build/html/_sources/api/nova..virt.images.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..virt.images` Module -============================================================================== -.. automodule:: nova..virt.images - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..virt.libvirt_conn.txt b/doc/build/html/_sources/api/nova..virt.libvirt_conn.txt deleted file mode 100644 index 7fb8aed5f..000000000 --- a/doc/build/html/_sources/api/nova..virt.libvirt_conn.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..virt.libvirt_conn` Module -============================================================================== -.. automodule:: nova..virt.libvirt_conn - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..virt.xenapi.txt b/doc/build/html/_sources/api/nova..virt.xenapi.txt deleted file mode 100644 index 2e396bf06..000000000 --- a/doc/build/html/_sources/api/nova..virt.xenapi.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..virt.xenapi` Module -============================================================================== -.. automodule:: nova..virt.xenapi - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..volume.driver.txt b/doc/build/html/_sources/api/nova..volume.driver.txt deleted file mode 100644 index 51f5c0729..000000000 --- a/doc/build/html/_sources/api/nova..volume.driver.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..volume.driver` Module -============================================================================== -.. automodule:: nova..volume.driver - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..volume.manager.txt b/doc/build/html/_sources/api/nova..volume.manager.txt deleted file mode 100644 index 91a192a8f..000000000 --- a/doc/build/html/_sources/api/nova..volume.manager.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..volume.manager` Module -============================================================================== -.. automodule:: nova..volume.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/api/nova..wsgi.txt b/doc/build/html/_sources/api/nova..wsgi.txt deleted file mode 100644 index 0bff1c332..000000000 --- a/doc/build/html/_sources/api/nova..wsgi.txt +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`nova..wsgi` Module -============================================================================== -.. automodule:: nova..wsgi - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/cloud101.txt b/doc/build/html/_sources/cloud101.txt deleted file mode 100644 index 87db5af1e..000000000 --- a/doc/build/html/_sources/cloud101.txt +++ /dev/null @@ -1,85 +0,0 @@ -.. - Copyright 2010 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. - -Cloud Computing 101 -=================== - -Originally the term cloud came from a diagram that contained a cloud-like shape to contain the -services that afforded computing power that was harnessed to get work done. Much like the electrical -power we receive each day, cloud computing is a model for enabling access to a shared collection of -computing resources - networks for transfer, servers for storage, and applications or services for -completing work. - -Why Cloud? ----------- -Like humans supposedly only use 10% of their brain power, many of the computers in place in data -centers today are underutilized in computing power and networking bandwidth. People also may need a large -amount of computing capacity to complete a computation for example, but don't need the computing power -once the computation is done. You want cloud computing when you want a service that's available -on-demand with the flexibility to bring it up or down through automation or with little intervention. - -Attributes of a Cloud ---------------------- -On-demand self-service - A cloud should enable self-service, so that users can provision servers and networks with little -human intervention. - -Network access - Any computing capabilities are available over the network and you can use many different -devices through standardized mechanisms. - -Resource pooling - Clouds can serve multiple consumers according to demand. - -Elasticity - Provisioning is rapid and scales out or in based on need. - -Metered or measured service - Just like utilities that are paid for by the hour, clouds should optimize -resource use and control it for the level of service or type of servers such as storage or processing. - -Types of Cloud Services ------------------------ - -Cloud computing offers different service models depending on the capabilities a consumer may require. -The US-based National Institute of Standards and Technology offers definitions for cloud computing -and the service models that are emerging. - -SaaS - Software as a Service -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Provides the consumer the ability to use the software in a cloud environment, such as web-based email for example. - -PaaS - Platform as a Service -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Provides the consumer the ability to deploy applications through a programming language or tools supported -by the cloud platform provider. An example of platform as a service is an Eclipse/Java programming -platform provided with no downloads required. - -IaaS - Infrastructure as a Service -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Provides infrastructure such as computer instances, network connections, and storage so that people -can run any software or operating system. - -.. todo:: Use definitions from http://csrc.nist.gov/groups/SNS/cloud-computing/ and attribute NIST - -Types of Cloud Deployments --------------------------- -.. todo:: describe public/private/hybrid/etc - - -Work in the Clouds ------------------- - -.. todo:: What people have done/sample projects diff --git a/doc/build/html/_sources/code.txt b/doc/build/html/_sources/code.txt deleted file mode 100644 index 6b8d5661f..000000000 --- a/doc/build/html/_sources/code.txt +++ /dev/null @@ -1,96 +0,0 @@ -Generating source/api/nova..adminclient.rst -Generating source/api/nova..api.cloud.rst -Generating source/api/nova..api.ec2.admin.rst -Generating source/api/nova..api.ec2.apirequest.rst -Generating source/api/nova..api.ec2.cloud.rst -Generating source/api/nova..api.ec2.images.rst -Generating source/api/nova..api.ec2.metadatarequesthandler.rst -Generating source/api/nova..api.openstack.auth.rst -Generating source/api/nova..api.openstack.backup_schedules.rst -Generating source/api/nova..api.openstack.faults.rst -Generating source/api/nova..api.openstack.flavors.rst -Generating source/api/nova..api.openstack.images.rst -Generating source/api/nova..api.openstack.servers.rst -Generating source/api/nova..api.openstack.sharedipgroups.rst -Generating source/api/nova..auth.dbdriver.rst -Generating source/api/nova..auth.fakeldap.rst -Generating source/api/nova..auth.ldapdriver.rst -Generating source/api/nova..auth.manager.rst -Generating source/api/nova..auth.signer.rst -Generating source/api/nova..cloudpipe.pipelib.rst -Generating source/api/nova..compute.disk.rst -Generating source/api/nova..compute.instance_types.rst -Generating source/api/nova..compute.manager.rst -Generating source/api/nova..compute.monitor.rst -Generating source/api/nova..compute.power_state.rst -Generating source/api/nova..context.rst -Generating source/api/nova..crypto.rst -Generating source/api/nova..db.api.rst -Generating source/api/nova..db.sqlalchemy.api.rst -Generating source/api/nova..db.sqlalchemy.models.rst -Generating source/api/nova..db.sqlalchemy.session.rst -Generating source/api/nova..exception.rst -Generating source/api/nova..fakerabbit.rst -Generating source/api/nova..flags.rst -Generating source/api/nova..image.service.rst -Generating source/api/nova..manager.rst -Generating source/api/nova..network.linux_net.rst -Generating source/api/nova..network.manager.rst -Generating source/api/nova..objectstore.bucket.rst -Generating source/api/nova..objectstore.handler.rst -Generating source/api/nova..objectstore.image.rst -Generating source/api/nova..objectstore.stored.rst -Generating source/api/nova..process.rst -Generating source/api/nova..quota.rst -Generating source/api/nova..rpc.rst -Generating source/api/nova..scheduler.chance.rst -Generating source/api/nova..scheduler.driver.rst -Generating source/api/nova..scheduler.manager.rst -Generating source/api/nova..scheduler.simple.rst -Generating source/api/nova..server.rst -Generating source/api/nova..service.rst -Generating source/api/nova..test.rst -Generating source/api/nova..tests.access_unittest.rst -Generating source/api/nova..tests.api.fakes.rst -Generating source/api/nova..tests.api.openstack.fakes.rst -Generating source/api/nova..tests.api.openstack.test_api.rst -Generating source/api/nova..tests.api.openstack.test_auth.rst -Generating source/api/nova..tests.api.openstack.test_faults.rst -Generating source/api/nova..tests.api.openstack.test_flavors.rst -Generating source/api/nova..tests.api.openstack.test_images.rst -Generating source/api/nova..tests.api.openstack.test_ratelimiting.rst -Generating source/api/nova..tests.api.openstack.test_servers.rst -Generating source/api/nova..tests.api.openstack.test_sharedipgroups.rst -Generating source/api/nova..tests.api.test_wsgi.rst -Generating source/api/nova..tests.api_integration.rst -Generating source/api/nova..tests.api_unittest.rst -Generating source/api/nova..tests.auth_unittest.rst -Generating source/api/nova..tests.cloud_unittest.rst -Generating source/api/nova..tests.compute_unittest.rst -Generating source/api/nova..tests.declare_flags.rst -Generating source/api/nova..tests.fake_flags.rst -Generating source/api/nova..tests.flags_unittest.rst -Generating source/api/nova..tests.network_unittest.rst -Generating source/api/nova..tests.objectstore_unittest.rst -Generating source/api/nova..tests.process_unittest.rst -Generating source/api/nova..tests.quota_unittest.rst -Generating source/api/nova..tests.real_flags.rst -Generating source/api/nova..tests.rpc_unittest.rst -Generating source/api/nova..tests.runtime_flags.rst -Generating source/api/nova..tests.scheduler_unittest.rst -Generating source/api/nova..tests.service_unittest.rst -Generating source/api/nova..tests.twistd_unittest.rst -Generating source/api/nova..tests.validator_unittest.rst -Generating source/api/nova..tests.virt_unittest.rst -Generating source/api/nova..tests.volume_unittest.rst -Generating source/api/nova..twistd.rst -Generating source/api/nova..utils.rst -Generating source/api/nova..validate.rst -Generating source/api/nova..virt.connection.rst -Generating source/api/nova..virt.fake.rst -Generating source/api/nova..virt.images.rst -Generating source/api/nova..virt.libvirt_conn.rst -Generating source/api/nova..virt.xenapi.rst -Generating source/api/nova..volume.driver.rst -Generating source/api/nova..volume.manager.rst -Generating source/api/nova..wsgi.rst diff --git a/doc/build/html/_sources/community.txt b/doc/build/html/_sources/community.txt deleted file mode 100644 index bfb93414c..000000000 --- a/doc/build/html/_sources/community.txt +++ /dev/null @@ -1,84 +0,0 @@ -.. - Copyright 2010 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. - -Getting Involved -================ - -The Nova community 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. - -How to Join the OpenStack Community ------------------------------------ - -Our community welcomes all people interested in open source cloud computing, and there are no formal -membership requirements. The best way to join the community is to talk with others online or at a meetup -and offer contributions through Launchpad, the wiki, or blogs. We welcome all types of contributions, -from blueprint designs to documentation to testing to deployment scripts. - -Contributing Code ------------------ - -To contribute code, sign up for a Launchpad account and sign a contributor license agreement, -available on the `OpenStack Wiki `_. Once the CLA is signed you -can contribute code through the Bazaar version control system which is related to your Launchpad account. - -#openstack on Freenode IRC Network ----------------------------------- - -There is a very active chat channel at ``_. This -is usually the best place to ask questions and find your way around. IRC stands for Internet Relay -Chat and it is a way to chat online in real time. You can also ask a question and come back to the -log files to read the answer later. Logs for the #openstack IRC channel are stored at -``_. - -OpenStack Wiki --------------- - -The wiki is a living source of knowledge. It is edited by the community, and -has collections of links and other sources of information. Typically the pages are a good place -to write drafts for specs or documentation, describe a blueprint, or collaborate with others. - -`OpenStack Wiki `_ - -Nova on Launchpad ------------------ - -Launchpad is a code hosting service that hosts the Nova source code. From -Launchpad you can report bugs, ask questions, and register blueprints (feature requests). - -* `Learn about how to use bzr with launchpad `_ -* `Launchpad Nova Page `_ - -OpenStack Blog --------------- - -The OpenStack blog includes a weekly newsletter that aggregates OpenStack news -from around the internet, as well as providing inside information on upcoming -events and posts from OpenStack contributors. - -`OpenStack Blog `_ - -See also: `Planet OpenStack `_, aggregating blogs -about OpenStack from around the internet into a single feed. If you'd like to contribute to this blog -aggregation with your blog posts, there are instructions for `adding your blog `_. - -Twitter -------- - -Because all the cool kids do it: `@openstack `_. Also follow the -`#openstack `_ tag for relevant tweets. diff --git a/doc/build/html/_sources/devref/api.txt b/doc/build/html/_sources/devref/api.txt deleted file mode 100644 index 14181529a..000000000 --- a/doc/build/html/_sources/devref/api.txt +++ /dev/null @@ -1,296 +0,0 @@ -.. - Copyright 2010 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. - -API Endpoint -============ - -Nova has a system for managing multiple APIs on different subdomains. -Currently there is support for the OpenStack API, as well as the Amazon EC2 -API. - -Common Components ------------------ - -The :mod:`nova.api` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.api.cloud` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.cloud - :noindex: - :members: - :undoc-members: - :show-inheritance: - -OpenStack API -------------- - -The :mod:`openstack` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`auth` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.auth - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`backup_schedules` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.backup_schedules - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`faults` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.faults - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`flavors` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.flavors - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.images - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`ratelimiting` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.ratelimiting - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`servers` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.servers - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`sharedipgroups` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: nova.api.openstack.sharedipgroups - :noindex: - :members: - :undoc-members: - :show-inheritance: - -EC2 API -------- - -The :mod:`nova.api.ec2` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2 - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`admin` Module -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.admin - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`apirequest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.apirequest - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud` Module -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.cloud - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`images` Module -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.images - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`metadatarequesthandler` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.ec2.metadatarequesthandler - :noindex: - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`api_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api_integration` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api_integration - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`cloud_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.cloud_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api.fakes` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.fakes - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`api.test_wsgi` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.test_wsgi - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_api` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_api - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_auth` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_auth - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_faults` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_faults - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_flavors` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_flavors - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_images` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_images - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_ratelimiting` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_ratelimiting - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_servers` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_servers - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`test_sharedipgroups` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.api.openstack.test_sharedipgroups - :noindex: - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/build/html/_sources/devref/architecture.txt b/doc/build/html/_sources/devref/architecture.txt deleted file mode 100644 index 1e23e1361..000000000 --- a/doc/build/html/_sources/devref/architecture.txt +++ /dev/null @@ -1,52 +0,0 @@ -.. - Copyright 2010 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. - -Nova System Architecture -======================== - -Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received. - -Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system. - -Components ----------- - -Below you will find a helpful explanation of the different components. - -:: - - /- ( LDAP ) - [ Auth Manager ] --- - | \- ( DB ) - | - | [ scheduler ] - [ volume ] - ( ATAoE/iSCSI ) - | / - [ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan ) - | \ - < HTTP > [ scheduler ] - [ compute ] - ( libvirt/xen ) - | | - [ objectstore ] < - retrieves images - -* DB: sql database for data storage. Used by all components (LINKS NOT SHOWN) -* Web Dashboard: potential external component that talks to the api -* api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore) -* Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system. -* objectstore: twisted http server that replicates s3 api and allows storage and retrieval of images -* scheduler: decides which host gets each vm and volume -* volume: manages dynamically attachable block devices. -* network: manages ip forwarding, bridges, and vlans -* compute: manages communication with hypervisor and virtual machines. diff --git a/doc/build/html/_sources/devref/auth.txt b/doc/build/html/_sources/devref/auth.txt deleted file mode 100644 index c3af3f945..000000000 --- a/doc/build/html/_sources/devref/auth.txt +++ /dev/null @@ -1,276 +0,0 @@ -.. - Copyright 2010 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. - -.. _auth: - -Authentication and Authorization -================================ - -The :mod:`nova.quota` Module ----------------------------- - -.. automodule:: nova.quota - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.auth.signer` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.signer - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Auth Manager ------------- - -The :mod:`nova.auth.manager` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.auth.ldapdriver` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.ldapdriver - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.auth.dbdriver` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.auth.dbdriver - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - - -The :mod:`auth_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.auth_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`access_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.access_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`quota_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.quota_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Legacy Docs ------------ - -Nova provides RBAC (Role-based access control) of the AWS-type APIs. We define the following roles: - -Roles-Based Access Control of AWS-style APIs using SAML Assertions -“Achieving FIPS 199 Moderate certification of a hybrid cloud environment using CloudAudit and declarative C.I.A. classifications” - - -Introduction ------------- - -We will investigate one method for integrating an AWS-style API with US eAuthentication-compatible federated authentication systems, to achieve access controls and limits based on traditional operational roles. -Additionally, we will look at how combining this approach, with an implementation of the CloudAudit APIs, will allow us to achieve a certification under FIPS 199 Moderate classification for a hybrid cloud environment. - - -Relationship of US eAuth to RBAC --------------------------------- - -Typical implementations of US eAuth authentication systems are structured as follows:: - - [ MS Active Directory or other federated LDAP user store ] - --> backends to… - [ SUN Identity Manager or other SAML Policy Controller ] - --> maps URLs to groups… - [ Apache Policy Agent in front of eAuth-secured Web Application ] - -In more ideal implementations, the remainder of the application-specific account information is stored either in extended schema on the LDAP server itself, via the use of a translucent LDAP proxy, or in an independent datastore keyed off of the UID provided via SAML assertion. - -.. _auth_roles: - - -Roles ------ - -AWS API calls are traditionally secured via Access and Secret Keys, which are used to sign API calls, along with traditional timestamps to prevent replay attacks. The APIs can be logically grouped into sets that align with five typical roles: - -* Base User -* System Administrator/Developer (currently have the same permissions) -* Network Administrator -* Project Manager -* Cloud Administrator/IT-Security (currently have the same permissions) - -There is an additional, conceptual end-user that may or may not have API access: - -* (EXTERNAL) End-user / Third-party User - -Basic operations are available to any : - -* Describe Instances -* Describe Images -* Describe Volumes -* Describe Keypairs -* Create Keypair -* Delete Keypair -* Create, Upload, Delete: Buckets and Keys (Object Store) - -System Administrators/Developers/Project Manager: - -* Create, Attach, Delete Volume (Block Store) -* Launch, Reboot, Terminate Instance -* Register/Unregister Machine Image (project-wide) -* Request / Review CloudAudit Scans - -Project Manager: - -* Add and remove other users (currently no api) -* Set roles (currently no api) - -Network Administrator: - -* Change Machine Image properties (public / private) -* Change Firewall Rules, define Security Groups -* Allocate, Associate, Deassociate Public IP addresses - -Cloud Administrator/IT-Security: - -* All permissions - - -Enhancements ------------- - -* SAML Token passing -* REST interfaces -* SOAP interfaces - -Wrapping the SAML token into the API calls. -Then store the UID (fetched via backchannel) into the instance metadata, providing end-to-end auditability of ownership and responsibility, without PII. - - -CloudAudit APIs ---------------- - -* Request formats -* Response formats -* Stateless asynchronous queries - -CloudAudit queries may spawn long-running processes (similar to launching instances, etc.) They need to return a ReservationId in the same fashion, which can be returned in further queries for updates. -RBAC of CloudAudit API calls is critical, since detailed system information is a system vulnerability. - - -Type declarations ------------------ -* Data declarations – Volumes and Objects -* System declarations – Instances - -Existing API calls to launch instances specific a single, combined “type” flag. We propose to extend this with three additional type declarations, mapping to the “Confidentiality, Integrity, Availability” classifications of FIPS 199. An example API call would look like:: - - RunInstances type=m1.large number=1 secgroup=default key=mykey confidentiality=low integrity=low availability=low - -These additional parameters would also apply to creation of block storage volumes (along with the existing parameter of ‘size’), and creation of object storage ‘buckets’. (C.I.A. classifications on a bucket would be inherited by the keys within this bucket.) - - -Request Brokering ------------------ - -* Cloud Interop -* IMF Registration / PubSub -* Digital C&A - -Establishing declarative semantics for individual API calls will allow the cloud environment to seamlessly proxy these API calls to external, third-party vendors – when the requested CIA levels match. - -See related work within the Infrastructure 2.0 working group for more information on how the IMF Metadata specification could be utilized to manage registration of these vendors and their C&A credentials. - - -Dirty Cloud – Hybrid Data Centers ---------------------------------- - -* CloudAudit bridge interfaces -* Anything in the ARP table - -A hybrid cloud environment provides dedicated, potentially co-located physical hardware with a network interconnect to the project or users’ cloud virtual network. - -This interconnect is typically a bridged VPN connection. Any machines that can be bridged into a hybrid environment in this fashion (at Layer 2) must implement a minimum version of the CloudAudit spec, such that they can be queried to provide a complete picture of the IT-sec runtime environment. - -Network discovery protocols (ARP, CDP) can be applied in this case, and existing protocols (SNMP location data, DNS LOC records) overloaded to provide CloudAudit information. - - -The Details ------------ - -* Preliminary Roles Definitions -* Categorization of available API calls -* SAML assertion vocabulary - - -System limits -------------- - -The following limits need to be defined and enforced: - -* Total number of instances allowed (user / project) -* Total number of instances, per instance type (user / project) -* Total number of volumes (user / project) -* Maximum size of volume -* Cumulative size of all volumes -* Total use of object storage (GB) -* Total number of Public IPs - - -Further Challenges ------------------- - -* Prioritization of users / jobs in shared computing environments -* Incident response planning -* Limit launch of instances to specific security groups based on AMI -* Store AMIs in LDAP for added property control diff --git a/doc/build/html/_sources/devref/cloudpipe.txt b/doc/build/html/_sources/devref/cloudpipe.txt deleted file mode 100644 index 31bd85e81..000000000 --- a/doc/build/html/_sources/devref/cloudpipe.txt +++ /dev/null @@ -1,95 +0,0 @@ -.. - Copyright 2010 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. - - -.. _cloudpipe: - -Cloudpipe -- Per Project Vpns -============================= - -Cloudpipe is a method for connecting end users to their project insnances in vlan mode. - - -Overview --------- - -The support code for cloudpipe implements admin commands (via nova-manage) to automatically create a vm for a project that allows users to vpn into the private network of their project. Access to this vpn is provided through a public port on the network host for the project. This allows users to have free access to the virtual machines in their project without exposing those machines to the public internet. - - -Cloudpipe Image ---------------- - -The cloudpipe image is basically just a linux instance with openvpn installed. It needs a simple script to grab user data from the metadata server, b64 decode it into a zip file, and run the autorun.sh script from inside the zip. The autorun script will configure and run openvpn to run using the data from nova. - -It is also useful to have a cron script that will periodically redownload the metadata and copy the new crl. This will keep revoked users from connecting and will disconnect any users that are connected with revoked certificates when their connection is renegotiated (every hour). - - -Cloudpipe Launch ----------------- - -When you use nova-manage to launch a cloudpipe for a user, it goes through the following process: - -#. creates a keypair called -vpn and saves it in the keys directory -#. creates a security group -vpn and opens up 1194 and icmp -#. creates a cert and private key for the vpn instance and saves it in the CA/projects// directory -#. zips up the info and puts it b64 encoded as user data -#. launches an m1.tiny instance with the above settings using the flag-specified vpn image - - -Vpn Access ----------- - -In vlan networking mode, the second ip in each private network is reserved for the cloudpipe instance. This gives a consistent ip to the instance so that nova-network can create forwarding rules for access from the outside world. The network for each project is given a specific high-numbered port on the public ip of the network host. This port is automatically forwarded to 1194 on the vpn instance. - -If specific high numbered ports do not work for your users, you can always allocate and associate a public ip to the instance, and then change the vpn_public_ip and vpn_public_port in the database. This will be turned into a nova-manage command or a flag soon. - - -Certificates and Revocation ---------------------------- - -If the use_project_ca flag is set (required to for cloudpipes to work securely), then each project has its own ca. This ca is used to sign the certificate for the vpn, and is also passed to the user for bundling images. When a certificate is revoked using nova-manage, a new Certificate Revocation List (crl) is generated. As long as cloudpipe has an updated crl, it will block revoked users from connecting to the vpn. - - -The :mod:`nova.cloudpipe.pipelib` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.cloudpipe.pipelib - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.api.cloudpipe` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.api.cloudpipe - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.crypto` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.crypto - :noindex: - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/build/html/_sources/devref/compute.txt b/doc/build/html/_sources/devref/compute.txt deleted file mode 100644 index db9ef6f34..000000000 --- a/doc/build/html/_sources/devref/compute.txt +++ /dev/null @@ -1,153 +0,0 @@ -.. - Copyright 2010 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. - - -Virtualization -============== - - -Compute -------- - -Documentation for the compute manager and related files. For reading about -a specific virtualization backend, read Drivers_. - - -The :mod:`nova.compute.manager` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.virt.connection` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.connection - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.compute.disk` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.disk - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.virt.images` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.images - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.compute.instance_types` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.instance_types - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.compute.power_state` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.power_state - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Drivers -------- - - -The :mod:`nova.virt.libvirt_conn` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.libvirt_conn - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.virt.xenapi` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.xenapi - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.virt.fake` Driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.virt.fake - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Monitoring ----------- - -The :mod:`nova.compute.monitor` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.compute.monitor - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -The :mod:`compute_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.compute_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`virt_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.virt_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/devref/database.txt b/doc/build/html/_sources/devref/database.txt deleted file mode 100644 index 14559aa8c..000000000 --- a/doc/build/html/_sources/devref/database.txt +++ /dev/null @@ -1,63 +0,0 @@ -.. - Copyright 2010 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. - -The Database Layer -================== - -The :mod:`nova.db.api` Module ------------------------------ - -.. automodule:: nova.db.api - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The Sqlalchemy Driver ---------------------- - -The :mod:`nova.db.sqlalchemy.api` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.db.sqlalchemy.api - :noindex: - -The :mod:`nova.db.sqlalchemy.models` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.db.sqlalchemy.models - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.db.sqlalchemy.session` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.db.sqlalchemy.session - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -Tests are lacking for the db api layer and for the sqlalchemy driver. -Failures in the drivers would be dectected in other test cases, though. diff --git a/doc/build/html/_sources/devref/development.environment.txt b/doc/build/html/_sources/devref/development.environment.txt deleted file mode 100644 index 34104c964..000000000 --- a/doc/build/html/_sources/devref/development.environment.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. - Copyright 2010 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. - -Setting up a development environment -==================================== - -.. todo:: write this diff --git a/doc/build/html/_sources/devref/fakes.txt b/doc/build/html/_sources/devref/fakes.txt deleted file mode 100644 index 0ba5d6ef2..000000000 --- a/doc/build/html/_sources/devref/fakes.txt +++ /dev/null @@ -1,85 +0,0 @@ -.. - Copyright 2010 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. - -Fake Drivers -============ - -.. todo:: document general info about fakes - -When the real thing isn't available and you have some development to do these -fake implementations of various drivers let you get on with your day. - - -The :mod:`nova.virt.fake` Module --------------------------------- - -.. automodule:: nova.virt.fake - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.auth.fakeldap` Module ------------------------------------- - -.. automodule:: nova.auth.fakeldap - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.fakerabbit` Module ---------------------------------- - -.. automodule:: nova.fakerabbit - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :class:`nova.volume.driver.FakeAOEDriver` Class ---------------------------------------------------- - -.. autoclass:: nova.volume.driver.FakeAOEDriver - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :class:`nova.tests.service_unittest.FakeManager` Class ----------------------------------------------------------- - -.. autoclass:: nova.tests.service_unittest.FakeManager - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.tests.api.openstack.fakes` Module ------------------------------------------------- - -.. automodule:: nova.tests.api.openstack.fakes - :noindex: - :members: - :undoc-members: - :show-inheritance: - diff --git a/doc/build/html/_sources/devref/glance.txt b/doc/build/html/_sources/devref/glance.txt deleted file mode 100644 index d18f7fec6..000000000 --- a/doc/build/html/_sources/devref/glance.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. - Copyright 2010 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. - -Glance Integration - The Future of File Storage -=============================================== - -The :mod:`nova.image.service` Module ------------------------------------- - -.. automodule:: nova.image.service - :noindex: - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/devref/index.txt b/doc/build/html/_sources/devref/index.txt deleted file mode 100644 index 6a93e3e18..000000000 --- a/doc/build/html/_sources/devref/index.txt +++ /dev/null @@ -1,62 +0,0 @@ -.. - Copyright 2010 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. - -Developer Guide -=============== - -In this section you will find information on Nova's lower level programming APIs. - - -Programming HowTos and Tutorials --------------------------------- - -.. todo:: Add some programming howtos and tuts - -API Reference -------------- -.. toctree:: - :maxdepth: 3 - - ../api/autoindex - -Module Reference ----------------- -.. toctree:: - :maxdepth: 3 - - services - database - volume - compute - network - auth - api - scheduler - fakes - nova - cloudpipe - objectstore - glance - - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/doc/build/html/_sources/devref/modules.txt b/doc/build/html/_sources/devref/modules.txt deleted file mode 100644 index 31792b219..000000000 --- a/doc/build/html/_sources/devref/modules.txt +++ /dev/null @@ -1,19 +0,0 @@ -Module Reference -================ - -.. toctree:: - :maxdepth: 1 - - services - database - volume - compute - network - auth - api - scheduler - fakes - nova - cloudpipe - objectstore - glance diff --git a/doc/build/html/_sources/devref/network.txt b/doc/build/html/_sources/devref/network.txt deleted file mode 100644 index d9d091494..000000000 --- a/doc/build/html/_sources/devref/network.txt +++ /dev/null @@ -1,128 +0,0 @@ -.. - Copyright 2010 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. - -Networking -========== - -.. todo:: - - * document hardware specific commands (maybe in admin guide?) (todd) - * document a map between flags and managers/backends (todd) - - -The :mod:`nova.network.manager` Module --------------------------------------- - -.. automodule:: nova.network.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.network.linux_net` Driver ----------------------------------------- - -.. automodule:: nova.network.linux_net - :noindex: - :members: - :undoc-members: - :show-inheritance: - -Tests ------ - -The :mod:`network_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.network_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Legacy docs ------------ - -The nova networking components manage private networks, public IP addressing, VPN connectivity, and firewall rules. - -Components ----------- -There are several key components: - -* NetworkController (Manages address and vlan allocation) -* RoutingNode (NATs public IPs to private IPs, and enforces firewall rules) -* AddressingNode (runs DHCP services for private networks) -* BridgingNode (a subclass of the basic nova ComputeNode) -* TunnelingNode (provides VPN connectivity) - -Component Diagram ------------------ - -Overview:: - - (PUBLIC INTERNET) - | \ - / \ / \ - [RoutingNode] ... [RN] [TunnelingNode] ... [TN] - | \ / | | - | < AMQP > | | - [AddressingNode]-- (VLAN) ... | (VLAN)... (VLAN) --- [AddressingNode] - \ | \ / - / \ / \ / \ / \ - [BridgingNode] ... [BridgingNode] - - - [NetworkController] ... [NetworkController] - \ / - < AMQP > - | - / \ - [CloudController]...[CloudController] - -While this diagram may not make this entirely clear, nodes and controllers communicate exclusively across the message bus (AMQP, currently). - -State Model ------------ -Network State consists of the following facts: - -* VLAN assignment (to a project) -* Private Subnet assignment (to a security group) in a VLAN -* Private IP assignments (to running instances) -* Public IP allocations (to a project) -* Public IP associations (to a private IP / running instance) - -While copies of this state exist in many places (expressed in IPTables rule chains, DHCP hosts files, etc), the controllers rely only on the distributed "fact engine" for state, queried over RPC (currently AMQP). The NetworkController inserts most records into this datastore (allocating addresses, etc) - however, individual nodes update state e.g. when running instances crash. - -The Public Traffic Path ------------------------ - -Public Traffic:: - - (PUBLIC INTERNET) - | - <-- [RoutingNode] - | - [AddressingNode] --> | - ( VLAN ) - | <-- [BridgingNode] - | - - -The RoutingNode is currently implemented using IPTables rules, which implement both NATing of public IP addresses, and the appropriate firewall chains. We are also looking at using Netomata / Clusto to manage NATting within a switch or router, and/or to manage firewall rules within a hardware firewall appliance. - -Similarly, the AddressingNode currently manages running DNSMasq instances for DHCP services. However, we could run an internal DHCP server (using Scapy ala Clusto), or even switch to static addressing by inserting the private address into the disk image the same way we insert the SSH keys. (See compute for more details). diff --git a/doc/build/html/_sources/devref/nova.txt b/doc/build/html/_sources/devref/nova.txt deleted file mode 100644 index 53ce6f34f..000000000 --- a/doc/build/html/_sources/devref/nova.txt +++ /dev/null @@ -1,235 +0,0 @@ -.. - Copyright 2010 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. - -Common and Misc Libraries -========================= - -Libraries common throughout Nova or just ones that haven't been categorized -very well yet. - - -The :mod:`nova.adminclient` Module ----------------------------------- - -.. automodule:: nova.adminclient - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.context` Module ------------------------------- - -.. automodule:: nova.context - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.exception` Module --------------------------------- - -.. automodule:: nova.exception - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.flags` Module ----------------------------- - -.. automodule:: nova.flags - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.process` Module ------------------------------- - -.. automodule:: nova.process - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.rpc` Module --------------------------- - -.. automodule:: nova.rpc - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.server` Module ------------------------------ - -.. automodule:: nova.server - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.test` Module ---------------------------- - -.. automodule:: nova.test - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.twistd` Module ------------------------------ - -.. automodule:: nova.twistd - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.utils` Module ----------------------------- - -.. automodule:: nova.utils - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.validate` Module -------------------------------- - -.. automodule:: nova.validate - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.wsgi` Module ---------------------------- - -.. automodule:: nova.wsgi - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -The :mod:`declare_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.declare_flags - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`fake_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.fake_flags - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`flags_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.flags_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`process_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.process_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`real_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.real_flags - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`rpc_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.rpc_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`runtime_flags` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.runtime_flags - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`twistd_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.twistd_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`validator_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.validator_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/devref/objectstore.txt b/doc/build/html/_sources/devref/objectstore.txt deleted file mode 100644 index 3ccfc8566..000000000 --- a/doc/build/html/_sources/devref/objectstore.txt +++ /dev/null @@ -1,71 +0,0 @@ -.. - Copyright 2010 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. - -Objectstore - File Storage Service -================================== - -The :mod:`nova.objectstore.handler` Module ------------------------------------------- - -.. automodule:: nova.objectstore.handler - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.objectstore.bucket` Module ------------------------------------------ - -.. automodule:: nova.objectstore.bucket - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.objectstore.stored` Module ------------------------------------------ - -.. automodule:: nova.objectstore.stored - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.objecstore.image` Module ----------------------------------------- - -.. automodule:: nova.objectstore.image - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -The :mod:`objectstore_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.objectstore_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/devref/scheduler.txt b/doc/build/html/_sources/devref/scheduler.txt deleted file mode 100644 index ab74b6ba8..000000000 --- a/doc/build/html/_sources/devref/scheduler.txt +++ /dev/null @@ -1,71 +0,0 @@ -.. - Copyright 2010 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. - -Scheduler -========= - -The :mod:`nova.scheduler.manager` Module ----------------------------------------- - -.. automodule:: nova.scheduler.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.scheduler.driver` Module ---------------------------------------- - -.. automodule:: nova.scheduler.driver - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.scheduler.chance` Driver ---------------------------------------- - -.. automodule:: nova.scheduler.chance - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.scheduler.simple` Driver ---------------------------------------- - -.. automodule:: nova.scheduler.simple - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Tests ------ - -The :mod:`scheduler_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.scheduler_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/build/html/_sources/devref/services.txt b/doc/build/html/_sources/devref/services.txt deleted file mode 100644 index f5bba5c12..000000000 --- a/doc/build/html/_sources/devref/services.txt +++ /dev/null @@ -1,55 +0,0 @@ -.. - Copyright 2010 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. - -.. _service_manager_driver: - -Services, Managers and Drivers -============================== - -The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier. - -Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver. - - -The :mod:`nova.service` Module ------------------------------- - -.. automodule:: nova.service - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -The :mod:`nova.manager` Module ------------------------------- - -.. automodule:: nova.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - - -Implementation-Specific Drivers -------------------------------- - -A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver. - -Drivers should minimize touching the database, although it is currently acceptable for implementation specific data. This may be reconsidered at some point. - -It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement. diff --git a/doc/build/html/_sources/devref/volume.txt b/doc/build/html/_sources/devref/volume.txt deleted file mode 100644 index 54a2d4f8b..000000000 --- a/doc/build/html/_sources/devref/volume.txt +++ /dev/null @@ -1,66 +0,0 @@ -.. - Copyright 2010 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. - -Storage Volumes, Disks -====================== - -.. todo:: rework after iSCSI merge (see 'Old Docs') (todd or vish) - - -The :mod:`nova.volume.manager` Module -------------------------------------- - -.. automodule:: nova.volume.manager - :noindex: - :members: - :undoc-members: - :show-inheritance: - -The :mod:`nova.volume.driver` Module -------------------------------------- - -.. automodule:: nova.volume.driver - :noindex: - :members: - :undoc-members: - :show-inheritance: - :exclude-members: FakeAOEDriver - -Tests ------ - -The :mod:`volume_unittest` Module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: nova.tests.volume_unittest - :noindex: - :members: - :undoc-members: - :show-inheritance: - -Old Docs --------- - -Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances. - -Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs. - -AoE exports are numbered according to a "shelf and blade" syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.) - -The underlying volumes are LVM logical volumes, created on demand within a single large volume group. - - diff --git a/doc/build/html/_sources/index.txt b/doc/build/html/_sources/index.txt deleted file mode 100644 index 9b2c8e1f8..000000000 --- a/doc/build/html/_sources/index.txt +++ /dev/null @@ -1,88 +0,0 @@ -.. - Copyright 2010 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. - -Welcome to Nova's documentation! -================================ - -Nova is a cloud computing fabric controller, the main part of an IaaS system. -Individuals and organizations can use Nova to host and manage their own cloud -computing systems. Nova originated as a project out of NASA Ames Research Laboratory. - -Nova is written with the following design guidelines in mind: - -* **Component based architecture**: Quickly add new behaviors -* **Highly available**: Scale to very serious workloads -* **Fault-Tollerant**: Isloated processes avoid cascading failures -* **Recoverable**: Failures should be easy to diagnose, debug, and rectify -* **Open Standards**: Be a reference implementation for a community-driven api -* **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. - -.. _`OpenStack wiki`: http://wiki.openstack.org - - -Key Concepts -============ -.. toctree:: - :maxdepth: 1 - - cloud101 - nova.concepts - swift.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 - -.. todo:: add swiftadmin - -Developer Docs -============== - -.. toctree:: - :maxdepth: 1 - - quickstart - devref/index - community - -Outstanding Documentation Tasks -=============================== - -.. todolist:: - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/doc/build/html/_sources/installer.txt b/doc/build/html/_sources/installer.txt deleted file mode 100644 index b67e0e4f9..000000000 --- a/doc/build/html/_sources/installer.txt +++ /dev/null @@ -1,12 +0,0 @@ -Live CD -======= - -* 3 Images -* Once you start bundling images, must be able to point to source code -* Could make part of build - -* sudo nova-manage user admin newuser -* sudo nova-manage project create demo newuser -* sudo nova-manage project zipfile demo -* get images -* Web browser diff --git a/doc/build/html/_sources/livecd.txt b/doc/build/html/_sources/livecd.txt deleted file mode 100644 index 82cf4658a..000000000 --- a/doc/build/html/_sources/livecd.txt +++ /dev/null @@ -1,2 +0,0 @@ -Installing the Live CD -====================== diff --git a/doc/build/html/_sources/man/novamanage.txt b/doc/build/html/_sources/man/novamanage.txt deleted file mode 100644 index 0cb6c7c90..000000000 --- a/doc/build/html/_sources/man/novamanage.txt +++ /dev/null @@ -1,189 +0,0 @@ -=========== -nova-manage -=========== - ------------------------------------------------------- -control and manage cloud computer instances and images ------------------------------------------------------- - -:Author: nova@lists.launchpad.net -:Date: 2010-11-16 -:Copyright: OpenStack LLC -:Version: 0.1 -:Manual section: 1 -:Manual group: cloud computing - -SYNOPSIS -======== - - nova-manage [] - -DESCRIPTION -=========== - -nova-manage controls cloud computing instances by managing nova users, nova projects, nova roles, shell selection, vpn connections, and floating IP address configuration. More information about OpenStack Nova is at http://nova.openstack.org. - -OPTIONS -======= - -The standard pattern for executing a nova-manage command is: -``nova-manage []`` - -For example, to obtain a list of all projects: -``nova-manage project list`` - -Run without arguments to see a list of available command categories: -``nova-manage`` - -Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. - -You can also run with a category argument such as user to see a list of all commands in that category: -``nova-manage user`` - -These sections describe the available categories and arguments for nova-manage. - -Nova User -~~~~~~~~~ - -``nova-manage user admin `` - - Create an admin user with the name . - -``nova-manage user create `` - - Create a normal user with the name . - -``nova-manage user delete `` - - Delete the user with the name . - -``nova-manage user exports `` - - Outputs a list of access key and secret keys for user to the screen - -``nova-manage user list`` - - Outputs a list of all the user names to the screen. - -``nova-manage user modify `` - - Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. - -Nova Project -~~~~~~~~~~~~ - -``nova-manage project add `` - - Add a nova project with the name to the database. - -``nova-manage project create `` - - Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). - -``nova-manage project delete `` - - Delete a nova project with the name . - -``nova-manage project environment `` - - Exports environment variables for the named project to a file named novarc. - -``nova-manage project list`` - - Outputs a list of all the projects to the screen. - -``nova-manage project quota `` - - Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. - -``nova-manage project remove `` - - Deletes the project with the name . - -``nova-manage project zipfile`` - - Compresses all related files for a created project into a zip file nova.zip. - -Nova Role -~~~~~~~~~ - -nova-manage role [] -``nova-manage role add <(optional) projectname>`` - - Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. - -``nova-manage role has `` - Checks the user or project and responds with True if the user has a global role with a particular project. - -``nova-manage role remove `` - Remove the indicated role from the user. - -Nova Shell -~~~~~~~~~~ - -``nova-manage shell bpython`` - - Starts a new bpython shell. - -``nova-manage shell ipython`` - - Starts a new ipython shell. - -``nova-manage shell python`` - - Starts a new python shell. - -``nova-manage shell run`` - - Starts a new shell using python. - -``nova-manage shell script `` - - Runs the named script from the specified path with flags set. - -Nova VPN -~~~~~~~~ - -``nova-manage vpn list`` - - Displays a list of projects, their IP prot numbers, and what state they're in. - -``nova-manage vpn run `` - - Starts the VPN for the named project. - -``nova-manage vpn spawn`` - - Runs all VPNs. - -Nova Floating IPs -~~~~~~~~~~~~~~~~~ - -``nova-manage floating create `` - - Creates floating IP addresses for the named host by the given range. - floating delete Deletes floating IP addresses in the range given. - -``nova-manage floating list`` - - Displays a list of all floating IP addresses. - - -FILES -======== - -The nova-manage.conf file contains configuration information in the form of python-gflags. - -SEE ALSO -======== - -* `OpenStack Nova `__ -* `OpenStack Swift `__ - -BUGS -==== - -* Nova is sourced in Launchpad so you can view current bugs at `OpenStack Nova `__ - - - diff --git a/doc/build/html/_sources/nova.concepts.txt b/doc/build/html/_sources/nova.concepts.txt deleted file mode 100644 index ddf0f1b82..000000000 --- a/doc/build/html/_sources/nova.concepts.txt +++ /dev/null @@ -1,203 +0,0 @@ -.. - Copyright 2010 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. - - -Nova Concepts and Introduction -============================== - - -Introduction ------------- - -Nova is the software that controls your Infrastructure as as Service (IaaS) -cloud computing platform. It is similar in scope to Amazon EC2 and Rackspace -CloudServers. Nova does not include any virtualization software, rather it -defines drivers that interact with underlying virtualization mechanisms that -run on your host operating system, and exposes functionality over a web API. - -This document does not attempt to explain fundamental concepts of cloud -computing, IaaS, virtualization, or other related technologies. Instead, it -focuses on describing how Nova's implementation of those concepts is achieved. - -This page outlines concepts that you will need to understand as a user or -administrator of an OpenStack installation. Each section links to more more -detailed information in the :doc:`adminguide/index`, -but you'll probably want to read this section straight-through before tackling -the specifics presented in the administration guide. - - -Concept: Users and Projects ---------------------------- - -* access to images is limited by project -* access/secret are per user -* keypairs are per user -* quotas are per project - - -Concept: Virtualization ------------------------ - -* KVM -* UML -* XEN -* HyperV -* qemu - - -Concept: Instances ------------------- - -An 'instance' is a word for a virtual machine that runs inside the cloud. - -Concept: Storage ----------------- - -Volumes -~~~~~~~ - -A 'volume' is a detachable block storage device. You can think of it as a usb hard drive. It can only be attached to one instance at a time, so it does not work like a SAN. If you wish to expose the same volume to multiple instances, you will have to use an NFS or SAMBA share from an existing instance. - -Local Storage -~~~~~~~~~~~~~ - -Every instance larger than m1.tiny starts with some local storage (up to 160GB for m1.xlarge). This storage is currently the second partition on the root drive. - -Concept: Quotas ---------------- - -Nova supports per-project quotas. There are currently quotas for number of instances, total number of cores, number of volumes, total number of gigabytes, and number of floating ips. - - -Concept: RBAC -------------- - -Nova provides roles based access control (RBAC) for access to api commands. A user can have a number of different :ref:`roles `. Roles define which api_commands a user can perform. - -It is important to know that there are user-specific (sometimes called global) roles and project-specific roles. A user's actual permissions in a particular project are the INTERSECTION of his user-specific roles and is project-specific roles. - -For example: A user can access api commands allowed to the netadmin role (like allocate_address) only if he has the user-specific netadmin role AND the project-specific netadmin role. - -More information about RBAC can be found in the :ref:`auth`. - -Concept: API ------------- - -* EC2 -* OpenStack / Rackspace - - -Concept: Networking -------------------- - -Nova has a concept of Fixed Ips and Floating ips. Fixed ips are assigned to an instance on creation and stay the same until the instance is explicitly terminated. Floating ips are ip addresses that can be dynamically associated with an instance. This address can be disassociated and associated with another instance at any time. - -There are multiple strategies available for implementing fixed ips: - -Flat Mode -~~~~~~~~~ - -The simplest networking mode. Each instance receives a fixed ip from the pool. All instances are attached to the same bridge (br100) by default. The bridge must be configured manually. The networking configuration is injected into the instance before it is booted. Note that this currently only works on linux-style systems that keep networking configuration in /etc/network/interfaces. - -Flat DHCP Mode -~~~~~~~~~~~~~~ - -This is similar to the flat mode, in that all instances are attached to the same bridge. In this mode nova does a bit more configuration, it will attempt to bridge into an ethernet device (eth0 by default). It will also run dnsmasq as a dhcpserver listening on this bridge. Instances receive their fixed ips by doing a dhcpdiscover. - -VLAN DHCP Mode -~~~~~~~~~~~~~~ - -This is the default networking mode and supports the most features. For multiple machine installation, it requires a switch that supports host-managed vlan tagging. In this mode, nova will create a vlan and bridge for each project. The project gets a range of private ips that are only accessible from inside the vlan. In order for a user to access the instances in their project, a special vpn instance (code named :ref:`cloudpipe `) needs to be created. Nova generates a certificate and key for the user to access the vpn and starts the vpn automatically. More information on cloudpipe can be found :ref:`here `. - -The following diagram illustrates how the communication that occurs between the vlan (the dashed box) and the public internet (represented by the two clouds) - -.. image:: /images/cloudpipe.png - :width: 100% - -.. - -Concept: Binaries ------------------ - -Nova is implemented by a number of related binaries. These binaries can run on the same machine or many machines. A detailed description of each binary is given in the :ref:`binaries section ` of the developer guide. - -.. _manage_usage: - -Concept: nova-manage --------------------- - -The nova-manage command is used to perform many essential functions for -administration and ongoing maintenance of nova, such as user creation, -vpn management, and much more. - -See doc:`nova.manage` in the Administration Guide for more details. - - -Concept: Flags --------------- - -python-gflags - - -Concept: Plugins ----------------- - -* Managers/Drivers: utils.import_object from string flag -* virt/connections: conditional loading from string flag -* db: LazyPluggable via string flag -* auth_manager: utils.import_class based on string flag -* Volumes: moving to pluggable driver instead of manager -* Network: pluggable managers -* Compute: same driver used, but pluggable at connection - - -Concept: IPC/RPC ----------------- - -Nova utilizes the RabbitMQ implementation of the AMQP messaging standard for performing communication between the various nova services. This message queuing service is used for both local and remote communication because Nova is designed so that there is no requirement that any of the services exist on the same physical machine. RabbitMQ in particular is very robust and provides the efficiency and reliability that Nova needs. More information about RabbitMQ can be found at http://www.rabbitmq.com/. - -Concept: Fakes --------------- - -* auth -* ldap - - -Concept: Scheduler ------------------- - -* simple -* random - - -Concept: Security Groups ------------------------- - -Security groups - - -Concept: Certificate Authority ------------------------------- - -Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns ` and decrypting bundled images. - - -Concept: Images ---------------- - -* launching -* bundling diff --git a/doc/build/html/_sources/object.model.txt b/doc/build/html/_sources/object.model.txt deleted file mode 100644 index c8d4df736..000000000 --- a/doc/build/html/_sources/object.model.txt +++ /dev/null @@ -1,53 +0,0 @@ -Object Model -============ - -.. todo:: Add brief description for core models - -.. graphviz:: - - digraph foo { - graph [rankdir="LR"]; node [fontsize=9 shape=box]; - Instances -> "Public IPs" [arrowhead=crow]; - Instances -> "Security Groups" [arrowhead=crow]; - Users -> Projects [arrowhead=crow arrowtail=crow dir=both]; - Users -> Keys [arrowhead=crow]; - Instances -> Volumes [arrowhead=crow]; - Projects -> "Public IPs" [arrowhead=crow]; - Projects -> Instances [arrowhead=crow]; - Projects -> Volumes [arrowhead=crow]; - Projects -> Images [arrowhead=crow]; - Images -> Instances [arrowhead=crow]; - Projects -> "Security Groups" [arrowhead=crow]; - "Security Groups" -> Rules [arrowhead=crow]; - } - - -Users ------ - -Projects --------- - - -Images ------- - - -Instances ---------- - - -Volumes -------- - - -Security Groups ---------------- - - -VLANs ------ - - -IP Addresses ------------- diff --git a/doc/build/html/_sources/quickstart.txt b/doc/build/html/_sources/quickstart.txt deleted file mode 100644 index ae2b64d8a..000000000 --- a/doc/build/html/_sources/quickstart.txt +++ /dev/null @@ -1,178 +0,0 @@ -.. - Copyright 2010 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. - -Nova Quickstart -=============== - -.. todo:: - P1 (this is one example of how to use priority syntax) - * Document the assumptions about pluggable interfaces (sqlite3 instead of - mysql, etc) (todd) - * Document env vars that can change things (USE_MYSQL, HOST_IP) (todd) - -Recommended System Configuration --------------------------------- - -Although Nova can be run on a variety of system architectures, for most users the following will be simplest: - -* Ubuntu Lucid -* 10GB Hard Disk Space -* 512MB RAM - -For development, Nova can run from within a VM. - - -Getting the Code ----------------- - -Nova is hosted on launchpad. You can get the code with the following command - -:: - - bzr clone lp:nova - -The `contrib/nova.sh` file in the source distribution is a script that -will quickly set up nova to run on a single machine. It is tested against -Ubuntu only, but other distributions are forthcoming. - -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`). - -* HOST_IP - * Default: address of first interface from the ifconfig command - * Values: 127.0.0.1, or any other valid address - -TEST -~~~~ - -**Default**: 0 -**Values**: 1, run tests after checkout and initial setup - -USE_MYSQL -~~~~~~~~~ - -**Default**: 0, use sqlite3 -**Values**: 1, use mysql instead of sqlite3 - -MYSQL_PASS -~~~~~~~~~~ - -Only useful if $USE_MYSQL=1. - -**Default**: nova -**Values**: value of root password for mysql - -USE_LDAP -~~~~~~~~ - -**Default**: 0, use :mod:`nova.auth.dbdriver` -**Values**: 1, use :mod:`nova.auth.ldapdriver` - -LIBVIRT_TYPE -~~~~~~~~~~~~ - -**Default**: qemu -**Values**: uml, kvm - -Usage ------ - -Unless you want to spend a lot of time fiddling with permissions and sudoers, -you should probably run nova as root. - -:: - - sudo -i - -If you are concerned about security, nova runs just fine inside a virtual -machine. - -Use the script to install and run the current trunk. You can also specify a -specific branch by putting `lp:~someone/nova/some-branch` after the branch -command - -:: - - ./nova.sh branch - ./nova.sh install - ./nova.sh run - -The run command will drop you into a screen session with all of the workers -running in different windows You can use eucatools to run commands against the -cloud. - -:: - - euca-add-keypair test > test.pem - euca-run-instances -k test -t m1.tiny ami-tiny - euca-describe-instances - -To see output from the various workers, switch screen windows - -:: - - " - -will give you a list of running windows. - -When the instance is running, you should be able to ssh to it. - -:: - - chmod 600 test.pem - ssh -i test.pem root@10.0.0.3 - -When you exit screen - -:: - - - -nova will terminate. It may take a while for nova to finish cleaning up. If -you exit the process before it is done because there were some problems in your -build, you may have to clean up the nova processes manually. If you had any -instances running, you can attempt to kill them through the api: - -:: - - ./nova.sh terminate - -Then you can destroy the screen: - -:: - - ./nova.sh clean - -If things get particularly messed up, you might need to do some more intense -cleanup. Be careful, the following command will manually destroy all runnning -virsh instances and attempt to delete all vlans and bridges. - -:: - - ./nova.sh scrub - -You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do - -:: - - ./nova.sh run - -to run nova after the first install. The database should be cleaned up on each run. \ No newline at end of file diff --git a/doc/build/html/_sources/service.architecture.txt b/doc/build/html/_sources/service.architecture.txt deleted file mode 100644 index 28a32bec6..000000000 --- a/doc/build/html/_sources/service.architecture.txt +++ /dev/null @@ -1,60 +0,0 @@ -Service Architecture -==================== - -Nova’s Cloud Fabric is composed of the following major components: - -* API Server -* Message Queue -* Compute Worker -* Network Controller -* Volume Worker -* Scheduler -* Image Store - - -.. image:: /images/fabric.png - :width: 790 - -API Server --------------------------------------------------- -At the heart of the cloud framework is an API Server. This API Server makes command and control of the hypervisor, storage, and networking programmatically available to users in realization of the definition of cloud computing. - -The API endpoints are basic http web services which handle authentication, authorization, and basic command and control functions using various API interfaces under the Amazon, Rackspace, and related models. This enables API compatibility with multiple existing tool sets created for interaction with offerings from other vendors. This broad compatibility prevents vendor lock-in. - -Message Queue --------------------------------------------------- -A messaging queue brokers the interaction between compute nodes (processing), volumes (block storage), the networking controllers (software which controls network infrastructure), API endpoints, the scheduler (determines which physical hardware to allocate to a virtual resource), and similar components. Communication to and from the cloud controller is by HTTP requests through multiple API endpoints. - -A typical message passing event begins with the API server receiving a request from a user. The API server authenticates the user and ensures that the user is permitted to issue the subject command. Availability of objects implicated in the request is evaluated and, if available, the request is routed to the queuing engine for the relevant workers. Workers continually listen to the queue based on their role, and occasionally their type hostname. When such listening produces a work request, the worker takes assignment of the task and begins its execution. Upon completion, a response is dispatched to the queue which is received by the API server and relayed to the originating user. Database entries are queried, added, or removed as necessary throughout the process. - -Compute Worker --------------------------------------------------- -Compute workers manage computing instances on host machines. Through the API, commands are dispatched to compute workers to: - -* Run instances -* Terminate instances -* Reboot instances -* Attach volumes -* Detach volumes -* Get console output - -Network Controller --------------------------------------------------- -The Network Controller manages the networking resources on host machines. The API server dispatches commands through the message queue, which are subsequently processed by Network Controllers. Specific operations include: - -* Allocate Fixed IP Addresses -* Configuring VLANs for projects -* Configuring networks for compute nodes - -Volume Workers --------------------------------------------------- -Volume Workers interact with iSCSI storage to manage LVM-based instance volumes. Specific functions include: - -* Create Volumes -* Delete Volumes -* Establish Compute volumes - -Volumes may easily be transferred between instances, but may be attached to only a single instance at a time. - - -.. todo:: P2: image store description diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css deleted file mode 100644 index 69f30d4fb..000000000 --- a/doc/build/html/_static/basic.css +++ /dev/null @@ -1,509 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -img { - border: 0; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable dl, table.indextable dd { - margin-top: 0; - margin-bottom: 0; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- general body styles --------------------------------------------------- */ - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.field-list ul { - padding-left: 1em; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -.align-left { - text-align: left; -} - -.align-center { - clear: both; - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.field-list td, table.field-list th { - border: 0 !important; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -dl { - margin-bottom: 15px; -} - -dd p { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, .highlighted { - background-color: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.refcount { - color: #060; -} - -.optional { - font-size: 1.3em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -tt.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -tt.descclassname { - background-color: transparent; -} - -tt.xref, a tt { - background-color: transparent; - font-weight: bold; -} - -h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} diff --git a/doc/build/html/_static/contents.png b/doc/build/html/_static/contents.png deleted file mode 100644 index 7fb82154a..000000000 Binary files a/doc/build/html/_static/contents.png and /dev/null differ diff --git a/doc/build/html/_static/doctools.js b/doc/build/html/_static/doctools.js deleted file mode 100644 index eeea95ea5..000000000 --- a/doc/build/html/_static/doctools.js +++ /dev/null @@ -1,247 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilties for all documentation. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -} - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * small function to check if an array contains - * a given item. - */ -jQuery.contains = function(arr, item) { - for (var i = 0; i < arr.length; i++) { - if (arr[i] == item) - return true; - } - return false; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this); - }); - } - } - return this.each(function() { - highlight(this); - }); -}; - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') - return string; - return (typeof translated == 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('.sidebar .this-page-menu')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) == 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/doc/build/html/_static/file.png b/doc/build/html/_static/file.png deleted file mode 100644 index d18082e39..000000000 Binary files a/doc/build/html/_static/file.png and /dev/null differ diff --git a/doc/build/html/_static/jquery.js b/doc/build/html/_static/jquery.js deleted file mode 100644 index 7c2430802..000000000 --- a/doc/build/html/_static/jquery.js +++ /dev/null @@ -1,154 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.2 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Sat Feb 13 22:33:48 2010 -0500 - */ -(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, -Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& -(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, -a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== -"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, -function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
        a"; -var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, -parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= -false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= -s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, -applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; -else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, -a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== -w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, -cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= -c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); -a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, -function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); -k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), -C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= -e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& -f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; -if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", -e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, -"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, -d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, -e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); -t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| -g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, -CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, -g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, -text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, -setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= -h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== -"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, -h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& -q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; -if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

        ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); -(function(){var g=s.createElement("div");g.innerHTML="
        ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: -function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= -{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== -"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", -d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? -a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== -1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
        ","
        "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, -""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); -return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", -""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= -c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? -c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= -function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= -Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, -"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= -a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= -a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== -"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
        ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, -serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), -function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, -global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& -e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? -"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== -false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= -false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", -c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| -d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); -g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== -1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== -"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; -if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== -"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| -c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; -this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= -this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, -e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
        "; -a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); -c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, -d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- -f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": -"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in -e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/doc/build/html/_static/jquery.tweet.js b/doc/build/html/_static/jquery.tweet.js deleted file mode 100644 index c93fea876..000000000 --- a/doc/build/html/_static/jquery.tweet.js +++ /dev/null @@ -1,154 +0,0 @@ -(function($) { - - $.fn.tweet = function(o){ - var s = { - username: ["seaofclouds"], // [string] required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"] - list: null, //[string] optional name of list belonging to username - avatar_size: null, // [integer] height and width of avatar if displayed (48px max) - count: 3, // [integer] how many tweets to display? - intro_text: null, // [string] do you want text BEFORE your your tweets? - outro_text: null, // [string] do you want text AFTER your tweets? - join_text: null, // [string] optional text in between date and tweet, try setting to "auto" - auto_join_text_default: "i said,", // [string] auto text for non verb: "i said" bullocks - auto_join_text_ed: "i", // [string] auto text for past tense: "i" surfed - auto_join_text_ing: "i am", // [string] auto tense for present tense: "i was" surfing - auto_join_text_reply: "i replied to", // [string] auto tense for replies: "i replied to" @someone "with" - auto_join_text_url: "i was looking at", // [string] auto tense for urls: "i was looking at" http:... - loading_text: null, // [string] optional loading text, displayed while tweets load - query: null // [string] optional search query - }; - - if(o) $.extend(s, o); - - $.fn.extend({ - linkUrl: function() { - var returning = []; - var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; - this.each(function() { - returning.push(this.replace(regexp,"$1")); - }); - return $(returning); - }, - linkUser: function() { - var returning = []; - var regexp = /[\@]+([A-Za-z0-9-_]+)/gi; - this.each(function() { - returning.push(this.replace(regexp,"@$1")); - }); - return $(returning); - }, - linkHash: function() { - var returning = []; - var regexp = / [\#]+([A-Za-z0-9-_]+)/gi; - this.each(function() { - returning.push(this.replace(regexp, ' #$1')); - }); - return $(returning); - }, - capAwesome: function() { - var returning = []; - this.each(function() { - returning.push(this.replace(/\b(awesome)\b/gi, '$1')); - }); - return $(returning); - }, - capEpic: function() { - var returning = []; - this.each(function() { - returning.push(this.replace(/\b(epic)\b/gi, '$1')); - }); - return $(returning); - }, - makeHeart: function() { - var returning = []; - this.each(function() { - returning.push(this.replace(/(<)+[3]/gi, "")); - }); - return $(returning); - } - }); - - function relative_time(time_value) { - var parsed_date = Date.parse(time_value); - var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); - var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); - var pluralize = function (singular, n) { - return '' + n + ' ' + singular + (n == 1 ? '' : 's'); - }; - if(delta < 60) { - return 'less than a minute ago'; - } else if(delta < (45*60)) { - return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago'; - } else if(delta < (24*60*60)) { - return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago'; - } else { - return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago'; - } - } - - function build_url() { - var proto = ('https:' == document.location.protocol ? 'https:' : 'http:'); - if (s.list) { - return proto+"//api.twitter.com/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?per_page="+s.count+"&callback=?"; - } else if (s.query == null && s.username.length == 1) { - return proto+'//twitter.com/status/user_timeline/'+s.username[0]+'.json?count='+s.count+'&callback=?'; - } else { - var query = (s.query || 'from:'+s.username.join('%20OR%20from:')); - return proto+'//search.twitter.com/search.json?&q='+query+'&rpp='+s.count+'&callback=?'; - } - } - - return this.each(function(){ - var list = $('
          ').appendTo(this); - var intro = '

          '+s.intro_text+'

          '; - var outro = '

          '+s.outro_text+'

          '; - var loading = $('

          '+s.loading_text+'

          '); - - if(typeof(s.username) == "string"){ - s.username = [s.username]; - } - - if (s.loading_text) $(this).append(loading); - $.getJSON(build_url(), function(data){ - if (s.loading_text) loading.remove(); - if (s.intro_text) list.before(intro); - $.each((data.results || data), function(i,item){ - // auto join text based on verb tense and content - if (s.join_text == "auto") { - if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) { - var join_text = s.auto_join_text_reply; - } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) { - var join_text = s.auto_join_text_url; - } else if (item.text.match(/^((\w+ed)|just) .*/im)) { - var join_text = s.auto_join_text_ed; - } else if (item.text.match(/^(\w*ing) .*/i)) { - var join_text = s.auto_join_text_ing; - } else { - var join_text = s.auto_join_text_default; - } - } else { - var join_text = s.join_text; - }; - - var from_user = item.from_user || item.user.screen_name; - var profile_image_url = item.profile_image_url || item.user.profile_image_url; - var join_template = ' '+join_text+' '; - var join = ((s.join_text) ? join_template : ' '); - var avatar_template = ''+from_user+'\'s avatar'; - var avatar = (s.avatar_size ? avatar_template : ''); - var date = ''+relative_time(item.created_at)+''; - var text = '' +$([item.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+ ''; - - // until we create a template option, arrange the items below to alter a tweet's display. - list.append('
        • ' + avatar + date + join + text + '
        • '); - - list.children('li:first').addClass('tweet_first'); - list.children('li:odd').addClass('tweet_even'); - list.children('li:even').addClass('tweet_odd'); - }); - if (s.outro_text) list.after(outro); - }); - - }); - }; -})(jQuery); \ No newline at end of file diff --git a/doc/build/html/_static/minus.png b/doc/build/html/_static/minus.png deleted file mode 100644 index da1c5620d..000000000 Binary files a/doc/build/html/_static/minus.png and /dev/null differ diff --git a/doc/build/html/_static/navigation.png b/doc/build/html/_static/navigation.png deleted file mode 100644 index 1081dc143..000000000 Binary files a/doc/build/html/_static/navigation.png and /dev/null differ diff --git a/doc/build/html/_static/plus.png b/doc/build/html/_static/plus.png deleted file mode 100644 index b3cb37425..000000000 Binary files a/doc/build/html/_static/plus.png and /dev/null differ diff --git a/doc/build/html/_static/pygments.css b/doc/build/html/_static/pygments.css deleted file mode 100644 index 1a14f2ae1..000000000 --- a/doc/build/html/_static/pygments.css +++ /dev/null @@ -1,62 +0,0 @@ -.highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #303030 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0040D0 } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/doc/build/html/_static/searchtools.js b/doc/build/html/_static/searchtools.js deleted file mode 100644 index 5cbfe004b..000000000 --- a/doc/build/html/_static/searchtools.js +++ /dev/null @@ -1,518 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilties for the full-text search. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words, hlwords is the list of normal, unstemmed - * words. the first one is used to find the occurance, the - * latter for highlighting it. - */ - -jQuery.makeSearchSummary = function(text, keywords, hlwords) { - var textLower = text.toLowerCase(); - var start = 0; - $.each(keywords, function() { - var i = textLower.indexOf(this.toLowerCase()); - if (i > -1) - start = i; - }); - start = Math.max(start - 120, 0); - var excerpt = ((start > 0) ? '...' : '') + - $.trim(text.substr(start, 240)) + - ((start + 240 - text.length) ? '...' : ''); - var rv = $('
          ').text(excerpt); - $.each(hlwords, function() { - rv = rv.highlightText(this, 'highlighted'); - }); - return rv; -} - -/** - * Porter Stemmer - */ -var PorterStemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - - -/** - * Search Module - */ -var Search = { - - _index : null, - _queued_query : null, - _pulse_status : -1, - - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } - }, - - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, success: null, - dataType: "script", cache: true}); - }, - - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); - } - }, - - hasIndex : function() { - return this._index !== null; - }, - - deferQuery : function(query) { - this._queued_query = query; - }, - - stopPulse : function() { - this._pulse_status = 0; - }, - - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (var i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something - */ - performSearch : function(query) { - // create the required interface elements - this.out = $('#search-results'); - this.title = $('

          ' + _('Searching') + '

          ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

          ').appendTo(this.out); - this.output = $('