Commit 83e6d528 authored by Roque Porchetto's avatar Roque Porchetto

erp5_wendelin_telecom_ingestion: new windows ebulk tool and handling of ingestions

- tool new name 'ebulk': both windows and unix scripts updated
- handling of interrupted split ingestions (check reference and delete old pending ingestions)
parent 89b7cf0e
......@@ -31,7 +31,7 @@
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts29496012.5</string> </value>
<value> <string>ts30096004.06</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
......@@ -74,7 +74,7 @@
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>download_tool.zip</string> </value>
<value> <string>ebulk_v2.0.zip</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......@@ -92,7 +92,7 @@
</item>
<item>
<key> <string>size</string> </key>
<value> <int>18069</int> </value>
<value> <int>18091</int> </value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -212,7 +212,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.22405.18950.11076</string> </value>
<value> <string>968.32513.26976.42410</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -230,7 +230,7 @@
</tuple>
<state>
<tuple>
<float>1529496012.51</float>
<float>1530096004.06</float>
<string>UTC</string>
</tuple>
</state>
......@@ -299,322 +299,323 @@
<pickle>
<global name="PersistentString" module="Products.ERP5Type.BTreeData"/>
</pickle>
<pickle> <string encoding="base64">UEsDBBQDAAAAAC5v1EwAAAAAAAAAAAAAAAANAAAAZGF0YXNldF90b29sL1BLAwQUAwAACACVa9NM
rAtRXV4EAAAmDQAAFgAAAGRhdGFzZXRfdG9vbC9SRUFETUUubWTVVtuO0zAQfSZfMQIk2tKk8MRF
AqlAgQLbwjYrJFaodZNpYzaxI9uhWx74dsZ2k2yh3C8S0Wqb2HPxnDnH9hUI3QOPhvFwNophPHky
msXj6SR8NH09eTEdPoJ4On2xMwuCK/BwOolHk/huACE8YDoDnSheGlhJBVysURsuBTCRQio3Ipcs
tZajYlnlZ1Dm1ZoLO/BQihVfV4o58xXPUUNnW+Rdm+N49OpkfDw6ojyzAOKMazBS5qAw52RHDr2e
j9jrwTP2ngEry5wnPlhHI8JpKhP9tpMZU94dDDabTYTOIZJqPeh2IwjgZY5MIxTsDEFXCsFkzMCp
i3d7z1UqluQYJbIYGEwygWYj1dngHVm6fxoHdbF6wEWK51FmqBbgmjDRhuU5plEQwFhQEqRylTZQ
aey7z+UFGDc8z8GoLRVcu9bgscrIgkpMaGwLHb4CbmwGIU2bxVU2XsFWVgqmMxCIqQZdYsJZDiWq
gmtNKPWtc8G2S/Qp6Vdgglqzg7nfw43oTnSLPERl09+lYuhJKpUTNxKFzGCYUlkQSvg42IE9WHIx
8K8QvoDLFlJNmKZ5RDNGsa3DdGdcsPdYm4cuXfSOqcs+UVbIFK6fH4ztLKgvEq7heSmVgZfD+Om9
y1efTo9GF+3vXrUTl6/B/fs2kMVdJc5bE1wJ7g22T9DIpBGF/6YJIurD5zCLh8cxQRJLINiUsW1t
+N8HVQkwlsVUbWGlwR0PPKkJNUyMVBbTS4vFIrjk+JAywzSa0NmUFbXi1Ip0Tip96+0CahopDhbt
xMIn9q6gcIUKBdWlM7nBJq3mBi1NOhitI5LSV/IV23A32Ot1A69DR5Z9Jn5OFVef2RnqM7cxENUV
EEtSFIZ4qKMAhiuDykbK7JiXbr92PICii+uJRq+wkJUpK7No4SNHk+25YOo3lsjtWyezeHo0fjOC
h09PJtQyenVKIQ+FTkdIDkZ6say2LlSSVeKMAPuArg5d5oRdu7XtIEwrtI4FFnYdqJRU2i9nydd+
Dd1+sKMB1ixoFqwRSqZYgYSI/nEWwKmrZG4r8ZSAlhMX5zwrZGkhZjmQ8nCNqs3pikYHty+VCzha
/hRD4OaNG44ljVbao+SwWOBl5TJ6ePaPj5qoXFCL2w5H+wJr7f+IwnT2Owqj9bs9t576b/TVgPjn
VEJDXim1AP+1THT2/8jkaDg5Gb64cLLYG9bj8ZOT46EVjztUmmMXkt21CS0NGqTak0bL4iJKtQwW
3q+5pYT+O6IL18IBD0WlDYECjrqxA5sptLc8Ry77WzKtN1Kl9O6KnJOtffc78bxkJqNPT4a5A6hT
g2npPSWZeI3SX6lkiYoKSqXAflOIwHPzbQmDOXTENmzo9fxp7yLSlcN/hRsUKeZchHvN+ToovZ6L
90Wb2k3tV/rUau27jWos/0indo3Slb0lo4JOLhOWO3MQtILuV/vmo5lsXipc8XPofLYlk8Hf6WwD
wG+1tolyoLfU2h94Ano+AVBLAwQUAwAAAAAub9RMAAAAAAAAAAAAAAAAFAAAAGRhdGFzZXRfdG9v
bC9jb25maWcvUEsDBBQDAAAIAJVr00wxPrAHwAAAAPUAAAAwAAAAZGF0YXNldF90b29sL2NvbmZp
Zy9kb3dubG9hZC1jb25maWdfdGVtcGxhdGUueW1sRc7LqsIwEAbgfZ8iiwPuWo54weyKFRRFwQsu
QzRTEtQ0ZCZWfXqnIrib+WZ++OEBZykyIW76ochG0Aal+O/AedUkCokUabx81HnJF3oGkKIFb+Dq
PAPEMFQpXqXoWaKAsiiwqcl5pPFkMOrntkHK7652p9wDFd1/0eNgQohS/B12sy1vQSO2TTQsoTUM
RpNWCMRQlftS7WZ71rNN/qLQvYB9Oj+sl1nGRX/Nalfz/O0eNNkuvzmuV5uyUtVim70BUEsDBBQD
AAAIAJVr00xT60Qd+AAAAF0BAAAxAAAAZGF0YXNldF90b29sL2NvbmZpZy9pbmdlc3Rpb24tY29u
ZmlnX3RlbXBsYXRlLnltbD2PzWrDMBCE734KEQq5ybT0h+oW2kCh0EOTnEoRSryOF8uS0K5qt0/f
dSC+Ld8MMzswwcmoSqnBTZa7DK4ho25ngMHGwqmwZUf9hWIwovBvAqNabOVOjjubMrQ4GfW1wiD+
evUtCpWUPEI26uaw234KaRw7S8BCXjf7jd1t90JPXQm9JfwD4S9vh4/3qopFTEvTCKEBj0EA5PRg
S/ZGrTvmRKauKbaMgfjp+f7xTneRWP9gi0cdgOvZX6eY2XmL4QzEGINN0eMJgeprsoXhWHy/loZC
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
deXn2W68OC9qOQCrapr6a41YKmlnamuZIf39aqYhXVHPjKKXaO+SeIhUf8GBx6EPz5ITQUIMtJxI
8oLOSDeXfrua0nhkTlSzWn/nPwcvunu76JqGDi2zE1Us/9Yfp15moRcOB/rShHcm6GGaHRzioezl
Nx1cHezBr8mEw7GBKwZB44imwFmR9bYR0J3MY9OmrZUJHW4fA4VqQCQ39Vn5z75uYu+Ei9Q8AhTa
19mOknsMAoJMfIQ7mkEi+LuYTotuKeBMkkCiXIA1tlf/rH4M+F0fzUU+Ikkyg/lDddGan4VVMv9Z
LKmgHT7rw2C/O2yraGnou557DrwTCZvzq569VLtbDVUUivG1Boa+Rt/dQJMaCR4FpoHR7/Ju8buB
npvfVeeLpbmFCwNusYjlIoLVvgua8oXq8mWM2eIZHE6jOMaIKu49NIRI316KG27TPJk19VkCYf40
55cV2EcMLI76JUOottbZFzRNdbBN6Awk1zEWsYyWeevf/ozU+YuAuwnmoUIv3LqFGKbjRQwxk2sh
tGvrECxXg/UQ6rwz+MWcT1TGFqiOopimFSAjVotjRbi9/E3JhEKaCaUJkNPcOssqUL7QV9J5nvxN
xyzBv5VDb36NMeAHRIIa+dOwWLY/qxiCGNlt7VqguXxpzUW//veG4gWicpVvlB+fcz00JUHjB1BL
AwQUAwAAAAAub9RMAAAAAAAAAAAAAAAAKgAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t
ZGF0YXNldC10b29sL1BLAwQUAwAACABgeL5K8SL7BCYAAAAnAAAAMQAAAGRhdGFzZXRfdG9vbC9l
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0dlbWZpbGUrzi8tSk5VUM8oKSkottLXLypNqkxP
zS3Wyy9K11fnAjELUpO5AFBLAwQUAwAACABgeL5KYZXLYksCAAANBAAANQAAAGRhdGFzZXRfdG9v
bC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0xJQ0VOU0UudHh0VFFbasQwDPz3KcR+tRDo
f29QaKHQvYBjK7GKYwVLbtjb1/I+YL8MntGMZuS+Ps7wSQGLoHPfWDcSIS5AAgkrzhdYqy+KcYKl
IgIvEJKvK06gDL5cYMcqfYBn9VSorM5D4P1iTE0kILzo4St2cgQvwoF814PIoW1Y1Kv5LZRR4EUT
utPPbeL0Okwi+gxUoGNwh+AgTdwUKopWCqYxdVLILdoOdzjTRjcHG6+0JhUTbYLT2HOCjSMt9uKI
tbc5k6TJRTLpuWn/FPscLU2W440rCOZsCoTSsz5tNzig7HYrVG8VDd8j8fbEtaaXVku3xDjiMggP
x18MaipGXzhnPnq0blkiWSJ5d+7cIT/zH44sIx4UVgqj7usB9sdV75AknzPM6K6FYbR6/8sig52I
YRiI3vsV1p6r/Qe3cbYWaVw56ZYeOXICLfy/mAaxsELKZaLMPI/z8qfO7cB/fOLjX7H797fbwftX
8wz+JFQs1o1dSAstblcNEujEBfrU06Z1srUSXjjnupNF4rzTk+bQd/K8uJRC5qTzklRCT5rHtAbN
Fxrgy1Yp6awVodUIwJ8oFfhiN4uPEyQPmrTuPUWt+ciMCGVa2KuOa2KnZfXFigAfumxZc3RQZJZc
z6ACRXKFoDJxSg3FK6b3Nt9oy+56mSpNloLgcpAuKQ9JDlQrNSbWuafAM1+kuQwpjgL36bZJ2hV4
jDNWtdxZRHyuDtmjpde7ddMiPbFrORYS3RB/rBMOayHwZflOOVZNDz9i3vRa5HeWIJyQVWB+eHzu
vgBQSwMEFAMAAAgAV3fcSkQ8jMKxAQAAbgcAADMAAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRl
bGluLWRhdGFzZXQtdG9vbC9SRUFETUUubWTNlU1P4zAQhu/+FaNw2Y2aaC97Qdq9oBWqtIJqoefg
rSfpCHds/EH5EP+dOA0VpS2tQAJySWQ/72jseWdyAH9m/6O+LObICjVxoWSQHkMRjNFAbGMoTAzt
C6yODTHUxvUiIYacNiQrWGF8Bz2FhOchSyEO1h8YnozG5zD6Oz4enpzBBiLJ4PQa3TXhXIgc8ny0
yCfcWszzQ6ip7pb/oY8zBB+tNS6gSntsQpcSm3nHHGmUHO3r0HFE718iXR5HhmtqopOBDAtRtLCV
YVpZhzXdJFChnziyaR++Sefk7QAcXkVyqL53ghRXE7o12gdH3AxAYS2jDodwkfWf2cVC2t/nG5ST
aeTLytMdromJAzbonqt/tKp03LPJFGeyjY+6BuKJjgoVEPfVbqEC7jOWM8x+/c6eDpYNIEu1SWuL
zLKHFbA/xk6uJo2boAGsYHgTkD0Z3hkQWe2VXNVd1yZ0pxuX5v8IS76pstuMjM7+rKLT+7k4+q0O
fola6f3cOLUF//T+2DiXTsfn7x5MH2mFL17UIJtELmdE2ZeqTD2eWq9cdnGZuvSrT/3FX69Kw3+P
GxCPUEsDBBQDAAAIAGB4vkrhAf1hMQAAADIAAAAyAAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5k
ZWxpbi1kYXRhc2V0LXRvb2wvUmFrZWZpbGUrSi0szSxKVVBKKs1LyUkt0k9PzY0vSSzOLlbi4gLR
CimpaYmlOSVWClZJpZk5KVwAUEsDBBQDAAAIABJ33EqKZSL5AAIAAA0EAABOAAAAZGF0YXNldF90
b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQt
dG9vbC5nZW1zcGVjjZLhatswFIX/5ykuHiPJtsjJj40RSBksoQTWpKTdoGSbq9jXtlZZUiU5Iazb
s0+yZ7ulpdRgCXTv+e7RQb1TLKbTC4UxS1lMLZOCCDxAIuHOuNO7HoDfiaAFQvvNIMBiV/Kb0QFF
gpyJUUItNWhHVkoeNKo9auOQnWpMJmTclmlpc6lNW94GG3lbIpxLHedorQx+NK2mLAqqjx1pKVRp
Q1lat4HiZcYEpFIDExkaf48wkQfBJU1ApvDfnQErw1TLAhrfrZcETayZ8sp6wBcnNaAxltrtlShl
qfs5GnDDuIwpB2OlphkCFQkYdIvNsXBT2gGwZxRyaxWBx8THXR5UQbEi1VP4kbQ+saCMA9zLTPvM
VBPZp8w3kFgWXXicxSgMmk5ztrysyq/gcj1fg0HrxjEzrftzWaCiGbZhe2dmGoYZs3m58/Dw4dTw
+efQGKnD68xfOyBwM6rOr4lRnNlB8F0EQ3gLc6a3QcypMYraPHxDflHd3cmisVHLm93jk0yjGrzW
v38OfFP1jofhn2Gj1HhbMo2Rp5oqDc52DuzjqJ9lkkQJKn8VER+hf7X+uolOF2fRfHG+WM0Xq89X
/Xew7f89gSdK0bfF5mK5XvUrqx1vj1yqAoV9wK5zq3AnMxiTj2Ty/mXKXSkSjrqRTshkTD68TKrp
DTY6pxo7lav1/gFQSwMEFAMAAAAALm/UTAAAAAAAAAAAAAAAAC4AAABkYXRhc2V0X3Rvb2wvZW1i
dWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsDBBQDAAAAAC5v1EwAAAAAAAAAAAAAAAA1
AAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9Q
SwMEFAMAAAgAQFbSTKsxx7i9AgAAnAYAAEIAAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGlu
LWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL2ZpbGVsb2dnZXIucmKdVFFv2jAQfu+vOBkxQIJU29uQ
uo4N6CqVMgHTNE0T8pILWCR2ZjtrGc1/39kJINJVWpuHJL47f/d9d2dr/JULjdAyQq4StEq2zs4a
ECbcGNCYaTQoLfmAQywShEStVqjPyoAbtZpwyZ0BQMgwySOE+R7pjIzXt+MpXABzX0br0Ww2nTmD
/3GWr4PZrTO47/XtlTPdTK+Ww2sfRunMOXNIEcaUQljBE/EH2x0yAUh1R1ELkWJAv4GxOra0aLNm
1GumveY3VsaJmEItjElBEJHe0Cq9vWxXicoYgKHQQboh/56Bt6OM/Pe90y95io5XY+fyWbU0RUAc
WRmRcbsuvRVA0dgdthUU5MEqMQbtuHK1qc6xuO88jVIGFMs6HpSaVIay7Td2ocVbHdjBg4t7gNi5
s9waYL1nPgyKU8ZCxqqdojHU8S5kWkh7MR7czEclcapDzdsFu83wwjW/cwp1x7V8CZSbkhoUaq30
S7D8CNbA+E+lbTVcrmr+x+tmn2fTj6P5HAYfprPFaMiOQVD3QR/GSkOqNBKq5dSDyKPolFuhJPFI
kBsE6ipqsArs2h+t8oy1Gjvfy6LFTongPYZERKuQ9AQbkSTwtgv7dSYieHce4e9zmZPnzbtXr1lN
HqWY5nYaT5C4bUe+cp4DyhC9oKqcbEGEIm45hOtcbsDQmQNhiKqChOsVBj6ty1vWjASSPGjsDnBF
wPbdWMy+uGYcS+nVdwkbw43XvsYkA9o/Gw2Gk1GQRq4oYW6sSimzDzkSqQPXJQ605tt9z41fnXS+
pHLiD5CHa3dqKuvDk2PTgeJRwn9OX234/SVUxVHrZLRU8WXbJy/d8Ih6nbR/NNpcy5ObScRlIC2O
I/m9sXPbih/UkwqvYPtt/3d5QvNTvznpN+es46+6arfV28MVWAD0AKpU0D/kevbt5GGPpXWvv1BL
AwQUAwAAAAA6b9RMAAAAAAAAAAAAAAAAOwAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t
ZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvUEsDBBQDAAAIAK1u1EzxjX4VUAgAAJwZAABB
AAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9p
bnB1dC9maWYucmKtGdmO0zDwuf2KISDaQgk3D4hyL4c4xfEAq6pyk0kbSJxiO0CB/jszdpxsNqEs
EpG2STyn53ZW4ZcyVbhQmAmTfkUYheHFJM0wK1YrVKPhMC/iMkM4yJdl9nkIUL0/lZvSDOkdIMqE
1vAoTVJeg1sO9jorV6m0CADuJVS4SrVBtbCY4yBJk2AKGrNkMqwwD149ghkEdAuqlQdP3r98tnj7
9OMBAa5fchecvn4pX1YYLw4e3yPYZQeqFt8+eHLwgpcPh4MB/AykyDGY3Q50udlkKSoSHJjtxq0Z
lcpVsJtCGzcWRiw0mpPgstFOgoffDUqdFrIXuUd+tC7l5xMgY5H0YQ2hfc29pWNMrOnJK3nxFd/g
BoXB+BHtQ483wqz1ZDjgXbEATYa0a2EuNvATfvHLL7sUarInOfNiMDm8cHkOu+FAVbwWR8nr55Ck
YmSYy/dfR5ajopRm/H0Ct+Ey7CAsZfplOEgTkIWBLssQ843Z3hkOACiYNN/vuqgNvwklx8G7NSqE
VFPI0t2shYRCohUI31KzpiV6K7Ks+EaWqhUZ68lNMuSGzGdm7968P5h0WHeV2Y8fPCiVQmmyrZVp
iiIjVeiNg7FQRgN7WqPRTjHeeYkXiLNTV4fBXwR471l05pJlsERIV5L2HoeUgEj8QVltWYkcyLDb
ooRvQhrSCMgEqI0F/VXau8KIzIkiOnB5H6eKvFqo7U04/dPFChlnZda7DjvvMGZhkBT00eVDwwfY
n1yfyigrY7zzpwAEIjKlkrWA4QAl/bhVJ6tKA1rvZIRRQmoRGcrScVTIJF1N4Sw9GFVkpH9lDFL6
ebF6IaSgF1JJGyEjHDcItBvzyEdV4AzMiU8Y5O3PRP8TRlaXEcxuwyGp7iCHI1+lRnPCciqEG6FE
Pm5AU7jpknziqXy96lI1oC6VLTALnf7AHroGyJRJVggzZUOJMjM34dIEztnya/O0j90MLrE7eiU1
lb1yj7VFRwVeXWwUJul31kEoJbZe+cp883Z5csEzHNAFdEmquWzdUlLAaniYqhC/UyO6Y8vcpMY7
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
bAMeTJO/pdJyrfFApCOTes3uPilrbhgO+KzI89Y/4julNcianSna+mALgbfdqJxDqq0puOiA6tSH
YHB3KpSz7R5BhtiF8eVlY34mpP7g8WzaLqW+hRXGixITISS+UwYq3Mr13iO9b9ujWisPmm3vehYC
n2VVa4yjHC2+z6eL4Yj/zz2Z+CIeR8NsuEqzH8t0nC7T+ef0ScR2rqG48DhOR90WTOZf0lV2GUXl
m6g4JIrn6N/WZRCsvk4nWcYLGE+m6ep/wfDxw9vsXudcdbQ+XCPOrLgmTorYHFaefRJC/AVQSwME
FAMAAAAAhEvUTAAAAAAAAAAAAAAAABMAAABkYXRhc2V0X3Rvb2wvaW5wdXQvUEsBAj8DFAMAAAAA
Lm/UTAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAQgP1BAAAAAGRhdGFzZXRfdG9vbC9QSwECPwMUAwAA
CACVa9NMrAtRXV4EAAAmDQAAFgAAAAAAAAAAACCAtIErAAAAZGF0YXNldF90b29sL1JFQURNRS5t
ZFBLAQI/AxQDAAAAAC5v1EwAAAAAAAAAAAAAAAAUAAAAAAAAAAAAEID9Qb0EAABkYXRhc2V0X3Rv
b2wvY29uZmlnL1BLAQI/AxQDAAAIAJVr00wxPrAHwAAAAPUAAAAwAAAAAAAAAAAAIIC0ge8EAABk
YXRhc2V0X3Rvb2wvY29uZmlnL2Rvd25sb2FkLWNvbmZpZ190ZW1wbGF0ZS55bWxQSwECPwMUAwAA
CACVa9NMU+tEHfgAAABdAQAAMQAAAAAAAAAAACCAtIH9BQAAZGF0YXNldF90b29sL2NvbmZpZy9p
bmdlc3Rpb24tY29uZmlnX3RlbXBsYXRlLnltbFBLAQI/AxQDAAAIAGeT00wkYbkaxAgAAMkbAAAZ
AAAAAAAAAAAAIIC0gUQHAABkYXRhc2V0X3Rvb2wvZGF0YXNldC10b29sUEsBAj8DFAMAAAAALm/U
TAAAAAAAAAAAAAAAACoAAAAAAAAAAAAQgP1BPxAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVs
aW4tZGF0YXNldC10b29sL1BLAQI/AxQDAAAIAGB4vkrxIvsEJgAAACcAAAAxAAAAAAAAAAAAIIC0
gYcQAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9HZW1maWxlUEsB
Aj8DFAMAAAgAYHi+SmGVy2JLAgAADQQAADUAAAAAAAAAAAAggLSB/BAAAGRhdGFzZXRfdG9vbC9l
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0xJQ0VOU0UudHh0UEsBAj8DFAMAAAgAV3fcSkQ8
jMKxAQAAbgcAADMAAAAAAAAAAAAggLSBmhMAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t
ZGF0YXNldC10b29sL1JFQURNRS5tZFBLAQI/AxQDAAAIAGB4vkrhAf1hMQAAADIAAAAyAAAAAAAA
AAAAIIC0gZwVAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9SYWtl
ZmlsZVBLAQI/AxQDAAAIABJ33EqKZSL5AAIAAA0EAABOAAAAAAAAAAAAIIC0gR0WAABkYXRhc2V0
X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNl
dC10b29sLmdlbXNwZWNQSwECPwMUAwAAAAAub9RMAAAAAAAAAAAAAAAALgAAAAAAAAAAABCA/UGJ
GAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL1BLAQI/AxQD
AAAAAC5v1EwAAAAAAAAAAAAAAAA1AAAAAAAAAAAAEID9QdUYAABkYXRhc2V0X3Rvb2wvZW1idWxr
LXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL1BLAQI/AxQDAAAIAEBW0kyrMce4vQIA
AJwGAABCAAAAAAAAAAAAIIC0gSgZAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFz
ZXQtdG9vbC9saWIvZW1idWxrL2ZpbGVsb2dnZXIucmJQSwECPwMUAwAAAAA6b9RMAAAAAAAAAAAA
AAAAOwAAAAAAAAAAABCA/UFFHAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0
LXRvb2wvbGliL2VtYnVsay9pbnB1dC9QSwECPwMUAwAACACtbtRM8Y1+FVAIAACcGQAAQQAAAAAA
AAAAACCAtIGeHAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGli
L2VtYnVsay9pbnB1dC9maWYucmJQSwECPwMUAwAACABijtJMCs+0lQoJAACmHAAARgAAAAAAAAAA
ACCAtIFNJQAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2Vt
YnVsay9pbnB1dC93ZW5kZWxpbi5yYlBLAQI/AxQDAAAAAC5v1EwAAAAAAAAAAAAAAAA8AAAAAAAA
AAAAEID9QbsuAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIv
ZW1idWxrL291dHB1dC9QSwECPwMUAwAACADNg85MbGyETasCAAAmBgAAQgAAAAAAAAAAACCAtIEV
LwAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9v
dXRwdXQvZmlmLnJiUEsBAj8DFAMAAAgAg07PTNHXhrmhAgAAjQYAAEcAAAAAAAAAAAAggLSBIDIA
AGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0
cHV0L3dlbmRlbGluLnJiUEsBAj8DFAMAAAgALGHTTJ9xGJ61BQAAUhAAAEcAAAAAAAAAAAAggLSB
JjUAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsv
d2VuZGVsaW5fY2xpZW50LnJiUEsBAj8DFAMAAAgAlWvTTFGA+vv+AQAAzwQAABQAAAAAAAAAAAAg
gLSBQDsAAGRhdGFzZXRfdG9vbC9oZWxwLm1kUEsBAj8DFAMAAAAAhEvUTAAAAAAAAAAAAAAAABMA
AAAAAAAAAAAQgP1BcD0AAGRhdGFzZXRfdG9vbC9pbnB1dC9QSwUGAAAAABgAGADeCAAAoT0AAAAA</string> </pickle>
<pickle> <string encoding="base64">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
Os3EMOxDRxIldDHP9oZYOB1zPsG+/g78ok4YTjReIXCsnjQBFuV5b6q13G481XupE3UidWR3eFzu
EgTTbCkXMLuNhAOKnVSf3fPZf8H3bgQeQSE2RovmEHN2ENJZvqXxWCSIJ1AvwBrfqz+rz/C/u0YL
lU9IHM9hcaOc759Pwyqd/y2WZNAOXvSgv9sZtGS41FT1tM+AcyhgM6+c5ixsX60pWjDvV2oY+vp2
Xh5664YZZYxI3r15+9qNTXfCEuF+CsbBgRtR0aA8vt6oy/v23xWSPEjCUY7dKGZ4gMDwbJjD00hn
LF6vq5iwNxDoWowlSu991LW+nf/soNoW59xFZ6ktP9PbxtHC6QOhVPcLeL0AeaphY9UVlUPVpdJw
QvOL1KMgDDHy80MU9SHQRyFzXq7rG7m6qnrgm5s/tzSBuTpCGlcXJVzuka1djvVZJcWUzlXOsQgR
TmlZtvpqUfYU7xfsTdD3IKrjzh1ENZkUUcX1rALV9FVjqrpWQ7rgsZMxVYShAQ0Zm0qqyWEeByFN
lpANorXAGuXmaDkjUwpJyuVMgJL6TFueAvVzdeBdJPi/XKl166F/+tEr4hEB8s2d+abb/JSjB4So
IiPewpiLF9ZeJaz8jcNccixdFtTKF95mHpoQr/YTUEsDBBQDAAAAAGJk20wAAAAAAAAAAAAAAAAo
AAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL1BLAwQUAwAACABgeL5K
8SL7BCYAAAAnAAAALwAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9H
ZW1maWxlK84vLUpOVVDPKCkpKLbS1y8qTapMT80t1ssvStdX5wIxC1KTuQBQSwMEFAMAAAgAYHi+
SmGVy2JLAgAADQQAADMAAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wv
TElDRU5TRS50eHRUUVtqxDAM/PcpxH61EOh/b1BoodC9gGMrsYpjBUtu2NvX8j5gvwye0Yxm5L4+
zvBJAYugc99YNxIhLkACCSvOF1irL4pxgqUiAi8Qkq8rTqAMvlxgxyp9gGf1VKiszkPg/WJMTSQg
vOjhK3ZyBC/CgXzXg8ihbVjUq/ktlFHgRRO6089t4vQ6TCL6DFSgY3CH4CBN3BQqilYKpjF1Usgt
2g53ONNGNwcbr7QmFRNtgtPYc4KNIy324oi1tzmTpMlFMum5af8U+xwtTZbjjSsI5mwKhNKzPm03
OKDsditUbxUN3yPx9sS1ppdWS7fEOOIyCA/HXwxqKkZfOGc+erRuWSJZInl37twhP/MfjiwjHhRW
CqPu6wH2x1XvkCSfM8zoroVhtHr/yyKDnYhhGIje+xXWnqv9B7dxthZpXDnplh45cgIt/L+YBrGw
Qsplosw8j/Pyp87twH984uNfsfv3t9vB+1fzDP4kVCzWjV1ICy1uVw0S6MQF+tTTpnWytRJeOOe6
k0XivNOT5tB38ry4lELmpPOSVEJPmse0Bs0XGuDLVinprBWh1QjAnygV+GI3i48TJA+atO49Ra35
yIwIZVrYq45rYqdl9cWKAB+6bFlzdFBkllzPoAJFcoWgMnFKDcUrpvc232jL7nqZKk2WguBykC4p
D0kOVCs1Jta5p8AzX6S5DCmOAvfptknaFXiMM1a13FlEfK4O2aOl17t10yI9sWs5FhLdEH+sEw5r
IfBl+U45Vk0PP2Le9Frkd5YgnJBVYH54fO6+AFBLAwQUAwAACABXd9xKRDyMwrEBAABuBwAAMQAA
AGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9SRUFETUUubWTNlU1P4zAQ
hu/+FaNw2Y2aaC97Qdq9oBWqtIJqoefgrSfpCHds/EH5EP+dOA0VpS2tQAJySWQ/72jseWdyAH9m
/6O+LObICjVxoWSQHkMRjNFAbGMoTAztC6yODTHUxvUiIYacNiQrWGF8Bz2FhOchSyEO1h8YnozG
5zD6Oz4enpzBBiLJ4PQa3TXhXIgc8ny0yCfcWszzQ6ip7pb/oY8zBB+tNS6gSntsQpcSm3nHHGmU
HO3r0HFE718iXR5HhmtqopOBDAtRtLCVYVpZhzXdJFChnziyaR++Sefk7QAcXkVyqL53ghRXE7o1
2gdH3AxAYS2jDodwkfWf2cVC2t/nG5STaeTLytMdromJAzbonqt/tKp03LPJFGeyjY+6BuKJjgoV
EPfVbqEC7jOWM8x+/c6eDpYNIEu1SWuLzLKHFbA/xk6uJo2boAGsYHgTkD0Z3hkQWe2VXNVd1yZ0
pxuX5v8IS76pstuMjM7+rKLT+7k4+q0Ofola6f3cOLUF//T+2DiXTsfn7x5MH2mFL17UIJtELmdE
2ZeqTD2eWq9cdnGZuvSrT/3FX69Kw3+PGxCPUEsDBBQDAAAIAGB4vkrhAf1hMQAAADIAAAAwAAAA
ZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL1Jha2VmaWxlK0otLM0sSlVQ
SirNS8lJLdJPT82NL0kszi5W4uIC0QopqWmJpTklVgpWSaWZOSlcAFBLAwQUAwAACAASd9xKimUi
+QACAAANBAAATAAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9lbWJ1
bGstd2VuZGVsaW4tZGF0YXNldC10b29sLmdlbXNwZWONkuFq2zAUhf/nKS4eI8m2yMmPjRFIGSyh
BNakpN2gZJur2Ne2VllSJTkhrNuzT7Jnu6Wl1GAJdO/57tFBvVMsptMLhTFLWUwtk4IIPEAi4c64
07segN+JoAVC+80gwGJX8pvRAUWCnIlRQi01aEdWSh40qj1q45CdakwmZNyWaWlzqU1b3gYbeVsi
nEsd52itDH40raYsCqqPHWkpVGlDWVq3geJlxgSkUgMTGRp/jzCRB8ElTUCm8N+dASvDVMsCGt+t
lwRNrJnyynrAFyc1oDGW2u2VKGWp+zkacMO4jCkHY6WmGQIVCRh0i82xcFPaAbBnFHJrFYHHxMdd
HlRBsSLVU/iRtD6xoIwD3MtM+8xUE9mnzDeQWBZdeJzFKAyaTnO2vKzKr+ByPV+DQevGMTOt+3NZ
oKIZtmF7Z2Yahhmzebnz8PDh1PD559AYqcPrzF87IHAzqs6viVGc2UHwXQRDeAtzprdBzKkxito8
fEN+Ud3dyaKxUcub3eOTTKMavNa/fw58U/WOh+GfYaPUeFsyjZGnmioNznYO7OOon2WSRAkqfxUR
H6F/tf66iU4XZ9F8cb5YzRerz1f9d7Dt/z2BJ0rRt8XmYrle9SurHW+PXKoChX3ArnOrcCczGJOP
ZPL+ZcpdKRKOupFOyGRMPrxMqukNNjqnGjuVq/X+AVBLAwQUAwAAAABYZNtMAAAAAAAAAAAAAAAA
LAAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsDBBQDAAAA
AH1k20wAAAAAAAAAAAAAAAAzAAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10
b29sL2xpYi9lbWJ1bGsvUEsDBBQDAAAIAAVr2kw9wP/1yQIAAK4GAABAAAAAZWJ1bGtfdG9vbC9l
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvZmlsZWxvZ2dlci5yYp1UUW/a
MBB+51ecjBig0VTb25Dajg3oKpUyAdM0rRPykgtYJHbmOGsZzX/f2UlKSVdpbR6S+O783ffdna3x
VyY0QjsVchWhUbLdaDTBj3iagsZEY4rSkA84hCJCiNRqhbpRBFyq1YRLbg0AQvpRFiDMK6QGGS+u
xlM4AWa/jNaj2Ww6swb3Yy1fB7Mra7Dfi6tza7qcni+HFy6M0qXHzCIFGFIKYQSPxB/sdMkEINUN
RS1EjB79eqnRoaFFh7WCo1Z81PrGijgRUqiBMSnwAtLrG6W3Z50yUREDMBTaizfkrxg4O8rAfd9b
/ZLHaHk1dzafUcs094gjKyISbtaFtwTIm7v7bTlrOLBKTIpmXLo6VOdQ3HafRikC8mUdDwpNKkHZ
cRt70ObtLuzgzsbdQWjdSWZSYEfPfBi8BnatryWD/JC6kKHqxJim1PoeJFpIczIeXM5HhQIqSM3b
A7NN8MROQfcQ6oZr+RIoOy41KNRa6ZdguVmsgfGfSptyymz53I/TzT7Pph9H8zkMPkxni9GQ7YOg
7oM+jJWGWGkkVMOpGYFD0TE3QkniESFPEai9qMEoMGt3xorD1m7uXFPzNjskgrfoExGtfNLjbUQU
wbseVOtEBHB6HODvY5mR5+3pqzesJo9STDMzDSdI3LYjVznHAaWPTlBZTrYgQgE3HPx1JjeQ0uED
kRJVBRHXK/RcWpu3qBkJJHnQ3N3D5R6rurGYfRl1H5bSqe8RNvobp32NUQK0fzYaDCcjLw5sUfws
NSqmzC5kT6QOXJc40Jpvq56nbnXQ+YLKgd9D7q/t8Smtd0+OTRfyRwn/OX214Xe3URlHrZPBUoVn
HZe8cMMj6nXS7tFoMi0PrigRFoG02I/k9+bObst/UE9KvJxV2/7vFoXWp35r0m/NWdfdeeVuo7f3
d2EOcARQpoL+w1zVNfLM+8rh72tsX38BUEsDBBQDAAAAAINk20wAAAAAAAAAAAAAAAA5AAAAZWJ1
bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvUEsD
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
bBAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9HZW1maWxlUEsBAj8D
FAMAAAgAYHi+SmGVy2JLAgAADQQAADMAAAAAAAAAAAAggLSB3xAAAGVidWxrX3Rvb2wvZW1idWxr
LXdlbmRlbGluLWRhdGFzZXQtdG9vbC9MSUNFTlNFLnR4dFBLAQI/AxQDAAAIAFd33EpEPIzCsQEA
AG4HAAAxAAAAAAAAAAAAIIC0gXsTAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0
LXRvb2wvUkVBRE1FLm1kUEsBAj8DFAMAAAgAYHi+SuEB/WExAAAAMgAAADAAAAAAAAAAAAAggLSB
exUAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9SYWtlZmlsZVBLAQI/
AxQDAAAIABJ33EqKZSL5AAIAAA0EAABMAAAAAAAAAAAAIIC0gfoVAABlYnVsa190b29sL2VtYnVs
ay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC5nZW1z
cGVjUEsBAj8DFAMAAAAAWGTbTAAAAAAAAAAAAAAAACwAAAAAAAAAAAAQgP1BZBgAAGVidWxrX3Rv
b2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsBAj8DFAMAAAAAfWTbTAAAAAAA
AAAAAAAAADMAAAAAAAAAAAAQgP1BrhgAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFz
ZXQtdG9vbC9saWIvZW1idWxrL1BLAQI/AxQDAAAIAAVr2kw9wP/1yQIAAK4GAABAAAAAAAAAAAAA
IIC0gf8YAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVs
ay9maWxlbG9nZ2VyLnJiUEsBAj8DFAMAAAAAg2TbTAAAAAAAAAAAAAAAADkAAAAAAAAAAAAQgP1B
JhwAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL2lu
cHV0L1BLAQI/AxQDAAAIAJBh20xkghelXQgAANwZAAA/AAAAAAAAAAAAIIC0gX0cAABlYnVsa190
b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9pbnB1dC9maWYucmJQ
SwECPwMUAwAACACFdtpMIjZ7qo8JAADBHgAARAAAAAAAAAAAACCAtIE3JQAAZWJ1bGtfdG9vbC9l
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvd2VuZGVsaW4ucmJQ
SwECPwMUAwAAAABiZNtMAAAAAAAAAAAAAAAAOgAAAAAAAAAAABCA/UEoLwAAZWJ1bGtfdG9vbC9l
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0cHV0L1BLAQI/AxQDAAAI
AI5y2kzRt58OqgIAACUGAABAAAAAAAAAAAAAIIC0gYAvAABlYnVsa190b29sL2VtYnVsay13ZW5k
ZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9vdXRwdXQvZmlmLnJiUEsBAj8DFAMAAAgAx2Hb
TNPORo+SAgAAfAYAAEUAAAAAAAAAAAAggLSBiDIAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGlu
LWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL291dHB1dC93ZW5kZWxpbi5yYlBLAQI/AxQDAAAIAKpe
20xB23PssgUAAGQQAABFAAAAAAAAAAAAIIC0gX01AABlYnVsa190b29sL2VtYnVsay13ZW5kZWxp
bi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay93ZW5kZWxpbl9jbGllbnQucmJQSwECPwMUAwAACADb
htpMqhb0L/0BAACxBAAAEgAAAAAAAAAAACCAtIGSOwAAZWJ1bGtfdG9vbC9oZWxwLm1kUEsBAj8D
FAMAAAAAhEvUTAAAAAAAAAAAAAAAABEAAAAAAAAAAAAQgP1Bvz0AAGVidWxrX3Rvb2wvaW5wdXQv
UEsFBgAAAAAYABgApwgAAO49AAAAAA==</string> </pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -31,3 +31,30 @@ for data_array in portal_catalog(**kw_dict):
log("Ivalid Data Array: " + str(data_array.getReference()))
context.logEntry("Ivalid Data Array: " + str(data_array.getReference()))
portal.ERP5Site_invalidateIngestionObjects(data_array.getReference())
# invalidate old (more than 10min) pending ingestions (split ingestions that were canceled/interrumped)
from DateTime import DateTime
now = DateTime()
now_minus_max = now - 1.0/24/60*9999
now_minus_10 = now - 1.0/24/60*10
catalog_kw = {'creation_date': {'query': (now_minus_max, now_minus_10), 'range': 'minmax'}, 'simulation_state': 'planned'}
for data_ingestion in portal_catalog(portal_type="Data Ingestion", **catalog_kw):
# invalidate related Data Stream
kw_dict = {"portal_type": "Data Stream",
"reference": data_ingestion.getReference(),
"validation_state": "Validated"}
for data_stream in portal_catalog(**kw_dict):
if not data_stream.getReference().endswith("_invalid"):
log("%s %s (id:%s) invalidated" % (data_stream.getPortalType(), data_stream.getReference(), data_stream.getId()))
data_stream.setReference(data_stream.getReference() + "_invalid")
try:
data_stream.invalidate()
except:
pass # fails if it's already invalidated
data_ingestion.cancel()
log("%s %s (id:%s) invalidated and canceled" % (data_ingestion.getPortalType(), data_ingestion.getReference(), data_ingestion.getId()))
data_ingestion.setReference(data_ingestion.getReference() + "_invalid")
......@@ -14,7 +14,8 @@ try:
context.logEntry("Attempt to do a new ingestion with reference: %s" % reference)
# remove supplier and eof from reference
data_ingestion_reference = '_'.join(reference.split('.')[1:])
data_ingestion_reference = '_'.join(reference.split('.')[1:-1])
EOF = reference.split('.')[-1]
data_ingestion = portal_catalog.getResultValue(
portal_type = 'Data Ingestion',
......@@ -24,6 +25,12 @@ try:
return FALSE
if data_ingestion.getSimulationState() == 'planned':
try:
if EOF != "EOF" and int(EOF) == 1:
# The user has restarted a split ingestion that is already being processed
return TRUE
except:
pass
return FALSE
context.logEntry("[ERROR] Data Ingestion reference %s already exists" % data_ingestion_reference)
......
......@@ -9,4 +9,5 @@ person_module/**
portal_ingestion_policies/wendelin_embulk
portal_categories/function/**
portal_categories/use/big_data/ingestion/batch_ingestion
data_stream_module/embulk_download_script
\ No newline at end of file
data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
\ No newline at end of file
......@@ -9,4 +9,5 @@ person_module/**
portal_ingestion_policies/wendelin_embulk
portal_categories/function/**
portal_categories/use/big_data/ingestion/batch_ingestion
data_stream_module/embulk_download_script
\ No newline at end of file
data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
\ No newline at end of file
......@@ -4,6 +4,7 @@ data_product_module/fif_array
data_product_module/fif_data
data_product_module/fif_descriptor
data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
data_supply_module/**
data_transformation_module/**
person_module/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment