Meego Wiki
Views

Release Infrastructure/BOSS Participant

From MeeGo wiki
Jump to: navigation, search

Contents

BOSS Participant

BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps. For more BOSS related general information, see Infrastructure/BOSS.


What is BOSS Participant

BOSS Participant is the actual actor in BOSS architecture. Participant wraps other systems and services related to software development, quality assurance and integration, allowing BOSS to interact with different parties in automated way.

BOSS Participant action explained in three simple steps:

  • Receive a workitem from BOSS server
  • Process it, interacting with underlying (read: wrapped) system or service
  • Return the filled worksheet back to BOSS server

Participant Coding Guidelines

BOSS participant is written in Python language (other bindings will be available later). Following code snippets are from Notifier Participant (see chapter Example Code).

Participant Naming Convenience

The participant's name should give an indication of the function it does, usually in the form noun_verb.py

Import

from  RuoteAMQP.workitem import Workitem
from  RuoteAMQP.participant import Participant

Class definition

class NotifierParticipant(Participant):    
    def collect_and_send(self, wi):   

Registering BOSS Participant to server

if __name__ == "__main__":
    print "Notifier participant running"
    p = NotifierParticipant(ruote_queue="notifier", amqp_vhost="ruote-test")
    p.register("notifier", {'queue':'notifier'})
    p.run()

Participant Example Code

See following participants for example implementation: [notifier_participant.py] [build_ks_participant.py]

Personal tools