Example #1
0
    def __init__(self, *args, **kwargs):
        configs = ["service", "dtrs"]
        config_files = get_config_paths(configs)
        self.CFG = bootstrap.configure(config_files)

        amqp_uri = kwargs.get('amqp_uri')
        self.amqp_uri = amqp_uri

        self.sysname = kwargs.get('sysname')

        self.dashi = bootstrap.dashi_connect(self.CFG.dtrs.service_name,
                                             self.CFG, self.amqp_uri, self.sysname)

        store = kwargs.get('store')
        self.store = store or get_dtrs_store(self.CFG)
        self.store.initialize()

        self.core = DTRSCore(self.store)
Example #2
0
class DTRS(object):
    """Deployable Type Registry Service interface"""

    def __init__(self, *args, **kwargs):
        configs = ["service", "dtrs"]
        config_files = get_config_paths(configs)
        self.CFG = bootstrap.configure(config_files)

        amqp_uri = kwargs.get('amqp_uri')
        self.amqp_uri = amqp_uri

        self.sysname = kwargs.get('sysname')

        self.dashi = bootstrap.dashi_connect(self.CFG.dtrs.service_name,
                                             self.CFG, self.amqp_uri, self.sysname)

        store = kwargs.get('store')
        self.store = store or get_dtrs_store(self.CFG)
        self.store.initialize()

        self.core = DTRSCore(self.store)

    def start(self):

        log.info("starting DTRS instance %s" % self)

        self.dashi.link_exceptions(custom_exception=SiteDefinitionValidationError,
                                   dashi_exception=DashiBadRequestError)
        self.dashi.link_exceptions(custom_exception=NotFoundError,
                                   dashi_exception=DashiNotFoundError)
        self.dashi.link_exceptions(custom_exception=WriteConflictError,
                                   dashi_exception=DashiWriteConflictError)

        self.dashi.handle(self.add_dt)
        self.dashi.handle(self.describe_dt)
        self.dashi.handle(self.list_dts)
        self.dashi.handle(self.remove_dt)
        self.dashi.handle(self.update_dt)

        self.dashi.handle(self.add_site)
        self.dashi.handle(self.describe_site)
        self.dashi.handle(self.list_sites)
        self.dashi.handle(self.remove_site)
        self.dashi.handle(self.update_site)

        self.dashi.handle(self.add_credentials)
        self.dashi.handle(self.describe_credentials)
        self.dashi.handle(self.list_credentials)
        self.dashi.handle(self.remove_credentials)
        self.dashi.handle(self.update_credentials)

        self.dashi.handle(self.lookup)

        self.dashi.consume()

    def stop(self):
        self.dashi.cancel()
        self.dashi.disconnect()
        self.store.shutdown()

    # Deployable Types
    def add_dt(self, caller, dt_name, dt_definition):
        return self.core.store.add_dt(caller, dt_name, dt_definition)

    def describe_dt(self, caller, dt_name):
        return self.core.describe_dt(caller, dt_name)

    def list_dts(self, caller):
        return self.core.store.list_dts(caller)

    def remove_dt(self, caller, dt_name):
        return self.core.store.remove_dt(caller, dt_name)

    def update_dt(self, caller, dt_name, dt_definition):
        return self.core.store.update_dt(caller, dt_name, dt_definition)

    # Sites

    def add_site(self, site_name, site_definition, caller=None):
        return self.core.add_site(caller, site_name, site_definition)

    def describe_site(self, site_name, caller=None):
        return self.core.describe_site(caller, site_name)

    def list_sites(self, caller=None):
        return self.core.store.list_sites(caller)

    def remove_site(self, site_name, caller=None):
        return self.core.store.remove_site(caller, site_name)

    def update_site(self, site_name, site_definition, caller=None):
        return self.core.update_site(caller, site_name, site_definition)

    # Credentials

    def add_credentials(self, caller, site_name, site_credentials):
        return self.core.add_credentials(caller, site_name, site_credentials)

    def describe_credentials(self, caller, site_name):
        return self.core.describe_credentials(caller, site_name)

    def list_credentials(self, caller):
        return self.core.store.list_credentials(caller)

    def remove_credentials(self, caller, site_name):
        return self.core.store.remove_credentials(caller, site_name)

    def update_credentials(self, caller, site_name, site_credentials):
        return self.core.store.update_credentials(caller, site_name,
                                                  site_credentials)

    # Old DTRS methods - keeping the API unmodified for now

    def lookup(self, caller, dt_name, dtrs_request_node, vars):
        return self.core.lookup(caller, dt_name, dtrs_request_node, vars)