Difference between revisions of "stoney maintenance: OpenLDAP directory data organisation"

From stoney cloud
Jump to: navigation, search
[checked revision][checked revision]
(Maintenance Unit Example)
(Undo revision 5303 by Michael (talk))
 
(126 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Abstract =
 
= Abstract =
This document describes the OpenLDAP directory data organisation for the stoney '''maintenance service'''.
+
This document describes the OpenLDAP directory data organisation for the '''stoney maintenance''' service.
  
 
= Data Organisation =
 
= Data Organisation =
The following chapters explain the data organisation of the stoney cloud OpenLDAP directory, in this case we looking at the '''maintenance service'''.
+
The following chapters explain the data organisation of the stoney cloud OpenLDAP directory, in this case we looking at the '''stoney maintenance''' service.
  
 
= Maintenance =
 
= Maintenance =
Line 15: Line 15:
 
</source>
 
</source>
  
== Maintenance Configuration ==
+
== Maintenance - Configuration ==
 
The sub tree for the configuration of the maintenance service:
 
The sub tree for the configuration of the maintenance service:
 
<source lang="ldif">
 
<source lang="ldif">
Line 25: Line 25:
 
</source>
 
</source>
  
=== Maintenance Configuration Reseller ===
+
=== Maintenance - Configuration - Reseller ===
 
The sub tree for the reseller specific maintenance service settings:
 
The sub tree for the reseller specific maintenance service settings:
 
<source lang="ldif">
 
<source lang="ldif">
Line 120: Line 120:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Maintenance Configuration Reseller Notification Settings ====
+
==== Maintenance - Configuration - Reseller - Defaults ====
 +
This sub tree stores the default settings for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
 +
 
 +
The configuration below tells us the following:
 +
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
 +
* The maintenance window is executed every 2nd Tuesday of every month.
 +
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
 +
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
 +
 
 +
The lookup of the default settings for the stoney maintenance service is as follows:
 +
# '''Service roles:''' <code>ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''OpenStack project:''' <code>ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Customer:''' <code>ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
 
 +
For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the '''service roles''' sub tree. If there are still missing values, the next lookup occurs in the '''OpenStack project''' subtree. Once again, if there are still missing values, the next lookup occurs in the '''customer''' sub tree. If there are still missing values, the final lookup occurs in the '''reseller''' sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).
 +
 
 +
<source lang="ldif">
 +
dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstMaintenanceDefaultsObjectClass
 +
objectclass: sstNotificationObjectClass
 +
objectclass: sstRelationship
 +
ou: defaults
 +
description: This sub tree stores the default settings for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
 +
sstIsActive: TRUE                      # MUST: The default is always TRUE, otherwise why bother?
 +
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
 +
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
 +
sstCronRepeatType: monthly              # MAY: repeat type is monthly
 +
sstCronInterval: 1                      # MAY: repeat every month
 +
sstCronOccurrenceInMonth: 2            # MAY: second occurence
 +
sstCronDayOfWeek: 2                    # MAY: Tuesday
 +
sstCronMinute: 30                      # MAY: 30 Minutes past the hour
 +
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
 +
sstCronHour: 9                          # MAY: 9 am
 +
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45) 
 +
sstCronDuration: 60                    # MAY: 60 minutes (one hour)
 +
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
 +
sstInformPersonUID: 1000482            # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
</source>
 +
 
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
 +
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
 +
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
 +
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 +
 
 +
If the attribute <code>sstServiceAutomated</code> is set to <code>TRUE</code>, the <code>sstServicePriority</code> will be ignored. And we will have automated maintenance windows in the form of:
 +
*  Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A maintenance window is either executed automatically:
 +
* <code>sstServiceAutomated: TRUE</code>
 +
or manually:
 +
* <code>sstServiceAutomated: FALSE</code>
 +
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>4</code>. For example: <code>3</code> would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
 +
 
 +
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinuteEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>). Valid values are: <code>0</code> - <code>59</code>.
 +
 
 +
For example: <code>45</code>, which means 45 minutes past the hour.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window minute range, while <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>).
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window hour range, while <code>sstCronHour</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>reminder</code>. The value (name) corresponds with the template dn.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>sstBelongsToResellerUID</code> corresponds with the value of <code>uid</code>.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 +
 
 +
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
==== Maintenance - Configuration - Reseller - Notification settings ====
 
The sub tree stores the notification information for the maintenance service for the reseller Reseller Ltd. with the uid 4000000. This information is used as a fallback. The lookup is as follows:
 
The sub tree stores the notification information for the maintenance service for the reseller Reseller Ltd. with the uid 4000000. This information is used as a fallback. The lookup is as follows:
 
# '''Unit:''' <code>uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 
# '''Unit:''' <code>uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
Line 203: Line 428:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Maintenance Configuration Reseller Notification Templates ====
+
==== Maintenance - Configuration - Reseller - Templates ====
 
This sub tree contains the notification templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000:
 
This sub tree contains the notification templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000:
 
<source lang="ldif">
 
<source lang="ldif">
Line 211: Line 436:
 
ou: templates
 
ou: templates
 
description: This sub tree contains the templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
 
description: This sub tree contains the templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
 +
</source>
 +
 +
===== Maintenance - Configuration - Reseller - Reminder mail templates =====
 +
This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000:
 +
<source lang="ldif">
 +
dn: ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstTemplateSetup
 +
ou: reminder
 +
description: This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
 +
sstMailFrom: Support stepping stone GmbH <support@stoney-cloud.org>
 +
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail
 +
sstMailTemplateFormatSource: txt
 +
sstMailTemplateFormatTarget: txt
 +
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller
 +
sstMailTemplateResellerFormatSource: txt
 +
sstMailTemplateResellerFormatTarget: txt
 
</source>
 
</source>
  
Line 245: Line 488:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The mail address, from which the maintenance reminder mails are sent from. For example:  
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The mail address, from which the maintenance reminder mails are sent from. For example:  
* <code>Support stepping stone GmbH <support@stepping-stone.ch></code>.
+
* <code>Support stepping stone GmbH <support@stoney-cloud.org></code>.
If this attribute does not exist, the
+
* <code>sstMailFrom</code>
+
from
+
* <code>ou=settings,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>
+
must be taken.
+
  
 
|-
 
|-
Line 268: Line 506:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The template, that is used to create the mail that is sent to the owner of the service if <code>sstBackupWarningOn: TRUE</code> and <code>sstNotificationWarningMedium: mail</code>. If the <code>mail</code> is not set, you must look for the <code>mail</code> in the owners person entry under <code>uid=&lt;UID&gt;,ou=people,dc=stoney-cloud,dc=org</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The template, that is used to create the mail that is sent to the owner of the service if <code>sstBackupWarningOn: TRUE</code> and <code>sstNotificationWarningMedium: mail</code>. If the <code>mail</code> is not set, you must look for the <code>mail</code> in the owners person entry under <code>uid=&lt;UID&gt;,ou=people,dc=stoney-cloud,dc=org</code>.
 
For example:
 
For example:
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/backup/credentials/credentials_mail</code>.
+
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</code>.
  
 
|-
 
|-
Line 306: Line 544:
  
 
The information the recipients will receive, is the same as the owner, but will formatted according to:
 
The information the recipients will receive, is the same as the owner, but will formatted according to:
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/maintenance/reminder_mail</code>
+
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</code>
 
* <code>sstMailTemplateResellerFormatSource: txt</code>
 
* <code>sstMailTemplateResellerFormatSource: txt</code>
 
* <code>sstMailTemplateResellerFormatTarget: txt</code>
 
* <code>sstMailTemplateResellerFormatTarget: txt</code>
Line 323: Line 561:
  
 
The complete path and file name is a string concatenation of the values of the attributes <code>sstTemplate</code>, <code>preferredLanguage</code> and <code>sstTemplateFormatSource</code> (with a dot in between the values). For example:  
 
The complete path and file name is a string concatenation of the values of the attributes <code>sstTemplate</code>, <code>preferredLanguage</code> and <code>sstTemplateFormatSource</code> (with a dot in between the values). For example:  
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/maintenance/reminder_mail</code>
+
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller</code>
 
* <code>preferredLanguage: en-GB</code>
 
* <code>preferredLanguage: en-GB</code>
 
* <code>sstTemplateFormatSource: txt</code>
 
* <code>sstTemplateFormatSource: txt</code>
 
This gives us:<br />
 
This gives us:<br />
* <code>file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/maintenance/reminder_mail.en-GB.txt</code>
+
* <code>file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller.en-GB.txt</code>
 
Default would normally be <code>txt</code>.
 
Default would normally be <code>txt</code>.
  
Line 349: Line 587:
 
TODO: this is a copy and still needs checking / customizing.
 
TODO: this is a copy and still needs checking / customizing.
  
====== Maintenance Placeholders E-Mail (txt/html) ======
+
====== Maintenance - Configuration - Reseller - Reminder mail templates: placeholders (txt/html) ======
 
An example:
 
An example:
  {$salutation}       Mr.
+
{$system}            kvm-0003: stepping stone GmbH: Gentoo (stoney backup Server)
  {$surname}         Eichenberger
+
  {$salutation}       Dear Mr.
  {$uid}             3723707
+
  {$surname}           Eichenberger
  {$percent}         98
+
  {$inform}           - Michael Eichenberger <michael.eichenberger@stepping-stone.ch>
  {$quota}            100
+
  {$responsible}       - Niklaus Hofer <niklaus.hofer@stepping-stone.ch>
  {$backup_size}     40
+
  {$deputy}            - Yannick Denzer <yannick.denzer@stepping-stone.ch>
  {$snapshot_size}   48
+
{$maintenance_date}  2016-08-17
 +
  {$maintenance_start} 16:00
 +
  {$maintenance_end}   17:00
  
 
Optional Values:
 
Optional Values:
  {$externalID}      12345
+
  none
  
====== A Complete Example ======
+
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.de-CH.txt ======
 +
<pre>
 +
Subject: Wartungsarbeiten am {$system}
 +
{$salutation} {$surname}
  
(TODO)
+
Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
 +
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
  
=== Maintenance Configuration Customers ===
+
Dabei werden diverse Sicherheitsrisiken behoben.
 +
 
 +
Während den Wartungsarbeiten kann es zu kurzen Unterbrüchen der Services kommen.
 +
 
 +
