)]}'
{"doc/source/architecture.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"db5c25db26c1743ee4ae0bdceb6f1a3153139772","unresolved":false,"context_lines":[{"line_number":25,"context_line":"a `manager` that is listening for `RPC` messages."},{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_f502f60a","line":28,"updated":"2015-07-24 13:54:05.000000000","message":"While I agree with the whole above paragraph, why are you removing the main tenets, ie. shared-nothing, messaging-based architecture ?","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"73d50a6b978d2a5b99fad2954fa5e2fcd3fa0e07","unresolved":false,"context_lines":[{"line_number":25,"context_line":"a `manager` that is listening for `RPC` messages."},{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_4058198a","line":28,"in_reply_to":"3a50d1a3_f502f60a","updated":"2015-07-29 10:02:59.000000000","message":"Because using a database, means we are not shared-nothing, in my book. I just don\u0027t think its a useful statement at this point.","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"95f54bdc9a96850344912540bad7cd951401abd7","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba3cc151_561bc973","line":29,"updated":"2015-07-10 07:38:06.000000000","message":"Nova also *uses* a central database [...]\n\n\"has\" implies a possessive relationship.","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"73d50a6b978d2a5b99fad2954fa5e2fcd3fa0e07","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_e0de05d9","line":29,"in_reply_to":"ba3cc151_561bc973","updated":"2015-07-29 10:02:59.000000000","message":"+1 I should change that.","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"db5c25db26c1743ee4ae0bdceb6f1a3153139772","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"To horizontally expand Nova deployments, we have a deployment sharding"},{"line_number":35,"context_line":"concept called cells. For more information please see: :doc:`cells`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_0793b9a4","line":32,"updated":"2015-07-24 13:54:05.000000000","message":"Well, the indirection API is by default activated only for n-cpu services. Others uses the same proxy interface but without the mentioned indirection, ie. hit DB directly.","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"73d50a6b978d2a5b99fad2954fa5e2fcd3fa0e07","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"To horizontally expand Nova deployments, we have a deployment sharding"},{"line_number":35,"context_line":"concept called cells. For more information please see: :doc:`cells`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_e0f5a550","line":32,"in_reply_to":"3a50d1a3_0793b9a4","updated":"2015-07-29 10:02:59.000000000","message":"True, I should be more precise.\n\nIt uses a layer that *can* proxy DB requests over RPC. I should update that.","commit_id":"ebad5b83c4483e66662bcdb902e64a9b18438a6a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fb7ee119e8d500faacdbf7163e9fc3a1e4835f60","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova System Architecture"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Nova has a REST API, that is used to initiate most actions in the system."},{"line_number":22,"context_line":"The API typically either reads from the database, or sends a message,"},{"line_number":23,"context_line":"using **oslo.messaging**, via a message queue to one of the other components."},{"line_number":24,"context_line":"All of the major nova components can be run on multiple servers, and have"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a50d1a3_fb3add97","line":21,"updated":"2015-07-30 20:36:33.000000000","message":"It might be good to mention what else initiates actions.  I assume you mean periodic tasks here but the events framework would qualify as well.","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"0dbc3ffc2f8034c2ddb97bc4687282ced61e1ece","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova System Architecture"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Nova has a REST API, that is used to initiate most actions in the system."},{"line_number":22,"context_line":"The API typically either reads from the database, or sends a message,"},{"line_number":23,"context_line":"using **oslo.messaging**, via a message queue to one of the other components."},{"line_number":24,"context_line":"All of the major nova components can be run on multiple servers, and have"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fa1b9901_ab7881c5","line":21,"updated":"2015-08-18 14:24:48.000000000","message":"Nova is comprised of multiple server processes, each performing different functions.  The user-facing interface is a REST API, while internally Nova components communicate via an RPC message passing mechanism.\n\nThe API servers process REST requests, which typically involve database reads/writes, sending messages to other Nova services, and generating responses.  RPC messaging is done via the **oslo.messaging** library, an abstraction on top of message queues.","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e222cbe0b6e0159c178f22511b9696264ab0bc0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova System Architecture"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Nova has a REST API, that is used to initiate most actions in the system."},{"line_number":22,"context_line":"The API typically either reads from the database, or sends a message,"},{"line_number":23,"context_line":"using **oslo.messaging**, via a message queue to one of the other components."},{"line_number":24,"context_line":"All of the major nova components can be run on multiple servers, and have"}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_76286d97","line":21,"in_reply_to":"fa1b9901_ab7881c5","updated":"2015-09-07 14:17:25.000000000","message":"Done","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fb7ee119e8d500faacdbf7163e9fc3a1e4835f60","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Nova has a REST API, that is used to initiate most actions in the system."},{"line_number":22,"context_line":"The API typically either reads from the database, or sends a message,"},{"line_number":23,"context_line":"using **oslo.messaging**, via a message queue to one of the other components."},{"line_number":24,"context_line":"All of the major nova components can be run on multiple servers, and have"},{"line_number":25,"context_line":"a `manager` that is listening for `RPC` messages."},{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a50d1a3_bb5bf5f5","line":24,"updated":"2015-07-30 20:36:33.000000000","message":"This is a little misleading I think.  All of the major components except nova-compute can be run on multiple servers.  Technically nova-compute is run on multiple servers, but not managing the same resources.","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e222cbe0b6e0159c178f22511b9696264ab0bc0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Nova has a REST API, that is used to initiate most actions in the system."},{"line_number":22,"context_line":"The API typically either reads from the database, or sends a message,"},{"line_number":23,"context_line":"using **oslo.messaging**, via a message queue to one of the other components."},{"line_number":24,"context_line":"All of the major nova components can be run on multiple servers, and have"},{"line_number":25,"context_line":"a `manager` that is listening for `RPC` messages."},{"line_number":26,"context_line":"The manager also, optionally, has periodic tasks."},{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_361d1573","line":24,"in_reply_to":"3a50d1a3_bb5bf5f5","updated":"2015-09-07 14:17:25.000000000","message":"Done","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fb7ee119e8d500faacdbf7163e9fc3a1e4835f60","unresolved":false,"context_lines":[{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a50d1a3_5bf8b1c4","line":30,"updated":"2015-07-30 20:36:33.000000000","message":"This is true for computes but not in general, right?  Maybe change \"DB is accessed\" to \"DB can be accessed\".","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e222cbe0b6e0159c178f22511b9696264ab0bc0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"For more details on our `RPC` system, please see: :doc:`rpc`"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_f6123d60","line":30,"in_reply_to":"3a50d1a3_5bf8b1c4","updated":"2015-09-07 14:17:25.000000000","message":"Done","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"0dbc3ffc2f8034c2ddb97bc4687282ced61e1ece","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"To horizontally expand Nova deployments, we have a deployment sharding"},{"line_number":35,"context_line":"concept called cells. For more information please see: :doc:`cells`"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fa1b9901_f6574000","line":32,"updated":"2015-08-18 14:24:48.000000000","message":"This implies we proxy all DB requests, even those from nova-api and/or cells?  Is that true because I was under the impression that would be a bit sluggish for performance.","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e222cbe0b6e0159c178f22511b9696264ab0bc0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":30,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":31,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":32,"context_line":"`nova-conductor`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"To horizontally expand Nova deployments, we have a deployment sharding"},{"line_number":35,"context_line":"concept called cells. For more information please see: :doc:`cells`"}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_960e6139","line":32,"in_reply_to":"fa1b9901_f6574000","updated":"2015-09-07 14:17:25.000000000","message":"Done","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fb7ee119e8d500faacdbf7163e9fc3a1e4835f60","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Below you will find a helpful explanation of the key components"},{"line_number":41,"context_line":"of a single cell nova deployment."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. image:: ./images/architecture.svg"},{"line_number":44,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a50d1a3_5b1f5109","line":41,"updated":"2015-07-30 20:36:33.000000000","message":"Calling this a single cell deployment may be confusing.  Since the docs will need to be updated with cell v2 it might be best to wait until then to call it a single cell.","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"0dbc3ffc2f8034c2ddb97bc4687282ced61e1ece","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Below you will find a helpful explanation of the key components"},{"line_number":41,"context_line":"of a single cell nova deployment."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. image:: ./images/architecture.svg"},{"line_number":44,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fa1b9901_f6a50004","line":41,"in_reply_to":"3a50d1a3_5b1f5109","updated":"2015-08-18 14:24:48.000000000","message":"Perhaps just call it a \"typical nova deployment\".","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e222cbe0b6e0159c178f22511b9696264ab0bc0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Below you will find a helpful explanation of the key components"},{"line_number":41,"context_line":"of a single cell nova deployment."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. image:: ./images/architecture.svg"},{"line_number":44,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_76ff0d02","line":41,"in_reply_to":"fa1b9901_f6a50004","updated":"2015-09-07 14:17:25.000000000","message":"Done","commit_id":"eb8d7133827af8a5ae4ed90ebed072ca3d8a4758"}],"doc/source/devref/architecture.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"804b55c90d65a8c42d14b51b9bd789250f44707a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Nova also has a central database that is (logically) shared between all"},{"line_number":31,"context_line":"components. However, to aid upgrade, the DB is accessed through an object"},{"line_number":32,"context_line":"layer that proxies DB requests over `RPC` to the central manager called"},{"line_number":33,"context_line":"`nova-conductor`"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To horizontally expand Nova deployments, we have a deployment sharding"},{"line_number":36,"context_line":"concept called cells. For more information please see: :doc:`cells`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_38a5dc03","line":33,"updated":"2015-04-29 13:34:52.000000000","message":"not really... that depends on the indirection API provided to the nova object. I mean, we can either use the conductor to call a server-side object running the method, or we can directly call DB if not.\n\nI just wonder if all of that novaobjects explanation should be given in another section.","commit_id":"2f722feeb9771d01ead3620c2158fe3bb36cde29"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"804b55c90d65a8c42d14b51b9bd789250f44707a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* api: component that receives http requests, converts commands and communicates"},{"line_number":65,"context_line":"  with other components via the queue or http"},{"line_number":66,"context_line":"* Keystone: authenticates user and provides info on users, tenant and roles."},{"line_number":67,"context_line":"* scheduler: decides which host gets each vm"},{"line_number":68,"context_line":"* compute: manages communication with hypervisor and virtual machines."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_180ea034","line":67,"updated":"2015-04-29 13:34:52.000000000","message":"I know that\u0027s WIP, but just wanted to make sure that you\u0027ll explain the conductor","commit_id":"2f722feeb9771d01ead3620c2158fe3bb36cde29"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"a546123bf7a5dae1cb91bf0cf4081f6b22219c46","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova System Architecture"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The core of Nova is its REST style API."},{"line_number":22,"context_line":"Most actions in the system are initiated via the API."},{"line_number":23,"context_line":"The API is also used to query the current state of the system."},{"line_number":24,"context_line":"The only other actions are started by periodic tasks in a `manager`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a0c5dc1_98797dff","line":21,"updated":"2015-05-12 18:42:33.000000000","message":"I wouldn\u0027t call the REST API the core part.  We could probably spend a while bikeshedding what is the \"core\" of Nova, but might be good to just leave core out of it.","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f0e58bab6a31d0812c49751ae5928abc0e3c12b3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova System Architecture"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The core of Nova is its REST style API."},{"line_number":22,"context_line":"Most actions in the system are initiated via the API."},{"line_number":23,"context_line":"The API is also used to query the current state of the system."},{"line_number":24,"context_line":"The only other actions are started by periodic tasks in a `manager`."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_ee5acc29","line":21,"in_reply_to":"9a0c5dc1_98797dff","updated":"2015-05-15 16:01:35.000000000","message":"oh good point, that term is a little overloaded.","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"102114da2966024d0e8d7c1db71498c0b3443095","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                 +-------------Nova----------------+"},{"line_number":55,"context_line":"                 |  | |                            |  H. HTTP Request"},{"line_number":56,"context_line":"  +-------+  H   | +v-++            D              |  R. RPC via oslo.messaging"},{"line_number":57,"context_line":"  |Horizon+--------\u003eapi+------------------+        |  D. Database connection"},{"line_number":58,"context_line":"  +-------+      | ++-++               +--v-----+  |"},{"line_number":59,"context_line":"             H   |  | |    +-----------\u003edatabase|  |"},{"line_number":60,"context_line":"       +------------+ |    |        D  +--^-----+  |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_98a4aea6","line":57,"updated":"2015-06-03 13:09:18.000000000","message":"in some cases nova-api talks directly to nova-compute, so I think there should be a direct arrow from nova-api to nova-compute","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"8aed5e9219ea369757ebc4c40dd8faadb1dc4165","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  +-------+  H   | +v-++            D              |  R. RPC via oslo.messaging"},{"line_number":57,"context_line":"  |Horizon+--------\u003eapi+------------------+        |  D. Database connection"},{"line_number":58,"context_line":"  +-------+      | ++-++               +--v-----+  |"},{"line_number":59,"context_line":"             H   |  | |    +-----------\u003edatabase|  |"},{"line_number":60,"context_line":"       +------------+ |    |        D  +--^-----+  |"},{"line_number":61,"context_line":"       |         |    |R   |              |D       |"},{"line_number":62,"context_line":"  +----v--+      |    |    |              |        |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_33195d7a","line":59,"updated":"2015-06-03 13:18:21.000000000","message":"I think the database rectangle should be outside of the Nova rectangle otherwise it looks like DB is part of Nova","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"0e28a419a0608d3ba9f3adff65b699284ada388f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                 | +-------+                       |"},{"line_number":73,"context_line":"                 |                                 |"},{"line_number":74,"context_line":"                 +---------------------------------+"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Web Dashboard: potential external component that talks to the api"},{"line_number":77,"context_line":"* api: component that receives http requests, converts commands and communicates"},{"line_number":78,"context_line":"  with other components via the queue or http"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_4a7ea5af","line":75,"updated":"2015-06-05 08:46:48.000000000","message":"Unfortunately the \"blockdiag\" package for sphinx is somewhat limited for that kind of diagram, but the limitation made me think if it could be simplified without losing the meaning. I tried to split this one diagram into 3 diagram with different contexts:\n\n1) nova services and their interactions: http://bit.ly/1FYQGkw\n\n2) nova services with database access: http://bit.ly/1IhdqgD\n\n3) nova-api and its consumers/dependencies: http://bit.ly/1Qbklz0\n\nWhen I started with OpenStack 1 year ago I was overwhelmed with the modularity. More diagrams with less information to digest would have helped me.\n\nSince \"sphinxcontrib-blockdiag\" is part of the global-requirements [1] I\u0027d like to give it a try. Their documentation [2] is pretty good.\n\n[1] https://github.com/openstack/requirements/commit/3cdf5103b5d894d9ee6acc8041a7ecba1f29d869\n[2] http://blockdiag.com/en/blockdiag/examples.html","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"53ffbb988e955f8006beaa919d55333714268be1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                 |                                 |"},{"line_number":74,"context_line":"                 +---------------------------------+"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Web Dashboard: potential external component that talks to the api"},{"line_number":77,"context_line":"* api: component that receives http requests, converts commands and communicates"},{"line_number":78,"context_line":"  with other components via the queue or http"},{"line_number":79,"context_line":"* Keystone: authenticates user and provides info on users, tenant and roles."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_14fd6b6e","line":76,"updated":"2015-05-26 13:46:14.000000000","message":"that is actually \u0027Horizon\u0027 in the diagram above","commit_id":"2b92f85249ba76734acc0c8a7a969a891e496521"}]}
