- 20 Sep, 2018 2 commits
-
-
BAIRE Anthony authored
-
BAIRE Anthony authored
When 'versions' is empty, the « From an existing version » option in the template is hidden. However reversed() returns an iterator, which is never False -> need to coerce versions into a list.
-
- 19 Sep, 2018 2 commits
-
-
BAIRE Anthony authored
close #249
-
BAIRE Anthony authored
- add config key ALLGO_WEBAPP_DEFAULT_MEMORY_LIMIT_MB to set the default memory limit for newly created webapps - add memory limit field in WebappUpdate - display memory_limit in megabytes in the UI (through the memory_limit_mb form field) - disable the memory_limit_mb widget and ignored the posted value when user is not superuser - forbid negative value in the model - make the memory limit field required in the forms
-
- 18 Sep, 2018 4 commits
-
-
BAIRE Anthony authored
close #272
-
BAIRE Anthony authored
close #269, #270 Note: checking os.path.exists(job.data_dir) is no longer required since the data dir is always created (even if the job has no input files)
-
BAIRE Anthony authored
-
BAIRE Anthony authored
- fix url conflict for .zip archive download - fix empty zip file close #268
-
- 17 Sep, 2018 3 commits
-
-
BAIRE Anthony authored
(was not used at all)
-
BAIRE Anthony authored
because django sets a foreign key constraint on sandbox_version_id we may have issues if it refers to a version we want to delete
-
BAIRE Anthony authored
With this change docker images are no longer named as: <Webapp.docker_name>:<WebappVersion.number> but <Webapp.docker_name>:id</WebappVersion.id> This is only for storage, for the user we still present the image as <Webapp.docker_name>:<WebappVersion.number> There are multiple reasons to do that: - this simplifies the controller design, because docker images are no longer replaced (once an image is committed with tag, 'id<SOMETHING>' it won't be modified anymore) -> thus it is no longer necessary to track the image state carefully (when pushing/pulling from/to the registry) - this prevent reusing dangling images from a removed webapp (because we now have a strong guarantee that the image tags are unique) - this will avoid nasty race conditions when we implement direct 'push' to the registry (because we then assign the new image id before the manifest is actually pushed, if a push and commit are done in the same time we will keep the latest one, i.e. with the highest id) - this will make easy to implement image recovery: we can keep removed images in the registry for some time (eg: 1 month) before they are really deleted Note: the REPLACED state is no longer transient (since we now keep the replaced images in the db and since we may still have remaining job/sandboxes using them). Maybe we can rename it as DELETED when we implement #265.
-
- 12 Sep, 2018 2 commits
-
-
BAIRE Anthony authored
-
BAIRE Anthony authored
-
- 10 Sep, 2018 1 commit
-
-
BAIRE Anthony authored
-
- 06 Sep, 2018 2 commits
-
-
BAIRE Anthony authored
-
BAIRE Anthony authored
-
- 20 Aug, 2018 1 commit
-
-
BERJON Matthieu authored
I updated the tag views by importing the `Tag` model provided by the Taggit plugin, deleted the `WebappTag` model and `TagForm` form that are obsolete. I updated the `WebappUpdate` view to follow the recommendation given by the Taggit plugin documentation. The `TagList` now uses directly the `Tag` model and send both the tag fields and a count of each tag occurence. I removed the `TagAdd` list that is obsolete. I updated the `TagWebappList` that returns simply a list of all `Webapp`objects for a given tag. Signed-off-by:
Matthieu Berjon <matthieu.berjon@inria.fr>
-
- 16 Aug, 2018 1 commit
-
-
BERJON Matthieu authored
Follwoing the merge, several bugs appeared. I added the import of the `transaction` Django library and `get_base_url` missing function calls. I updated as well the sandbox panel handle in the template because it changed with the merge. Signed-off-by:
Matthieu Berjon <matthieu.berjon@inria.fr>
-
- 08 Aug, 2018 1 commit
-
-
BAIRE Anthony authored
-
- 07 Aug, 2018 7 commits
-
-
BAIRE Anthony authored
This way we get redis updates when a job is deleted and this also prevents inserting a 'DONE' state when the job is not done Note: we never update the redis job state key from the django server to avoid race conditions
-
BAIRE Anthony authored
This updates the job_list page in real time when the state of any displayed job changes: - update the status icon - show/hide the abort button - enable/disable the delete button - remove job from the list when destroyed
-
BAIRE Anthony authored
(also changed the status_icon to fa-hand-paper which looks (i think ;-) less confusing) close #222
-
BAIRE Anthony authored
(from the user point of view, these jobs no longer exist)
-
BAIRE Anthony authored
-
BAIRE Anthony authored
The controller and django can both change the job state, especially when it is in the WAITING state (django may delete the job and the controller may start the job). To prevent any inconsistency, we must ensure that these transitions are made atomically.
-
BAIRE Anthony authored
(because the controller must free the allocated resources first)
-
- 01 Aug, 2018 6 commits
-
-
BAIRE Anthony authored
-
BAIRE Anthony authored
(chromium does support empty "Location:" header)
-
BAIRE Anthony authored
-
BAIRE Anthony authored
- form reformatted as a grid (using class form-row) - when replacing a version - select the version used for starting the current sandbox - initialise the "changelog" field with the previous changelog of the version being replaced - when creating a new version - initialise the "changelog" field with an empty value - raise an error if the entered version already exists (prevents accidental overwriting by the user) - report commit result in a flash message
-
The redirection for a successful webapp creation was wrong and created an error. I fixed it by giving te right handle (i.e `webapp_sandox_panel`). Signed-off-by:
Matthieu Berjon <matthieu.berjon@inria.fr>
-
BAIRE Anthony authored
- all sandbox actions a made from the same endpoint, so i renamed it as WebappSandboxPanel. It is an endpoint that accept GET and POST methods - GET is rendered using TemplateView (nothing magic) - POST is has an ad-hoc implementation that handles sandbox actions (start, commit, rollback, retry, abort) - all POST actions are followed with an HTTP redirect (to make a GET) so that actions are repeated if the user refresh his browser window - I changed the initial status of newly created webapps to IDLE because power users who upload their docker image do not need to start a sandbox It is not finished, there are many FIXMEs/TODOs but it is working.
-
- 31 Jul, 2018 7 commits
-
-
BAIRE Anthony authored
-
BAIRE Anthony authored
instead of '1' (which will mostlay always be wrong)
-
BAIRE Anthony authored
This is to avoid code duplication (the kind of nasty duplication where is damn easy to forget to update both sides). Plus the converter ensures the arguments are properly shell-escaped using shlex.quote().
-
BAIRE Anthony authored
This also fixes the resolution of the port when it is provided in the X-Forwarded-Host header.
-
BAIRE Anthony authored
It is a good practice to authenticate before, because this prevents leaking information. (also i removed the json error messages because they are ignored by nginx, if we want to tune them, then we should do it in the nginx configuration)
-
BAIRE Anthony authored
-
BAIRE Anthony authored
(must return 401 instead)
-
- 26 Jul, 2018 1 commit
-
-
BERJON Matthieu authored
I fixed the bug in two `DeleteView` views. The `SuccessMessageMixin` doesn't work with `DeleteView` views because it's hooked to the `form_valid` method which doesn't exist in this particular view. I took the opportunity to rewrite the other success or error messages in the other views in order to have something a bit clearer and easier to read. Signed-off-by:
Matthieu Berjon <matthieu.berjon@inria.fr>
-