Nach Abschluss der Wartungsarbeiten werden wir Sie nochmals benachrichtigen.
 +
 
 +
Diese Information geht an:
 +
{$inform}
 +
Falls Sie dieses Wartungsfenster nicht durchführen wollen, bitten wir Sie uns
 +
telefonisch darüber zu informieren.
 +
 
 +
Für Fragen stehen wir Ihnen gerne zur Verfügung.
 +
 
 +
 
 +
Mit besten Grüssen,
 +
 
 +
Das Support-Team der stepping stone AG
 +
 
 +
--
 +
stepping stone AG
 +
Wasserwerkgasse 7
 +
CH-3011 Bern
 +
 
 +
Telefon: +41 31 332 53 63
 +
www.stepping-stone.ch
 +
support@stepping-stone.ch
 +
</pre>
 +
 
 +
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.en-GB.txt ======
 +
<pre>
 +
Subject: Maintenance Work for {$system}
 +
{$salutation} {$surname}
 +
 
 +
The monthly maintenance window for {$system} will be held on the {$maintenance_date}
 +
between {$maintenance_start} and {$maintenance_end}.
 +
 
 +
Several security risks will be removed.
 +
 
 +
Short interruptions of the services can occur during the maintenance window.
 +
 
 +
We will inform you after the successful completion of the maintenance work.
 +
 
 +
This information goes to:
 +
{$inform}
 +
If you do not wish to perform this maintenance window, please let us know by
 +
telephone.
 +
 
 +
If you have any questions do not hesitate to contact us.
 +
 
 +
 
 +
With best regards,
 +
 
 +
Your stepping stone AG support team
 +
 
 +
--
 +
stepping stone AG
 +
Wasserwerkgasse 7
 +
CH-3011 Bern
 +
 
 +
Telefon: +41 31 332 53 63
 +
www.stepping-stone.ch
 +
support@stepping-stone.ch
 +
</pre>
 +
 
 +
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.de-CH.txt ======
 +
<pre>
 +
Subject: Wartungsarbeiten am {$system}
 +
{$salutation} {$surname}
 +
 
 +
Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
 +
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
 +
 
 +
Verantwortlich für dieses System:
 +
{$responsible}
 +
Stellvertretung:
 +
{$deputy}
 +
Nach Abschluss der Wartungsarbeiten, bitte folgende Persone(n) informieren:
 +
{$inform}
 +
 
 +
Mit besten Grüssen,
 +
 
 +
Das Support-Team der stepping stone AG
 +
 
 +
--
 +
stepping stone AG
 +
Wasserwerkgasse 7
 +
CH-3011 Bern
 +
 
 +
Telefon: +41 31 332 53 63
 +
www.stepping-stone.ch
 +
support@stepping-stone.ch
 +
</pre>
 +
 
 +
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.en-GB.txt ======
 +
<pre>
 +
Subject: Maintenance Work for {$system}
 +
{$salutation} {$surname}
 +
 
 +
The monthly maintenance window for {$system} will be held on the {$maintenance_date}
 +
between {$maintenance_start} and {$maintenance_end}.
 +
 
 +
Responsible for this system:
 +
{$responsible}
 +
Deputy:
 +
{$deputy}
 +
After the successful completion of the maintenance work, please inform the following
 +
person/people:
 +
{$inform}
 +
 
 +
With best regards,
 +
 
 +
Your stepping stone AG support team
 +
--
 +
stepping stone AG
 +
Wasserwerkgasse 7
 +
CH-3011 Bern
 +
 
 +
Telefon: +41 31 332 53 63
 +
www.stepping-stone.ch
 +
support@stepping-stone.ch
 +
</pre>
 +
 
 +
=== Maintenance - Configuration - Customers ===
 
The sub tree for the customers specific maintenance service settings:
 
The sub tree for the customers specific maintenance service settings:
 
<source lang="ldif">
 
<source lang="ldif">
Line 462: Line 828:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Maintenance Configuration Customers Notification Settings ====
+
==== Maintenance - Configuration - Customers - Defaults ====
 +
This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
 +
 
 +
The configuration below tells us the following:
 +
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
 +
* The maintenance window is executed every 2nd Tuesday of every month.
 +
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
 +
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
 +
 
 +
The lookup of the default settings for the stoney maintenance service is as follows:
 +
# '''Service roles:''' <code>ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''OpenStack project:''' <code>ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Customer:''' <code>ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
 
 +
For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the '''service roles''' sub tree. If there are still missing values, the next lookup occurs in the '''OpenStack project''' subtree. Once again, if there are still missing values, the next lookup occurs in the '''customer''' sub tree. If there are still missing values, the final lookup occurs in the '''reseller''' sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).
 +
 
 +
<source lang="ldif">
 +
dn: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstMaintenanceDefaultsObjectClass
 +
objectclass: sstNotificationObjectClass
 +
objectclass: sstRelationship
 +
ou: defaults
 +
description: This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
 +
sstIsActive: TRUE                      # MUST: The default is always TRUE, otherwise why bother?
 +
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
 +
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
 +
sstCronRepeatType: monthly              # MAY: repeat type is monthly
 +
sstCronInterval: 1                      # MAY: repeat every month
 +
sstCronOccurrenceInMonth: 2            # MAY: second occurence
 +
sstCronDayOfWeek: 2                    # MAY: Tuesday
 +
sstCronMinute: 30                      # MAY: 30 Minutes past the hour
 +
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
 +
sstCronHour: 9                          # MAY: 9 am
 +
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45) 
 +
sstCronDuration: 60                    # MAY: 60 minutes (one hour)
 +
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
 +
sstInformPersonUID: 1000482            # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
</source>
 +
 
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
 +
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
 +
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
 +
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 +
 
 +
If the attribute <code>sstServiceAutomated</code> is set to <code>TRUE</code>, the <code>sstServicePriority</code> will be ignored. And we will have automated maintenance windows in the form of:
 +
*  Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A maintenance window is either executed automatically:
 +
* <code>sstServiceAutomated: TRUE</code>
 +
or manually:
 +
* <code>sstServiceAutomated: FALSE</code>
 +
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>4</code>. For example: <code>3</code> would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
 +
 
 +
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinuteEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>). Valid values are: <code>0</code> - <code>59</code>.
 +
 
 +
For example: <code>45</code>, which means 45 minutes past the hour.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window minute range, while <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>).
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window hour range, while <code>sstCronHour</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>reminder</code>. The value (name) corresponds with the template dn.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>sstBelongsToResellerUID</code> corresponds with the value of <code>uid</code>.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 +
 
 +
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
==== Maintenance - Configuration - Customers - Notification settings ====
 
The sub tree stores the notification information for the maintenance service for the customer Customer Ltd. with the uid 4000001. This information is used as a fallback. The lookup is as follows:
 
The sub tree stores the notification information for the maintenance service for the customer Customer Ltd. with the uid 4000001. This information is used as a fallback. The lookup is as follows:
 
# '''Unit:''' <code>uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 
# '''Unit:''' <code>uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
Line 545: Line 1,136:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Maintenance Configuration Customers Notification Templates ====
+
==== Maintenance - Configuration - Customers - Templates ====
 
This sub tree contains the notification templates for the maintenance service for the customer Customer Ltd. with the uid 4000001:
 
This sub tree contains the notification templates for the maintenance service for the customer Customer Ltd. with the uid 4000001:
 
<source lang="ldif">
 
<source lang="ldif">
Line 555: Line 1,146:
 
</source>
 
</source>
  
== Maintenance Units ==
+
=== Maintenance - Configuration - OpenStack projects ===
 +
The sub tree for the OpenStack projects specific maintenance service settings:
 +
<source lang="ldif">
 +
dn: ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
ou: projects
 +
description: The sub tree for the OpenStack projects specific maintenance service settings.
 +
</source>
 +
 
 +
The sub tree for the specific maintenance service settings for the OpenStack project Customer Ltd. - Public Systems with the uid 4100001.
 +
<source lang="ldif">
 +
dn: uid=4100001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: sstOpenStackProject
 +
objectclass: sstRelationship
 +
uid: 4100001
 +
sstOpenStackId: 9ecb5bfdd4564f6ca52bba1e869eeea4
 +
sstOpenStackName: Customer Ltd. - Public Systems
 +
description: The sub tree for the specific maintenance service settings for the OpenStack project 'Customer Ltd. - Public Systems' with the uid 4100001.
 +
sstIsActive: TRUE
 +
sstBelongsToDomainID: b01822477be64c09950022486300c59c
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
</source>
 +
 
 +
The following table describes the different attributes:
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>uid</code> corresponds with the value of <code>sstBelongsToResellerUID</code>.
 +
 
 +
For example: <code>uid: 4000000</code> corresponds with <code>sstBelongsToResellerUID: 4000000</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackId
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The OpenStack project id as returned from the OpenStack API.
 +
 
 +
For example: <code>"id" : "5a3a4fd5d6e94a87815131be42d8e6d9"</code>. This gives us the LDAP entry: <code>sstOpenStackId: 5a3a4fd5d6e94a87815131be42d8e6d9</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackName
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The OpenStack project name as returned from the OpenStack API.
 +
 
 +
For example: <code>"name" : "Customer Ltd. - Public Systems"</code>. This gives us the LDAP entry: <code>sstOpenStackName: Customer Ltd. - Public Systems</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
For example: <code>The sub tree for the specific maintenance service settings for the OpenStack project 'Customer Ltd. - Public Systems' with the uid 4100001.</code>
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
The default value is <code>TRUE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToDomainID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The OpenStack domain id the project belongs to.
 +
 
 +
For example: <code>sstBelongsToDomainID: b01822477be64c09950022486300c59c</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>sstBelongsToResellerUID</code> corresponds with the value of <code>uid</code>.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 +
 
 +
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
==== Maintenance - Configuration - OpenStack projects - Defaults ====
 +
This sub tree stores the default settings for the stoney maintenance service for the OpenStack project 'Customer Ltd. - Internal Systems' with OpenStack id '5a3a4fd5d6e94a87815131be42d8e6d9' and with the OpenStack project uid '4000001'.
 +
 
 +
The configuration below tells us the following:
 +
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
 +
* The maintenance window is executed every 2nd Tuesday of every month.
 +
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
 +
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
 +
 
 +
The lookup of the default settings for the stoney maintenance service is as follows:
 +
