Minor spellchecking fixes
This commit is contained in:
commit
a7983cad94
4
README
4
README
@ -1,7 +1,7 @@
|
||||
The Choose Your Own Adventure README for Nova:
|
||||
|
||||
You have come across a cloud computing fabric controller. It has identified
|
||||
itself as "Nova." It is apparent that it maintains compatability with
|
||||
itself as "Nova." It is apparent that it maintains compatibility with
|
||||
the popular Amazon EC2 and S3 APIs.
|
||||
|
||||
To monitor it from a distance: follow @novacc on twitter
|
||||
@ -10,7 +10,7 @@ To tame it for use in your own cloud: read http://nova.openstack.org/getting.sta
|
||||
|
||||
To study its anatomy: read http://nova.openstack.org/architecture.html
|
||||
|
||||
To disect it in detail: visit http://code.launchpad.net/nova
|
||||
To dissect it in detail: visit http://code.launchpad.net/nova
|
||||
|
||||
To taunt it with its weaknesses: use http://bugs.launchpad.net/nova
|
||||
|
||||
|
@ -60,4 +60,4 @@ 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.
|
||||
Failures in the drivers would be detected in other test cases, though.
|
||||
|
@ -1,5 +1,6 @@
|
||||
..
|
||||
Copyright (c) 2010 Citrix Systems, Inc.
|
||||
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
|
||||
@ -29,7 +30,7 @@ Nova (Austin release) uses both direct and topic-based exchanges. The architectu
|
||||
|
||||
..
|
||||
|
||||
Nova implements RPC (both request+response, and one-way, respectively nicknamed 'rpc.call' and 'rpc.cast') over AMQP by providing an adapter class which take cares of marshalling and unmarshalling of messages into function calls. Each Nova service (for example Compute, Volume, etc.) create two queues at the initialization time, one which accepts messages with routing keys 'NODE-TYPE.NODE-ID' (for example compute.hostname) and another, which accepts messages with routing keys as generic 'NODE-TYPE' (for example compute). The former is used specifically when Nova-API needs to redirect commands to a specific node like 'euca-terminate instance'. In this case, only the compute node whose host's hypervisor is running the virtual machine can kill the instance. The API acts as a consumer when RPC calls are request/response, otherwise is acts as publisher only.
|
||||
Nova implements RPC (both request+response, and one-way, respectively nicknamed 'rpc.call' and 'rpc.cast') over AMQP by providing an adapter class which take cares of marshaling and unmarshaling of messages into function calls. Each Nova service (for example Compute, Volume, etc.) create two queues at the initialization time, one which accepts messages with routing keys 'NODE-TYPE.NODE-ID' (for example compute.hostname) and another, which accepts messages with routing keys as generic 'NODE-TYPE' (for example compute). The former is used specifically when Nova-API needs to redirect commands to a specific node like 'euca-terminate instance'. In this case, only the compute node whose host's hypervisor is running the virtual machine can kill the instance. The API acts as a consumer when RPC calls are request/response, otherwise is acts as publisher only.
|
||||
|
||||
Nova RPC Mappings
|
||||
-----------------
|
||||
@ -39,7 +40,7 @@ The figure below shows the internals of a RabbitMQ node when a single instance i
|
||||
Figure 2 shows the following internal elements:
|
||||
|
||||
* Topic Publisher: a Topic Publisher comes to life when an rpc.call or an rpc.cast operation is executed; this object is instantiated and used to push a message to the queuing system. Every publisher connects always to the same topic-based exchange; its life-cycle is limited to the message delivery.
|
||||
* Direct Consumer: a Direct Consumer comes to life if (an only if) a rpc.call operation is executed; this object is instantiated and used to receive a response message from the queuing system; Every consumer connects to a unique direct-based exchange via a unique exclusive queue; its life-cycle is limited to the message delivery; the exchange and queue identifiers are determined by a UUID generator, and are marshalled in the message sent by the Topic Publisher (only rpc.call operations).
|
||||
* Direct Consumer: a Direct Consumer comes to life if (an only if) a rpc.call operation is executed; this object is instantiated and used to receive a response message from the queuing system; Every consumer connects to a unique direct-based exchange via a unique exclusive queue; its life-cycle is limited to the message delivery; the exchange and queue identifiers are determined by a UUID generator, and are marshaled in the message sent by the Topic Publisher (only rpc.call operations).
|
||||
* Topic Consumer: a Topic Consumer comes to life as soon as a Worker is instantiated and exists throughout its life-cycle; this object is used to receive messages from the queue and it invokes the appropriate action as defined by the Worker role. A Topic Consumer connects to the same topic-based exchange either via a shared queue or via a unique exclusive queue. Every Worker has two topic consumers, one that is addressed only during rpc.cast operations (and it connects to a shared queue whose exchange key is 'topic') and the other that is addressed only during rpc.call operations (and it connects to a unique queue whose exchange key is 'topic.host').
|
||||
* Direct Publisher: a Direct Publisher comes to life only during rpc.call operations and it is instantiated to return the message required by the request/response operation. The object connects to a direct-based exchange whose identity is dictated by the incoming message.
|
||||
* Topic Exchange: The Exchange is a routing table that exists in the context of a virtual host (the multi-tenancy mechanism provided by RabbitMQ); its type (such as topic vs. direct) determines the routing policy; a RabbitMQ node will have only one topic-based exchange for every topic in Nova.
|
||||
|
@ -1,3 +1,20 @@
|
||||
..
|
||||
Copyright 2010 OpenStack LLC
|
||||
|
||||
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 the Live CD
|
||||
======================
|
||||
|
||||
|
@ -75,7 +75,7 @@ Nova is built on a shared-nothing, messaging-based architecture. All of the majo
|
||||
|
||||
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 <http://wiki.openstack.org/NovaDatabaseSchema>_`.
|
||||
The database schema is available on the `OpenStack Wiki <http://wiki.openstack.org/NovaDatabaseSchema>`_.
|
||||
|
||||
Concept: Storage
|
||||
----------------
|
||||
|
@ -1,3 +1,20 @@
|
||||
..
|
||||
Copyright 2010 OpenStack LLC
|
||||
|
||||
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.
|
||||
|
||||
Object Model
|
||||
============
|
||||
|
||||
@ -25,29 +42,38 @@ Object Model
|
||||
Users
|
||||
-----
|
||||
|
||||
Each Nova User is authorized based on their access key and secret key, assigned per-user. Read more at :doc:`/adminguide/managing.users`.
|
||||
|
||||
Projects
|
||||
--------
|
||||
|
||||
For Nova, access to images is based on the project. Read more at :doc:`/adminguide/managing.projects`.
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
Images are binary files that run the operating system. Read more at :doc:`/adminguide/managing.images`.
|
||||
|
||||
Instances
|
||||
---------
|
||||
|
||||
Instances are running virtual servers. Read more at :doc:`/adminguide/managing.instances`.
|
||||
|
||||
Volumes
|
||||
-------
|
||||
|
||||
.. todo:: Write doc about volumes
|
||||
|
||||
Security Groups
|
||||
---------------
|
||||
|
||||
In Nova, a security group is a named collection of network access rules, like firewall policies. Read more at `Security Groups <http://nova.openstack.org/nova.concepts.html#concept-security-groups>`_.
|
||||
|
||||
VLANs
|
||||
-----
|
||||
|
||||
VLAN is the default network mode for Nova. Read more at :doc:`/adminguide/network.vlan`.
|
||||
|
||||
IP Addresses
|
||||
------------
|
||||
Nova enables floating IP management.
|
@ -1,3 +1,20 @@
|
||||
..
|
||||
Copyright 2010 OpenStack LLC
|
||||
|
||||
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 Architecture
|
||||
====================
|
||||
|
||||
|
@ -335,11 +335,8 @@ class AuthManagerLdapTestCase(AuthManagerTestCase, test.TestCase):
|
||||
import nova.auth.fakeldap as fakeldap
|
||||
if FLAGS.flush_db:
|
||||
logging.info("Flushing datastore")
|
||||
try:
|
||||
r = fakeldap.Store.instance()
|
||||
r.flushdb()
|
||||
except:
|
||||
self.skip = True
|
||||
r = fakeldap.Store.instance()
|
||||
r.flushdb()
|
||||
|
||||
|
||||
class AuthManagerDbTestCase(AuthManagerTestCase, test.TestCase):
|
||||
|
Loading…
Reference in New Issue
Block a user