in functions/source/asset-model-converter/asset_converter.py [0:0]
def setup_asset(self, obj_type, external_id, name, model_name, hierarchy_name, datastream_descriptions={}):
record_id = self.__dynamo_record_id(obj_type, external_id)
dynamo_record = self.assets_cache.get(record_id)
if dynamo_record:
if dynamo_record['AssetName'] != name:
self.sitewise_client.update_asset(dynamo_record['AssetId'], name)
dynamo_record['AssetName'] = name
self.assets_cache.save(dynamo_record)
asset_description = self.sitewise_client.describe_asset(dynamo_record['AssetId'])
properties_to_update = self.__asset_properties(obj_type, external_id, asset_description, datastream_descriptions)
self.sitewise_client.update_asset_properties(asset_description['assetId'], properties_to_update)
return dynamo_record
model_id = self.__sitewise_model_id(model_name)
if model_id is None:
logger.info(f'No cached model {model_name} found')
return None
asset_description = self.sitewise_client.create_asset(name, model_id)
if asset_description is None:
return None
properties_to_update = self.__asset_properties(obj_type, external_id, asset_description, datastream_descriptions)
self.sitewise_client.update_asset_properties(asset_description['assetId'], properties_to_update)
dynamo_item = SitewiseAssetsCache.item(record_id, asset_description['assetId'], name, hierarchy_name)
self.assets_cache.save(dynamo_item)
return dynamo_item