# '''Service roles:''' <code>ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''OpenStack project:''' <code>ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Customer:''' <code>ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
 
 +
For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the '''service roles''' sub tree. If there are still missing values, the next lookup occurs in the '''OpenStack project''' subtree. Once again, if there are still missing values, the next lookup occurs in the '''customer''' sub tree. If there are still missing values, the final lookup occurs in the '''reseller''' sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).
 +
 
 +
<source lang="ldif">
 +
dn: ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstMaintenanceDefaultsObjectClass
 +
objectclass: sstNotificationObjectClass
 +
objectclass: sstRelationship
 +
ou: defaults
 +
description: This sub tree stores the default settings for the stoney maintenance service for the OpenStack project 'Customer Ltd. - Internal Systems' with OpenStack id '5a3a4fd5d6e94a87815131be42d8e6d9' and with the OpenStack project uid '4000001'.
 +
sstIsActive: TRUE                      # MAY: The default is always TRUE, otherwise why bother?
 +
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
 +
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
 +
sstCronRepeatType: monthly              # MAY: repeat type is monthly
 +
sstCronInterval: 1                      # MAY: repeat every month
 +
sstCronOccurrenceInMonth: 2            # MAY: second occurence
 +
sstCronDayOfWeek: 2                    # MAY: Tuesday
 +
sstCronMinute: 30                      # MAY: 30 Minutes past the hour
 +
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
 +
sstCronHour: 9                          # MAY: 9 am
 +
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45) 
 +
sstCronDuration: 60                    # MAY: 60 minutes (one hour)
 +
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
 +
sstInformPersonUID: 1000482            # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
</source>
 +
 
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
 +
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
 +
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
 +
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 +
 
 +
If the attribute <code>sstServiceAutomated</code> is set to <code>TRUE</code>, the <code>sstServicePriority</code> will be ignored. And we will have automated maintenance windows in the form of:
 +
*  Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A maintenance window is either executed automatically:
 +
* <code>sstServiceAutomated: TRUE</code>
 +
or manually:
 +
* <code>sstServiceAutomated: FALSE</code>
 +
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>4</code>. For example: <code>3</code> would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
 +
 
 +
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinuteEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>). Valid values are: <code>0</code> - <code>59</code>.
 +
 
 +
For example: <code>45</code>, which means 45 minutes past the hour.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window minute range, while <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must end.
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window hour range, while <code>sstCronHour</code> is interpreted as the start of a maintenance window hour range. Therefore, the latest maintenance window can start at <coode>sstCronHourEnd</code> minus the duration defined with attribute <code>sstCronDuration</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>reminder</code>. The value (name) corresponds with the template dn.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>sstBelongsToResellerUID</code> corresponds with the value of <code>uid</code>.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 +
 
 +
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
=== Maintenance - Configuration - Service (Puppet) roles ===
 +
The sub tree for the service (Puppet) roles specific maintenance service settings:
 +
<source lang="ldif">
 +
dn: ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
ou: roles
 +
description: The sub tree for the service (Puppet) roles specific maintenance service settings.
 +
</source>
 +
 
 +
The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office' (Puppet roles don't contain spaces).
 +
<source lang="ldif">
 +
dn: ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstServiceConfigurationObjectClass
 +
ou: stoney_office
 +
description: The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.
 +
sstIsActive: TRUE
 +
sstIsDefault: TRUE
 +
</source>
 +
 
 +
 
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| ou
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| organizationalUnit
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The name of the service (Puppet) role.
 +
 
 +
For example: <code>ou: stoney_office</code> (Puppet roles don't contain spaces).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| organizationalUnit
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
For example: <code>The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.</code>
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceConfigurationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
The default value is <code>TRUE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsDefault
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceConfigurationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Contains the leaf a default entry? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
If <code>sstIsDefault</code> is set to <code>TRUE</code>, the information of this subtree must alway be used (to make sure, that all automated maintenance windows are executed in the same time frame).
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
==== Maintenance - Configuration - service (Puppet) roles - Defaults ====
 +
This sub tree stores the default settings for the stoney maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.
 +
 
 +
The configuration below tells us the following:
 +
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
 +
* The maintenance window is executed every 2nd Wednesday of every month.
 +
* The maintenance windows can start a 03:00 and must end at 05:00 and takes half an hour (30 minutes).
 +
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
 +
 
 +
The lookup of the default settings for the stoney maintenance service is as follows:
 +
# '''Service roles:''' <code>ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''OpenStack project:''' <code>ou=defaults,uid=4100000,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Customer:''' <code>ou=defaults,uid=4000001,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 +
 
 +
For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the '''service roles''' sub tree. If there are still missing values, the next lookup occurs in the '''OpenStack project''' subtree. Once again, if there are still missing values, the next lookup occurs in the '''customer''' sub tree. If there are still missing values, the final lookup occurs in the '''reseller''' sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).
 +
 
 +
<source lang="ldif">
 +
dn: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: organizationalUnit
 +
objectclass: sstMaintenanceDefaultsObjectClass
 +
objectclass: sstNotificationObjectClass
 +
objectclass: sstRelationship
 +
ou: defaults
 +
description: This sub tree stores the default settings for the stoney maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'. Please be aware, that this is the production definition. The integration (test) definition is the same, except that the sstCronOccurrenceInMonth attribute is 1 instead of 2 (a week before).
 +
sstIsActive: TRUE                      # MAY: The default is always TRUE, otherwise why bother?
 +
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
 +
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
 +
sstCronRepeatType: monthly              # MAY: repeat type is monthly
 +
sstCronInterval: 1                      # MAY: repeat every month
 +
sstCronOccurrenceInMonth: 2            # MAY: second occurence
 +
sstCronDayOfWeek: 3                    # MAY: Wednesday
 +
sstCronMinute: 0                        # MAY: 0 Minutes past the hour
 +
sstCronMinuteEnd: 0                    # MAY: 0 Minutes past the hour (new attribute, for if we have a range: 03:00 - 05:00)
 +
sstCronHour: 3                          # MAY: 3 am
 +
sstCronHourEnd: 5                      # MAY: 5 am (new attribute, for if we have a range: 03:00 - 05:00) 
 +
sstCronDuration: 30                    # MAY: 30 minutes (half an hour)
 +
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
 +
sstInformPersonUID: 1000482            # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
 +
</source>
 +
 
 +
The following table describes the different attributes:
 +
{| style="border-spacing:0;"
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 +
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
 +
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
 +
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
 +
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 +
 
 +
If the attribute <code>sstServiceAutomated</code> is set to <code>TRUE</code>, the <code>sstServicePriority</code> will be ignored. And we will have automated maintenance windows in the form of:
 +
*  Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A maintenance window is either executed automatically:
 +
* <code>sstServiceAutomated: TRUE</code>
 +
or manually:
 +
* <code>sstServiceAutomated: FALSE</code>
 +
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>4</code>. For example: <code>3</code> would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
 +
 
 +
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinuteEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>). Valid values are: <code>0</code> - <code>59</code>.
 +
 
 +
For example: <code>45</code>, which means 45 minutes past the hour.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window minute range, while <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must start.
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>).
 +
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window hour range, while <code>sstCronHour</code> is interpreted as the start of a maintenance window hour range.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>reminder</code>. The value (name) corresponds with the template dn.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of <code>sstBelongsToResellerUID</code> corresponds with the value of <code>uid</code>.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
 +
 
 +
For the service (Puppet) roles this attribute must not be set, as the content of this value must be taken from either the OpenStack project, the customer or the reseller.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 +
 
 +
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 +
 
 +
For the service (Puppet) roles this attribute must not be set, as the content of this value must be taken from either the OpenStack project, the customer or the reseller.
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
 +
 
 +
== Maintenance - Units ==
 
The sub tree for the units of the maintenance service:
 
The sub tree for the units of the maintenance service:
 
<source lang="ldif">
 
<source lang="ldif">
Line 565: Line 1,792:
 
</source>
 
</source>
  
=== Maintenance Unit Example ===
+
=== Maintenance - Units example ===
 
Each maintenance unit has its own leaf. A monthly maintenance window is the norm.
 
Each maintenance unit has its own leaf. A monthly maintenance window is the norm.
  
Line 571: Line 1,798:
  
 
The '''sstBelongsToServiceUID''' lookup is as follows:
 
The '''sstBelongsToServiceUID''' lookup is as follows:
 +
# '''OpenStack unit''' (server): <code>ou=units,ou=openstack,ou=services,dc=stoney-cloud,dc=org</code>.
 
# '''Virtual Machine:''' <code>ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org</code>.
 
# '''Virtual Machine:''' <code>ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org</code>.
# '''vServer:''' <code>ou=vservers,ou=virtualization,ou=services,dc=stoney-cloud,dc=org</code>.
+
# '''vServer:''' <code>ou=vservers,ou=services,dc=stoney-cloud,dc=org</code>.
 
# '''Dedicated Server:''' <code>ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org</code> (not implemented yet).
 
# '''Dedicated Server:''' <code>ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org</code> (not implemented yet).
 
# '''External Server:''' <code>ou=external servers,ou=services,dc=stoney-cloud,dc=org</code> (not implemented yet).
 
# '''External Server:''' <code>ou=external servers,ou=services,dc=stoney-cloud,dc=org</code> (not implemented yet).
The idea is, that we presume, that most of the maintenance units are virtual machines running on our local stoney cloud installation.
+
 
 +
