# $SnapHashLicense:
#
# SnapLogic - Open source data services
#
# Copyright (C) 2008, SnapLogic, Inc. All rights reserved.
#
# See http://www.snaplogic.org for more information about
# the SnapLogic project.
#
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the LEGAL file
# at the top of the source tree.
#
# "SnapLogic" is a trademark of SnapLogic, Inc.
#
#
# $
# $Id: rh_front_end.py 1211 2008-02-15 01:00:31Z jbrendel $
"""
Request Handler wrappers around the internal Config API.
These methods provide an API translation between the config object and
the internal API used by other modules.
This is for the benefit of the request handler (thus the RH prefix),
so that the request handler does not need to know all the internals
of how the various modules (the config object in this case) want to have
message bodies and parameters interpreted.
"""
from snaplogic.common.config import snap_config
from snaplogic.server import RhResponse
def rh_get_cc_config(http_req):
"""
Get the configuration for a CC from the main server.
FIXIT!!!! Need more documentation here...
FIXIT!!!! We are passing in the config dictionary, but this should
really be the global config object, or something...
"""
# This is a request from a CC to fetch its config file from the server.
if "cc_name" not in http_req.params:
# The CC did not identify itself.
return RhResponse(400, "The request did not have parameter \"cc_name\"")
cc = http_req.params["cc_name"]
conf = snap_config.get_instance()
cc_conf = conf.get_section("component_container")
if cc not in cc_conf:
# The CC name specified, does not exist in our config file.
return RhResponse(404, "The config for specified component container %s not found" % cc)
# Send the config section.
return RhResponse(200, cc_conf[cc])
|