Hi Paulo, I'm working on the UI for package management, though this
patch set seems needs rebased. Could send a new one?
On 12/07/2013 04:19 AM, Paulo Vital wrote:
V3 -> V2:
Fixed API.json file
Modified _repos_storage type to dictionary, and adjust methods to use it
Changed return of some functions to raise exceptions instead of boolean
V1 -> V2:
Cleaned whitespaces and fixed some typos
Changed return of backend functions to raise exceptions instead of boolean
V1:
This patch set provides support to host's package management operations.
At this point, an agnostic class is providing support to backend and
REST API operations.
In backend, YUM support to operate with repositories is provided by this
patch set. The support to APT repositories will be provided in a close
future.
To test the backend execute the following commands:
$ sudo tests/run_tests.sh test_model.ModelTests.test_repository_create
$ sudo tests/run_tests.sh test_model.ModelTests.test_repository_update
$ sudo tests/run_tests.sh test_model.ModelTests.test_repository_disable_enable
To test the REST API, execute the following commands (all them are agnostic of the
host's distro):
1) Get list of all repositories enabled in the host:
$curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/ -X GET
2) Create a new repository:
$ curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/ -X POST -d'
{
"repo_id":"fedora-fake",
"repo_name":"Fedora 19 FAKE",
"baseurl": "http://www.fedora.org"
}
'
3) Get information from a specific repository:
$curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/fedora-fake
4) Update a specific repository:
$ curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/fedora-fake -X PUT -d'
{
"repo_id":"fedora-fake",
"repo_name":"Fedora 19 FAKEs",
"baseurl": "http://www.fedora.org/downloads"
}
'
5) Disable a specific repository:
$ curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/fedora-fake/disable -X POST -d ''
6) Enable a specific repository:
$ curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/fedora-fake/enable -X POST -d ''
6) Delete a specific repository:
$ curl -H 'Content-type: application/json' -H 'Accept: application/json'
http://localhost:8000/repositories/fedora-fake -X DELETE
Paulo Vital (5):
Host's package management: Update API.md
Host's package management: Update REST API
Host's package management: Update backend.
Host's package management: Update Makefile
Host's package management: Update test-cases
docs/API.md | 90 ++++++++++
src/kimchi/API.json | 65 +++++++
src/kimchi/Makefile.am | 1 +
src/kimchi/controller.py | 20 +++
src/kimchi/mockmodel.py | 33 ++++
src/kimchi/model.py | 33 ++++
src/kimchi/repositories.py | 419 +++++++++++++++++++++++++++++++++++++++++++++
src/kimchi/server.py | 1 +
tests/test_model.py | 99 +++++++++++
tests/test_rest.py | 32 ++++
10 files changed, 793 insertions(+)
create mode 100644 src/kimchi/repositories.py