OLA Management - glpi-project/spec GitHub Wiki

GOAL : Change SLA Management / add OLA object

Current SLAs in GLPI

Current Scheme of SLA Operation:

Changing the functioning of SLAs

1. SLM

The object that was previously named SLA will be renamed SLM (Service Level Management) This object will contain two sub-objects SLA and OLA.

Diagram showing the new functioning:

2. SLA

This object is formerly SLT, so it will be renamed.

3. OLA

The internal time is recalculated when assigning the OLA

New interface with the addition of OLA management:

Ticket interface

In the ticket interface, a new line is added to include support times and internal resolution.

Impact

Add the dates in the ticket for the takeover time and the internal resolution time will involve various modifications in the core of GLPI:

  • Add columns in the ticket list:

    • Internal time to own
    • Internal time to own + Progress
    • Internal time to own exceedeed
    • OLA Internal time to own
    • Internal time to resolve
    • Internal time to resolve + Progress
    • Internal time to resolve exceedeed
    • OLA time to resolve
    • OLA Escalation level
  • Add in the rules in the criteria and actions:

    • Criteria: OLA time to own
    • Criteria: OLA time to resolve
    • Action: OLA time to own
    • Action: OLA time to resolve

Add tags in the notifications related to tickets:

  • ##ticket.sla_tto##: SLA / Time to own
  • ##ticket.sla_ttr##: SLA / Time to resolve
  • ##ticket.ola_tto##: OLA / Internal time to own
  • ##ticket.ola_ttr##: OLA / Internal time to resolve

Change in database

glpi_slas renamed to glpi_slms.

glpi_slts renamed to glpi_slas.

  • Renaming the fields :
    • "slas_id" to "slms_id"

Creating a table glpi_olas

Columns Type Null Default
id int(11) No
name varchar(255) No 0
entities_id int(11) No 0
is_recursive tinyint(1) No 0
type int(11) No 0
comment text No
number_time int(11) No 0
date_mod datetime Yes
definition_time varchar(255) Yes NULL
end_of_working_day tinyint(1) No 0
date_creation datetime Yes NULL
slms_id int(11) No 0

glpi_tickets :

  • Renaming the fields :

    • "due_date" to "time_to_resolve"
    • "slts_tto_id" to "slas_tto_id"
    • "slts_ttr_id" to "slas_ttr_id"
  • Adding the fields :

Columns Type Null Default
olas_ttr_id int(11) No 0
olas_tto_id int(11) No 0
internal_time_to_resolve datetime Yes NULL
internal_time_to_own datetime Yes NULL
ttr_olaslevels_id int(11) No 0
ola_waiting_duration int(11) No 0

glpi_changes :

  • Renaming the fields :
    • "due_date" to "time_to_resolve"

glpi_problems :

  • Renaming the fields :
    • "due_date" to "time_to_resolve"

glpi_slalevels :

  • Renaming the fields :
    • "slts_id" to "slas_id"

Creating a table glpi_olalevels_tickets

Columns Type Null Default
id int(11) No
tickets_id int(11) No 0
olalevels_id int(11) No 0
date datetime Yes

Creating a table glpi_olalevelactions

Columns Type Null Default
id int(11) No
olalevels_id int(11) No 0
action_type varchar(255) Yes NULL
field varchar(255) Yes NULL
value varchar(255) Yes NULL

Creating a table glpi_olalevelcriterias

Columns Type Null Default
id int(11) No
olalevels_id int(11) No 0
criteria varchar(255) Yes NULL
condition int(11) No 0
pattern varchar(255) Yes NULL

Creating a table glpi_olalevels

Columns Type Null Default
id int(11) No
name varchar(255) No 0
olas_id int(11) No 0
execution_time int(11) No
olas_id int(11) No 0
is_active tinyint(1) No 1
entities_id int(11) No 0
is_recursive tinyint(1) No 0
match char(10) Yes NULL
uuid varchar(255) Yes NULL

Examples

Example 1:

Group OLA
Group1 OLA 1
Group2
  1. The Ticket is assigned to Group 1 => Triggering OLA 1
  2. The Ticket is assigned to Group 2 => OLA 1 continues
  3. The Ticket is re-assigned to Group 1 => OLA 1 resets to zero, a new resolution time is calculated.

Example 2:

Group OLA
Group1 OLA 1
Group2 OLA 1
  1. The Ticket is assigned to Group 1 => Triggering OLA 1
  2. The Ticket is assigned to Group 2 => OLA 1 resets to zero, a new resolution time is calculated.