6 Copyright (C) e2its - All Rights Reserved 7 * Unauthorized copying of this file, via any medium is strictly prohibited 8 * Proprietary and confidential 10 * This file is part of gDayF project. 12 * Written by Jose L. Sanchez <e2its.es@gmail.com>, 2016-2019 16 from collections
import OrderedDict
19 from copy
import deepcopy
41 def append(self, value, fstype='localfs', hash_type='MD5'):
43 assert fstype
in [
'localfs',
'hdfs',
'mongoDB']
44 assert hash_type
in [
'MD5',
'SHA256']
49 fs[
'hash_type'] = hash_type
51 if fstype ==
'localfs' and path.exists(value)
and not path.isdir(value):
52 fs[
'hash_value'] = hash_key(hash_type=hash_type, filename=fs[
'value'])
54 fs[
'hash_value'] =
None 55 super(StorageMetadata, self).
append(fs)
57 super(StorageMetadata, self).
append(value)
70 return deepcopy(self.
_config[
'storage'][
'log_path'])
91 if not self.
_config[
'storage'][
'localfs_debug_mode']
and not include:
92 for each_storage
in storage_metadata:
93 if each_storage[
'type'] ==
'localfs':
94 equals.append(each_storage)
95 for deleter
in equals:
96 storage_metadata.remove(deleter)
98 return storage_metadata
105 config = e_c.config.get_config()
106 fw = get_model_fw(armetadata)
108 model_id = armetadata[
'model_parameters'][fw][
'parameters'][
'model_id'][
'value']
109 compress = config[
'persistence'][
'compress_json']
112 command =
'json_storage.get_' + json_type +
'_path()' 113 for each_storage_type
in eval(command):
114 if each_storage_type[
'type']
in [
'localfs',
'hdfs']:
115 primary_path = config[
'storage'][each_storage_type[
'type']][
'value']
117 source_data.append(primary_path)
118 source_data.append(
'/')
119 source_data.append(armetadata[
'user_id'])
120 source_data.append(
'/')
121 source_data.append(armetadata[
'workflow_id'])
122 source_data.append(
'/')
123 source_data.append(armetadata[
'model_id'])
124 source_data.append(
'/')
125 source_data.append(fw)
126 source_data.append(
'/')
127 source_data.append(armetadata[
'type'])
128 source_data.append(
'/')
129 source_data.append(str(armetadata[
'timestamp']))
130 source_data.append(
'/')
132 specific_data = list()
133 specific_data.append(each_storage_type[
'value'])
134 specific_data.append(
'/')
135 specific_data.append(model_id)
136 specific_data.append(
'.json')
138 specific_data.append(
'.gz')
140 json_path =
''.join(source_data)
141 json_path +=
''.join(specific_data)
142 json_storage.append(value=json_path, fstype=each_storage_type[
'type'],
143 hash_type=each_storage_type[
'hash_type'])
146 if json_type ==
'json':
148 source_data.append(
'/')
149 source_data.append(armetadata[
'user_id'])
150 source_data.append(
'/')
151 source_data.append(armetadata[
'workflow_id'])
152 source_data.append(
'/')
153 source_data.append(armetadata[
'model_id'])
154 source_data.append(
'/')
155 source_data.append(model_id)
156 json_path =
''.join(source_data)
157 json_storage.append(value=json_path, fstype=each_storage_type[
'type'],
158 hash_type=each_storage_type[
'hash_type'])
160 json_storage.append(value=each_storage_type[
'value'], fstype=each_storage_type[
'type'],
161 hash_type=each_storage_type[
'hash_type'])
163 command = json_type +
'_path' 164 armetadata[command] = json_storage
Define all objects, functions and structs related to common utilities not associated to one concrete ...