Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "NGI GRNET:RT GGUS Integration"

From EGIWiki
Jump to navigation Jump to search
Line 19: Line 19:
* A queue with name GGUS. For every ticket assigned to the GGUS queue at the HelalsGrid RT, a new ticket is created at the GGUS which is initially un-assigned.  
* A queue with name GGUS. For every ticket assigned to the GGUS queue at the HelalsGrid RT, a new ticket is created at the GGUS which is initially un-assigned.  


The implementation was done with the use of the Perl programming language, in order to reuse the HellasGrid RT code for the access and the administration of the tickets stored at the HellasGrid RT database. For the web services implementation, the Perl module SOAP::Lite (http://www.soaplite.com/) was used. The code of the web service implemented is in the file [[ticket.cgi]] located at the path /usr/lib/cgi. It is a cgi script which provides 3 call functions for a ticket creation, a ticket update, and for sending an attachment within a ticket.
The implementation was done with the use of the Perl programming language, in order to reuse the HellasGrid RT code for the access and the administration of the tickets stored at the HellasGrid RT database. For the web services implementation, the Perl module SOAP::Lite (http://www.soaplite.com/) was used. The code of the web service implemented is in the file ticket.cgi located at the path /usr/lib/cgi. It is a cgi script which provides 3 call functions for a ticket creation, a ticket update, and for sending an attachment within a ticket.


''' Ticket creation at GGUS '''  
''' Ticket creation at GGUS '''  

Revision as of 12:46, 25 August 2010

Scope

The main scope of this task is the implementation of the automatic communication between the GGUS and HellasGrid Request Tracker (RT) systems via the exchange of SOAP messages. GGUS has already implemented some web services, (used for example for the integration with the SEE Helpdesk), so the necessary web services must have been implemented at the HellasGrid RT.

There are three possible scenarios implemented:

  • Scenario 1: A ticket is created at the GGUS, where the ticket submitter or the TPM on duty team assigns the ticket at the NGI_GRNET support unit, using the “Assign to ROC/NGI” field of the “Submit ticket” form of the GGUS. In this scenario, a corresponding ticket must be created at the appropriate queue of the HellasGrid RT.
  • Scenario 2: A ticket is created at the GGUS, where the ticket submitter or the TPM on duty team assigns the ticket at a site in the scope of the NGI_GRNET, using the “Notify SITE” field of the “Submit ticket” form of the GGUS. In this scenario, a corresponding ticket must be created at the appropriate queue of the HellasGrid RT.
  • Scenario 3: A ticket is created at the HellasGrid RT, where the ticket submitter assigns the ticket at the GGUS support unit. In this scenario, a corresponding ticket must be created at the GGUS.

At all the scenarios, when a ticket is resolved/re-opened at the HellasGrid RT (GGUS) then the corresponding ticket must been by resolved/re-opened at the GGUS (HellasGrid RT) system.

Implementation

For the needs of the implementation the following queues was implemented at the HellasGrid RT:

  • A queue with name NGI_GRNET. For every ticket assigned to the NGI_GRNET support unit at the GGUS, a new ticket is created at the NGI_GRNET queue.
  • A queue for every site under the scope of the NGI_GRNET. For every ticket assigned to a site in the scope of NGI_GRNET support unit at the GGUS, a new ticket is created at the corresponding site’s queue at the HellasGrid RT.
  • A queue with name GGUS. For every ticket assigned to the GGUS queue at the HelalsGrid RT, a new ticket is created at the GGUS which is initially un-assigned.

The implementation was done with the use of the Perl programming language, in order to reuse the HellasGrid RT code for the access and the administration of the tickets stored at the HellasGrid RT database. For the web services implementation, the Perl module SOAP::Lite (http://www.soaplite.com/) was used. The code of the web service implemented is in the file ticket.cgi located at the path /usr/lib/cgi. It is a cgi script which provides 3 call functions for a ticket creation, a ticket update, and for sending an attachment within a ticket.

Ticket creation at GGUS

The HellasGrid RT web services are called by the file ggus_client.pl located at the path /root/ws which is automatically executed every 5 minutes. This service checks if a transaction has occurred from the last time it was called, and in a case of a transaction the appropriate ticket at the GGUS is updated.

The information regarding the correspondence of the two systems is kept at the rtdb database and more specific at the ggus_rt and ggus_transactions tables (which were created). At the table ggus_rt is stored the correspondence between the ID of a ticket at the GGUS and the ID of a ticket at the HellasGrid RT. This is done every time that a ticket at the GGUS is assigned at the NGI_GRNET support unit or at a site under the scope of the NGI_GRNET. At the table ggus_transactions are stored the IDs of the transactions which concern the corresponding tickets at the ggus_rt. This is done via the use of scrips, that is Perl hooks which can be defined at the RT and can be executed at different time instances.

So, the database has the role of a message queuing system. Due to the low creation rate of tickets at the HellasGrid RT, was not used a specialized queuing system. Also another reason for using this solution instead the direct sending of the updates at the GGUS during the processing of a ticket (inside the scrip) is that this implementation results in functionality’s separation, so the call of the GGUS web services is not involved with the processing of the ticket. Also, the delay at the RT due to HTTP web services call is low.

Ticket creation at HellasGrid RT

For the scenario of a ticket creation at the GGUS queue of the HellasGrid RT, two Perl script are used, the ggus_create.pl and the ggus_client.pl scripts. The first Perl script is used for the creation of a ticket at the GGUS system. Every time that a ticket is created at the GGUS queue of the HellasGrid RT, a scrip is called which stores the ID of the new ticket at a table named ggus_queue. This ID is used by the ggus_create.pl script in order to create the ticket at the GGUS system. The ggus_create.pl script is called with a cron job every 5 minutes, scans the ggus_queue table and if a new ticket exists, then a ticket is created at the GGUS system, by calling the appropriate web service. Also, a new entry is created at the ggus_rt table which stores the correspondence between the tickets created at the two systems.

Web Services

The wsdl file which completely describes the provisioned web services is located at the url http://rt-ws.hellasgrid.gr/rt.wsdl. The web services are also listen to this hostname. Also, the rt-ws.hellasgrid.gr is alias to rt.hellasgrid.gr. It was chosen a different hostname, in order to restrict the web services to be called only by the IP address of the GGUS system.