The idea is, that we presume, that most of the maintenance units belong to OpenStack units (servers) running on our OpenStack based stoney cloud installation.
  
 
In the example below, the service UID <code>sstBelongsToServiceUID: 1234567</code> points to [[stoney_conductor:_OpenLDAP_directory_data_organisation#Virtual_Machine | virtual machine]] with the <code>b543f88f-dffe-426f-86d3-c7ff85c16d2a</code> and the <code>uid: 1234567</code>.
 
In the example below, the service UID <code>sstBelongsToServiceUID: 1234567</code> points to [[stoney_conductor:_OpenLDAP_directory_data_organisation#Virtual_Machine | virtual machine]] with the <code>b543f88f-dffe-426f-86d3-c7ff85c16d2a</code> and the <code>uid: 1234567</code>.
Line 586: Line 1,815:
 
description: The maintenance leaf for the virtual machine with the uid 1234567.
 
description: The maintenance leaf for the virtual machine with the uid 1234567.
 
sstIsActive: TRUE
 
sstIsActive: TRUE
 +
sstBillable: TRUE
 
sstServicePriority: 3
 
sstServicePriority: 3
 +
sstServiceAutomated: TRUE
 
sstCronRepeatType: monthly    # repeat type is monthly
 
sstCronRepeatType: monthly    # repeat type is monthly
 
sstCronInterval: 1            # repeat every month
 
sstCronInterval: 1            # repeat every month
Line 599: Line 1,830:
 
sstResponsibleDeputyPersonUID: 4000002
 
sstResponsibleDeputyPersonUID: 4000002
 
sstNotificationWarning: reminder
 
sstNotificationWarning: reminder
 +
sstIsMultiTenant: FALSE
 
sstBelongsToServiceUID: 1234567
 
sstBelongsToServiceUID: 1234567
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToResellerUID: 4000000
Line 700: Line 1,932:
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Self-Service'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Changeable'''</center>
 
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more. For example: <code>4000003</code>.  
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more. For example: <code>4000003</code>.  
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.  
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.  
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBillable
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice.
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: '''20201231'''.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels:
+
 
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Mo. - Fr. from 09:00 - 17:00).
+
The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value.
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Mo. - Fr. from 07:00 - 19:00).
+
 
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Mo. - Su. from 00:00 - 24:00).
+
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
 +
* <code>3</code>: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
 +
* <code>2</code>: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
 +
* <code>1</code>: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
 +
 +
If the attribute <code>sstServiceAutomated</code> is set to <code>TRUE</code>, the <code>sstServicePriority</code> will be ignored. And we will have automated maintenance windows in the form of:
 +
*  Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A maintenance window is either executed automatically:
 +
* <code>sstServiceAutomated: TRUE</code>
 +
or manually:
 +
* <code>sstServiceAutomated: FALSE</code>
 +
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronRepeatType
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronInterval
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: <code>1</code> - <code>12</code>. For example: <code>2</code> could be every two days, weeks, months or years (depending on the value of the attribute <code>sstCronRepeatType</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronStartDate
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronStartDate
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The first time a cron job is executed. This date is stored in the form of [YYYY][MM][DD] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For example: <code>2010314</code> (the 14th of March 2015).
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The first time a cron job is executed. This date is stored in the form of [YYYY][MM][DD] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For example: <code>2010314</code> (the 14th of March 2015).
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDuration
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The duration of the maintenance window in minutes. Valid values are: <code>15</code> - <code>1440</code> (15 minutes to 24 hours). For example: <code>60</code>, which means 60 minutes (one hour).
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must start.
 +
 +
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
 +
 +
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinuteEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>). Valid values are: <code>0</code> - <code>59</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of minutes past the hour. Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 60 minutes past the hour.
+
 
 +
For example: <code>45</code>, which means 45 minutes past the hour.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window minute range, while <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHour
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must start.
 +
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 +
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The hour the maintenance window must end (minus the duration defined with attribute <code>sstCronDuration>/code>).
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The number of hours. Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
+
 
 +
Valid values are: <code>0</code> - <code>23</code>. For example: <code>9</code>, which means 9 am, while <code>17</code> means 5 pm.
 +
 
 +
If this attribute is set, it is interpreted as the end of a maintenance window hour range, while <code>sstCronHour</code> is interpreted as the start of a maintenance window hour range.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Day of week (<code>0</code> - <code>6</code>), where Sunday is <code>0</code>. For example: <code>1</code>, which means Monday.
Line 800: Line 2,080:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfMonth
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The day of the month a cron job is to be executed. Valid values are: <code>1</code> - <code>31</code>. For example: <code>3</code> is the third of the month.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The day of the month a cron job is to be executed. Valid values are: <code>1</code> - <code>31</code>. For example: <code>3</code> is the third of the month.
Line 808: Line 2,087:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMonthOfyear
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMonthOfyear
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The month of the year a cron job is to be executed. Valid values are: <code>1</code> - <code>12</code>. For example: <code>3</code> would be March.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The month of the year a cron job is to be executed. Valid values are: <code>1</code> - <code>12</code>. For example: <code>3</code> would be March.
Line 816: Line 2,094:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronOccurrenceInMonth
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>4</code>. For example: <code>3</code> would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The occurence of the day in a month a cron job is to be executed. Valid values are: <code>1</code> - <code>5</code>. For example: <code>3</code> would be the third occurence.
+
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstInformPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
Line 848: Line 2,122:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>reminder</code>. The value (name) corresponds with the template dn.
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsMultiTenant
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| If this singe-valued attribute is set to TRUE, we know that this is a multi tenant capable system or service. For example stoney backup, stoney storage or stoney wiki). The maintenance notification system will therefore know, that it must inform the tenants differently.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is <code>maintenance</code>. The value (name) corresponds with the template dn.
+
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToServiceUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToServiceUID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the service the leaf belongs to. This UID can be used to look up other information. A unique value with 7 digits or more. <code>4000123</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the UID of the service the leaf belongs to. This UID can be used to look up other information. A unique value with 7 digits or more. <code>4000123</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000000</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000000</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000001</code>.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000001</code>.
  

Latest revision as of 13:03, 5 May 2022

Abstract

This document describes the OpenLDAP directory data organisation for the stoney maintenance service.

Data Organisation

The following chapters explain the data organisation of the stoney cloud OpenLDAP directory, in this case we looking at the stoney maintenance service.

Maintenance

The following LDIF shows the maintenance entry of the whole OpenLDAP directory tree for the stoney cloud:

dn: ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: maintenance
description: The sub tree for the maintenance (configuration management) service.

Maintenance - Configuration

The sub tree for the configuration of the maintenance service:

dn: ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: configuration
description: The sub tree for the configuration of the maintenance service.

Maintenance - Configuration - Reseller

The sub tree for the reseller specific maintenance service settings:

dn: ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: reseller
description: The sub tree for the reseller specific maintenance service settings.

The sub tree for the specific maintenance service settings for the reseller Reseller Ltd. with the uid 4000000.

dn: uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstReseller
objectclass: sstServiceConfigurationObjectClass
uid: 4000000
o: Reseller Ltd.
description: The sub tree for the specific maintenance service settings for the reseller Reseller Ltd. with the uid 4000000.
sstIsCompany: TRUE
sstIsActive: TRUE
sstIsDefault: TRUE
sstBelongsToResellerUID: 4000000

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
uid
MUST
x
A unique integer value with 7 digits or more. For example: 4000000.
o
MUST
x
The company name, for example: Reseller Ltd..
description
MAY
x
The description of the leaf.
sstIsCompany
MUST
x
Is the entry a company? Either true (yes) or false (no).
sstIsActive
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstIsDefault
MAY
Contains the leaf a default entry? Either TRUE (yes) or FALSE (no). If sstIsDefault is set to TRUE, this entry acts as a fall back configuration. In other words: If a reseller doesn't have his own maintenance service configuration, then this on will be used.
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Reseller - Defaults

This sub tree stores the default settings for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.

The configuration below tells us the following:

  • We have a maintenance window range (as sstCronMinuteEnd and sstCronHourEnd are set).
  • The maintenance window is executed every 2nd Tuesday of every month.
  • The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
  • A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.

The lookup of the default settings for the stoney maintenance service is as follows:

  1. Service roles: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. OpenStack project: ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Customer: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Reseller: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the service roles sub tree. If there are still missing values, the next lookup occurs in the OpenStack project subtree. Once again, if there are still missing values, the next lookup occurs in the customer sub tree. If there are still missing values, the final lookup occurs in the reseller sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).

dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstMaintenanceDefaultsObjectClass
objectclass: sstNotificationObjectClass
objectclass: sstRelationship
ou: defaults
description: This sub tree stores the default settings for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
sstIsActive: TRUE                       # MUST: The default is always TRUE, otherwise why bother? 
sstServicePriority: 3                   # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
sstServiceAutomated: TRUE               # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
sstCronRepeatType: monthly              # MAY: repeat type is monthly
sstCronInterval: 1                      # MAY: repeat every month
sstCronOccurrenceInMonth: 2             # MAY: second occurence
sstCronDayOfWeek: 2                     # MAY: Tuesday
sstCronMinute: 30                       # MAY: 30 Minutes past the hour
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
sstCronHour: 9                          # MAY: 9 am
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45)  
sstCronDuration: 60                     # MAY: 60 minutes (one hour)
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
sstInformPersonUID: 1000482             # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
description sstMaintenanceDefaultsObjectClass
MAY
x
The description of the leaf.
sstIsActive sstMaintenanceDefaultsObjectClass
MAY
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstServicePriority sstMaintenanceDefaultsObjectClass
MAY
x
The maintenance service level. The possible maintenance service levels (1, 2 or 3):
  • 3: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
  • 2: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
  • 1: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).

For more information on these maintenance service levels, visit stepping stone GmbH web page.

If the attribute sstServiceAutomated is set to TRUE, the sstServicePriority will be ignored. And we will have automated maintenance windows in the form of:

  • Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
sstServiceAutomated sstMaintenanceDefaultsObjectClass
MAY
A maintenance window is either executed automatically:
  • sstServiceAutomated: TRUE

or manually:

  • sstServiceAutomated: FALSE

If the attribute sstServiceAutomated does not exist, presume FALSE.

sstCronRepeatType sstMaintenanceDefaultsObjectClass
MAY
How often is a cron job to be repeated. Valid values are: daily, weekly, monthly, yearly.
sstCronInterval sstMaintenanceDefaultsObjectClass
MAY
The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: 1 - 12. For example: 2 could be every two days, weeks, months or years (depending on the value of the attribute sstCronRepeatType.
sstCronOccurrenceInMonth sstMaintenanceDefaultsObjectClass
MAY
The occurence of the day in a month a cron job is to be executed. Valid values are: 1 - 4. For example: 3 would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
sstCronDayOfWeek sstMaintenanceDefaultsObjectClass
MAY
Day of week (0 - 6), where Sunday is 0. For example: 1, which means Monday.
sstCronMinute sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must start.

Valid values are: 0 - 59. For example: 30, which means 30 minutes past the hour.

If the attribute sstCronMinuteEnd is set, then sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronMinuteEnd sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>). Valid values are: <code>0 - 59.

For example: 45, which means 45 minutes past the hour.

