When user creates function, qinling will create trust for the function
that can be used when function is invoked. This feature is especially
useful when the function is invoked by a trustee user.
Remove the trust for job accordingly because the job will always use
trust for the function.
Change-Id: I68c608a1f25f1008e13bff33325e7cd9914653ae
After function autoscaling support, it's impossible for qinling-engine
to get execution log because it doesn't know which pod it is talking
to.
So, it's neccessary for the runtime to return execution logs to
qinling engine.
The qinling client is not affected.
Change-Id: I96dfd00cc83d8b8a5e8c601ee3800b1ef1a45b1b
For testing purpose, just use multithreading support of Flask itself.
It's not recommended for production use.
Change-Id: I062c6f093e1c167a2ef9c8ad6747fc770e0139e8
After execution is finished, Qinling provides API to query execution
log for audit, debug or other purposes.
Implements: blueprint qinling-logs
Change-Id: Ie92619bf238c8e72e15c350c65bfbbb88a065f97
If the function is triggered by job, it's very hard to get openstack
serssion based on trust id, unless the qinling service credentials are
passed which will lead to security issue.
So, this patch will remove 'context' param for user function.
Change-Id: Ib0e185ad9729cf59e308b7ded683911a92624ad0
OpenStack service session is generated when downloading code from
inside the container, but when the function is invoked at a deferred
time, the token may already be expiried.
Need to create the session when executing the function instead of
when downloading.
Change-Id: I8170bfb1c5f8b6cf88a744547db12cc12248aaca
Keystone session can be used directly in user function to access
OpenStack services.
Include openstack clients in python requirements as well.
Add a python function example.
Implements: blueprint qinling-openstack-clients
Change-Id: I4798c404cb57bafe14049f57ba8db7c7125106c7
Currenty, the function entry is hard-coded to be 'main.main' which is
not flexible. This patch adds support for specifying module name and
function name in the code package.
Change-Id: I92ea36f668073f380a4aef4526a6fad321d8cc95
With this patch, users can create function using swift object:
http POST http://127.0.0.1:7070/v1/functions name=swift_function \
runtime_id=xxx \
code='{"source": "swift", "swift": {"container": "container_name", "object": "object_name"}}'
Implements: blueprint support-swift-object-as-code