Hamsta currently lacks a standardized network interface that would allow other systems accessing its capabilities. There is a custom network interface with text-parsing based protocol that is poorly documented and needs to be implemented on the client side to be usable. This interface does not use any standardized way of communication or library.

This project suggests to add a standardized web service interface (let us call it API) to Hamsta. Expected attributes are following.

  • Standardized interface (i.e. described and known outside of our department).
  • Uses tested library.
  • Usable by any type of frontend (web, command line, desktop or smartphone application, ...).
  • Usable by any type of interfacing system.

The project is divided into several steps.

  1. Select interface protocol.
  2. Select (backend) implementation library.
  3. Define available interface functions.
  4. Add library integration.
  5. Implement interface functions and do testing.
  6. Document the interface.

Ideas for the interface protocol are following.

  • XML-RPC
  • JSON-RPC
  • SOAP

The idea of adding the interface is old. Part of this project idea comes from FATE #315109. But generally this project is to support needed architectural changes in Hamsta.

Pavel Kacer (pkacer@suse.com) is responsible for this project. The stakeholders are QA Automation team members and project manager.

There is no code. All decisions and implementation have to be made, yet.

Looking for hackers with the skills:

hamsta rest perl xmlrpc

This project is part of:

Hack Week 10

Activity

  • about 11 years ago: tboerger disliked this project.
  • about 12 years ago: pkacer removed keyword interface from this project.
  • about 12 years ago: pkacer added keyword "xmlrpc" to this project.
  • about 12 years ago: pkacer added keyword "perl" to this project.
  • about 12 years ago: tboerger liked this project.
  • about 12 years ago: pkacer added keyword "hamsta" to this project.
  • about 12 years ago: pkacer added keyword "rest" to this project.
  • about 12 years ago: pkacer added keyword "interface" to this project.
  • about 12 years ago: pkacer started this project.
  • about 12 years ago: pkacer originated this project.

  • Comments

    • pkacer
      about 12 years ago by pkacer | Reply

      Because of the other project (fix Hamsta OpenID) I got to this one only yesterday late afternoon.

      I am studying different XML-RPC implementations in Perl to evaluate which one would be best for us.

    Similar Projects

    HTTP API for nftables by crameleon

    Background

    The idea originated in https://progress.opensuse.org/issues/164060 and is about building RESTful API which translates authorized HTTP requests to operations in nftables, possibly utilizing libnftables-json(5).

    Originally, I started developing such an interface in Go, utilizing https://github.com/google/nftables. The conversion of string networks to nftables set elements was problematic (unfortunately no record of details), and I started a second attempt in Python, which made interaction much simpler thanks to native nftables Python bindings.

    Goals

    1. Find and track the issue with google/nftables
    2. Revisit and polish the Python code, primarily the server component
    3. Finish functionality to interact with nftables sets (retrieving and updating elements), which are of interest for the originating issue
    4. Align test suite
    5. Packaging

    Resources

    • https://git.netfilter.org/nftables/tree/py/src/nftables.py
    • https://git.com.de/Georg/nftables-http-api (to be moved to GitHub)
    • https://build.opensuse.org/package/show/home:crameleon:containers/pytest-nftables-container


    MCP Perl SDK by kraih

    Description

    We've been using the MCP Perl SDK to connect openQA with AI. And while the basics are working pretty well, the SDK is not fully spec compliant yet. So let's change that!

    Goals

    • Support for Resources
    • All response types (Audio, Resource Links, Embedded Resources...)
    • Tool/Prompt/Resource update notifications
    • Dynamic Tool/Prompt/Resource lists
    • New authentication mechanisms

    Resources


    Create a page with all devel:languages:perl packages and their versions by tinita

    Description

    Perl projects now live in git: https://src.opensuse.org/perl

    It would be useful to have an easy way to check which version of which perl module is in devel:languages:perl. Also we have meta overrides and patches for various modules, and it would be good to have them at a central place, so it is easier to lookup, and we can share with other vendors.

    I did some initial data dump here a while ago: https://github.com/perlpunk/cpan-meta

    But I never had the time to automate this.

    I can also use the data to check if there are necessary updates (currently it uses data from download.opensuse.org, so there is some delay and it depends on building).

    Goals

    • Have a script that updates a central repository (e.g. https://src.opensuse.org/perl/_metadata) with metadata by looking at https://src.opensuse.org/perl/_ObsPrj (check if there are any changes from the last run)
    • Create a HTML page with the list of packages (use Javascript and some table library to make it easily searchable)

    Resources