If this attribute is set, it is interpreted as the end of a maintenance window minute range, while sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronHour sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must start.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If the attribute sstCronHourEnd is set, then sstCronMinute is interpreted as the start of a maintenance window hour range.

sstCronHourEnd sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>).

Valid values are: <code>0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If this attribute is set, it is interpreted as the end of a maintenance window hour range, while sstCronHour is interpreted as the start of a maintenance window hour range.

sstCronDuration sstMaintenanceDefaultsObjectClass
MAY
The duration of the maintenance window in minutes. Valid values are: 15 - 1440 (15 minutes to 24 hours). For example: 60, which means 60 minutes (one hour).
sstNotificationWarning sstNotificationObjectClass
MAY
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn.
sstInformPersonUID sstRelationship
MAY
Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.

As this attribute is multi-valued, the lookups will continue, even if this attribute is set.

sstResponsiblePersonUID sstRelationship
MAY
Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsibleDeputyPersonUID sstRelationship
MAY
Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstBelongsToResellerUID sstRelationship
MAY
x
Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of sstBelongsToResellerUID corresponds with the value of uid.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

sstBelongsToCustomerUID sstRelationship
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute sstBelongsToCustomerUID should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.

For example: sstBelongsToCustomerUID: 4000001.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Reseller - Notification settings

The sub tree stores the notification information for the maintenance service for the reseller Reseller Ltd. with the uid 4000000. This information is used as a fallback. The lookup is as follows:

  1. Unit: uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. Customer: ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Reseller: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Default Reseller: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

The idea is, that even if somebody forgot to define something, no maintenance window will be lost or forgotten.

dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
ou: notifications
description: The sub tree stores the notification information for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
sstInformPersonUID: 4000002
sstResponsiblePersonUID: 4000002
sstResponsibleDeputyPersonUID: 4000002
sstNotificationWarning: reminder

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
The name of this leaf.
description
MAY
x
The description of the leaf.
sstInformPersonUID
MAY
x
Stores the persons UID the notification will be sent to. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstResponsiblePersonUID
MAY
x
Stores the persons UID, who is responsible for the maintenance. The notification will be sent to this person. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstResponsibleDeputyPersonUID
MAY
x
Stores the UID of the deputy of the person who is responsible for the maintenance. The notification will be sent to this person. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstNotificationWarning
MAY
x
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn. For example: ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Reseller - Templates

This sub tree contains the notification templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000:

dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: templates
description: This sub tree contains the templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
Maintenance - Configuration - Reseller - Reminder mail templates

This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000:

dn: ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstTemplateSetup
ou: reminder
description: This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
sstMailFrom: Support stepping stone GmbH <support@stoney-cloud.org>
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail
sstMailTemplateFormatSource: txt
sstMailTemplateFormatTarget: txt
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller
sstMailTemplateResellerFormatSource: txt
sstMailTemplateResellerFormatTarget: txt

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MUST
x
sstMailFrom
MAY
x
The mail address, from which the maintenance reminder mails are sent from. For example:
  • Support stepping stone GmbH <support@stoney-cloud.org>.
sstMailTo
MAY
If this multi-valued attribute is set with one or mail address(es), then these recipients will receive the same information as the owner. Normally, this attribute is not set.
sstMailTemplate
MAY
x
The template, that is used to create the mail that is sent to the owner of the service if sstBackupWarningOn: TRUE and sstNotificationWarningMedium: mail. If the mail is not set, you must look for the mail in the owners person entry under uid=<UID>,ou=people,dc=stoney-cloud,dc=org.

For example:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail.
sstMailTemplateFormatSource
MAY
x
The format of the source template. Supported values:
  • txt
  • html

Place holder:

  • For both txt or html as a source and txt or html, the place holders have the form of {$placeholder}.

Default would normally be txt.

sstMailTemplateFormatTarget
MAY
x
The format of the target. Supported values:
  • txt
  • html
sstMailTemplateReseller
MAY
x1
The path and name to a template file, that is used to inform one or more people if the multi-valued attribute sstMailTo is set in the notifications sub tree of the reseller
  • ou=notifications,uid=<UID>,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=foss-cloud,dc=org

and if <code>sstNotificationWarning is set to maintenance. In most cased, the attribute sstMailTo is set to the support organisation's mail address. For example:

  • sstMailTo: Support stepping stone GmbH <support@stepping-stone.ch>

This way, the support organisation will be pre-informed for when the customer should call or write.

The information the recipients will receive, is the same as the owner, but will formatted according to:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail
  • sstMailTemplateResellerFormatSource: txt
  • sstMailTemplateResellerFormatTarget: txt
sstMailTemplateResellerFormatSource
MAY
x1
The format of the source template. Supported values:
  • txt
  • html

Place holder:

  • For both txt or html as a source and txt or html, the place holders have the form of {$placeholder}.

The complete path and file name is a string concatenation of the values of the attributes sstTemplate, preferredLanguage and sstTemplateFormatSource (with a dot in between the values). For example:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller
  • preferredLanguage: en-GB
  • sstTemplateFormatSource: txt

This gives us:

  • file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller.en-GB.txt

Default would normally be txt.

sstMailTemplateResellerFormatTarget
MAY
x1
The format of the target. Supported values:
  • txt
  • html

Default would normallb be txt.

Legend:

  • x: Mandatory in all cases.
  • x1: Must exist, if sstMailTo is set.

TODO: this is a copy and still needs checking / customizing.

Maintenance - Configuration - Reseller - Reminder mail templates: placeholders (txt/html)

An example:

{$system}            kvm-0003: stepping stone GmbH: Gentoo (stoney backup Server)
{$salutation}        Dear Mr.
{$surname}           Eichenberger
{$inform}            - Michael Eichenberger <michael.eichenberger@stepping-stone.ch>
{$responsible}       - Niklaus Hofer <niklaus.hofer@stepping-stone.ch>
{$deputy}            - Yannick Denzer <yannick.denzer@stepping-stone.ch>
{$maintenance_date}  2016-08-17
{$maintenance_start} 16:00
{$maintenance_end}   17:00

Optional Values:

none
Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.de-CH.txt
Subject: Wartungsarbeiten am {$system}
{$salutation} {$surname}

Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden 
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.

Dabei werden diverse Sicherheitsrisiken behoben.

Während den Wartungsarbeiten kann es zu kurzen Unterbrüchen der Services kommen.

Nach Abschluss der Wartungsarbeiten werden wir Sie nochmals benachrichtigen.

Diese Information geht an:
{$inform}
Falls Sie dieses Wartungsfenster nicht durchführen wollen, bitten wir Sie uns 
telefonisch darüber zu informieren.

Für Fragen stehen wir Ihnen gerne zur Verfügung.


Mit besten Grüssen,

Das Support-Team der stepping stone AG

--
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern

Telefon: +41 31 332 53 63
www.stepping-stone.ch
support@stepping-stone.ch
Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.en-GB.txt
Subject: Maintenance Work for {$system}
{$salutation} {$surname}

The monthly maintenance window for {$system} will be held on the {$maintenance_date} 
between {$maintenance_start} and {$maintenance_end}.

Several security risks will be removed.

Short interruptions of the services can occur during the maintenance window.

We will inform you after the successful completion of the maintenance work.

This information goes to:
{$inform}
If you do not wish to perform this maintenance window, please let us know by 
telephone.

If you have any questions do not hesitate to contact us.


With best regards,

Your stepping stone AG support team

--
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern

Telefon: +41 31 332 53 63
www.stepping-stone.ch
support@stepping-stone.ch
Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.de-CH.txt
Subject: Wartungsarbeiten am {$system}
{$salutation} {$surname}

Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden 
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.

Verantwortlich für dieses System:
{$responsible}
Stellvertretung:
{$deputy}
Nach Abschluss der Wartungsarbeiten, bitte folgende Persone(n) informieren:
{$inform}

Mit besten Grüssen,

Das Support-Team der stepping stone AG

--
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern

Telefon: +41 31 332 53 63
www.stepping-stone.ch
support@stepping-stone.ch
Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.en-GB.txt
Subject: Maintenance Work for {$system}
{$salutation} {$surname}

The monthly maintenance window for {$system} will be held on the {$maintenance_date} 
between {$maintenance_start} and {$maintenance_end}.

Responsible for this system:
{$responsible}
Deputy:
{$deputy}
After the successful completion of the maintenance work, please inform the following 
person/people:
{$inform}

With best regards,

Your stepping stone AG support team
--
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern

Telefon: +41 31 332 53 63
www.stepping-stone.ch
support@stepping-stone.ch

Maintenance - Configuration - Customers

The sub tree for the customers specific maintenance service settings:

dn: ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: customer
description: The sub tree for the customer specific maintenance service settings.

The sub tree for the specific maintenance service settings for the customer Customer Ltd. with the uid 4000001.

dn: uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstCustomer
objectclass: sstRelationship
objectclass: sstServiceConfigurationObjectClass
uid: 4000001
o: Customer Ltd.
description: The sub tree for the specific maintenance service settings for the customer Customer Ltd. with the uid 4000001.
sstIsCompany: TRUE
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
uid
MUST
x
A unique integer value with 7 digits or more. For example: 4000001.
o
MUST
x
The company name, for example: Customer Ltd..
description
MAY
x
The description of the leaf.
sstIsCompany
MUST
x
Is the entry a company? Either true (yes) or false (no).
sstIsActive
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.
sstBelongsToResellerUID
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000001.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Customers - Defaults

This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.

The configuration below tells us the following:

  • We have a maintenance window range (as sstCronMinuteEnd and sstCronHourEnd are set).
  • The maintenance window is executed every 2nd Tuesday of every month.
  • The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
  • A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.

The lookup of the default settings for the stoney maintenance service is as follows:

  1. Service roles: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. OpenStack project: ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Customer: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Reseller: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the service roles sub tree. If there are still missing values, the next lookup occurs in the OpenStack project subtree. Once again, if there are still missing values, the next lookup occurs in the customer sub tree. If there are still missing values, the final lookup occurs in the reseller sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).

