Ejemplo n.º 1
0
    def __init__(self,config=None,configfilename="./lri_config.json",create_indices=False,in_test_mode=False,verbose=False):
        self.configfilename = configfilename
        if config:
            self.config = config
        else:
            self.config = json.loads(open(self.configfilename).read())
        self.dbdir=self.config.get('neo4j_dir',"./db")
        self.log = lrilog.lrilog("LRIDB",verbose=verbose,outfilename=self.dbdir+"/LRI_DEBUG.log")
        self.server_url = "http://%s:%d/db/data/" % (self.config.get('neo4j_server_host','localhost'),
                                                     self.config.get('neo4j_server_port',7474))
        self.bootstrap_filenames = self.config.get('bootstrap_filenames',[])
        self.creator_guid=self.config.get('default_creator_guid',default_creator_guid)
        self.in_test_mode = in_test_mode
        if create_indices or in_test_mode:
            self.in_bootstrap = True
        else:
            self.in_bootstrap = False
        self.link_index=None
        self.attr_index=None
        self.errors=[]
        self.warns=[]

        # Boot up
        if not self.in_test_mode:
            self.open()
        self.boot(create_indices=create_indices)
Ejemplo n.º 2
0
    def __init__(self, bootstrap_filenames=[default_bootstrap_file], in_test_mode=False, creator=None):
        self.s = {"datatypes": {}, "types": {}, "properties": {}}
        self.index = {"datatypes": {}, "types": {}, "properties": {}, "id": {}, "guid": {}}
        self.creator = creator
        self.log = lrilog.lrilog("SCHEMA")
        global guid_to_id
        guid_to_id = self.index["guid"]

        self.errors = []
        self.warns = []
        self.bootstrap_filenames = bootstrap_filenames
        self.in_test_mode = in_test_mode
Ejemplo n.º 3
0
    def __init__(self,rec={},entity_guid=None,entity=None,creator=None,proptype=None,value=None,db=None,guid=None,validate_entity=True):

        self.db=db
        self.rec=copy.deepcopy(rec)
        self.errors=[]
        self.creator = creator
        self.invalid_fields={}
        self.is_valid=False
        self.link = None
        self.log = lrilog.lrilog("PROP")
        self.entity=entity
        if self.entity:
            self.entity_guid = self.entity.rec.get("urn:lri:property_type:guid")
        else:
            self.entity_guid = entity_guid

        if self.creator:
            self.rec["creator"] = self.creator

        self.log.debug("PROP INIT ENTITY GUID =",self.entity_guid,self.entity)
        
        # Extract our property name/value
        for k,v in self.rec.items():
            if k.startswith('urn:') and v != None: 
                self.rec['proptype'] = k
                self.rec['value'] = v


        self.guid=guid

        if guid:
            # prop exists, let's get it
            self.link = self.db.get_prop(guid)
            if self.link:
                for k,v in self.db.internal_properties(self.link).items():
                    if k != 'rec':
                        self.rec[k] = self.link[k]
                self.is_valid = True
            else:
                self.errors.append("Invalid property GUID.  Could not find.")
        elif proptype and value != None:
            self.log.debug("INIT FOR PROPERTY CREATE",entity,proptype,value,"\n\n\n")
            # we need to generate our fields and create our property
            self.rec["proptype"] = proptype
            self.rec["value"] = value
            self.prepare_for_creation()            
            self.validate_fields()
        elif 'guid' not in self.rec and 'proptype' in self.rec and ('value' in self.rec or 'to' in self.rec):
            self.prepare_for_creation()            
            self.validate_fields()
        else:
            self.errors.append("Not enough specification to find or create property.")
Ejemplo n.º 4
0
    def __init__(self, rec={}, user=None, db=None, creator=None):

        self.user = user
        self.db = db
        self.jsondata = None
        self.props = {}
        self.errors = []
        self.invalid_properties = {}
        self.is_valid = False
        self.guid = None
        self.creator = creator
        self.log = lrilog.lrilog("ENTITY")

        # Figure out what kind of initialization data we have
        self.rec = copy.deepcopy(rec)
        self.clean()
        self.parse_properties()
        if not self.errors:
            self.validate_properties()
        else:
            self.is_valid = False