Skip to content

Commit 21fb274

Browse files
authored
[open_archive] Fix arbitrary file vulnerability (#850)
* [Open Archive] Fix arbitrary file vulnerability (#847) * fix arbitrary file vulnerability * fix arbitrary file vulnerability * fix test * [open_archive] Add traversal attack test (#849) * add traversal test * add traversal test * add traversal test
1 parent 0fd9b0d commit 21fb274

File tree

4 files changed

+112
-90
lines changed

4 files changed

+112
-90
lines changed

open_archive/function.yaml

Lines changed: 17 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,33 @@
11
kind: job
22
metadata:
33
name: open-archive
4-
tag: ''
5-
hash: a7dffde0d24ae5dd22d88a641ac25b82816a2bc1
6-
project: ''
7-
labels:
8-
author: yaronh
94
categories:
105
- data-preparation
6+
tag: ''
7+
verbose: false
118
spec:
9+
build:
10+
code_origin: ''
11+
origin_filename: ''
12+
functionSourceCode: IyBDb3B5cmlnaHQgMjAyNSBJZ3VhemlvCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiMKCmltcG9ydCBvcwppbXBvcnQgemlwZmlsZQppbXBvcnQgdGFyZmlsZQoKZnJvbSBtbHJ1bi5leGVjdXRpb24gaW1wb3J0IE1MQ2xpZW50Q3R4CmZyb20gbWxydW4uZGF0YXN0b3JlIGltcG9ydCBEYXRhSXRlbQpmcm9tIG1scnVuLmFydGlmYWN0cy5iYXNlIGltcG9ydCBEaXJBcnRpZmFjdAoKZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCgoKZGVmIG9wZW5fYXJjaGl2ZSgKICAgICAgICBjb250ZXh0OiBNTENsaWVudEN0eCwKICAgICAgICBhcmNoaXZlX3VybDogRGF0YUl0ZW0sCiAgICAgICAgc3ViZGlyOiBzdHIgPSAiY29udGVudC8iLAogICAgICAgIGtleTogc3RyID0gImNvbnRlbnQiLAogICAgICAgIHRhcmdldF9wYXRoOiBzdHIgPSBOb25lLAopOgogICAgIiIiT3BlbiBhIGZpbGUvb2JqZWN0IGFyY2hpdmUgaW50byBhIHRhcmdldCBkaXJlY3RvcnkuIEN1cnJlbnRseSwgc3VwcG9ydHMgemlwIGFuZCB0YXIuZ3ouCgogICAgOnBhcmFtIGNvbnRleHQ6ICAgICAgZnVuY3Rpb24gZXhlY3V0aW9uIGNvbnRleHQKICAgIDpwYXJhbSBhcmNoaXZlX3VybDogIHVybCBvZiBhcmNoaXZlIGZpbGUKICAgIDpwYXJhbSBzdWJkaXI6ICAgICAgIHBhdGggd2l0aGluIGFydGlmYWN0IHN0b3JlIHdoZXJlIGV4dHJhY3RlZCBmaWxlcyBhcmUgc3RvcmVkLCBkZWZhdWx0IGlzICIvY29udGVudCIKICAgIDpwYXJhbSBrZXk6ICAgICAgICAgIGtleSBvZiBhcmNoaXZlIGNvbnRlbnRzIGluIGFydGlmYWN0IHN0b3JlCiAgICA6cGFyYW0gdGFyZ2V0X3BhdGg6ICBmaWxlIHN5c3RlbSBwYXRoIHRvIHN0b3JlIGV4dHJhY3RlZCBmaWxlcwogICAgIiIiCgogICAgIyBSZXNvbHZlcyB0aGUgYXJjaGl2ZSBsb2NhbGx5CiAgICBhcmNoaXZlX3VybCA9IGFyY2hpdmVfdXJsLmxvY2FsKCkKICAgIHYzaW9fc3ViZGlyID0gTm9uZQogICAgIyBXaGVuIGN1c3RvbSBhcnRpZmFjdCBwYXRoIGlzIGRlZmluZWQKICAgIGlmIG5vdCB0YXJnZXRfcGF0aCBhbmQgY29udGV4dC5hcnRpZmFjdF9wYXRoOgogICAgICAgIHBhcnNlZF9zdWJkaXIgPSB1cmxwYXJzZShjb250ZXh0LmFydGlmYWN0X3BhdGgpCiAgICAgICAgaWYgcGFyc2VkX3N1YmRpci5zY2hlbWUgPT0gJ3MzJzoKICAgICAgICAgICAgc3ViZGlyID0gb3MucGF0aC5qb2luKGNvbnRleHQuYXJ0aWZhY3RfcGF0aCwgc3ViZGlyKQogICAgICAgIGVsaWYgcGFyc2VkX3N1YmRpci5zY2hlbWUgPT0gJ3YzaW8nOgogICAgICAgICAgICB2M2lvX3N1YmRpciA9IG9zLnBhdGguam9pbihjb250ZXh0LmFydGlmYWN0X3BhdGgsIHN1YmRpcikgICMgVXNpbmcgdjNpb19zdWJkaXIgZm9yIGxvZ2dpbmcKICAgICAgICAgICAgc3ViZGlyID0gJy92M2lvJyArIHBhcnNlZF9zdWJkaXIucGF0aCArICcvJyArIHN1YmRpcgogICAgICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnVXNpbmcgdjNpbyBzY2hlbWUsIGV4dHJhY3RpbmcgdG8ge3N1YmRpcn0nKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLmluZm8oZidVbnJlY29nbml6YWJsZSBzY2hlbWUsIGV4dHJhY3RpbmcgdG8ge3N1YmRpcn0nKQoKICAgICMgV2hlbiB3b3JraW5nIG9uIENFLCB0YXJnZXQgcGF0aCBtaWdodCBiZSBvbiBzMwogICAgaWYgJ3MzJyBpbiAodGFyZ2V0X3BhdGggb3Igc3ViZGlyKToKICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnVXNpbmcgczMgc2NoZW1lLCBleHRyYWN0aW5nIHRvIHt0YXJnZXRfcGF0aCBvciBzdWJkaXJ9JykKCiAgICAgICAgaWYgYXJjaGl2ZV91cmwuZW5kc3dpdGgoImd6Iik6CiAgICAgICAgICAgIF9leHRyYWN0X2d6X2ZpbGUoYXJjaGl2ZV91cmw9YXJjaGl2ZV91cmwsIHN1YmRpcj1zdWJkaXIsIHRhcmdldF9wYXRoPXRhcmdldF9wYXRoLCBpbl9zMz1UcnVlKQoKICAgICAgICBlbGlmIGFyY2hpdmVfdXJsLmVuZHN3aXRoKCJ6aXAiKToKICAgICAgICAgICAgX2V4dHJhY3RfemlwX2ZpbGUoYXJjaGl2ZV91cmw9YXJjaGl2ZV91cmwsIHN1YmRpcj1zdWJkaXIsIHRhcmdldF9wYXRoPXRhcmdldF9wYXRoLCBpbl9zMz1UcnVlKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJ1bnN1cHBvcnRlZCBhcmNoaXZlIHR5cGUgaW4ge2FyY2hpdmVfdXJsfSIpCiAgICBlbHNlOgogICAgICAgIGlmIGFyY2hpdmVfdXJsLmVuZHN3aXRoKCJneiIpOgogICAgICAgICAgICBfZXh0cmFjdF9nel9maWxlKGFyY2hpdmVfdXJsPWFyY2hpdmVfdXJsLCBzdWJkaXI9c3ViZGlyLCB0YXJnZXRfcGF0aD10YXJnZXRfcGF0aCkKICAgICAgICBlbGlmIGFyY2hpdmVfdXJsLmVuZHN3aXRoKCJ6aXAiKToKICAgICAgICAgICAgX2V4dHJhY3RfemlwX2ZpbGUoYXJjaGl2ZV91cmw9YXJjaGl2ZV91cmwsIHN1YmRpcj1zdWJkaXIsIHRhcmdldF9wYXRoPXRhcmdldF9wYXRoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJ1bnN1cHBvcnRlZCBhcmNoaXZlIHR5cGUgaW4ge2FyY2hpdmVfdXJsfSIpCgogICAgaWYgdjNpb19zdWJkaXI6CiAgICAgICAgc3ViZGlyID0gdjNpb19zdWJkaXIKCiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnTG9nZ2luZyBhcnRpZmFjdCB0byB7KHRhcmdldF9wYXRoIG9yIHN1YmRpcil9JykKICAgIGNvbnRleHQubG9nX2FydGlmYWN0KERpckFydGlmYWN0KGtleT1rZXksIHRhcmdldF9wYXRoPSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpKSkKCgpkZWYgX2V4dHJhY3RfZ3pfZmlsZShhcmNoaXZlX3VybDogc3RyLCB0YXJnZXRfcGF0aDogc3RyID0gTm9uZSwgc3ViZGlyOiBzdHIgPSAiY29udGVudC8iLCBpbl9zMzogYm9vbCA9IEZhbHNlKToKICAgIGlmIGluX3MzOgogICAgICAgIGNsaWVudCA9IF9pbml0X2JvdG8zX2NsaWVudCgpCiAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV91cmwsIG1vZGU9InJ8Z3oiKSBhcyByZWY6CiAgICAgICAgICAgIGZvciBtZW1iZXIgaW4gcmVmLmdldG1lbWJlcnMoKToKICAgICAgICAgICAgICAgIGRhdGEgPSByZWYuZXh0cmFjdGZpbGUobWVtYmVyPW1lbWJlcikucmVhZCgpCiAgICAgICAgICAgICAgICBjbGllbnQucHV0X29iamVjdChCb2R5PWRhdGEsIEJ1Y2tldD11cmxwYXJzZSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpLm5ldGxvYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleT1mJ3t1cmxwYXJzZSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpLnBhdGhbMTpdfXttZW1iZXIubmFtZX0nKQogICAgZWxzZToKICAgICAgICBvcy5tYWtlZGlycyh0YXJnZXRfcGF0aCBvciBzdWJkaXIsIGV4aXN0X29rPVRydWUpCiAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV91cmwsIG1vZGU9InI6Z3oiKSBhcyByZWY6CiAgICAgICAgICAgIGZvciBlbnRyeSBpbiByZWY6CiAgICAgICAgICAgICAgICAjIFZhbGlkYXRlIHRoYXQgdGhlcmUgaXMgbm8gcGF0aCB0cmF2ZXJzYWwgaW4gdGhlIGFyY2hpdmUKICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNhYnMoZW50cnkubmFtZSkgb3IgIi4uIiBpbiBlbnRyeS5uYW1lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJJbGxlZ2FsIHRhciBhcmNoaXZlIGVudHJ5OiB7ZW50cnkubmFtZX0iKQoKICAgICAgICAgICAgICAgIHJlZi5leHRyYWN0KGVudHJ5LCB0YXJnZXRfcGF0aCBvciBzdWJkaXIpCgoKZGVmIF9leHRyYWN0X3ppcF9maWxlKGFyY2hpdmVfdXJsLCB0YXJnZXRfcGF0aDogc3RyID0gTm9uZSwgc3ViZGlyOiBzdHIgPSAiY29udGVudC8iLCBpbl9zMzogYm9vbCA9IEZhbHNlKToKICAgIGlmIGluX3MzOgogICAgICAgIGNsaWVudCA9IF9pbml0X2JvdG8zX2NsaWVudCgpCiAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoYXJjaGl2ZV91cmwsICJyIikgYXMgcmVmOgogICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcmVmLm5hbWVsaXN0KCk6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVmLnJlYWQoZmlsZW5hbWUpCiAgICAgICAgICAgICAgICBjbGllbnQucHV0X29iamVjdChCb2R5PWRhdGEsIEJ1Y2tldD11cmxwYXJzZSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpLm5ldGxvYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleT1mJ3t1cmxwYXJzZSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpLnBhdGhbMTpdfXtmaWxlbmFtZX0nKQogICAgZWxzZToKICAgICAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShhcmNoaXZlX3VybCwgInIiKSBhcyByZWY6CiAgICAgICAgICAgICMgVmFsaWRhdGUgdGhhdCB0aGVyZSBpcyBubyBwYXRoIHRyYXZlcnNhbCBpbiB0aGUgYXJjaGl2ZQogICAgICAgICAgICBmb3IgZW50cnkgaW4gcmVmLm5hbWVsaXN0KCk6CiAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzYWJzKGVudHJ5KSBvciAiLi4iIGluIGVudHJ5OgogICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJJbGxlZ2FsIHppcCBhcmNoaXZlIGVudHJ5OiB7ZW50cnl9IikKICAgICAgICAgICAgb3MubWFrZWRpcnModGFyZ2V0X3BhdGggb3Igc3ViZGlyLCBleGlzdF9vaz1UcnVlKQogICAgICAgICAgICByZWYuZXh0cmFjdGFsbCh0YXJnZXRfcGF0aCBvciBzdWJkaXIpCgoKZGVmIF9pbml0X2JvdG8zX2NsaWVudCgpOgogICAgaW1wb3J0IGJvdG8zCiAgICBpZiBvcy5lbnZpcm9uLmdldCgnUzNfRU5EUE9JTlRfVVJMJyk6CiAgICAgICAgY2xpZW50ID0gYm90bzMuY2xpZW50KCdzMycsIGVuZHBvaW50X3VybD1vcy5lbnZpcm9uLmdldCgnUzNfRU5EUE9JTlRfVVJMJykpCiAgICBlbHNlOgogICAgICAgIGNsaWVudCA9IGJvdG8zLmNsaWVudCgnczMnKQogICAgcmV0dXJuIGNsaWVudA==
13+
default_handler: open_archive
1214
command: ''
13-
args: []
1415
image: mlrun/mlrun
15-
build:
16-
functionSourceCode: IyBDb3B5cmlnaHQgMjAxOSBJZ3VhemlvCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiMKIyBHZW5lcmF0ZWQgYnkgbnVjbGlvLmV4cG9ydC5OdWNsaW9FeHBvcnRlcgoKaW1wb3J0IG9zCmltcG9ydCB6aXBmaWxlCmltcG9ydCB1cmxsaWIucmVxdWVzdAppbXBvcnQgdGFyZmlsZQppbXBvcnQganNvbgoKZnJvbSBtbHJ1bi5leGVjdXRpb24gaW1wb3J0IE1MQ2xpZW50Q3R4CmZyb20gbWxydW4uZGF0YXN0b3JlIGltcG9ydCBEYXRhSXRlbQpmcm9tIG1scnVuLmFydGlmYWN0cy5iYXNlIGltcG9ydCBEaXJBcnRpZmFjdAoKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCmltcG9ydCBib3RvMwpmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UKCmRlZiBvcGVuX2FyY2hpdmUoCiAgICBjb250ZXh0OiBNTENsaWVudEN0eCwKICAgIGFyY2hpdmVfdXJsOiBEYXRhSXRlbSwKICAgIHN1YmRpcjogc3RyID0gImNvbnRlbnQvIiwKICAgIGtleTogc3RyID0gImNvbnRlbnQiLAogICAgdGFyZ2V0X3BhdGg6IHN0ciA9IE5vbmUsCik6CiAgICAiIiJPcGVuIGEgZmlsZS9vYmplY3QgYXJjaGl2ZSBpbnRvIGEgdGFyZ2V0IGRpcmVjdG9yeQogICAgQ3VycmVudGx5IHN1cHBvcnRzIHppcCBhbmQgdGFyLmd6CiAgICA6cGFyYW0gY29udGV4dDogICAgICBmdW5jdGlvbiBleGVjdXRpb24gY29udGV4dAogICAgOnBhcmFtIGFyY2hpdmVfdXJsOiAgdXJsIG9mIGFyY2hpdmUgZmlsZSAKICAgIDpwYXJhbSBzdWJkaXI6ICAgICAgIHBhdGggd2l0aGluIGFydGlmYWN0IHN0b3JlIHdoZXJlIGV4dHJhY3RlZCBmaWxlcwogICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHN0b3JlZAogICAgOnBhcmFtIGtleTogICAgICAgICAga2V5IG9mIGFyY2hpdmUgY29udGVudHMgaW4gYXJ0aWZhY3Qgc3RvcmUKICAgIDpwYXJhbSB0YXJnZXRfcGF0aDogIGZpbGUgc3lzdGVtIHBhdGggdG8gc3RvcmUgZXh0cmFjdGVkIGZpbGVzCiAgICAiIiIKICAgIAogICAgYXJjaGl2ZV91cmwgPSBhcmNoaXZlX3VybC5sb2NhbCgpCiAgICB2M2lvX3N1YmRpciA9IE5vbmUKICAgICMgV2hlbiBjdXN0b20gYXJ0aWZhY3QgcGF0aCBpcyBkZWZpbmVkCiAgICBpZiBub3QgdGFyZ2V0X3BhdGggYW5kIGNvbnRleHQuYXJ0aWZhY3RfcGF0aDoKICAgICAgICBwYXJzZWRfc3ViZGlyID0gdXJscGFyc2UoY29udGV4dC5hcnRpZmFjdF9wYXRoKQogICAgICAgIGlmIHBhcnNlZF9zdWJkaXIuc2NoZW1lID09ICdzMyc6CiAgICAgICAgICAgIHN1YmRpciA9IG9zLnBhdGguam9pbihjb250ZXh0LmFydGlmYWN0X3BhdGgsIHN1YmRpcikKICAgICAgICBlbGlmIHBhcnNlZF9zdWJkaXIuc2NoZW1lID09ICd2M2lvJzoKICAgICAgICAgICAgdjNpb19zdWJkaXIgPSBvcy5wYXRoLmpvaW4oY29udGV4dC5hcnRpZmFjdF9wYXRoLCBzdWJkaXIpICMgVXNpbmcgdjNpb19zdWJkaXIgZm9yIGxvZ2dpbmcKICAgICAgICAgICAgc3ViZGlyID0gJy92M2lvJyArIHBhcnNlZF9zdWJkaXIucGF0aCArICcvJyArIHN1YmRpcgogICAgICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnVXNpbmcgdjNpbyBzY2hlbWUsIGV4dHJhY3RpbmcgdG8ge3N1YmRpcn0nKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLmluZm8oZidVbnJlY29nbml6YWJsZSBzY2hlbWUsIGV4dHJhY3RpbmcgdG8ge3N1YmRpcn0nKQogICAgICAgICAgICAKICAgICMgV2hlbiB3b3JraW5nIG9uIENFLCB0YXJnZXQgcGF0aCBtaWdodCBiZSBvbiBzMwogICAgaWYgJ3MzJyBpbiAodGFyZ2V0X3BhdGggb3Igc3ViZGlyKToKICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnVXNpbmcgczMgc2NoZW1lLCBleHRyYWN0aW5nIHRvIHt0YXJnZXRfcGF0aCBvciBzdWJkaXJ9JykKICAgICAgICBpZiBvcy5lbnZpcm9uLmdldCgnUzNfRU5EUE9JTlRfVVJMJyk6CiAgICAgICAgICAgIGNsaWVudCA9IGJvdG8zLmNsaWVudCgnczMnLCBlbmRwb2ludF91cmwgPSBvcy5lbnZpcm9uLmdldCgnUzNfRU5EUE9JTlRfVVJMJykpIAogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGNsaWVudCA9IGJvdG8zLmNsaWVudCgnczMnKSAgCiAgICAgICAgICAgIAogICAgICAgIGlmIGFyY2hpdmVfdXJsLmVuZHN3aXRoKCJneiIpOgogICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihhcmNoaXZlX3VybCwgbW9kZT0icnxneiIpIGFzIHJlZjoKICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiByZWYubmFtZWxpc3QoKToKICAgICAgICAgICAgICAgICAgICBkYXRhPXJlZi5yZWFkKGZpbGVuYW1lKQogICAgICAgICAgICAgICAgICAgIGNsaWVudC5wdXRfb2JqZWN0KEJvZHk9ZGF0YSwgQnVja2V0PXVybHBhcnNlKHRhcmdldF9wYXRoIG9yIHN1YmRpcikubmV0bG9jLCBLZXk9Zid7dXJscGFyc2UodGFyZ2V0X3BhdGggb3Igc3ViZGlyKS5wYXRoWzE6XX17ZmlsZW5hbWV9JykKCiAgICAgICAgZWxpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgiemlwIik6CiAgICAgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGFyY2hpdmVfdXJsLCAiciIpIGFzIHJlZjoKICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiByZWYubmFtZWxpc3QoKToKICAgICAgICAgICAgICAgICAgICBkYXRhPXJlZi5yZWFkKGZpbGVuYW1lKQogICAgICAgICAgICAgICAgICAgIGNsaWVudC5wdXRfb2JqZWN0KEJvZHk9ZGF0YSwgQnVja2V0PXVybHBhcnNlKHRhcmdldF9wYXRoIG9yIHN1YmRpcikubmV0bG9jLCBLZXk9Zid7dXJscGFyc2UodGFyZ2V0X3BhdGggb3Igc3ViZGlyKS5wYXRoWzE6XX17ZmlsZW5hbWV9JykKICAgICAgICBlbHNlOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYidW5zdXBwb3J0ZWQgYXJjaGl2ZSB0eXBlIGluIHthcmNoaXZlX3VybH0iKQogICAgCiAgICBlbHNlOgogICAgICAgIG9zLm1ha2VkaXJzKHRhcmdldF9wYXRoIG9yIHN1YmRpciwgZXhpc3Rfb2s9VHJ1ZSkKICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgiZ3oiKToKICAgICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV91cmwsIG1vZGU9InJ8Z3oiKSBhcyByZWY6CiAgICAgICAgICAgICAgICByZWYuZXh0cmFjdGFsbCh0YXJnZXRfcGF0aCBvciBzdWJkaXIpCiAgICAgICAgZWxpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgiemlwIik6CiAgICAgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGFyY2hpdmVfdXJsLCAiciIpIGFzIHJlZjoKICAgICAgICAgICAgICAgIHJlZi5leHRyYWN0YWxsKHRhcmdldF9wYXRoIG9yIHN1YmRpcikKICAgICAgICBlbHNlOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYidW5zdXBwb3J0ZWQgYXJjaGl2ZSB0eXBlIGluIHthcmNoaXZlX3VybH0iKQogICAgICAgICAgICAKICAgIGlmIHYzaW9fc3ViZGlyOgogICAgICAgIHN1YmRpciA9IHYzaW9fc3ViZGlyCiAgICAgICAgCiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGYnTG9nZ2luZyBhcnRpZmFjdCB0byB7KHRhcmdldF9wYXRoIG9yIHN1YmRpcil9JykKICAgIGNvbnRleHQubG9nX2FydGlmYWN0KERpckFydGlmYWN0KGtleT1rZXksIHRhcmdldF9wYXRoPSh0YXJnZXRfcGF0aCBvciBzdWJkaXIpKSkK
17-
commands: []
18-
code_origin: https://github.com/daniels290813/functions.git#3e17475a7c3cb3d01913056fbc2e1a5ab150f559:/User/test/functions/open_archive/open_archive.py
19-
origin_filename: /User/test/functions/open_archive/open_archive.py
16+
description: Open a file/object archive into a target directory
2017
entry_points:
2118
open_archive:
22-
name: open_archive
23-
doc: 'Open a file/object archive into a target directory
24-
25-
Currently supports zip and tar.gz'
19+
has_kwargs: false
2620
parameters:
2721
- name: context
2822
type: MLClientCtx
2923
doc: function execution context
30-
default: ''
3124
- name: archive_url
3225
type: DataItem
33-
doc: 'url of archive file '
34-
default: ''
26+
doc: url of archive file
3527
- name: subdir
3628
type: str
37-
doc: path within artifact store where extracted files are stored
29+
doc: path within artifact store where extracted files are stored, default
30+
is "/content"
3831
default: content/
3932
- name: key
4033
type: str
@@ -44,23 +37,9 @@ spec:
4437
type: str
4538
doc: file system path to store extracted files
4639
default: null
47-
outputs:
48-
- default: ''
49-
lineno: 31
50-
description: Open a file/object archive into a target directory
51-
default_handler: open_archive
40+
doc: Open a file/object archive into a target directory. Currently, supports
41+
zip and tar.gz.
42+
has_varargs: false
43+
name: open_archive
44+
lineno: 27
5245
disable_auto_mount: false
53-
env: []
54-
resources:
55-
requests:
56-
memory: 1Mi
57-
cpu: 25m
58-
limits:
59-
memory: 20Gi
60-
cpu: '2'
61-
priority_class_name: igz-workload-medium
62-
preemption_mode: prevent
63-
affinity: null
64-
tolerations: null
65-
security_context: {}
66-
verbose: false

open_archive/item.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ labels:
1111
author: yaronh
1212
maintainers: []
1313
marketplaceType: ''
14-
mlrunVersion: 1.1.0
14+
mlrunVersion: 1.8.0-rc50
1515
name: open-archive
1616
platformVersion: 3.5.0
1717
spec:
@@ -21,4 +21,4 @@ spec:
2121
kind: job
2222
requirements: []
2323
url: ''
24-
version: 1.1.0
24+
version: 1.2.0

0 commit comments

Comments
 (0)