dn: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstMaintenanceDefaultsObjectClass
objectclass: sstNotificationObjectClass
objectclass: sstRelationship
ou: defaults
description: This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
sstIsActive: TRUE                       # MUST: The default is always TRUE, otherwise why bother? 
sstServicePriority: 3                   # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
sstServiceAutomated: TRUE               # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
sstCronRepeatType: monthly              # MAY: repeat type is monthly
sstCronInterval: 1                      # MAY: repeat every month
sstCronOccurrenceInMonth: 2             # MAY: second occurence
sstCronDayOfWeek: 2                     # MAY: Tuesday
sstCronMinute: 30                       # MAY: 30 Minutes past the hour
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
sstCronHour: 9                          # MAY: 9 am
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45)  
sstCronDuration: 60                     # MAY: 60 minutes (one hour)
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
sstInformPersonUID: 1000482             # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
description sstMaintenanceDefaultsObjectClass
MAY
x
The description of the leaf.
sstIsActive sstMaintenanceDefaultsObjectClass
MAY
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstServicePriority sstMaintenanceDefaultsObjectClass
MAY
x
The maintenance service level. The possible maintenance service levels (1, 2 or 3):
  • 3: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
  • 2: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
  • 1: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).

For more information on these maintenance service levels, visit stepping stone GmbH web page.

If the attribute sstServiceAutomated is set to TRUE, the sstServicePriority will be ignored. And we will have automated maintenance windows in the form of:

  • Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
sstServiceAutomated sstMaintenanceDefaultsObjectClass
MAY
A maintenance window is either executed automatically:
  • sstServiceAutomated: TRUE

or manually:

  • sstServiceAutomated: FALSE

If the attribute sstServiceAutomated does not exist, presume FALSE.

sstCronRepeatType sstMaintenanceDefaultsObjectClass
MAY
How often is a cron job to be repeated. Valid values are: daily, weekly, monthly, yearly.
sstCronInterval sstMaintenanceDefaultsObjectClass
MAY
The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: 1 - 12. For example: 2 could be every two days, weeks, months or years (depending on the value of the attribute sstCronRepeatType.
sstCronOccurrenceInMonth sstMaintenanceDefaultsObjectClass
MAY
The occurence of the day in a month a cron job is to be executed. Valid values are: 1 - 4. For example: 3 would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
sstCronDayOfWeek sstMaintenanceDefaultsObjectClass
MAY
Day of week (0 - 6), where Sunday is 0. For example: 1, which means Monday.
sstCronMinute sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must start.

Valid values are: 0 - 59. For example: 30, which means 30 minutes past the hour.

If the attribute sstCronMinuteEnd is set, then sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronMinuteEnd sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>). Valid values are: <code>0 - 59.

For example: 45, which means 45 minutes past the hour.

If this attribute is set, it is interpreted as the end of a maintenance window minute range, while sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronHour sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must start.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If the attribute sstCronHourEnd is set, then sstCronMinute is interpreted as the start of a maintenance window hour range.

sstCronHourEnd sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>).

Valid values are: <code>0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If this attribute is set, it is interpreted as the end of a maintenance window hour range, while sstCronHour is interpreted as the start of a maintenance window hour range.

sstCronDuration sstMaintenanceDefaultsObjectClass
MAY
The duration of the maintenance window in minutes. Valid values are: 15 - 1440 (15 minutes to 24 hours). For example: 60, which means 60 minutes (one hour).
sstNotificationWarning sstNotificationObjectClass
MAY
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn.
sstInformPersonUID sstRelationship
MAY
Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.

As this attribute is multi-valued, the lookups will continue, even if this attribute is set.

sstResponsiblePersonUID sstRelationship
MAY
Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsibleDeputyPersonUID sstRelationship
MAY
Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstBelongsToResellerUID sstRelationship
MAY
x
Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of sstBelongsToResellerUID corresponds with the value of uid.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

sstBelongsToCustomerUID sstRelationship
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute sstBelongsToCustomerUID should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.

For example: sstBelongsToCustomerUID: 4000001.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Customers - Notification settings

The sub tree stores the notification information for the maintenance service for the customer Customer Ltd. with the uid 4000001. This information is used as a fallback. The lookup is as follows:

  1. Unit: uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. Customer: ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Reseller: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Default Reseller: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

The idea is, that even if somebody forgot to define something, no maintenance window will be lost or forgotten.

dn: ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
ou: notifications
description: The sub tree stores the notification information for the maintenance service for the customer Customer Ltd. with the uid 4000001.
sstInformPersonUID: 4000002
sstResponsiblePersonUID: 4000002
sstResponsibleDeputyPersonUID: 4000002
sstNotificationWarning: reminder

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
The name of this leaf.
description
MAY
x
The description of the leaf.
sstInformPersonUID
MAY
x
Stores the persons UID the notification will be sent to. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstResponsiblePersonUID
MAY
x
Stores the persons UID, who is responsible for the maintenance. The notification will be sent to this person. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstResponsibleDeputyPersonUID
MAY
x
Stores the UID of the deputy of the person who is responsible for the maintenance. The notification will be sent to this person. For example: 4000002. This means the information of the person is stored under the dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org.
sstNotificationWarning
MAY
x
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn. For example: ou=reminder,ou=templates,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Customers - Templates

This sub tree contains the notification templates for the maintenance service for the customer Customer Ltd. with the uid 4000001:

dn: ou=templates,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: templates
description: This sub tree contains the templates for the maintenance service for the customer Customer Ltd. with the uid 4000001.

Maintenance - Configuration - OpenStack projects

The sub tree for the OpenStack projects specific maintenance service settings:

dn: ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: projects
description: The sub tree for the OpenStack projects specific maintenance service settings.

The sub tree for the specific maintenance service settings for the OpenStack project Customer Ltd. - Public Systems with the uid 4100001.

dn: uid=4100001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstOpenStackProject
objectclass: sstRelationship
uid: 4100001
sstOpenStackId: 9ecb5bfdd4564f6ca52bba1e869eeea4
sstOpenStackName: Customer Ltd. - Public Systems
description: The sub tree for the specific maintenance service settings for the OpenStack project 'Customer Ltd. - Public Systems' with the uid 4100001.
sstIsActive: TRUE
sstBelongsToDomainID: b01822477be64c09950022486300c59c
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following table describes the different attributes: The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
uid sstOpenStackProject
MUST
x
A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of uid corresponds with the value of sstBelongsToResellerUID.

For example: uid: 4000000 corresponds with sstBelongsToResellerUID: 4000000.

sstOpenStackId sstOpenStackProject
MAY
x
The OpenStack project id as returned from the OpenStack API.

For example: "id" : "5a3a4fd5d6e94a87815131be42d8e6d9". This gives us the LDAP entry: sstOpenStackId: 5a3a4fd5d6e94a87815131be42d8e6d9.

sstOpenStackName sstOpenStackProject
MAY
x
The OpenStack project name as returned from the OpenStack API.

For example: "name" : "Customer Ltd. - Public Systems". This gives us the LDAP entry: sstOpenStackName: Customer Ltd. - Public Systems.

description sstOpenStackProject
MAY
x
The description of the leaf.

For example: The sub tree for the specific maintenance service settings for the OpenStack project 'Customer Ltd. - Public Systems' with the uid 4100001.

sstIsActive sstOpenStackProject
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstBelongsToDomainID sstOpenStackProject
MUST
x
The OpenStack domain id the project belongs to.

For example: sstBelongsToDomainID: b01822477be64c09950022486300c59c.

sstBelongsToResellerUID sstRelationship
MAY
x
Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of sstBelongsToResellerUID corresponds with the value of uid.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

sstBelongsToCustomerUID sstRelationship
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute sstBelongsToCustomerUID should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.

For example: sstBelongsToCustomerUID: 4000001.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - OpenStack projects - Defaults

This sub tree stores the default settings for the stoney maintenance service for the OpenStack project 'Customer Ltd. - Internal Systems' with OpenStack id '5a3a4fd5d6e94a87815131be42d8e6d9' and with the OpenStack project uid '4000001'.

The configuration below tells us the following:

  • We have a maintenance window range (as sstCronMinuteEnd and sstCronHourEnd are set).
  • The maintenance window is executed every 2nd Tuesday of every month.
  • The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
  • A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.

The lookup of the default settings for the stoney maintenance service is as follows:

  1. Service roles: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. OpenStack project: ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Customer: ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Reseller: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the service roles sub tree. If there are still missing values, the next lookup occurs in the OpenStack project subtree. Once again, if there are still missing values, the next lookup occurs in the customer sub tree. If there are still missing values, the final lookup occurs in the reseller sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).

dn: ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstMaintenanceDefaultsObjectClass
objectclass: sstNotificationObjectClass
objectclass: sstRelationship
ou: defaults
description: This sub tree stores the default settings for the stoney maintenance service for the OpenStack project 'Customer Ltd. - Internal Systems' with OpenStack id '5a3a4fd5d6e94a87815131be42d8e6d9' and with the OpenStack project uid '4000001'.
sstIsActive: TRUE                       # MAY: The default is always TRUE, otherwise why bother? 
sstServicePriority: 3                   # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
sstServiceAutomated: TRUE               # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
sstCronRepeatType: monthly              # MAY: repeat type is monthly
sstCronInterval: 1                      # MAY: repeat every month
sstCronOccurrenceInMonth: 2             # MAY: second occurence
sstCronDayOfWeek: 2                     # MAY: Tuesday
sstCronMinute: 30                       # MAY: 30 Minutes past the hour
sstCronMinuteEnd: 45                    # MAY: 45 Minutes past the hour (new attribute, for if we have a range: 09:30 - 13:45)
sstCronHour: 9                          # MAY: 9 am
sstCronHourEnd: 13                      # MAY: 1 pm (new attribute, for if we have a range: 09:30 - 13:45)  
sstCronDuration: 60                     # MAY: 60 minutes (one hour)
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
sstInformPersonUID: 1000482             # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
description sstMaintenanceDefaultsObjectClass
MAY
x
The description of the leaf.
sstIsActive sstMaintenanceDefaultsObjectClass
MAY
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstServicePriority sstMaintenanceDefaultsObjectClass
MAY
x
The maintenance service level. The possible maintenance service levels (1, 2 or 3):
  • 3: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
  • 2: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
  • 1: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).

For more information on these maintenance service levels, visit stepping stone GmbH web page.

If the attribute sstServiceAutomated is set to TRUE, the sstServicePriority will be ignored. And we will have automated maintenance windows in the form of:

  • Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
sstServiceAutomated sstMaintenanceDefaultsObjectClass
MAY
A maintenance window is either executed automatically:
  • sstServiceAutomated: TRUE

or manually:

  • sstServiceAutomated: FALSE

