Skip to content
Snippets Groups Projects
Commit bc8df463 authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

up

parent bda2ff4b
No related branches found
No related tags found
1 merge request!7Treat dependencies among identifiables
Pipeline #9731 failed
...@@ -30,6 +30,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -30,6 +30,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### ### Changed ###
- identifiables of single CFoods are now treated one after the other. This
allows them to have dependencies among each other if they are ordered
correctly
- identifiables must have at least one property or a name - identifiables must have at least one property or a name
* `caosadvancedtools.serverside.helper.init_data_model` also checks the role * `caosadvancedtools.serverside.helper.init_data_model` also checks the role
and data type of entities. and data type of entities.
......
...@@ -576,6 +576,9 @@ carefully and if the changes are ok, click on the following link: ...@@ -576,6 +576,9 @@ carefully and if the changes are ok, click on the following link:
# looking for matching entities in CaosDB when there is no valid id # looking for matching entities in CaosDB when there is no valid id
# i.e. there was none set from a cache # i.e. there was none set from a cache
existing = []
inserted = []
for ent in identifiables: for ent in identifiables:
if ent.id is None or ent.id < 0: if ent.id is None or ent.id < 0:
logger.debug("Looking for: {}".format( logger.debug("Looking for: {}".format(
...@@ -593,25 +596,31 @@ carefully and if the changes are ok, click on the following link: ...@@ -593,25 +596,31 @@ carefully and if the changes are ok, click on the following link:
ent.id = None ent.id = None
else: else:
missing = None missing = None
existing.append(ent)
if missing: if missing:
#info = "Going to insert the following entities:\n"
# for ent in missing_identifiables:
# info += str(ent)+"\n"
# logger.debug(info)
# if len(missing_identifiables) == 0:
# logger.debug("No new entities to be inserted.")
# else:
# logger.info(
# "Inserting {} Records...".format(
# len(missing_identifiables)))
try: try:
guard.safe_insert(missing, unique=False, guard.safe_insert(missing, unique=False,
flags={"force-missing-obligatory": "ignore"}) flags={"force-missing-obligatory": "ignore"})
inserted.append(ent)
except Exception as e: except Exception as e:
DataModelProblems.evaluate_exception(e) DataModelProblems.evaluate_exception(e)
if len(existing) > 0:
info = "Identified the following existing entities:\n"
for ent in existing:
info += str(ent)+"\n"
logger.debug(info)
else:
logger.debug("Did not identify any existing entities")
if len(inserted) > 0:
info = "Inserted the following entities:\n"
for ent in inserted:
info += str(ent)+"\n"
logger.debug(info)
else:
logger.debug("Did not insert any new entities")
logger.debug("Retrieving entities from CaosDB...") logger.debug("Retrieving entities from CaosDB...")
identifiables.retrieve(unique=True, raise_exception_on_error=False) identifiables.retrieve(unique=True, raise_exception_on_error=False)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment