Split sahara into sahara-api and sahara-engine

Split monolitic sahara-api into two services: sahara-api and
sahara-engine. The former is a user-facing interface, the later -
service doing all the work. Sahara-api sends tasks to sahara-engine
via oslo.messaging. See the blueprint for details.

Notes:

* Used the following Climate RPC code as a baseline:
  https://github.com/stackforge/climate/blob/master/climate/utils/service.py
  hence added Julien Danjou to licence header.
* Removed the old contents of sahara/utils/rpc.py - that is a prehistoric
  stuff not used anywhere.
* sahara-api still depends on eventlet, while we want to drop this dependency
  in the end.
* periodics run in sahara-api. They shold be moved to engine later.

Partially Implements: blueprint scalable-savanna
Change-Id: I64275a757b539f3fcddd6e993d6614d492745226
This commit is contained in:
Dmitry Mescheryakov 2014-04-18 13:55:28 +04:00
parent a4fd972d82
commit e6b99027d1
3 changed files with 10 additions and 1 deletions

View File

@ -5,6 +5,7 @@ Flask>=0.10,<1.0
iso8601>=0.1.9
jsonschema>=2.0.0,<3.0.0
oslo.config>=1.2.0
oslo.messaging>=1.3.0
paramiko>=1.9.0
pbr>=0.6,!=0.7,<1.0
requests>=1.1

View File

@ -55,6 +55,9 @@ def eventlet_import_monkey_patched(module):
def patch_minidom_writexml():
"""Patch for xml.dom.minidom toprettyxml bug with whitespaces around text
We apply the patch to avoid excess whitespaces in generated xml
configuration files that brakes Hadoop.
(This patch will be applied for all Python versions < 2.7.3)
Issue: http://bugs.python.org/issue4147

View File

@ -29,8 +29,9 @@ data_files =
[entry_points]
console_scripts =
sahara-all = sahara.cli.sahara_all:main
sahara-api = sahara.cli.sahara_api:main
sahara-all = sahara.cli.sahara_api:main
sahara-engine = sahara.cli.sahara_engine:main
sahara-db-manage = sahara.db.migration.cli:main
_sahara-subprocess = sahara.cli.sahara_subprocess:main
@ -46,6 +47,10 @@ sahara.infrastructure.engine =
sahara.remote =
ssh = sahara.utils.ssh_remote:SshRemoteDriver
sahara.run.mode =
all-in-one = sahara.service.ops:LocalOps
distributed = sahara.service.ops:RemoteOps
[build_sphinx]
all_files = 1
build-dir = doc/build