If the attribute sstServiceAutomated does not exist, presume FALSE.

sstCronRepeatType sstMaintenanceDefaultsObjectClass
MAY
How often is a cron job to be repeated. Valid values are: daily, weekly, monthly, yearly.
sstCronInterval sstMaintenanceDefaultsObjectClass
MAY
The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: 1 - 12. For example: 2 could be every two days, weeks, months or years (depending on the value of the attribute sstCronRepeatType.
sstCronOccurrenceInMonth sstMaintenanceDefaultsObjectClass
MAY
The occurence of the day in a month a cron job is to be executed. Valid values are: 1 - 4. For example: 3 would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
sstCronDayOfWeek sstMaintenanceDefaultsObjectClass
MAY
Day of week (0 - 6), where Sunday is 0. For example: 1, which means Monday.
sstCronMinute sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must start.

Valid values are: 0 - 59. For example: 30, which means 30 minutes past the hour.

If the attribute sstCronMinuteEnd is set, then sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronMinuteEnd sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>). Valid values are: <code>0 - 59.

For example: 45, which means 45 minutes past the hour.

If this attribute is set, it is interpreted as the end of a maintenance window minute range, while sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronHour sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must start.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If the attribute sstCronHourEnd is set, then sstCronMinute is interpreted as the start of a maintenance window hour range.

sstCronHourEnd sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must end.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If this attribute is set, it is interpreted as the end of a maintenance window hour range, while sstCronHour is interpreted as the start of a maintenance window hour range. Therefore, the latest maintenance window can start at <coode>sstCronHourEnd</code> minus the duration defined with attribute sstCronDuration.

sstCronDuration sstMaintenanceDefaultsObjectClass
MAY
The duration of the maintenance window in minutes. Valid values are: 15 - 1440 (15 minutes to 24 hours). For example: 60, which means 60 minutes (one hour).
sstNotificationWarning sstNotificationObjectClass
MAY
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn.
sstInformPersonUID sstRelationship
MAY
Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.

As this attribute is multi-valued, the lookups will continue, even if this attribute is set.

sstResponsiblePersonUID sstRelationship
MAY
Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsibleDeputyPersonUID sstRelationship
MAY
Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstBelongsToResellerUID sstRelationship
MAY
x
Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of sstBelongsToResellerUID corresponds with the value of uid.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

sstBelongsToCustomerUID sstRelationship
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute sstBelongsToCustomerUID should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.

For example: sstBelongsToCustomerUID: 4000001.

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - Service (Puppet) roles

The sub tree for the service (Puppet) roles specific maintenance service settings:

dn: ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: roles
description: The sub tree for the service (Puppet) roles specific maintenance service settings.

The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office' (Puppet roles don't contain spaces).

dn: ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstServiceConfigurationObjectClass
ou: stoney_office
description: The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.
sstIsActive: TRUE
sstIsDefault: TRUE


The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
ou organizationalUnit
MUST
x
The name of the service (Puppet) role.

For example: ou: stoney_office (Puppet roles don't contain spaces).

description organizationalUnit
MAY
x
The description of the leaf.

For example: The sub tree of the specific maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.

sstIsActive sstServiceConfigurationObjectClass
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstIsDefault sstServiceConfigurationObjectClass
MAY
Contains the leaf a default entry? Either TRUE (yes) or FALSE (no).

If sstIsDefault is set to TRUE, the information of this subtree must alway be used (to make sure, that all automated maintenance windows are executed in the same time frame).

Legend:

  • x: Mandatory in all cases.

Maintenance - Configuration - service (Puppet) roles - Defaults

This sub tree stores the default settings for the stoney maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'.

The configuration below tells us the following:

  • We have a maintenance window range (as sstCronMinuteEnd and sstCronHourEnd are set).
  • The maintenance window is executed every 2nd Wednesday of every month.
  • The maintenance windows can start a 03:00 and must end at 05:00 and takes half an hour (30 minutes).
  • A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.

The lookup of the default settings for the stoney maintenance service is as follows:

  1. Service roles: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  2. OpenStack project: ou=defaults,uid=4100000,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  3. Customer: ou=defaults,uid=4000001,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.
  4. Reseller: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org.

For example: If no maintenance values or only a subset of maintenance values are set by the provisioning api (or provisioning script), an missing values are first looked up in the service roles sub tree. If there are still missing values, the next lookup occurs in the OpenStack project subtree. Once again, if there are still missing values, the next lookup occurs in the customer sub tree. If there are still missing values, the final lookup occurs in the reseller sub tree. If there are still missing values, the provisioning api (or provisioning script) must inform the calling instance (this would normally be a human).

dn: ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstMaintenanceDefaultsObjectClass
objectclass: sstNotificationObjectClass
objectclass: sstRelationship
ou: defaults
description: This sub tree stores the default settings for the stoney maintenance service settings for the stoney office service (Puppet) role called 'stoney_office'. Please be aware, that this is the production definition. The integration (test) definition is the same, except that the sstCronOccurrenceInMonth attribute is 1 instead of 2 (a week before).
sstIsActive: TRUE                       # MAY: The default is always TRUE, otherwise why bother? 
sstServicePriority: 3                   # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
sstServiceAutomated: TRUE               # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
sstCronRepeatType: monthly              # MAY: repeat type is monthly
sstCronInterval: 1                      # MAY: repeat every month
sstCronOccurrenceInMonth: 2             # MAY: second occurence
sstCronDayOfWeek: 3                     # MAY: Wednesday
sstCronMinute: 0                        # MAY: 0 Minutes past the hour
sstCronMinuteEnd: 0                     # MAY: 0 Minutes past the hour (new attribute, for if we have a range: 03:00 - 05:00)
sstCronHour: 3                          # MAY: 3 am
sstCronHourEnd: 5                       # MAY: 5 am (new attribute, for if we have a range: 03:00 - 05:00)  
sstCronDuration: 30                     # MAY: 30 minutes (half an hour)
sstNotificationWarning: reminder        # MAY: We alway set this (Multi-valued attribute).
sstInformPersonUID: 1000482             # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsiblePersonUID: 1000482        # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
description sstMaintenanceDefaultsObjectClass
MAY
x
The description of the leaf.
sstIsActive sstMaintenanceDefaultsObjectClass
MAY
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstServicePriority sstMaintenanceDefaultsObjectClass
MAY
x
The maintenance service level. The possible maintenance service levels (1, 2 or 3):
  • 3: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
  • 2: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
  • 1: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).

For more information on these maintenance service levels, visit stepping stone GmbH web page.

If the attribute sstServiceAutomated is set to TRUE, the sstServicePriority will be ignored. And we will have automated maintenance windows in the form of:

  • Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
sstServiceAutomated sstMaintenanceDefaultsObjectClass
MAY
A maintenance window is either executed automatically:
  • sstServiceAutomated: TRUE

or manually:

  • sstServiceAutomated: FALSE

If the attribute sstServiceAutomated does not exist, presume FALSE.

sstCronRepeatType sstMaintenanceDefaultsObjectClass
MAY
How often is a cron job to be repeated. Valid values are: daily, weekly, monthly, yearly.
sstCronInterval sstMaintenanceDefaultsObjectClass
MAY
The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: 1 - 12. For example: 2 could be every two days, weeks, months or years (depending on the value of the attribute sstCronRepeatType.
sstCronOccurrenceInMonth sstMaintenanceDefaultsObjectClass
MAY
The occurence of the day in a month a cron job is to be executed. Valid values are: 1 - 4. For example: 3 would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
sstCronDayOfWeek sstMaintenanceDefaultsObjectClass
MAY
Day of week (0 - 6), where Sunday is 0. For example: 1, which means Monday.
sstCronMinute sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must start.

Valid values are: 0 - 59. For example: 30, which means 30 minutes past the hour.

If the attribute sstCronMinuteEnd is set, then sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronMinuteEnd sstMaintenanceDefaultsObjectClass
MAY
The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>). Valid values are: <code>0 - 59.

For example: 45, which means 45 minutes past the hour.

If this attribute is set, it is interpreted as the end of a maintenance window minute range, while sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronHour sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must start.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If the attribute sstCronHourEnd is set, then sstCronMinute is interpreted as the start of a maintenance window hour range.

sstCronHourEnd sstMaintenanceDefaultsObjectClass
MAY
The hour the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>).

Valid values are: <code>0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If this attribute is set, it is interpreted as the end of a maintenance window hour range, while sstCronHour is interpreted as the start of a maintenance window hour range.

sstCronDuration sstMaintenanceDefaultsObjectClass
MAY
The duration of the maintenance window in minutes. Valid values are: 15 - 1440 (15 minutes to 24 hours). For example: 60, which means 60 minutes (one hour).
sstNotificationWarning sstNotificationObjectClass
MAY
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn.
sstInformPersonUID sstRelationship
MAY
Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.

As this attribute is multi-valued, the lookups will continue, even if this attribute is set.

sstResponsiblePersonUID sstRelationship
MAY
x
Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsibleDeputyPersonUID sstRelationship
MAY
x
Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstBelongsToResellerUID sstRelationship
MAY
Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. In the case of OpenStack Domains (resellers), the value of sstBelongsToResellerUID corresponds with the value of uid.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

For the service (Puppet) roles this attribute must not be set, as the content of this value must be taken from either the OpenStack project, the customer or the reseller.

sstBelongsToCustomerUID sstRelationship
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute sstBelongsToCustomerUID should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.

For example: sstBelongsToCustomerUID: 4000001.

For the service (Puppet) roles this attribute must not be set, as the content of this value must be taken from either the OpenStack project, the customer or the reseller.

Legend:

  • x: Mandatory in all cases.

Maintenance - Units

The sub tree for the units of the maintenance service:

dn: ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: units
description: The sub tree for the units of the maintenance service.

Maintenance - Units example

Each maintenance unit has its own leaf. A monthly maintenance window is the norm.

Maintenance window every month on the second Tuesday of the month between 09:30 and 10:30, starting on Tuesday, the 14th of April 2015.

The sstBelongsToServiceUID lookup is as follows:

  1. OpenStack unit (server): ou=units,ou=openstack,ou=services,dc=stoney-cloud,dc=org.
  2. Virtual Machine: ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org.
  3. vServer: ou=vservers,ou=services,dc=stoney-cloud,dc=org.
  4. Dedicated Server: ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org (not implemented yet).
  5. External Server: ou=external servers,ou=services,dc=stoney-cloud,dc=org (not implemented yet).

