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 |
- The Ticket is assigned to Group 1 => Triggering OLA 1
- The Ticket is assigned to Group 2 => OLA 1 continues
- 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 |
- The Ticket is assigned to Group 1 => Triggering OLA 1
- The Ticket is assigned to Group 2 => OLA 1 resets to zero, a new resolution time is calculated.