oboa 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- oboa/__init__.py +0 -0
- oboa/config/__init__.py +3 -0
- oboa/config/datamodel.json +11 -0
- oboa/config/engine.json +19 -0
- oboa/config/orchestrator_configuration.xml +3 -0
- oboa/datamodel/__init__.py +3 -0
- oboa/datamodel/base.py +22 -0
- oboa/datamodel/errors.py +15 -0
- oboa/datamodel/functions.py +55 -0
- oboa/datamodel/oboa_data_model.dbm +265 -0
- oboa/datamodel/oboa_data_model.sql +229 -0
- oboa/datamodel/orchestrated_files.py +223 -0
- oboa/engine/__init__.py +3 -0
- oboa/engine/archive_client.py +69 -0
- oboa/engine/commands.py +377 -0
- oboa/engine/daemon.py +240 -0
- oboa/engine/engine.py +1117 -0
- oboa/engine/errors.py +75 -0
- oboa/engine/functions.py +345 -0
- oboa/engine/operators.py +23 -0
- oboa/engine/parsing.py +194 -0
- oboa/engine/query.py +431 -0
- oboa/engine/xpath_functions.py +43 -0
- oboa/logging.py +139 -0
- oboa/processors/__init__.py +3 -0
- oboa/processors/base_processor.py +251 -0
- oboa/schemas/__init__.py +3 -0
- oboa/schemas/oboa_orchestrator_configuration.xsd +25 -0
- oboa/scripts/__init__.py +3 -0
- oboa/scripts/initialize_oboa_ddbb.sh +25 -0
- oboa/scripts/oboa_configure.py +22 -0
- oboa/scripts/oboa_daemon.py +22 -0
- oboa/scripts/oboa_init.py +145 -0
- oboa/scripts/oboa_init_ddbb.sh +99 -0
- oboa/scripts/oboa_orchestrate.py +22 -0
- oboa/scripts/oboa_poll.py +22 -0
- oboa/scripts/oboa_query.py +22 -0
- oboa/scripts/start_oboa.sh +6 -0
- oboa-0.1.0.dist-info/METADATA +454 -0
- oboa-0.1.0.dist-info/RECORD +45 -0
- oboa-0.1.0.dist-info/WHEEL +5 -0
- oboa-0.1.0.dist-info/entry_points.txt +7 -0
- oboa-0.1.0.dist-info/licenses/AUTHORS +5 -0
- oboa-0.1.0.dist-info/licenses/LICENSE +19 -0
- oboa-0.1.0.dist-info/top_level.txt +1 -0
oboa/__init__.py
ADDED
|
File without changes
|
oboa/config/__init__.py
ADDED
oboa/config/engine.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": {
|
|
3
|
+
"LEVEL": "INFO",
|
|
4
|
+
"MAX_BYTES": 50000000,
|
|
5
|
+
"MAX_BACKUP": 30
|
|
6
|
+
},
|
|
7
|
+
"ORCHESTRATION": {
|
|
8
|
+
"polling_dir": "/oboa_polling",
|
|
9
|
+
"polling_frequency": 30,
|
|
10
|
+
"delete_after_archive": true,
|
|
11
|
+
"processing_dir": "/oboa_processing",
|
|
12
|
+
"error_dir": "/oboa_error"
|
|
13
|
+
},
|
|
14
|
+
"DAEMON": {
|
|
15
|
+
"pid_file": "/tmp/oboa.pid",
|
|
16
|
+
"database_startup_attempts": 30,
|
|
17
|
+
"database_startup_wait_seconds": 2
|
|
18
|
+
}
|
|
19
|
+
}
|
oboa/datamodel/base.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Connection configuration for the OBOA component.
|
|
3
|
+
|
|
4
|
+
module oboa
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from sqlalchemy import create_engine
|
|
8
|
+
from sqlalchemy.ext.declarative import declarative_base
|
|
9
|
+
from sqlalchemy.orm import sessionmaker
|
|
10
|
+
|
|
11
|
+
from oboa.datamodel.functions import read_configuration
|
|
12
|
+
|
|
13
|
+
config = read_configuration()
|
|
14
|
+
|
|
15
|
+
db_configuration = config["DDBB_CONFIGURATION"]
|
|
16
|
+
|
|
17
|
+
db_uri = "{db_api}://{user}@{host}:{port}/{database}".format(**db_configuration)
|
|
18
|
+
|
|
19
|
+
engine = create_engine(db_uri, pool_size=db_configuration["pool_size"], max_overflow=db_configuration["max_overflow"])
|
|
20
|
+
Session = sessionmaker(bind=engine)
|
|
21
|
+
|
|
22
|
+
Base = declarative_base()
|
oboa/datamodel/errors.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Configuration helpers for the OBOA datamodel.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
7
|
+
|
|
8
|
+
from oboa.datamodel.errors import OboaResourcesPathNotAvailable
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def default_resources_path():
|
|
12
|
+
"""
|
|
13
|
+
Return the package default resources path.
|
|
14
|
+
|
|
15
|
+
:return: package ``config`` directory path
|
|
16
|
+
:rtype: str
|
|
17
|
+
"""
|
|
18
|
+
return os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "config"))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_resources_path():
|
|
22
|
+
"""
|
|
23
|
+
Return the configured OBOA resources path.
|
|
24
|
+
|
|
25
|
+
:return: resource directory containing ``datamodel.json``
|
|
26
|
+
:rtype: str
|
|
27
|
+
|
|
28
|
+
:raises OboaResourcesPathNotAvailable: when the configured directory is not
|
|
29
|
+
available
|
|
30
|
+
"""
|
|
31
|
+
resources_path = os.environ.get("OBOA_RESOURCES_PATH", default_resources_path())
|
|
32
|
+
if not os.path.isdir(resources_path):
|
|
33
|
+
raise OboaResourcesPathNotAvailable(
|
|
34
|
+
"The OBOA resources path {} is not available".format(resources_path)
|
|
35
|
+
)
|
|
36
|
+
return resources_path
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def read_configuration():
|
|
40
|
+
"""
|
|
41
|
+
Read the datamodel configuration JSON.
|
|
42
|
+
|
|
43
|
+
:return: parsed datamodel configuration
|
|
44
|
+
:rtype: dict
|
|
45
|
+
|
|
46
|
+
:raises OboaResourcesPathNotAvailable: when the resources directory is not
|
|
47
|
+
available
|
|
48
|
+
"""
|
|
49
|
+
with open(os.path.join(get_resources_path(), "datamodel.json"), encoding="utf-8") as json_data_file:
|
|
50
|
+
config = json.load(json_data_file)
|
|
51
|
+
|
|
52
|
+
if "OBOA_DDBB_HOST" in os.environ:
|
|
53
|
+
config["DDBB_CONFIGURATION"]["host"] = os.environ["OBOA_DDBB_HOST"]
|
|
54
|
+
|
|
55
|
+
return config
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
CAUTION: Do not modify this file unless you know what you are doing.
|
|
4
|
+
Unexpected results may occur if the code is changed deliberately.
|
|
5
|
+
-->
|
|
6
|
+
<dbmodel pgmodeler-ver="1.2.3" use-changelog="false" max-obj-count="4"
|
|
7
|
+
gen-disabled-objs-code="false" show-sys-schemas-rects="true"
|
|
8
|
+
last-position="0,0" last-zoom="1" scene-rect="0,0,1280,720"
|
|
9
|
+
default-owner="postgres"
|
|
10
|
+
layers="Default"
|
|
11
|
+
active-layers="0"
|
|
12
|
+
layer-name-colors="#000000"
|
|
13
|
+
layer-rect-colors="#b4b4b4"
|
|
14
|
+
show-layer-names="false" show-layer-rects="false">
|
|
15
|
+
<role name="oboa"
|
|
16
|
+
inherit="true"
|
|
17
|
+
login="true">
|
|
18
|
+
</role>
|
|
19
|
+
|
|
20
|
+
<database name="oboadb" is-template="false" allow-conns="true">
|
|
21
|
+
</database>
|
|
22
|
+
|
|
23
|
+
<schema name="public" layers="0" fill-color="#e1e1e1" name-color="#000000" sql-disabled="true">
|
|
24
|
+
</schema>
|
|
25
|
+
|
|
26
|
+
<schema name="oboa" layers="0" fill-color="#e1e1e1" name-color="#000000">
|
|
27
|
+
<role name="oboa"/>
|
|
28
|
+
</schema>
|
|
29
|
+
|
|
30
|
+
<table name="orchestration_configurations" layers="0" collapse-mode="2" max-obj-count="7" z-value="0">
|
|
31
|
+
<schema name="oboa"/>
|
|
32
|
+
<role name="oboa"/>
|
|
33
|
+
<position x="120" y="140"/>
|
|
34
|
+
<column name="orchestration_configuration_uuid" not-null="true">
|
|
35
|
+
<type name="text" length="0"/>
|
|
36
|
+
</column>
|
|
37
|
+
<column name="path" not-null="true">
|
|
38
|
+
<type name="text" length="0"/>
|
|
39
|
+
</column>
|
|
40
|
+
<column name="active_from" not-null="true">
|
|
41
|
+
<type name="timestamp" length="0"/>
|
|
42
|
+
</column>
|
|
43
|
+
<column name="active_until">
|
|
44
|
+
<type name="timestamp" length="0"/>
|
|
45
|
+
</column>
|
|
46
|
+
<column name="active" not-null="true">
|
|
47
|
+
<type name="bool" length="0"/>
|
|
48
|
+
</column>
|
|
49
|
+
<column name="content" not-null="true">
|
|
50
|
+
<type name="text" length="0"/>
|
|
51
|
+
</column>
|
|
52
|
+
<constraint name="orchestration_configurations_pk" type="pk-constr" table="oboa.orchestration_configurations">
|
|
53
|
+
<columns names="orchestration_configuration_uuid" ref-type="src-columns"/>
|
|
54
|
+
</constraint>
|
|
55
|
+
</table>
|
|
56
|
+
|
|
57
|
+
<table name="orchestrated_files" layers="0" collapse-mode="2" max-obj-count="10" z-value="0">
|
|
58
|
+
<schema name="oboa"/>
|
|
59
|
+
<role name="oboa"/>
|
|
60
|
+
<position x="580" y="140"/>
|
|
61
|
+
<column name="file_uuid" not-null="true">
|
|
62
|
+
<type name="text" length="0"/>
|
|
63
|
+
</column>
|
|
64
|
+
<column name="name" not-null="true">
|
|
65
|
+
<type name="text" length="0"/>
|
|
66
|
+
</column>
|
|
67
|
+
<column name="path" not-null="true">
|
|
68
|
+
<type name="text" length="0"/>
|
|
69
|
+
</column>
|
|
70
|
+
<column name="file_group" not-null="true">
|
|
71
|
+
<type name="text" length="0"/>
|
|
72
|
+
</column>
|
|
73
|
+
<column name="reception_date" not-null="true">
|
|
74
|
+
<type name="timestamp" length="0"/>
|
|
75
|
+
</column>
|
|
76
|
+
<column name="archived" not-null="true">
|
|
77
|
+
<type name="bool" length="0"/>
|
|
78
|
+
</column>
|
|
79
|
+
<column name="processed" not-null="true">
|
|
80
|
+
<type name="bool" length="0"/>
|
|
81
|
+
</column>
|
|
82
|
+
<constraint name="orchestrated_files_pk" type="pk-constr" table="oboa.orchestrated_files">
|
|
83
|
+
<columns names="file_uuid" ref-type="src-columns"/>
|
|
84
|
+
</constraint>
|
|
85
|
+
|
|
86
|
+
<customidxs object-type="column">
|
|
87
|
+
<object name="orchestration_configuration_uuid" index="7"/>
|
|
88
|
+
</customidxs>
|
|
89
|
+
<customidxs object-type="constraint">
|
|
90
|
+
<object name="orchestrated_files_orchestration_configurations_fk" index="1"/>
|
|
91
|
+
</customidxs></table>
|
|
92
|
+
|
|
93
|
+
<relationship name="orchestration_configurations_has_many_orchestrated_files" type="rel1n" layers="0"
|
|
94
|
+
src-col-pattern="orchestration_configuration_uuid"
|
|
95
|
+
pk-pattern="{dt}_pk" uq-pattern="{dt}_uq"
|
|
96
|
+
src-fk-pattern="orchestrated_files_orchestration_configurations_fk"
|
|
97
|
+
fk-idx-pattern="idx_orchestrated_files_orchestration_configuration_uuid"
|
|
98
|
+
custom-color="#3d7fc4"
|
|
99
|
+
src-table="oboa.orchestration_configurations"
|
|
100
|
+
dst-table="oboa.orchestrated_files"
|
|
101
|
+
src-required="false" dst-required="false"
|
|
102
|
+
del-action="SET NULL"/>
|
|
103
|
+
|
|
104
|
+
<table name="orchestration_operations" layers="0" collapse-mode="2" max-obj-count="8" z-value="0">
|
|
105
|
+
<schema name="oboa"/>
|
|
106
|
+
<role name="oboa"/>
|
|
107
|
+
<position x="1040" y="140"/>
|
|
108
|
+
<column name="operation_uuid" not-null="true">
|
|
109
|
+
<type name="text" length="0"/>
|
|
110
|
+
</column>
|
|
111
|
+
<column name="operation" not-null="true">
|
|
112
|
+
<type name="text" length="0"/>
|
|
113
|
+
</column>
|
|
114
|
+
<column name="time_stamp" not-null="true">
|
|
115
|
+
<type name="timestamp" length="0"/>
|
|
116
|
+
</column>
|
|
117
|
+
<column name="status" not-null="true">
|
|
118
|
+
<type name="integer" length="0"/>
|
|
119
|
+
</column>
|
|
120
|
+
<column name="message">
|
|
121
|
+
<type name="text" length="0"/>
|
|
122
|
+
</column>
|
|
123
|
+
<constraint name="orchestration_operations_pk" type="pk-constr" table="oboa.orchestration_operations">
|
|
124
|
+
<columns names="operation_uuid" ref-type="src-columns"/>
|
|
125
|
+
</constraint>
|
|
126
|
+
|
|
127
|
+
<customidxs object-type="column">
|
|
128
|
+
<object name="file_uuid" index="5"/>
|
|
129
|
+
</customidxs>
|
|
130
|
+
<customidxs object-type="constraint">
|
|
131
|
+
<object name="orchestration_operations_orchestrated_files_fk" index="1"/>
|
|
132
|
+
</customidxs></table>
|
|
133
|
+
|
|
134
|
+
<relationship name="orchestrated_files_has_many_orchestration_operations" type="rel1n" layers="0"
|
|
135
|
+
src-col-pattern="file_uuid"
|
|
136
|
+
pk-pattern="{dt}_pk" uq-pattern="{dt}_uq"
|
|
137
|
+
src-fk-pattern="orchestration_operations_orchestrated_files_fk"
|
|
138
|
+
fk-idx-pattern="idx_orchestration_operations_file_uuid"
|
|
139
|
+
custom-color="#c97030"
|
|
140
|
+
src-table="oboa.orchestrated_files"
|
|
141
|
+
dst-table="oboa.orchestration_operations"
|
|
142
|
+
src-required="false" dst-required="false"
|
|
143
|
+
del-action="SET NULL"/>
|
|
144
|
+
|
|
145
|
+
<index name="idx_orchestration_configurations_path" table="oboa.orchestration_configurations"
|
|
146
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
147
|
+
index-type="btree" factor="0">
|
|
148
|
+
<idxelement use-sorting="false">
|
|
149
|
+
<column name="path"/>
|
|
150
|
+
</idxelement>
|
|
151
|
+
</index>
|
|
152
|
+
|
|
153
|
+
<index name="idx_orchestration_configurations_active_from" table="oboa.orchestration_configurations"
|
|
154
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
155
|
+
index-type="btree" factor="0">
|
|
156
|
+
<idxelement use-sorting="false">
|
|
157
|
+
<column name="active_from"/>
|
|
158
|
+
</idxelement>
|
|
159
|
+
</index>
|
|
160
|
+
|
|
161
|
+
<index name="idx_orchestration_configurations_active_until" table="oboa.orchestration_configurations"
|
|
162
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
163
|
+
index-type="btree" factor="0">
|
|
164
|
+
<idxelement use-sorting="false">
|
|
165
|
+
<column name="active_until"/>
|
|
166
|
+
</idxelement>
|
|
167
|
+
</index>
|
|
168
|
+
|
|
169
|
+
<index name="idx_orchestration_configurations_active" table="oboa.orchestration_configurations"
|
|
170
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
171
|
+
index-type="btree" factor="0">
|
|
172
|
+
<idxelement use-sorting="false">
|
|
173
|
+
<column name="active"/>
|
|
174
|
+
</idxelement>
|
|
175
|
+
</index>
|
|
176
|
+
|
|
177
|
+
<index name="idx_orchestrated_files_name" table="oboa.orchestrated_files"
|
|
178
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
179
|
+
index-type="btree" factor="0">
|
|
180
|
+
<idxelement use-sorting="false">
|
|
181
|
+
<column name="name"/>
|
|
182
|
+
</idxelement>
|
|
183
|
+
</index>
|
|
184
|
+
|
|
185
|
+
<index name="idx_orchestrated_files_path" table="oboa.orchestrated_files"
|
|
186
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
187
|
+
index-type="btree" factor="0">
|
|
188
|
+
<idxelement use-sorting="false">
|
|
189
|
+
<column name="path"/>
|
|
190
|
+
</idxelement>
|
|
191
|
+
</index>
|
|
192
|
+
|
|
193
|
+
<index name="idx_orchestrated_files_file_group" table="oboa.orchestrated_files"
|
|
194
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
195
|
+
index-type="btree" factor="0">
|
|
196
|
+
<idxelement use-sorting="false">
|
|
197
|
+
<column name="file_group"/>
|
|
198
|
+
</idxelement>
|
|
199
|
+
</index>
|
|
200
|
+
|
|
201
|
+
<index name="idx_orchestrated_files_reception_date" table="oboa.orchestrated_files"
|
|
202
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
203
|
+
index-type="btree" factor="0">
|
|
204
|
+
<idxelement use-sorting="false">
|
|
205
|
+
<column name="reception_date"/>
|
|
206
|
+
</idxelement>
|
|
207
|
+
</index>
|
|
208
|
+
|
|
209
|
+
<index name="idx_orchestrated_files_archived" table="oboa.orchestrated_files"
|
|
210
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
211
|
+
index-type="btree" factor="0">
|
|
212
|
+
<idxelement use-sorting="false">
|
|
213
|
+
<column name="archived"/>
|
|
214
|
+
</idxelement>
|
|
215
|
+
</index>
|
|
216
|
+
|
|
217
|
+
<index name="idx_orchestrated_files_processed" table="oboa.orchestrated_files"
|
|
218
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
219
|
+
index-type="btree" factor="0">
|
|
220
|
+
<idxelement use-sorting="false">
|
|
221
|
+
<column name="processed"/>
|
|
222
|
+
</idxelement>
|
|
223
|
+
</index>
|
|
224
|
+
|
|
225
|
+
<index name="idx_orchestrated_files_orchestration_configuration_uuid" table="oboa.orchestrated_files"
|
|
226
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
227
|
+
index-type="btree" factor="0">
|
|
228
|
+
<idxelement use-sorting="false">
|
|
229
|
+
<column name="orchestration_configuration_uuid"/>
|
|
230
|
+
</idxelement>
|
|
231
|
+
</index>
|
|
232
|
+
|
|
233
|
+
<index name="idx_orchestration_operations_operation" table="oboa.orchestration_operations"
|
|
234
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
235
|
+
index-type="btree" factor="0">
|
|
236
|
+
<idxelement use-sorting="false">
|
|
237
|
+
<column name="operation"/>
|
|
238
|
+
</idxelement>
|
|
239
|
+
</index>
|
|
240
|
+
|
|
241
|
+
<index name="idx_orchestration_operations_time_stamp" table="oboa.orchestration_operations"
|
|
242
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
243
|
+
index-type="btree" factor="0">
|
|
244
|
+
<idxelement use-sorting="false">
|
|
245
|
+
<column name="time_stamp"/>
|
|
246
|
+
</idxelement>
|
|
247
|
+
</index>
|
|
248
|
+
|
|
249
|
+
<index name="idx_orchestration_operations_status" table="oboa.orchestration_operations"
|
|
250
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
251
|
+
index-type="btree" factor="0">
|
|
252
|
+
<idxelement use-sorting="false">
|
|
253
|
+
<column name="status"/>
|
|
254
|
+
</idxelement>
|
|
255
|
+
</index>
|
|
256
|
+
|
|
257
|
+
<index name="idx_orchestration_operations_file_uuid" table="oboa.orchestration_operations"
|
|
258
|
+
concurrent="false" unique="false" fast-update="false" buffering="false" nulls-not-distinct="false"
|
|
259
|
+
index-type="btree" factor="0">
|
|
260
|
+
<idxelement use-sorting="false">
|
|
261
|
+
<column name="file_uuid"/>
|
|
262
|
+
</idxelement>
|
|
263
|
+
</index>
|
|
264
|
+
|
|
265
|
+
</dbmodel>
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
-- ** Database generated with pgModeler (PostgreSQL Database Modeler).
|
|
2
|
+
-- ** pgModeler version: 1.2.3
|
|
3
|
+
-- ** PostgreSQL version: 18.0
|
|
4
|
+
-- ** Project Site: pgmodeler.io
|
|
5
|
+
-- ** Model Author: ---
|
|
6
|
+
-- object: oboa | type: ROLE --
|
|
7
|
+
-- DROP ROLE IF EXISTS oboa;
|
|
8
|
+
CREATE ROLE oboa WITH
|
|
9
|
+
INHERIT
|
|
10
|
+
LOGIN;
|
|
11
|
+
-- ddl-end --
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
-- ** Database creation must be performed outside a multi lined SQL file.
|
|
15
|
+
-- ** These commands were put in this file only as a convenience.
|
|
16
|
+
|
|
17
|
+
-- object: oboadb | type: DATABASE --
|
|
18
|
+
-- DROP DATABASE IF EXISTS oboadb;
|
|
19
|
+
CREATE DATABASE oboadb;
|
|
20
|
+
-- ddl-end --
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
-- object: oboa | type: SCHEMA --
|
|
24
|
+
-- DROP SCHEMA IF EXISTS oboa CASCADE;
|
|
25
|
+
CREATE SCHEMA oboa;
|
|
26
|
+
-- ddl-end --
|
|
27
|
+
ALTER SCHEMA oboa OWNER TO oboa;
|
|
28
|
+
-- ddl-end --
|
|
29
|
+
|
|
30
|
+
SET search_path TO pg_catalog,public,oboa;
|
|
31
|
+
-- ddl-end --
|
|
32
|
+
|
|
33
|
+
-- object: oboa.orchestration_configurations | type: TABLE --
|
|
34
|
+
-- DROP TABLE IF EXISTS oboa.orchestration_configurations CASCADE;
|
|
35
|
+
CREATE TABLE oboa.orchestration_configurations (
|
|
36
|
+
orchestration_configuration_uuid text NOT NULL,
|
|
37
|
+
path text NOT NULL,
|
|
38
|
+
active_from timestamp NOT NULL,
|
|
39
|
+
active_until timestamp,
|
|
40
|
+
active bool NOT NULL,
|
|
41
|
+
content text NOT NULL,
|
|
42
|
+
CONSTRAINT orchestration_configurations_pk PRIMARY KEY (orchestration_configuration_uuid)
|
|
43
|
+
);
|
|
44
|
+
-- ddl-end --
|
|
45
|
+
ALTER TABLE oboa.orchestration_configurations OWNER TO oboa;
|
|
46
|
+
-- ddl-end --
|
|
47
|
+
|
|
48
|
+
-- object: oboa.orchestrated_files | type: TABLE --
|
|
49
|
+
-- DROP TABLE IF EXISTS oboa.orchestrated_files CASCADE;
|
|
50
|
+
CREATE TABLE oboa.orchestrated_files (
|
|
51
|
+
file_uuid text NOT NULL,
|
|
52
|
+
name text NOT NULL,
|
|
53
|
+
path text NOT NULL,
|
|
54
|
+
file_group text NOT NULL,
|
|
55
|
+
reception_date timestamp NOT NULL,
|
|
56
|
+
archived bool NOT NULL,
|
|
57
|
+
processed bool NOT NULL,
|
|
58
|
+
orchestration_configuration_uuid text,
|
|
59
|
+
CONSTRAINT orchestrated_files_pk PRIMARY KEY (file_uuid)
|
|
60
|
+
);
|
|
61
|
+
-- ddl-end --
|
|
62
|
+
ALTER TABLE oboa.orchestrated_files OWNER TO oboa;
|
|
63
|
+
-- ddl-end --
|
|
64
|
+
|
|
65
|
+
-- object: orchestrated_files_orchestration_configurations_fk | type: CONSTRAINT --
|
|
66
|
+
-- ALTER TABLE oboa.orchestrated_files DROP CONSTRAINT IF EXISTS orchestrated_files_orchestration_configurations_fk CASCADE;
|
|
67
|
+
ALTER TABLE oboa.orchestrated_files ADD CONSTRAINT orchestrated_files_orchestration_configurations_fk FOREIGN KEY (orchestration_configuration_uuid)
|
|
68
|
+
REFERENCES oboa.orchestration_configurations (orchestration_configuration_uuid) MATCH FULL
|
|
69
|
+
ON DELETE SET NULL ON UPDATE CASCADE;
|
|
70
|
+
-- ddl-end --
|
|
71
|
+
|
|
72
|
+
-- object: oboa.orchestration_operations | type: TABLE --
|
|
73
|
+
-- DROP TABLE IF EXISTS oboa.orchestration_operations CASCADE;
|
|
74
|
+
CREATE TABLE oboa.orchestration_operations (
|
|
75
|
+
operation_uuid text NOT NULL,
|
|
76
|
+
operation text NOT NULL,
|
|
77
|
+
time_stamp timestamp NOT NULL,
|
|
78
|
+
status integer NOT NULL,
|
|
79
|
+
message text,
|
|
80
|
+
file_uuid text,
|
|
81
|
+
CONSTRAINT orchestration_operations_pk PRIMARY KEY (operation_uuid)
|
|
82
|
+
);
|
|
83
|
+
-- ddl-end --
|
|
84
|
+
ALTER TABLE oboa.orchestration_operations OWNER TO oboa;
|
|
85
|
+
-- ddl-end --
|
|
86
|
+
|
|
87
|
+
-- object: orchestration_operations_orchestrated_files_fk | type: CONSTRAINT --
|
|
88
|
+
-- ALTER TABLE oboa.orchestration_operations DROP CONSTRAINT IF EXISTS orchestration_operations_orchestrated_files_fk CASCADE;
|
|
89
|
+
ALTER TABLE oboa.orchestration_operations ADD CONSTRAINT orchestration_operations_orchestrated_files_fk FOREIGN KEY (file_uuid)
|
|
90
|
+
REFERENCES oboa.orchestrated_files (file_uuid) MATCH FULL
|
|
91
|
+
ON DELETE SET NULL ON UPDATE CASCADE;
|
|
92
|
+
-- ddl-end --
|
|
93
|
+
|
|
94
|
+
-- object: idx_orchestration_configurations_path | type: INDEX --
|
|
95
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_configurations_path CASCADE;
|
|
96
|
+
CREATE INDEX idx_orchestration_configurations_path ON oboa.orchestration_configurations
|
|
97
|
+
USING btree
|
|
98
|
+
(
|
|
99
|
+
path
|
|
100
|
+
);
|
|
101
|
+
-- ddl-end --
|
|
102
|
+
|
|
103
|
+
-- object: idx_orchestration_configurations_active_from | type: INDEX --
|
|
104
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_configurations_active_from CASCADE;
|
|
105
|
+
CREATE INDEX idx_orchestration_configurations_active_from ON oboa.orchestration_configurations
|
|
106
|
+
USING btree
|
|
107
|
+
(
|
|
108
|
+
active_from
|
|
109
|
+
);
|
|
110
|
+
-- ddl-end --
|
|
111
|
+
|
|
112
|
+
-- object: idx_orchestration_configurations_active_until | type: INDEX --
|
|
113
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_configurations_active_until CASCADE;
|
|
114
|
+
CREATE INDEX idx_orchestration_configurations_active_until ON oboa.orchestration_configurations
|
|
115
|
+
USING btree
|
|
116
|
+
(
|
|
117
|
+
active_until
|
|
118
|
+
);
|
|
119
|
+
-- ddl-end --
|
|
120
|
+
|
|
121
|
+
-- object: idx_orchestration_configurations_active | type: INDEX --
|
|
122
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_configurations_active CASCADE;
|
|
123
|
+
CREATE INDEX idx_orchestration_configurations_active ON oboa.orchestration_configurations
|
|
124
|
+
USING btree
|
|
125
|
+
(
|
|
126
|
+
active
|
|
127
|
+
);
|
|
128
|
+
-- ddl-end --
|
|
129
|
+
|
|
130
|
+
-- object: idx_orchestrated_files_name | type: INDEX --
|
|
131
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_name CASCADE;
|
|
132
|
+
CREATE INDEX idx_orchestrated_files_name ON oboa.orchestrated_files
|
|
133
|
+
USING btree
|
|
134
|
+
(
|
|
135
|
+
name
|
|
136
|
+
);
|
|
137
|
+
-- ddl-end --
|
|
138
|
+
|
|
139
|
+
-- object: idx_orchestrated_files_path | type: INDEX --
|
|
140
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_path CASCADE;
|
|
141
|
+
CREATE INDEX idx_orchestrated_files_path ON oboa.orchestrated_files
|
|
142
|
+
USING btree
|
|
143
|
+
(
|
|
144
|
+
path
|
|
145
|
+
);
|
|
146
|
+
-- ddl-end --
|
|
147
|
+
|
|
148
|
+
-- object: idx_orchestrated_files_file_group | type: INDEX --
|
|
149
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_file_group CASCADE;
|
|
150
|
+
CREATE INDEX idx_orchestrated_files_file_group ON oboa.orchestrated_files
|
|
151
|
+
USING btree
|
|
152
|
+
(
|
|
153
|
+
file_group
|
|
154
|
+
);
|
|
155
|
+
-- ddl-end --
|
|
156
|
+
|
|
157
|
+
-- object: idx_orchestrated_files_reception_date | type: INDEX --
|
|
158
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_reception_date CASCADE;
|
|
159
|
+
CREATE INDEX idx_orchestrated_files_reception_date ON oboa.orchestrated_files
|
|
160
|
+
USING btree
|
|
161
|
+
(
|
|
162
|
+
reception_date
|
|
163
|
+
);
|
|
164
|
+
-- ddl-end --
|
|
165
|
+
|
|
166
|
+
-- object: idx_orchestrated_files_archived | type: INDEX --
|
|
167
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_archived CASCADE;
|
|
168
|
+
CREATE INDEX idx_orchestrated_files_archived ON oboa.orchestrated_files
|
|
169
|
+
USING btree
|
|
170
|
+
(
|
|
171
|
+
archived
|
|
172
|
+
);
|
|
173
|
+
-- ddl-end --
|
|
174
|
+
|
|
175
|
+
-- object: idx_orchestrated_files_processed | type: INDEX --
|
|
176
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_processed CASCADE;
|
|
177
|
+
CREATE INDEX idx_orchestrated_files_processed ON oboa.orchestrated_files
|
|
178
|
+
USING btree
|
|
179
|
+
(
|
|
180
|
+
processed
|
|
181
|
+
);
|
|
182
|
+
-- ddl-end --
|
|
183
|
+
|
|
184
|
+
-- object: idx_orchestrated_files_orchestration_configuration_uuid | type: INDEX --
|
|
185
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestrated_files_orchestration_configuration_uuid CASCADE;
|
|
186
|
+
CREATE INDEX idx_orchestrated_files_orchestration_configuration_uuid ON oboa.orchestrated_files
|
|
187
|
+
USING btree
|
|
188
|
+
(
|
|
189
|
+
orchestration_configuration_uuid
|
|
190
|
+
);
|
|
191
|
+
-- ddl-end --
|
|
192
|
+
|
|
193
|
+
-- object: idx_orchestration_operations_operation | type: INDEX --
|
|
194
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_operations_operation CASCADE;
|
|
195
|
+
CREATE INDEX idx_orchestration_operations_operation ON oboa.orchestration_operations
|
|
196
|
+
USING btree
|
|
197
|
+
(
|
|
198
|
+
operation
|
|
199
|
+
);
|
|
200
|
+
-- ddl-end --
|
|
201
|
+
|
|
202
|
+
-- object: idx_orchestration_operations_time_stamp | type: INDEX --
|
|
203
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_operations_time_stamp CASCADE;
|
|
204
|
+
CREATE INDEX idx_orchestration_operations_time_stamp ON oboa.orchestration_operations
|
|
205
|
+
USING btree
|
|
206
|
+
(
|
|
207
|
+
time_stamp
|
|
208
|
+
);
|
|
209
|
+
-- ddl-end --
|
|
210
|
+
|
|
211
|
+
-- object: idx_orchestration_operations_status | type: INDEX --
|
|
212
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_operations_status CASCADE;
|
|
213
|
+
CREATE INDEX idx_orchestration_operations_status ON oboa.orchestration_operations
|
|
214
|
+
USING btree
|
|
215
|
+
(
|
|
216
|
+
status
|
|
217
|
+
);
|
|
218
|
+
-- ddl-end --
|
|
219
|
+
|
|
220
|
+
-- object: idx_orchestration_operations_file_uuid | type: INDEX --
|
|
221
|
+
-- DROP INDEX IF EXISTS oboa.idx_orchestration_operations_file_uuid CASCADE;
|
|
222
|
+
CREATE INDEX idx_orchestration_operations_file_uuid ON oboa.orchestration_operations
|
|
223
|
+
USING btree
|
|
224
|
+
(
|
|
225
|
+
file_uuid
|
|
226
|
+
);
|
|
227
|
+
-- ddl-end --
|
|
228
|
+
|
|
229
|
+
|