The idea is, that we presume, that most of the maintenance units belong to OpenStack units (servers) running on our OpenStack based stoney cloud installation.

In the example below, the service UID sstBelongsToServiceUID: 1234567 points to virtual machine with the b543f88f-dffe-426f-86d3-c7ff85c16d2a and the uid: 1234567.

dn: uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstMaintenanceObjectClass
objectclass: sstRelationship
uid: 4000003
description: The maintenance leaf for the virtual machine with the uid 1234567.
sstIsActive: TRUE
sstBillable: TRUE
sstServicePriority: 3
sstServiceAutomated: TRUE
sstCronRepeatType: monthly     # repeat type is monthly
sstCronInterval: 1             # repeat every month
sstCronStartDate: 20150414     # starting on Tuesday, the 14th of April 2015
sstCronOccurrenceInMonth: 2    # second occurence
sstCronDayOfWeek: 2            # Tuesday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)
sstInformPersonUID: 4000002
sstResponsiblePersonUID: 4000002
sstResponsibleDeputyPersonUID: 4000002
sstNotificationWarning: reminder
sstIsMultiTenant: FALSE
sstBelongsToServiceUID: 1234567
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Other possible maintenance windows range from daily maintenance windows to bi yearly maintenance windows. The following examples just show the relevant attributes.

Maintenance window every day between 09:30 and 10:30, starting on Monday, the 5th of January 2015.

sstCronRepeatType: daily       # repeat type is daily
sstCronInterval: 1             # repeated every day
sstCronStartDate: 20150105     # starting on the fifth of January 2015
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every second day between 09:30 and 10:30, starting on Monday, the 5th of January 2015.

sstCronRepeatType: daily       # repeat type is daily
sstCronInterval: 2             # repeat every second day
sstCronStartDate: 20150105     # starting on the fifth of January 2015
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every two weeks on Monday between 09:30 and 10:30, starting on Monday, the 13th of April 2015.

sstCronRepeatType: weekly      # repeat type is weekly
sstCronInterval: 2             # repeat every second week
sstCronStartDate: 20150413     # starting on Monday, the 13th of April 2015
sstCronDayOfWeek: 1            # on Monday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every six months on the 15. of the month between 09:30 and 10:30, starting on Wednesday, the 15th of April 2015.

sstCronRepeatType: monthly     # repeat type is monthly
sstCronInterval: 6             # repeat every six months
sstCronStartDate: 20150415     # starting on Wednesday, the 15th of April 2015
sstCronDayOfMonth: 15          # on the 15th day of the month
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every six months on the third Monday of the month between 09:30 and 10:30, starting on Monday, the 20th of April 2015.

sstCronRepeatType: monthly     # repeat type is monthly
sstCronInterval: 6             # repeat every six months
sstCronStartDate: 20150420     # starting on Monday, the 20th of April 2015
sstCronOccurrenceInMonth: 3    # third occurence
sstCronDayOfWeek: 1            # Monday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every year on the 15th of March between 09:30 and 10:30, starting on Wednesday, the 11th of March 2015.

sstCronRepeatType: yearly      # repeat type is yearly
sstCronInterval: 1             # repeat every year
sstCronStartDate: 20150311     # starting on Wednesday, the 11th of March 2015
sstCronDayOfMonth: 11          # on the 11th day of the month
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every year on the third Monday of March between 09:30 and 10:30, starting on Monday, the 16th of March 2015.

sstCronRepeatType: yearly      # repeat type is yearly
sstCronInterval: 1             # repeat every year
sstCronStartDate: 20150316     # starting on Monday, the 16th of March 2015
sstCronMonthOfyear: 3          # third month of the year
sstCronOccurrenceInMonth: 3    # third occurence
sstCronDayOfWeek: 1            # Monday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

Maintenance window every two years on the third Monday of March between 09:30 and 10:30, starting on Monday, the 16th of March 2015.

sstCronRepeatType: yearly      # repeat type is yearly
sstCronInterval: 2             # repeat every two years
sstCronStartDate: 20150316     # starting on Monday, the 16th of March 2015
sstCronMonthOfyear: 3          # third month of the year
sstCronOccurrenceInMonth: 3    # third occurence
sstCronDayOfMonth: 1           # Monday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                 # 9 am
sstCronDuration: 60            # 60 minutes (one hour)

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
uid sstMaintenanceObjectClass
MUST
x
A unique integer value with 7 digits or more. For example: 4000003.
description sstMaintenanceObjectClass
MAY
x
The description of the leaf.
sstIsActive sstMaintenanceObjectClass
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).
sstBillable sstRelationship
MAY
x
It the entry billable? Either TRUE (yes) or FALSE (no). All hierarchical levels must have sstBillable: TRUE to actually have an invoice generated and sent. If the attribute sstBillable doesn't exist, the default is TRUE. This way, we are forced to set a reseller, customer or product manually to sstBillable: FALSE if we want to avoid sending them an invoice.
sstCancellationDate sstRelationship
MAY
The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: 20201231.

The attribute sstCancellationDate is used in a logical AND combination with sstIsActive. With other words: Once the cancellation date has passed, it overrides the sstIsActive value.

sstServicePriority sstMaintenanceObjectClass
MAY
x
The maintenance service level. The possible maintenance service levels (1, 2 or 3):
  • 3: Maintenance P3 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the working hours (Monday to Friday from 09:00 - 12:00 and 13:00 - 17:00).
  • 2: Maintenance P2 [per Unit]: The Security Advisories will be installed once a month at the desired moment during the extended working hours (Monday to Friday from 07:00 - 12:00 and 13:00 - 19:00).
  • 1: Maintenance P1 [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).

For more information on these maintenance service levels, visit stepping stone GmbH web page.

If the attribute sstServiceAutomated is set to TRUE, the sstServicePriority will be ignored. And we will have automated maintenance windows in the form of:

  • Maintenance Automated (vcs_gitlab) [per Unit]: The Security Advisories will be installed once a month at the desired moment around the clock (Monday to Sunday from 00:00 - 24:00).
sstServiceAutomated sstMaintenanceObjectClass
MAY
A maintenance window is either executed automatically:
  • sstServiceAutomated: TRUE

or manually:

  • sstServiceAutomated: FALSE

If the attribute sstServiceAutomated does not exist, presume FALSE.

sstCronRepeatType sstMaintenanceObjectClass
MAY
x
How often is a cron job to be repeated. Valid values are: daily, weekly, monthly, yearly.
sstCronInterval sstMaintenanceObjectClass
MAY
x
The interval of a cron job. This attribute is dependant on the attribute sstCronRepeatType. Valid values are: 1 - 12. For example: 2 could be every two days, weeks, months or years (depending on the value of the attribute sstCronRepeatType.
sstCronStartDate sstMaintenanceObjectClass
MAY
x
The first time a cron job is executed. This date is stored in the form of [YYYY][MM][DD] (ISO 8601). For example: 2010314 (the 14th of March 2015).
sstCronDuration sstMaintenanceObjectClass
MAY
x
The duration of the maintenance window in minutes. Valid values are: 15 - 1440 (15 minutes to 24 hours). For example: 60, which means 60 minutes (one hour).
sstCronMinute sstMaintenanceObjectClass
MAY
The number of minutes past the hour that the maintenance window must start.

Valid values are: 0 - 59. For example: 30, which means 30 minutes past the hour.

If the attribute sstCronMinuteEnd is set, then sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronMinuteEnd sstMaintenanceObjectClass
MAY
The number of minutes past the hour that the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>). Valid values are: <code>0 - 59.

For example: 45, which means 45 minutes past the hour.

If this attribute is set, it is interpreted as the end of a maintenance window minute range, while sstCronMinute is interpreted as the start of a maintenance window minute range.

sstCronHour sstMaintenanceObjectClass
MAY
The hour the maintenance window must start.

Valid values are: 0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If the attribute sstCronHourEnd is set, then sstCronMinute is interpreted as the start of a maintenance window hour range.

sstCronHourEnd sstMaintenanceObjectClass
MAY
The hour the maintenance window must end (minus the duration defined with attribute sstCronDuration>/code>).

Valid values are: <code>0 - 23. For example: 9, which means 9 am, while 17 means 5 pm.

If this attribute is set, it is interpreted as the end of a maintenance window hour range, while sstCronHour is interpreted as the start of a maintenance window hour range.

sstCronDayOfWeek sstMaintenanceObjectClass
MAY
Day of week (0 - 6), where Sunday is 0. For example: 1, which means Monday.
sstCronDayOfMonth sstMaintenanceObjectClass
MAY
The day of the month a cron job is to be executed. Valid values are: 1 - 31. For example: 3 is the third of the month.
sstCronMonthOfyear sstMaintenanceObjectClass
MAY
The month of the year a cron job is to be executed. Valid values are: 1 - 12. For example: 3 would be March.
sstCronOccurrenceInMonth sstMaintenanceObjectClass
MAY
The occurence of the day in a month a cron job is to be executed. Valid values are: 1 - 4. For example: 3 would be the third occurence. If you use a value higher than 4, the calculation will fail in months, which only have 4 same days (for example February will never have 5 Mondays ...).
sstInformPersonUID sstRelationship
MAY
x
Stores the UID of the person to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsiblePersonUID sstRelationship
MAY
x
Stores the UID of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstResponsibleDeputyPersonUID sstRelationship
MAY
Stores the UID of the deputy of the person who is responsible for the system or service. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.
sstNotificationWarning sstMaintenanceObjectClass
MUST
x
This multi-valued attribute will be used to turn single notifications on or off. Currently, the only allowed value is reminder. The value (name) corresponds with the template dn.
sstIsMultiTenant sstMaintenanceObjectClass
MAY
If this singe-valued attribute is set to TRUE, we know that this is a multi tenant capable system or service. For example stoney backup, stoney storage or stoney wiki). The maintenance notification system will therefore know, that it must inform the tenants differently.
sstBelongsToServiceUID sstMaintenanceObjectClass
MAY
x
Stores the UID of the service the leaf belongs to. This UID can be used to look up other information. A unique value with 7 digits or more. 4000123.
sstBelongsToResellerUID sstRelationship
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.
sstBelongsToCustomerUID sstRelationship
MUST
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000001.

Legend:

  • x: Mandatory in all cases.