Skip to content

OpenBox as Service has some problems and is missing an OpenAPI document #106

Description

@IonutCicio

Is your feature request related to a problem? Please describe.
Yes, I'm using OpenBox as a Service for my thesis, and I feel like this part of the project is being "left behind" (last commit 2 years ago). I've also encountered a few problems:

  • in openbox/artifact/bo_advice/views.py the method save_history() is invocated on config_advisor, but this method isn't defined anywhere in the repository, throwing an exception each time the update_observation end-point is called
  • the version of Django should have an upper bound in the requirements/service.txt file, as the service doesn't start with newer versions of Django
  • there is no OpenAPI documentation of the REST API, the only interface with the API is the RemoteAdvisor, and the calls in RemoteAdvisor do not match the capabilities of the end-points (ex. in the task_register end-point the request can contain a advisor_type field which can't be set via the RemoteAdvisor)
  • the API itself doesn't feel very "RESTful", as the resources contain get, register and update in their name, and errors are returned via a code field in the response

Describe the solution you'd like
A clear first step is an OpenAPI document with the description of the end-points, fixes in the bugs, and maybe the use of types in the code.

Describe alternatives you've considered
Currently I defined a Dockerfile which clones the code and fixes some of the ISSUES which don't allow the service to work. To call the service I looked at the implementation of the end-points and defined my custom Python functions to call those end-points (I use RemoteAdvisor just to register the task).

Additional context
Nothing much to add. I would be glad to contribute if you don't mind "breaking changes" in the REST API (if I can take some time off my project to work on the contribution).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions