register result
Showcase you can use reg in shell func to register the result to global runtime
Rules
- if reg=auto, it will use naming pattern: taskname_stepname_result, if stepname is empty, then it will use the index of the step instead, eg: taskname_0_result
- otherwise use the defined name as var name
Demo
source
Main task yaml file
tasks:
- name: task
task:
- func: call
do:
- test1
- test2
- test3
- name: test1
desc: |
test reg with an auto registered name
in this case the step name is empty, then the idx will be used
task:
- func: shell
desc: if this step does not have a name, then the auto reg name would be task_0_reslt
do:
- 'curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"'
reg: auto
- func: cmd
do:
- name: print
cmd: '{{.test1_0_result.Code}}'
- name: print
cmd: '{{.test1_0_result.Output}}'
- name: test2
desc: |
test reg with a auto registered name and the step name is not empty
in this case the registered reslt name is: test2_httpbinget_result
task:
- func: shell
name: httpbinget
desc: if this step does not have a name, then the auto reg name would be task_0_reslt
do:
- 'curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"'
reg: auto
- func: cmd
do:
- name: print
cmd: '{{.test2_httpbinget_result.Code}}'
- name: print
cmd: '{{.test2_httpbinget_result.Output}}'
- name: test3
desc: |
test reg with a registered name
in this case the registered reslt name is: test2_httpbinget_result
task:
- func: shell
name: httpbinget
desc: it will use the given name as var name to register the result
do:
- 'curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"'
reg: httpbin_get_result
- func: cmd
do:
- name: print
cmd: '{{.httpbin_get_result.Code}}'
- name: print
cmd: '{{.httpbin_get_result.Output}}'
Main log file
loading [Config]: ./tests/functests/upconfig.yml
Main config:
Version -> 1.0.0
RefDir -> ./tests/functests
WorkDir -> cwd
AbsWorkDir -> /up_project/up
TaskFile -> c0026
Verbose -> vvv
ModuleName -> self
ShellType -> /bin/sh
MaxCallLayers -> 8
Timeout -> 3600000
MaxModuelCallLayers -> 256
EntryTask -> task
ModRepoUsernameRef ->
ModRepoPasswordRef ->
work dir: /up_project/up
-exec task: task
loading [Task]: ./tests/functests/c0026
module: [self], instance id: [dev], exec profile: []
profile - envVars:
(*core.Cache)({
})
Task1: [task ==> task: ]
-Step1:
self: final context exec vars:
(*core.Cache)({
"up_runtime_task_layer_number": 0
})
=Task2: [task ==> test1: test reg with an auto registered name
in this case the step name is empty, then the idx will be used
]
--Step1: [: if this step does not have a name, then the auto reg name would be task_0_reslt ]
self: final context exec vars:
(*core.Cache)({
"up_runtime_task_layer_number": 1
})
cmd( 1):
curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"
-
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65bf-3ebe44e95197f2516de15877"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
-
.. ok
. ok
--Step2:
self: final context exec vars:
(*core.Cache)({
"up_runtime_task_layer_number": 1,
"test1_0_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"last_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
})
})
~~SubStep1: [print: ]
0
~~SubStep2: [print: ]
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65bf-3ebe44e95197f2516de15877"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
=Task3: [task ==> test2: test reg with a auto registered name and the step name is not empty
in this case the registered reslt name is: test2_httpbinget_result
]
--Step1: [httpbinget: if this step does not have a name, then the auto reg name would be task_0_reslt ]
self: final context exec vars:
(*core.Cache)({
"test1_0_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"last_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"up_runtime_task_layer_number": 1
})
cmd( 1):
curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"
-
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65c0-293113b21725478013d5df6a"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
-
.. ok
. ok
--Step2:
self: final context exec vars:
(*core.Cache)({
"test2_httpbinget_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c0-293113b21725478013d5df6a\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"up_runtime_task_layer_number": 1,
"test1_0_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"last_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c0-293113b21725478013d5df6a\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
})
})
~~SubStep1: [print: ]
0
~~SubStep2: [print: ]
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65c0-293113b21725478013d5df6a"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
=Task4: [task ==> test3: test reg with a registered name
in this case the registered reslt name is: test2_httpbinget_result
]
--Step1: [httpbinget: it will use the given name as var name to register the result ]
self: final context exec vars:
(*core.Cache)({
"test2_httpbinget_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c0-293113b21725478013d5df6a\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"up_runtime_task_layer_number": 1,
"test1_0_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"last_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c0-293113b21725478013d5df6a\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
})
})
cmd( 1):
curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"
-
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65c1-3dd251446d66b5c610050160"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
-
.. ok
. ok
--Step2:
self: final context exec vars:
(*core.Cache)({
"last_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c1-3dd251446d66b5c610050160\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"test2_httpbinget_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c0-293113b21725478013d5df6a\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"httpbin_get_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65c1-3dd251446d66b5c610050160\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
}),
"up_runtime_task_layer_number": 1,
"test1_0_result": (*utils.ExecResult)({
Cmd: "curl -s -X GET \"https://httpbin.org/get\" -H \"accept: application/json\"",
Code: 0,
Output: "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"application/json\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"curl/7.70.0\", \n \"X-Amzn-Trace-Id\": \"Root=1-5f7c65bf-3ebe44e95197f2516de15877\"\n }, \n \"origin\": \"118.208.99.38\", \n \"url\": \"https://httpbin.org/get\"\n}",
ErrMsg: ""
})
})
~~SubStep1: [print: ]
0
~~SubStep2: [print: ]
{
"args": {},
"headers": {
"Accept": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.70.0",
"X-Amzn-Trace-Id": "Root=1-5f7c65c1-3dd251446d66b5c610050160"
},
"origin": "118.208.99.38",
"url": "https://httpbin.org/get"
}
Logs with different verbose level
Raw logs with different verbose level