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

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

  • Comments

    • pkacer
      over 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

    Resurrect NWS CLI project by seanmarlow

    Project Description

    Many years back I created a simple python based CLI package that wrapped the NWS API to get weather forecasts, discussions and current conditions. Meanwhile I have not had time to keep it up-to-date so many pieces are broken or using deprecated features of the REST API. The package is useful to get weather information much quicker from CLI than clicking through the NWS website.

    Goal for this Hackweek

    The goal for this project is update and fix the package as well as add new features. Also, the documentation can be updated to be more thorough and useful.

    Project URL: https://github.com/smarlowucf/wxcast

    Tasks

    • [x] Use Github actions instead of travis
    • [x] Move metar to nws api
    • [x] Convert string formatting to use F strings
    • [x] Add get WFO info
    • [x] Get a list of stations for wfo
    • [x] Get station info
    • [x] Fix 7 day forecast
    • [x] Add temp unit option to metar
    • [x] Add alias to metar for decoded version with conditions
    • [x] Add/update documentation
    • [x] Release new major version


    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