Commit Graph

46 Commits

Author SHA1 Message Date
Denis Makogon
33a8b87dc0 Reverting swagger doc 2017-09-11 23:57:47 +03:00
Denis Makogon
78f2d51bfa Implementing force delete for apps
Deployment-Impact: DB schema changed

API Impact: HTTP DELETE /apps/{app} accepts query parameters: /apps/{app}?force=True

Closes: #302
2017-09-11 17:32:35 +03:00
Denis Makogon
e9823549ee Get rid /version and /tasks from swagger doc (#232)
* Get rid /version and /tasks from swagger doc

* Updating version
2017-08-18 11:25:58 -07:00
Denis Makogon
24557f09b2 Updating route model in swagger to use uint64 instead of int64 2017-08-09 23:07:31 +03:00
Reed Allman
6a7973e6b6 plumb all config fields into task
the mqs are storing a models.Task, which was not incorporating all the fields
that are in a task.Config. I would very much like to merge these two things,
but expect to do this in a future restructuring as both are used widely and
not cordoned off properly (Config has a channel, stdin, stdout, stderr -- and
isn't just a 'config', so to speak, as Task is).

Since a task.Config is what is used to actually run a container, the result of
the aforementioned deficiency was #193 where tasks are improperly configured
and ran (namely, memory wrong).

async tasks can still not be hot, they will be reverted to default format.
would also like to fix this (also part of restructuring). I actually started
doing this, hence the changes to those files (the surface area of the change
is small and discourages improper future use, so I've left what I've done).

this will:

closes #193
closes #195
closes #154

removes many unused fields in models.Task, since we have not implemented
retries. priority & delay are left, even though they are not used either,
the main goal of this is to resolve #193 and both these fields are strongly
plumbed into all the mqs, so punting on those two.
2017-08-03 06:33:30 -07:00
Denis Makogon
fcb41c89a7 Update swagger
removing backslash that causes HTTP 301 Redirect

[GIN-debug] redirecting request 301: /v1/apps/testapp/calls/ --> /v1/apps/testapp/calls
2017-08-07 14:08:19 +03:00
James
6ee7619b40 Move all endpoints on v1 to be under apps 2017-07-28 07:25:50 -07:00
James Jeffrey
77c5d38381 Update docs 2017-07-06 11:46:25 -07:00
James Jeffrey
b4d39c0f3c Refactor seperate out logic 2017-07-06 11:46:24 -07:00
James Jeffrey
4845ddb1d4 Only use 200 follows what others do. Less switching. Remove defense 2017-07-06 11:46:24 -07:00
James Jeffrey
c66a0d0cc4 Update swagger doc. Indicate to user if updated or created 2017-07-06 11:46:24 -07:00
Denis Makogon
ed0395c118 Update swagger doc
- updating route attribute types
 - bumping version
2017-06-22 17:20:48 +03:00
Travis Reeder
8800ecc5c2 Merge branch 'func_logs2' into 'master'
Func logs feature

See merge request !66
2017-06-20 11:51:26 -07:00
Travis Reeder
8c96d3ba2f Fixes async payload passing for #68. 2017-06-20 11:32:51 -07:00
James
8a3edb8309 All of the changes for func logs 2017-06-19 11:38:11 -07:00
Denis Makogon
52137e3b61 Update fn tool 2017-06-08 11:46:56 -07:00
Reed Allman
9edacae928 clean up hotf(x) concurrency, rm max c
this patch gets rid of max concurrency for functions altogether, as discussed,
since it will be challenging to support across functions nodes. as a result of
doing so, the previous version of functions would fall over when offered 1000
functions, so there was some work needed in order to push this through.
further work is necessary as docker basically falls over when trying to start
enough containers at the same time, and with this patch essentially every
function can scale infinitely. it seems like we could add some kind of
adaptive restrictions based on task run length and configured wait time so
that fast running functions will line up to run in a hot container instead of
them all creating new hot containers.

this patch takes a first cut at whacking out some of the insanity that was the
previous concurrency model, which was problematic in that it limited
concurrency significantly across all functions since every task went through
the same unbuffered channel, which could create blocking issues for all
functions if the channel is not picked off fast enough (it's not apparent that
this was impossible in the previous implementation). in any event, each
request has a goroutine already, there's no reason not to use it. not too hard
to wrap a map in a lock, not sure what the benefits were (added insanity?) in effect
this is marginally easier to understand and less insane (marginally). after
getting rid of max c this adds a blocking mechanism for the first invocation
of any function so that all other hot functions will wait on the first one to
finish to avoid a herd issue (was making docker die...) -- this could be
slightly improved, but works in a pinch. reduced some memory usage by having
redundant maps of htfnsvr's and task.Requests (by a factor of 2!). cleaned up
some of the protocol stuff, need to clean this up further. anyway, it's a
first cut. have another patch that rewrites all of it but was getting into
rabbit hole territory, would be happy to oblige if anybody else has problems
understanding this rat's nest of channels. there is a good bit of work left to
make this prod ready (regardless of removing max c).

a warning that this will break the db schemas, didn't put the effort in to add
migration stuff since this isn't deployed anywhere in prod...

TODO need to clean out the htfnmgr bucket with LRU
TODO need to clean up runner interface
TODO need to unify the task running paths across protocols
TODO need to move the ram checking stuff into worker for noted reasons
TODO need better elasticity of hot f(x) containers
2017-06-05 20:04:13 -07:00
Denis Makogon
3f065ce6bf [Feature] Function status 2017-06-06 14:12:50 -07:00
Travis Reeder
9cc12b4b12 Remove iron... 2017-05-18 18:59:34 +00:00
Travis Reeder
4b9bba352d Rename location. 2017-05-15 11:00:15 -07:00
Travis Reeder
615ae5c36f Mass s&r: iron-io -> kumokit 2017-04-19 09:49:12 -06:00
Denis Makogon
7603e6e8fa Add idle_timeout to routes API (#603)
* Add inactivity_timeout to routes API

Closes: #544

* Fix failing datastore tests

* Rename inactivity_timeout to idle_timeout

* Update swagger doc

* Update hot fn doc

* Fix json tags

* Add function timeouts docs

* Rewording
2017-03-25 18:28:53 +01:00
C Cirello
2f0520521c all: rename hot containers to hot functions (#465) 2016-12-29 20:07:41 +01:00
Pedro Nasser
5a6ebb4e2f fn should show API errors messages (#450)
* fn should show API errors messages

* update functions_go

* update functions_go lock
2016-12-19 16:30:18 -02:00
Pedro Nasser
4d7dde3486 change update from PUT method to PATCH (#440) 2016-12-14 17:22:44 +01:00
Pedro Nasser
32de7d5361 Improvements on API error, swagger and status code (#428)
* improvements on API error, swagger and status code

* missing validation

* removing typo

* fix if-within-if

* fix handle app delete
2016-12-13 19:18:52 -02:00
Pedro Nasser
49a7712e6b API improvements (#410)
* api improvements, remove global Api object and reduce gin dependency

* requested changes
2016-12-09 15:24:35 -02:00
Travis Reeder
e172a838c2 Fixed Route definition in swagger doc. (#405)
* Fixed Route definition in swagger doc.

* Changed swagger URL to petstore so we don't have to maintain it in swaggerhub and github anymore.
2016-12-07 20:33:34 +01:00
C Cirello
3b16b7f1d8 functions: application updates no longer accept name in the body (#391)
* functions: application updates no longer accept name in the body

AppUpdate was initially conceived as an upsert endpoint for apps.
It turns out that it created an inconsistency regarding updates:
updates with names divergent with URL would not actually change
application's name.

This commit atempts to address the issue by returning an HTTP
error when trying to update an application name. In swagger.yml,
application names are already `readOnly:true`. Thus there is no
change from expected behavior.

Fixes #380

* functions: use specific error value for name change
2016-12-07 19:54:21 +01:00
C Cirello
66d446b148 functions: returns HTTP error in case of route update attempt (#396)
Ensure that attempts to update route's path are properly handled
with a HTTP error. Moreover, updates swagger file to make it
explicit that routes are immutable.

Fixes #381
2016-12-07 19:54:09 +01:00
C Cirello
e63cc04e68 fn: add header configuration to route calls (#371) 2016-12-01 17:51:26 +01:00
C Cirello
37afafab72 api: remove app_name duplication of route related calls (#370) 2016-12-01 17:38:32 +01:00
C Cirello
688ffcf39f api,fn: entrypoint to return daemon version (#367) 2016-12-01 16:50:49 +01:00
C Cirello
308cb25ba2 api: remove useless parameter in get task call (#353)
Fixes #275
2016-11-28 23:59:12 +01:00
C Cirello
a7a466f968 functions: fix route timeout (#349)
* functions: add route-level timeout configuration options

* functions: harmonize defaults
2016-11-28 20:53:11 -02:00
C Cirello
ac0044f7d9 functions: hot containers (#332)
* functions: modify datastore to accomodate hot containers support

* functions: protocol between functions and hot containers

* functions: add hot containers clockwork

* fn: add hot containers support
2016-11-28 15:45:35 -02:00
C Cirello
da96ef471a api: add support for deleting apps (#327)
* api: add support for deleting apps

Fixes #274

* functions: improve error name and description

* functions: fix test regression
2016-11-22 01:07:30 +01:00
C Cirello
fe845e1886 fn: improve UX (#325)
* fn: make UX more consistent with regards to app name position

* fn: improve detection of missing routes

* fn: fix update operations

- No longer delete-than-add for configuration updates
- Path cleaning before most of routes operations
2016-11-22 00:27:48 +01:00
Travis Reeder
616112b349 swagger fixes and appname -> app_name (#294)
* swagger fixes and appname -> app_name

* Swagger errors fixed
2016-11-15 08:13:53 -08:00
C Cirello
6af57c2bdb fnctl: add application level configuration (#247)
Fixes #233
2016-11-09 13:59:24 -08:00
C Cirello
c985a17b02 fnctl: expand fnctl README.md with new options for configuration (#242)
* fnctl: expand fnctl README.md with new options for configuration

* fnctl: extends function files to update routes configurations
2016-11-09 00:33:49 +01:00
C Cirello
ae6924c36c client: add memory, type and configuration flags (#234)
* client: add memory, type and configuration to API
* client: improve documentation about memory, type and route configuration
2016-11-08 21:49:10 +01:00
C Cirello
b8cc8ad1d5 Functions CLI (#191)
First iteration of CLI tool.
2016-10-24 09:21:07 -07:00
Travis Reeder
0392363e1f Bumped swagger version and fixed client builder. 2016-10-19 13:03:28 -07:00
Seif Lotfy سيف لطفي
e85a31b715 Add missing swagger spec (#175)
* Add missing swagger spec

* More cleaning up of the swagger.yml and removing unused structs

* Add TaskWrapper
2016-10-19 12:22:41 -07:00
Travis Reeder
fcde29802e Swagger client generator. (#166) 2016-10-14 11:40:20 -07:00