コード例 #1
0
class BootstrapParameterDefinitions(BootstrapPlugin):
    '''
    Bootstrap plugin for preloading standard parameter definitions
    '''
    def on_initial_bootstrap(self, process, config, **kwargs):
        self.dataset_management = DatasetManagementServiceProcessClient(
            process=process)
        self.dict_defs = config.get_safe('process.bootstrap.dict_defs',
                                         'res/config/param_dict_defs.yml')
        self.context_path = config.get_safe('process.bootstrap.definitions',
                                            'ion.core.plugin')
        self.loader_config = config.get_safe('process.bootstrap.config', {})

        contexts = self.load_contexts()
        self.load_dictionaries(self.dict_defs, contexts)

    def load_contexts(self):

        try:
            contexts = ParameterLoader.build_contexts(self.context_path,
                                                      self.loader_config)
            for name, context in contexts.iteritems():
                context_id = self.dataset_management.create_parameter_context(
                    name=name, parameter_context=context.dump())
                contexts[name] = context_id
        except Exception as e:
            print 'Exception %s: %s' % (type(e), e.message)

        print 'Loaded %s Parameter Contexts' % len(contexts)
        return contexts

    def load_dictionaries(self, path, contexts):
        try:
            body = None
            with open(path) as f:
                body = yaml.load(f)
            for name, context_names in body.iteritems():
                temporal_contexts = [
                    cname for cname in context_names if '*' in cname
                ]
                temporal_context = temporal_contexts[0].strip(
                    '*') if temporal_contexts else ''
                context_names = [
                    context_name
                    if '*' not in context_name else context_name.strip('*')
                    for context_name in context_names
                ]
                context_ids = [
                    contexts[i] for i in context_names if i in contexts
                ]
                self.dataset_management.create_parameter_dictionary(
                    name=name,
                    parameter_context_ids=context_ids,
                    temporal_context=temporal_context)
        except Exception as e:
            log.error('Problem loading dictionaries, stopping: %s', e.message)
コード例 #2
0
class BootstrapParameterDefinitions(BootstrapPlugin):
    '''
    Bootstrap plugin for preloading standard parameter definitions
    '''
    def on_initial_bootstrap(self, process, config, **kwargs):
        self.dataset_management = DatasetManagementServiceProcessClient(process=process)
        self.dict_defs = config.get_safe('process.bootstrap.dict_defs','res/config/param_dict_defs.yml')
        self.context_path = config.get_safe('process.bootstrap.definitions', 'ion.core.plugin')
        self.loader_config = config.get_safe('process.bootstrap.config', {})

        contexts = self.load_contexts()
        self.load_dictionaries(self.dict_defs, contexts)


    def load_contexts(self):

        try:
            contexts = ParameterLoader.build_contexts(self.context_path, self.loader_config)
            for name, context in contexts.iteritems():
                context_id = self.dataset_management.create_parameter_context(name=name, parameter_context=context.dump())
                contexts[name] = context_id
        except Exception as e:
            print 'Exception %s: %s' %(type(e), e.message)

        print 'Loaded %s Parameter Contexts' % len(contexts)
        return contexts

    def load_dictionaries(self, path, contexts):
        try:
            body = None
            with open(path) as f:
                body = yaml.load(f)
            for name,context_names in body.iteritems():
                temporal_contexts = [cname for cname in context_names if '*' in cname]
                temporal_context = temporal_contexts[0].strip('*') if temporal_contexts else ''
                context_names = [context_name if '*' not in context_name else context_name.strip('*') for context_name in context_names]
                context_ids = [contexts[i] for i in context_names if i in contexts]
                self.dataset_management.create_parameter_dictionary(name=name, 
                                            parameter_context_ids=context_ids,
                                            temporal_context = temporal_context)
        except Exception as e:
            log.error('Problem loading dictionaries, stopping: %s', e.message)