summaryrefslogtreecommitdiffstats
path: root/bin/nova-api
diff options
context:
space:
mode:
authorJustin Santa Barbara <justin@fathomdb.com>2011-02-22 17:45:38 -0800
committerJustin Santa Barbara <justin@fathomdb.com>2011-02-22 17:45:38 -0800
commitb6254db80ca9841361775a92b85f88db7251f857 (patch)
treee7808ab8cc843c7dc2574f32b53695ecd188d27c /bin/nova-api
parentafcec00e9e05031e1e7c086ff75fb05cf97c412d (diff)
downloadnova-b6254db80ca9841361775a92b85f88db7251f857.tar.gz
nova-b6254db80ca9841361775a92b85f88db7251f857.tar.xz
nova-b6254db80ca9841361775a92b85f88db7251f857.zip
Refactoring nova-api to be a service, so that we can reuse it in tests
Diffstat (limited to 'bin/nova-api')
-rwxr-xr-xbin/nova-api50
1 files changed, 5 insertions, 45 deletions
diff --git a/bin/nova-api b/bin/nova-api
index d5efb4687..99417e6c6 100755
--- a/bin/nova-api
+++ b/bin/nova-api
@@ -36,57 +36,17 @@ gettext.install('nova', unicode=1)
from nova import flags
from nova import log as logging
-from nova import version
+from nova import apiservice
+from nova import utils
from nova import wsgi
-LOG = logging.getLogger('nova.api')
-
FLAGS = flags.FLAGS
-flags.DEFINE_string('ec2_listen', "0.0.0.0",
- 'IP address for EC2 API to listen')
-flags.DEFINE_integer('ec2_listen_port', 8773, 'port for ec2 api to listen')
-flags.DEFINE_string('osapi_listen', "0.0.0.0",
- 'IP address for OpenStack API to listen')
-flags.DEFINE_integer('osapi_listen_port', 8774, 'port for os api to listen')
-
-API_ENDPOINTS = ['ec2', 'osapi']
-
-
-def run_app(paste_config_file):
- LOG.debug(_("Using paste.deploy config at: %s"), paste_config_file)
- apps = []
- for api in API_ENDPOINTS:
- config = wsgi.load_paste_configuration(paste_config_file, api)
- if config is None:
- LOG.debug(_("No paste configuration for app: %s"), api)
- continue
- LOG.debug(_("App Config: %(api)s\n%(config)r") % locals())
- LOG.info(_("Running %s API"), api)
- app = wsgi.load_paste_app(paste_config_file, api)
- apps.append((app, getattr(FLAGS, "%s_listen_port" % api),
- getattr(FLAGS, "%s_listen" % api)))
- if len(apps) == 0:
- LOG.error(_("No known API applications configured in %s."),
- paste_config_file)
- return
-
- server = wsgi.Server()
- for app in apps:
- server.start(*app)
- server.wait()
-
if __name__ == '__main__':
FLAGS(sys.argv)
logging.setup()
- LOG.audit(_("Starting nova-api node (version %s)"),
- version.version_string_with_vcs())
- LOG.debug(_("Full set of FLAGS:"))
- for flag in FLAGS:
- flag_get = FLAGS.get(flag, None)
- LOG.debug("%(flag)s : %(flag_get)s" % locals())
conf = wsgi.paste_config_file('nova-api.conf')
- if conf:
- run_app(conf)
- else:
+ if not conf:
LOG.error(_("No paste configuration found for: %s"), 'nova-api.conf')
+ else:
+ apiservice.serve(conf)