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 10 years ago: tboerger disliked this project.
  • about 11 years ago: pkacer removed keyword interface from this project.
  • about 11 years ago: pkacer added keyword "xmlrpc" to this project.
  • about 11 years ago: pkacer added keyword "perl" to this project.
  • about 11 years ago: tboerger liked this project.
  • about 11 years ago: pkacer added keyword "hamsta" to this project.
  • about 11 years ago: pkacer added keyword "rest" to this project.
  • about 11 years ago: pkacer added keyword "interface" to this project.
  • about 11 years ago: pkacer started this project.
  • about 11 years ago: pkacer originated this project.

  • Comments

    • pkacer
      about 11 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

    Create object oriented API for perl's YAML::XS module, with YAML 1.2 Support by tinita

    Description

    YAML::XS is a binding to libyaml and already quite old, but the most popular YAML module for perl. There are two main issues:

    • It uses global package variables to influence behaviour.
    • It didn't implement the loading of types like numbers and booleans according to the YAML spec (neither 1.1 nor 1.2).

    Goals

    Create a new interface which works object oriented. Currently YAML::XS exports a list of functions.

    • The new API will allow to create a YAML::XS object containing configuration influencing the behaviour of loading and dumping.
      • It keeps the libyaml parser and emitter structs in memory, so repeated calls can save the creation of those structs
    • It will by default implement the YAML 1.2 Core Schema, so it is compatible to other YAML processors in perl and in other languages
    • If I have time, I would like to add the merge << key feature as an option. We could then use it in openQA as a replacement for YAML::PP to be faster.

    I already created a proof of concept with a minimal functionality some weeks before this HackWeek.

    Resources