Commit Graph

2423 Commits

Author SHA1 Message Date
CI
97bdc5da4b fnserver: 0.3.280 release [skip ci] 0.3.280 2018-01-09 21:33:52 +00:00
Travis Reeder
82541d24ee wip (#665) 2018-01-09 13:27:38 -08:00
CI
4fa781563c fnlb: 0.0.240 release [skip ci] fnlb-0.0.240 2018-01-09 18:38:04 +00:00
CI
360abceff5 fnserver: 0.3.279 release [skip ci] 0.3.279 2018-01-09 18:36:09 +00:00
Ben Meier
aac8ac3027 Added private registries documentation (#654) 2018-01-09 10:29:47 -08:00
CI
0a3bad0e94 fnlb: 0.0.239 release [skip ci] fnlb-0.0.239 2018-01-09 18:16:49 +00:00
CI
0fb40f6abf fnserver: 0.3.278 release [skip ci] 0.3.278 2018-01-09 18:14:47 +00:00
Reed Allman
20089c4e83 make headers quasi-consistent (#660)
possible breakages:

* `FN_HEADER` on cold are no longer `s/-/_/` -- this is so that cold functions
can rebuild the headers as they were when they came in on the request (fdks,
specifically), there's no guarantee that a reversal `s/_/-/` is the original
header on the request.
* app and route config no longer `s/-/_/` -- it seemed really weird to rewrite
the users config vars on these. should just pass them exactly as is to env.
* headers no longer contain the environment vars (previously, base config; app
config, route config, `FN_PATH`, etc.), these are still available in the
environment.

this gets rid of a lot of the code around headers, specifically the stuff that
shoved everything into headers when constructing a call to begin with. now we
just store the headers separately and add a few things, like FN_CALL_ID to
them, and build a separate 'config' now to store on the call. I thought
'config' was more aptly named, 'env' was confusing, though now 'config' is
exactly what 'base_vars' was, which is only the things being put into the env.
we weren't storing this field in the db, this doesn't break unless there are
messages in a queue from another version, anyway, don't think we're there and
don't expect any breakage for anybody with field name changes.

this makes the configuration stuff pretty straight forward, there's just two
separate buckets of things, and cold just needs to mash them together into the
env, and otherwise hot containers just need to put 'config' in the env, and then
hot format can shove 'headers' in however they'd like. this seems better than
my last idea about making this easier but worse (RIP).

this means:

* headers no longer contain all vars, the set of base vars can only be found
in the environment.
* headers is only the headers from request + call_id, deadline, method, url
* for cold, we simply add the headers to the environment, prepending
`FN_HEADER_` to them, BUT NOT upper casing or `s/-/_/`
* fixes issue where async hot functions would end up with `Fn_header_`
prefixed headers
* removes idea of 'base' vars and 'env'. this was a strange concept. now we just have
'config' which was base vars, and headers, which was base_env+headers; i.e.
they are disjoint now.
* casing for all headers will lean to be `My-Header` style, which should help
with consistency. notable exceptions for cold only are FN_CALL_ID, FN_METHOD,
and FN_REQUEST_URL -- this is simply to avoid breakage, in either hot format
they appear as `Fn_call_id` still.
* removes FN_PARAM stuff
* updated doc with behavior

weird things left:

`Fn_call_id` e.g. isn't a correctly formatted http header, it should likely be
`Fn-Call-Id` but I wanted to live to fight another day on this one, it would
add some breakage.

examples to be posted of each format below

closes #329
2018-01-09 10:08:30 -08:00
CI
9c2a2a7fe7 fnlb: 0.0.238 release [skip ci] fnlb-0.0.238 2018-01-09 16:51:56 +00:00
CI
b1bae08f7d fnserver: 0.3.277 release [skip ci] 0.3.277 2018-01-09 16:49:49 +00:00
Travis Reeder
580dd3e5cb Removes FN_PARAM_xxx (#661) 2018-01-09 16:42:25 +00:00
CI
66cdd2aca5 fnlb: 0.0.237 release [skip ci] fnlb-0.0.237 2018-01-08 23:05:16 +00:00
CI
e2c8eef3c2 fnserver: 0.3.276 release [skip ci] 0.3.276 2018-01-08 23:03:13 +00:00
Tolga Ceylan
0274b5cb65 fn: input doc update for hot http/json functions (#659) 2018-01-08 14:56:05 -08:00
CI
acfa02a249 fnlb: 0.0.236 release [skip ci] fnlb-0.0.236 2018-01-08 20:43:07 +00:00
CI
571add2235 fnserver: 0.3.275 release [skip ci] 0.3.275 2018-01-08 20:41:00 +00:00
Tolga Ceylan
18716911b9 fn: agent slot and execution wait correction (#658)
Since by policy we require timeout/2 remaining time
before we can execute the request, we should also
bound the slot wait time by timeout/2 to avoid
waiting for full timeout in slot wait phase.
2018-01-08 12:33:37 -08:00
CI
dba306e3c8 fnlb: 0.0.235 release [skip ci] fnlb-0.0.235 2018-01-08 18:37:36 +00:00
CI
c66f668680 fnserver: 0.3.274 release [skip ci] 0.3.274 2018-01-08 18:35:45 +00:00
Tolga Ceylan
6f1f5e365d fn: URL parsing updates to fix json request_url (#657)
*) Updated fn-test-utils to latest fdk-go
*) Added hot-json to runner tests
*) Removed anon function in FromRequest which had
a side effect to set req.URL.Host. This is now more
explicit and eliminates some corresponding logic in
protocol http.
*) in gin, http request RequestURI is not set, removed
code that references this. (use Call.URL instead)
2018-01-08 10:28:50 -08:00
CI
b34a31aacc fnlb: 0.0.234 release [skip ci] fnlb-0.0.234 2018-01-08 18:12:45 +00:00
CI
89a4ad3cc2 fnserver: 0.3.273 release [skip ci] 0.3.273 2018-01-08 18:10:35 +00:00
Travis Reeder
5cdee5579d Fixes 404 responses from functions that go through NoRoute path. (#651)
* Fixes 404 responses from functions that go through NoRoute path.

* cleanup

* cleanupp

* fix link

* Rollback a bad change.
2018-01-08 10:03:33 -08:00
CI
c4ccf5f5a8 fnlb: 0.0.233 release [skip ci] fnlb-0.0.233 2018-01-06 02:07:00 +00:00
CI
798856c580 fnserver: 0.3.272 release [skip ci] 0.3.272 2018-01-06 02:04:56 +00:00
Reed Allman
a3f822a9be add a license printing script (#648)
* add a license printing script

this takes info from glide.yaml, which covers all our external dependencies,
and then searches for a LICENSE in each of them. the good news is that it
covers all of our stuff right now, there are none without a license we can't
find. the bad news is, it's not very robust. this seemed to be a manual
process so this is markedly better.

removed one dep we had in glide.yaml that we aren't actually using, should go
away next update

* last of em
2018-01-05 17:10:46 -08:00
CI
2a2e6723b6 fnlb: 0.0.232 release [skip ci] fnlb-0.0.232 2018-01-05 18:36:30 +00:00
CI
5e09fb45ab fnserver: 0.3.271 release [skip ci] 0.3.271 2018-01-05 18:34:30 +00:00
Tolga Ceylan
7185f8306a fn: async wait bugfix and low mem warnings (#649)
*) fix async high water mark logic
*) warning on 256 mem for async and async+sync pools
2018-01-05 10:27:26 -08:00
CI
18de5b4302 fnlb: 0.0.231 release [skip ci] fnlb-0.0.231 2018-01-05 17:43:23 +00:00
CI
2c029e155b fnserver: 0.3.270 release [skip ci] 0.3.270 2018-01-05 17:41:18 +00:00
Gerardo Viedma
6b91351ed8 Logs should support specifying region when using S3-compatible object store (#645)
Logs should support specifying region when using S3-compatible object store
2018-01-05 17:34:32 +00:00
CI
ed9e71ea5b fnlb: 0.0.230 release [skip ci] fnlb-0.0.230 2018-01-04 21:12:26 +00:00
CI
503d596993 fnserver: 0.3.269 release [skip ci] 0.3.269 2018-01-04 21:10:29 +00:00
Reed Allman
ab225178a7 revert swagger to json for logs (#639)
we need to keep it like this until we move to swagger 3, so that we don't
break clients using old versions of fn and new clients.
2018-01-04 13:03:58 -08:00
CI
587fc1bc3a fnlb: 0.0.229 release [skip ci] fnlb-0.0.229 2018-01-04 19:43:32 +00:00
CI
c8ae56d285 fnserver: 0.3.268 release [skip ci] 0.3.268 2018-01-04 19:41:35 +00:00
Tolga Ceylan
14789aba41 Slot mgr fixes (#613)
*) during shutdown, errors should be 503
*) new inactivity time out for hot queue, we previously kept hot queues in memory forever.
*) each hot queue now has a hot launcher to monitor and launch hot containers
*) consumers now create a consumer channel with startDequeuer() that can be cancelled via context
*) consumers now ping (signal) hot launcher every 200 msecs until they get a slot
*) tests for slot queue & mgr
2018-01-04 11:34:43 -08:00
CI
282412f4f5 fnlb: 0.0.228 release [skip ci] fnlb-0.0.228 2018-01-04 00:26:27 +00:00
CI
5dd40ef045 fnserver: 0.3.267 release [skip ci] 0.3.267 2018-01-04 00:24:29 +00:00
Tolga Ceylan
880773a269 fn: FN_DEADLINE description (#638) 2018-01-03 16:17:40 -08:00
CI
ccb8e47a7d fnlb: 0.0.227 release [skip ci] fnlb-0.0.227 2018-01-03 16:51:52 +00:00
CI
4599468017 fnserver: 0.3.266 release [skip ci] 0.3.266 2018-01-03 16:49:45 +00:00
Nigel Deakin
c0dec594ef Add calls metric (#637)
* Add new Prometheus metric fn_api_calls

* Change fn_api_calls to a counter
2018-01-03 10:42:37 -06:00
CI
77d8f32ec4 fnlb: 0.0.226 release [skip ci] fnlb-0.0.226 2018-01-02 22:57:00 +00:00
CI
76ca562b6d fnserver: 0.3.265 release [skip ci] 0.3.265 2018-01-02 22:54:57 +00:00
Reed Allman
aa3ea9f7c9 CI don't install docker (#635)
it's there already, and >17.05
2018-01-02 16:47:08 -06:00
CI
5b6da996b5 fnlb: 0.0.225 release [skip ci] fnlb-0.0.225 2018-01-02 22:11:33 +00:00
CI
746a2cf4cf fnserver: 0.3.264 release [skip ci] 0.3.264 2018-01-02 22:09:33 +00:00
Denis Makogon
60d2ca234f Ship call logs to the user as text/plain instead of JSON (#615)
* Ship call logs to the user as text/plain instead of JSON

* Fixing swagger doc

* c.String instead of c.JSON

* Make Logs API backward compatible

* Loop over accepted MIME types

* Bump swagger API version

* Fix client build script

 previous version was producing the following "couldn't find a swagger spec"

* Logs API regression test

* Write response body without buffering

* Switch JSON and text/plain cases

* Handle Accepted content types properly

* More solid response content type handling

* Write HTTP 406 with corresponding error body

* Remove unused import

* Use handleErrorResponse
2018-01-02 16:01:22 -06:00