stoney maintenance: OpenLDAP directory data organisation: Difference between revisions

From stoney-cloud.org
Jump to navigation Jump to search
(Undo revision 5303 by Michael (talk))
 
(45 intermediate revisions by the same user not shown)
Line 25: Line 25:
</source>
</source>


=== Maintenance - Configuration - Customers ===
=== Maintenance - Configuration - Reseller ===
The sub tree for the customers specific maintenance service settings:
The sub tree for the reseller specific maintenance service settings:
<source lang="ldif">
<source lang="ldif">
dn: ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
ou: customer
ou: reseller
description: The sub tree for the customer specific maintenance service settings.
description: The sub tree for the reseller specific maintenance service settings.
</source>
</source>


The sub tree for the specific maintenance service settings for the customer Customer Ltd. with the uid 4000001.
The sub tree for the specific maintenance service settings for the reseller Reseller Ltd. with the uid 4000000.
<source lang="ldif">
<source lang="ldif">
dn: uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: sstCustomer
objectclass: sstReseller
objectclass: sstRelationship
objectclass: sstServiceConfigurationObjectClass
objectclass: sstServiceConfigurationObjectClass
uid: 4000001
uid: 4000000
o: Customer Ltd.
o: Reseller Ltd.
description: The sub tree for the specific maintenance service settings for the customer Customer Ltd. with the uid 4000001.
description: The sub tree for the specific maintenance service settings for the reseller Reseller Ltd. with the uid 4000000.
sstIsCompany: TRUE
sstIsCompany: TRUE
sstIsActive: TRUE
sstIsActive: TRUE
sstIsDefault: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
</source>
</source>


Line 66: Line 65:
| 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;"| A unique integer 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;"| A unique integer value with 7 digits or more. For example: <code>4000000</code>.  


|-
|-
Line 74: Line 73:
| 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 company name, for example: <code>Customer Ltd.</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 company name, for example: <code>Reseller Ltd.</code>.


|-
|-
Line 101: Line 100:


|-
|-
| 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;"| sstIsDefault
| 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>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></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 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;"| 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>, 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.


|-
|-
| 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;"| <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>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: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 reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000000</code>.


|}
|}
Line 121: Line 120:
* '''x''': Mandatory in all cases.
* '''x''': Mandatory in all cases.


==== Maintenance - Configuration - Customers - Defaults ====
==== Maintenance - Configuration - Reseller - Defaults ====
This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
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:
The configuration below tells us the following:
Line 131: Line 130:


The lookup of the default settings for the stoney maintenance service is as follows:
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>.
# '''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>.
# '''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>.
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.


For example: If now default values or only a subset of default values can be found in the 'OpenStack project' sub tree, another lookup must be executed in the 'Customer' sub tree. If we still have missing default values, repeat the lookup in the 'Reseller' sub tree. If we still have missing values, these must be filled out by the user.
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">
<source lang="ldif">
dn: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: sstMaintenanceObjectClass
objectclass: organizationalUnit
objectclass: sstMaintenanceDefaultsObjectClass
objectclass: sstNotificationObjectClass
objectclass: sstRelationship
objectclass: sstRelationship
ou: defaults
ou: defaults
description: This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
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?  
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)
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
Line 160: Line 162:
sstResponsiblePersonUID: 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)
sstResponsibleDeputyPersonUID: 1000482  # MAY: Support stepping stone AG (support@stepping-stone.ch)
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
</source>
</source>


Line 172: Line 176:
|-
|-
| 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;"| 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>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>
Line 179: Line 183:
|-
|-
| 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;"| sstMaintenanceDefaultsObjectClass
| 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>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;"| 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).
Line 186: Line 190:
|-
|-
| 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;"| 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;"| 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>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>
Line 200: Line 204:
|-
|-
| 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;"| 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;"| 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>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>
Line 211: Line 215:
|-
|-
| 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;"| sstMaintenanceObjectClass
| 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>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></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;"| sstMaintenanceObjectClass
| 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>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></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;"| 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;"| 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>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></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 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;"| sstCronDuration
| 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;"| 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>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></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;"| 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;"| 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;"| 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>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>
Line 250: Line 254:
|-
|-
| 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;"| 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;"| 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>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>
Line 261: Line 265:
|-
|-
| 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;"| 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>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>
Line 272: Line 276:
|-
|-
| 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;"| 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;"| 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>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>
Line 282: Line 286:


|-
|-
| 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;"| sstCronDuration
| 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;"| 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>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;"| 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;"| 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;"| sstCronDayOfMonth
| 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;"| 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>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 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;"| 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;"| 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></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: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></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 ...).


|-
|-
Line 313: Line 303:
| 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;"| 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>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: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.
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.


|-
|-
Line 320: Line 312:
| 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;"| 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>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: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.


Line 331: Line 323:


|-
|-
| 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;"| sstBelongsToResellerUID
| 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;"| 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>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: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: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>.


|}
|}
Line 342: Line 345:
* '''x''': Mandatory in all cases.
* '''x''': Mandatory in all cases.


==== Maintenance - Configuration - Customers - Notification settings ====
==== Maintenance - Configuration - Reseller - 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 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>.
# '''Customer:''' <code>ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
# '''Customer:''' <code>ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
Line 351: Line 354:


<source lang="ldif">
<source lang="ldif">
dn: ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
objectclass: sstNotificationObjectClass
ou: notifications
ou: notifications
description: The sub tree stores the notification information for the maintenance service for the customer Customer Ltd. with the uid 4000001.
description: The sub tree stores the notification information for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
sstInformPersonUID: 4000002
sstInformPersonUID: 4000002
sstResponsiblePersonUID: 4000002
sstResponsiblePersonUID: 4000002
Line 418: Line 421:
| 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;"| 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. For example: <code>ou=reminder,ou=templates,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,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;"| 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. For example: <code>ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.


|}
|}
Line 425: Line 428:
* '''x''': Mandatory in all cases.
* '''x''': Mandatory in all cases.


==== Maintenance - Configuration - Customers - Templates ====
==== Maintenance - Configuration - Reseller - 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 reseller Reseller Ltd. with the uid 4000000:
<source lang="ldif">
<source lang="ldif">
dn: ou=templates,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
ou: templates
ou: templates
description: This sub tree contains the templates for the maintenance service for the customer Customer Ltd. with the uid 4000001.
description: This sub tree contains the templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
</source>
</source>


=== Maintenance - Configuration - Reseller ===
===== Maintenance - Configuration - Reseller - Reminder mail templates =====
The sub tree for the reseller specific maintenance service settings:
This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000:
<source lang="ldif">
<source lang="ldif">
dn: ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
ou: reseller
objectclass: sstTemplateSetup
description: The sub tree for the reseller specific maintenance service settings.
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>


The sub tree for the specific maintenance service settings for the reseller Reseller Ltd. with the uid 4000000.
The following table describes the different attributes:
<source lang="ldif">
{| style="border-spacing:0;"
dn: uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
| 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'''
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
</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;"| <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>
Line 470: Line 466:


|-
|-
| 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;"| ou
| 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: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>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;"|  


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| o
| 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;"| <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: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 company name, for example: <code>Reseller Ltd.</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;"|  


|-
|-
| 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;"| sstMailFrom
| 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: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 mail address, from which the maintenance reminder mails are sent from. For example:
* <code>Support stepping stone GmbH <support@stoney-cloud.org></code>.


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsCompany
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTo
| 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>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></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;"| Is the entry a company? Either true (yes) or false (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;"| 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.


|-
|-
| 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;"| sstMailTemplate
| 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>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: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;"| 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:
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</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;"| sstMailTemplateFormatSource
| 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></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 format of the source template. Supported values:
| 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>, 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.
* <code>txt</code>
 
* <code>html</code>
Place holder:
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
Default would normally be <code>txt</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;"| sstMailTemplateFormatTarget
| 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>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: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;"| The format of the target. Supported values:
* <code>txt</code>
* <code>html</code>


|}
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateReseller
| 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<sup>1</sup></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 path and name to a template file, that is used to inform one or more people if the multi-valued attribute <code>sstMailTo</code> is set in the notifications sub tree of the reseller
* <code>ou=notifications,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=foss-cloud,dc=org
and if <code>sstNotificationWarning</code> is set to <code>maintenance</code>. In most cased, the attribute <code>sstMailTo</code> is set to the support organisation's mail address. For example:
* <code>sstMailTo: Support stepping stone GmbH &lt;support@stepping-stone.ch&gt;</code>
This way, the support organisation will be pre-informed for when the customer should call or write.


Legend:
The information the recipients will receive, is the same as the owner, but will formatted according to:
* '''x''': Mandatory in all cases.
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</code>
* <code>sstMailTemplateResellerFormatSource: txt</code>
* <code>sstMailTemplateResellerFormatTarget: txt</code>


==== 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.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatSource
| 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<sup>1</sup></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 format of the source template. Supported values:
* <code>txt</code>
* <code>html</code>
Place holder:
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.


The configuration below tells us the following:
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:  
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller</code>
* The maintenance window is executed every 2nd Tuesday of every month.
* <code>preferredLanguage: en-GB</code>
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
* <code>sstTemplateFormatSource: txt</code>
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
This gives us:<br />
* <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>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatTarget
| 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<sup>1</sup></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 format of the target. Supported values:
* <code>txt</code>
* <code>html</code>
Default would normallb be <code>txt</code>.


The lookup of the default settings for the stoney maintenance service is as follows:
|}
# '''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>.
Legend:
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
* '''x''': Mandatory in all cases.
* '''x<sup>1</sup>''': Must exist, if <code>sstMailTo</code> is set.


For example: If now default values or only a subset of default values can be found in the 'OpenStack project' sub tree, another lookup must be executed in the 'Customer' sub tree. If we still have missing default values, repeat the lookup in the 'Reseller' sub tree. If we still have missing values, these must be filled out by the user.
TODO: this is a copy and still needs checking / customizing.


<source lang="ldif">
====== Maintenance - Configuration - Reseller - Reminder mail templates: placeholders (txt/html) ======
dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
An example:
objectclass: top
{$system}            kvm-0003: stepping stone GmbH: Gentoo (stoney backup Server)
objectclass: sstMaintenanceObjectClass
{$salutation}        Dear Mr.
objectclass: sstRelationship
  {$surname}          Eichenberger
ou: defaults
{$inform}            - Michael Eichenberger <michael.eichenberger@stepping-stone.ch>
description: This sub tree stores the default settings for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
{$responsible}      - Niklaus Hofer <niklaus.hofer@stepping-stone.ch>
sstIsActive: TRUE                      # MUST: The default is always TRUE, otherwise why bother?
  {$deputy}            - Yannick Denzer <yannick.denzer@stepping-stone.ch>
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
{$maintenance_date}  2016-08-17
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
{$maintenance_start} 16:00
sstCronRepeatType: monthly              # MAY: repeat type is monthly
{$maintenance_end}  17:00
sstCronInterval: 1                      # MAY: repeat every month
 
sstCronOccurrenceInMonth: 2            # MAY: second occurence
Optional Values:
sstCronDayOfWeek: 2                    # MAY: Tuesday
none
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)
</source>


The following table describes the different attributes:
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.de-CH.txt ======
{| style="border-spacing:0;"
<pre>
| 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'''
Subject: Wartungsarbeiten am {$system}
| 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'''
{$salutation} {$surname}
| 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'''


|-
Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
| 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 description of the leaf.  


|-
Dabei werden diverse Sicherheitsrisiken behoben.
| 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>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).


|-
Während den Wartungsarbeiten kann es zu kurzen Unterbrüchen der Services kommen.
| 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].


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:
Nach Abschluss der Wartungsarbeiten werden wir Sie nochmals benachrichtigen.
*  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).


|-
Diese Information geht an:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
{$inform}
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
Falls Sie dieses Wartungsfenster nicht durchführen wollen, bitten wir Sie uns
| 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>
telefonisch darüber zu informieren.
| 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:
Für Fragen stehen wir Ihnen gerne zur Verfügung.
* <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;"| 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;"| How often is a cron job to be repeated. Valid values are: <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code>.


|-
Mit besten Grüssen,
| 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;"| 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 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>.


|-
Das Support-Team der stepping stone AG
| 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;"| 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 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
stepping stone AG
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
Wasserwerkgasse 7
| 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>
CH-3011 Bern
| 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 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).


|-
Telefon: +41 31 332 53 63
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronMinute
www.stepping-stone.ch
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
support@stepping-stone.ch
| 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>
</pre>
| 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.
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.en-GB.txt ======
<pre>
Subject: Maintenance Work for {$system}
{$salutation} {$surname}


If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
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.
| 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
Short interruptions of the services can occur during the maintenance window.
| 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.
We will inform you after the successful completion of the maintenance work.


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.
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.
| 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></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.
With best regards,


|-
Your stepping stone AG support team
| 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: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.
--
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern


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.
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 ======
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfWeek
<pre>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
Subject: Wartungsarbeiten am {$system}
| 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>
{$salutation} {$surname}
| 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.


|-
Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronDayOfMonth
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
| 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>
Verantwortlich für dieses System:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
{$responsible}
| 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.
Stellvertretung:
{$deputy}
Nach Abschluss der Wartungsarbeiten, bitte folgende Persone(n) informieren:
{$inform}


|-
Mit besten Grüssen,
| 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></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.


|-
Das Support-Team der stepping stone AG
| 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></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;"| sstInformPersonUID
stepping stone AG
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
Wasserwerkgasse 7
| 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>
CH-3011 Bern
| 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 to be informed if necessary. This UID can be used to look up the persons mail address, preferred language, name, surname or other information.


|-
Telefon: +41 31 332 53 63
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
www.stepping-stone.ch
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
support@stepping-stone.ch
| 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>
</pre>
| 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.


|-
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.en-GB.txt ======
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsibleDeputyPersonUID
<pre>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
Subject: Maintenance Work for {$system}
| 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>
{$salutation} {$surname}
| 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.


|-
The monthly maintenance window for {$system} will be held on the {$maintenance_date}
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
between {$maintenance_start} and {$maintenance_end}.
| 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>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.


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


Legend:
With best regards,
* '''x''': Mandatory in all cases.


==== Maintenance - Configuration - Reseller - Notification settings ====
Your stepping stone AG support team
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>.
stepping stone AG
# '''Customer:''' <code>ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
Wasserwerkgasse 7
# '''Reseller:''' <code>ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
CH-3011 Bern
# '''Default Reseller:''' <code>ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
 
The idea is, that even if somebody forgot to define something, no maintenance window will be lost or forgotten.
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:
<source lang="ldif">
<source lang="ldif">
dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
ou: customer
ou: notifications
description: The sub tree for the customer specific maintenance service settings.
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
</source>
</source>


The following table describes the different attributes:
The sub tree for the specific maintenance service settings for the customer Customer Ltd. with the uid 4000001.
{| style="border-spacing:0;"
<source lang="ldif">
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
</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;"| '''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;"| <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>
Line 782: Line 768:


|-
|-
| 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;"| uid
| 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: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 name of this 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;"| A unique integer 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: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;"| o
| 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>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: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 company name, for example: <code>Customer Ltd.</code>.


|-
|-
| 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;"| description
| 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: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 persons UID the notification will be sent to. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,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 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;"| sstIsCompany
| 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></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 a company? Either true (yes) or false (no).


|-
|-
| 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;"| sstIsActive
| 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>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: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 persons UID, who is responsible for the maintenance. The notification will be sent to this person. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,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;"| 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;"| sstResponsibleDeputyPersonUID
| 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;"| <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>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: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 maintenance. The notification will be sent to this person. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,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;"| 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;"| sstNotificationWarning
| 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;"| <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: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;"| 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. For example: <code>ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,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;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more. For example: <code>4000001</code>.


|}
|}
Line 834: Line 828:
* '''x''': Mandatory in all cases.
* '''x''': Mandatory in all cases.


==== Maintenance - Configuration - Reseller - Templates ====
==== Maintenance - Configuration - Customers - Defaults ====
This sub tree contains the notification templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000:
This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
<source lang="ldif">
 
dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
The configuration below tells us the following:
objectclass: top
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
objectclass: organizationalUnit
* The maintenance window is executed every 2nd Tuesday of every month.
ou: templates
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
description: This sub tree contains the templates for the maintenance service for the reseller Reseller Ltd. with the uid 4000000.
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
</source>
 
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).


===== 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">
<source lang="ldif">
dn: ou=reminder,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
dn: ou=defaults,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: top
objectclass: organizationalUnit
objectclass: organizationalUnit
objectclass: sstTemplateSetup
objectclass: sstMaintenanceDefaultsObjectClass
ou: reminder
objectclass: sstNotificationObjectClass
description: This sub tree contains the reminder templates for the stoney maintenance service for the reseller Reseller Ltd. with the uid 4000000.
objectclass: sstRelationship
sstMailFrom: Support stepping stone GmbH <support@stoney-cloud.org>
ou: defaults
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail
description: This sub tree stores the default settings for the stoney maintenance service for the customer Customer Ltd. with the uid 4000001.
sstMailTemplateFormatSource: txt
sstIsActive: TRUE                      # MUST: The default is always TRUE, otherwise why bother?
sstMailTemplateFormatTarget: txt
sstServicePriority: 3                  # MAY: We always set this, in case sstServiceAutomated is set to FALSE (as a fall-back position)
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail_reseller
sstServiceAutomated: TRUE              # MAY: Depending on the reseller, we either have TRUE or FALSE. If sstServiceAutomated is not set, we presume FALSE
sstMailTemplateResellerFormatSource: txt
sstCronRepeatType: monthly              # MAY: repeat type is monthly
sstMailTemplateResellerFormatTarget: txt
sstCronInterval: 1                      # MAY: repeat every month
</source>
sstCronOccurrenceInMonth: 2            # MAY: second occurence
 
sstCronDayOfWeek: 2                    # MAY: Tuesday
The following table describes the different attributes:
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-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;"| ou
| 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;"| <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;"| 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: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: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;"| <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;"|


|-
|-
| 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;"| sstIsActive
| 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;"| 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: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: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;"| <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;"|


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailFrom
| 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>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:0.002cm solid #000000;padding:0.097cm;"| The maintenance service level. The possible maintenance service levels (1, 2 or 3):
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
* <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).
| 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>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>Support stepping stone GmbH <support@stoney-cloud.org></code>.
* <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;"| sstMailTo
| 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>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;"| A maintenance window is either executed automatically:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
* <code>sstServiceAutomated: TRUE</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;"| 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.
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;"| sstMailTemplate
| 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>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></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;"| 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:
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</code>.


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatSource
| 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>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></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 format of the source template. Supported values:
* <code>txt</code>
* <code>html</code>
Place holder:
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
Default would normally be <code>txt</code>.


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatTarget
| 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>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></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:0.002cm solid #000000;padding:0.097cm;"| The format of the target. Supported values:
* <code>txt</code>
* <code>html</code>


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateReseller
| 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>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<sup>1</sup></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: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: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 path and name to a template file, that is used to inform one or more people if the multi-valued attribute <code>sstMailTo</code> is set in the notifications sub tree of the reseller
| 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.
* <code>ou=notifications,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=foss-cloud,dc=org
 
and if <code>sstNotificationWarning</code> is set to <code>maintenance</code>. In most cased, the attribute <code>sstMailTo</code> is set to the support organisation's mail address. For example:
Valid values are: <code>0</code> - <code>59</code>. For example: <code>30</code>, which means 30 minutes past the hour.
* <code>sstMailTo: Support stepping stone GmbH &lt;support@stepping-stone.ch&gt;</code>
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:
If the attribute <code>sstCronMinuteEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window minute range.
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.stoney-cloud.org/templates/services/maintenance/reminder/reminder_mail</code>
* <code>sstMailTemplateResellerFormatSource: txt</code>
* <code>sstMailTemplateResellerFormatTarget: txt</code>


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatSource
| 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>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<sup>1</sup></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 format of the source template. Supported values:
 
* <code>txt</code>
For example: <code>45</code>, which means 45 minutes past the hour.
* <code>html</code>
Place holder:
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.


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:
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.
* <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>sstTemplateFormatSource: txt</code>
This gives us:<br />
* <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>.


|-
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatTarget
| 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>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<sup>1</sup></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 start.
| 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 format of the target. Supported values:
 
* <code>txt</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.
* <code>html</code>
Default would normallb be <code>txt</code>.


|}
If the attribute <code>sstCronHourEnd</code> is set, then <code>sstCronMinute</code> is interpreted as the start of a maintenance window hour range.


Legend:
|-
* '''x''': Mandatory in all cases.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCronHourEnd
* '''x<sup>1</sup>''': Must exist, if <code>sstMailTo</code> is set.
| 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>).


TODO: this is a copy and still needs checking / customizing.
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.


====== Maintenance - Configuration - Reseller - Reminder mail templates: placeholders (txt/html) ======
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.
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
| 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
====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.de-CH.txt ======
| 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>
<pre>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
Subject: Wartungsarbeiten am {$system}
| 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).
{$salutation} {$surname}


Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
|-
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
| 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.


Dabei werden diverse Sicherheitsrisiken behoben.
|-
| 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.


Während den Wartungsarbeiten kann es zu kurzen Unterbrüchen der Services kommen.
As this attribute is multi-valued, the lookups will continue, even if this attribute is set.


Nach Abschluss der Wartungsarbeiten werden wir Sie nochmals benachrichtigen.
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstResponsiblePersonUID
Diese Information geht an:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
{$inform}
| 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>
Falls Sie dieses Wartungsfenster nicht durchführen wollen, bitten wir Sie uns
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
telefonisch darüber zu informieren.
| 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.


Für Fragen stehen wir Ihnen gerne zur Verfügung.
|-
| 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>.


Mit besten Grüssen,
|-
| 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.


Das Support-Team der stepping stone AG
For example: <code>sstBelongsToCustomerUID: 4000001</code>.


--
|}
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern


Telefon: +41 31 332 53 63
Legend:
www.stepping-stone.ch
* '''x''': Mandatory in all cases.
support@stepping-stone.ch
</pre>


====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail.en-GB.txt ======
==== Maintenance - Configuration - Customers - Notification settings ====
<pre>
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:
Subject: Maintenance Work for {$system}
# '''Unit:''' <code>uid=4000003,ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
{$salutation} {$surname}
# '''Customer:''' <code>ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
# '''Reseller:''' <code>ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
# '''Default Reseller:''' <code>ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
The idea is, that even if somebody forgot to define something, no maintenance window will be lost or forgotten.


The monthly maintenance window for {$system} will be held on the {$maintenance_date}
<source lang="ldif">
between {$maintenance_start} and {$maintenance_end}.
dn: ou=notifications,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
Several security risks will be removed.
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
</source>


Short interruptions of the services can occur during the maintenance window.
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;"| <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>'''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'''


We will inform you after the successful completion of the maintenance work.
|-
| 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;"| <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></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 name of this leaf.


This information goes to:
|-
{$inform}
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
If you do not wish to perform this maintenance window, please let us know by
| 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>
telephone.
| 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.


If you have any questions do not hesitate to contact us.
|-
| 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;"| <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></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 persons UID the notification will be sent to. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,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: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;"| <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></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 persons UID, who is responsible for the maintenance. The notification will be sent to this person. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,ou=people,dc=stoney-cloud,dc=org</code>.


With best regards,
|-
| 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;"| <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></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 maintenance. The notification will be sent to this person. For example: <code>4000002</code>. This means the information of the person is stored under the dn: <code>uid=4000002,ou=people,dc=stoney-cloud,dc=org</code>.


Your stepping stone AG support team
|-
| 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;"| <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></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. For example: <code>ou=reminder,ou=templates,uid=4000001,ou=customers,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.


--
|}
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern


Telefon: +41 31 332 53 63
Legend:
www.stepping-stone.ch
* '''x''': Mandatory in all cases.
support@stepping-stone.ch
</pre>


====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.de-CH.txt ======
==== Maintenance - Configuration - Customers - Templates ====
<pre>
This sub tree contains the notification templates for the maintenance service for the customer Customer Ltd. with the uid 4000001:
Subject: Wartungsarbeiten am {$system}
<source lang="ldif">
{$salutation} {$surname}
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.
</source>


Am {$maintenance_date} zwischen {$maintenance_start} und {$maintenance_end} finden
=== Maintenance - Configuration - OpenStack projects ===
die monatlichen Wartungsarbeiten auf Ihrem Server {$system} statt.
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>


Verantwortlich für dieses System:
The sub tree for the specific maintenance service settings for the OpenStack project Customer Ltd. - Public Systems with the uid 4100001.
{$responsible}
<source lang="ldif">
Stellvertretung:
dn: uid=4100001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
{$deputy}
objectclass: top
Nach Abschluss der Wartungsarbeiten, bitte folgende Persone(n) informieren:
objectclass: sstOpenStackProject
{$inform}
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>


Mit besten Grüssen,
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'''


Das Support-Team der stepping stone AG
|-
| 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>.
stepping stone AG
Wasserwerkgasse 7
CH-3011 Bern


Telefon: +41 31 332 53 63
|-
www.stepping-stone.ch
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackId
support@stepping-stone.ch
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
</pre>
| 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>.


====== Maintenance - Configuration - Reseller - Reminder mail templates: reminder_mail_reseller.en-GB.txt ======
|-
<pre>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackName
Subject: Maintenance Work for {$system}
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
{$salutation} {$surname}
| 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.


The monthly maintenance window for {$system} will be held on the {$maintenance_date}
For example: <code>"name" : "Customer Ltd. - Public Systems"</code>. This gives us the LDAP entry: <code>sstOpenStackName: Customer Ltd. - Public Systems</code>.
between {$maintenance_start} and {$maintenance_end}.


Responsible for this system:
|-
{$responsible}
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
Deputy:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
{$deputy}
| 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>
After the successful completion of the maintenance work, please inform the following
| 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>
person/people:
| 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.
{$inform}


With best regards,
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>


Your stepping stone AG support team
|-
--
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
stepping stone AG
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
Wasserwerkgasse 7
| 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>
CH-3011 Bern
| 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).


Telefon: +41 31 332 53 63
The default value is <code>TRUE</code>.
www.stepping-stone.ch
support@stepping-stone.ch
</pre>


== Maintenance - Units ==
|-
The sub tree for the units of the maintenance service:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToDomainID
<source lang="ldif">
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
dn: ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
| 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>
objectclass: top
| 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>
objectclass: organizationalUnit
| 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.
ou: units
description: The sub tree for the units of the maintenance service.
</source>


=== Maintenance - Units example ===
For example: <code>sstBelongsToDomainID: b01822477be64c09950022486300c59c</code>.
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.
|-
| 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.


The '''sstBelongsToServiceUID''' lookup is as follows:
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
# '''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>.
|}
# '''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).
# '''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 belong to OpenStack units (servers) running on our OpenStack based stoney cloud installation.
Legend:
* '''x''': Mandatory in all cases.


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>.
==== Maintenance - Configuration - OpenStack projects - Defaults ====
<source lang="ldif">
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'.
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
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
</source>


Other possible maintenance windows range from daily maintenance windows to bi yearly maintenance windows. The following examples just show the relevant attributes.
The configuration below tells us the following:
 
* We have a maintenance window range (as <code>sstCronMinuteEnd</code> and <code>sstCronHourEnd</code> are set).
Maintenance window every day between 09:30 and 10:30, starting on Monday, the 5th of January 2015.
* The maintenance window is executed every 2nd Tuesday of every month.
<source lang="ldif">
* The maintenance windows can start a 09:30 and must end at 13:45 and takes 1 hour (60 minutes).
sstCronRepeatType: daily      # repeat type is daily
* A reminder will be sent to 'Support stepping stone AG <support@stepping-stone.ch>'.
sstCronInterval: 1            # repeated every day
 
sstCronStartDate: 20150105    # starting on the fifth of January 2015
The lookup of the default settings for the stoney maintenance service is as follows:
sstCronMinute: 30              # 30 Minutes past the hour
# '''Service roles:''' <code>ou=defaults,ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
sstCronHour: 9                # 9 am
# '''OpenStack project:''' <code>ou=defaults,uid=4100000,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
sstCronDuration: 60            # 60 minutes (one hour)
# '''Customer:''' <code>ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.
</source>
# '''Reseller:''' <code>ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>.


Maintenance window every second day between 09:30 and 10:30, starting on Monday, the 5th of January 2015.
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">
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)
</source>


Maintenance window every two weeks on Monday between 09:30 and 10:30, starting on Monday, the 13th of April 2015.
<source lang="ldif">
<source lang="ldif">
sstCronRepeatType: weekly      # repeat type is weekly
dn: ou=defaults,uid=4000001,ou=projects,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
sstCronInterval: 2            # repeat every second week
objectclass: top
sstCronStartDate: 20150413    # starting on Monday, the 13th of April 2015
objectclass: organizationalUnit
sstCronDayOfWeek: 1            # on Monday
objectclass: sstMaintenanceDefaultsObjectClass
sstCronMinute: 30             # 30 Minutes past the hour
objectclass: sstNotificationObjectClass
sstCronHour: 9                 # 9 am
objectclass: sstRelationship
sstCronDuration: 60           # 60 minutes (one hour)
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>
</source>


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.
The following table describes the different attributes:
<source lang="ldif">
{| style="border-spacing:0;"
sstCronRepeatType: monthly    # repeat type is monthly
| 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'''
sstCronInterval: 6            # repeat every six months
| 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'''
sstCronStartDate: 20150415    # starting on Wednesday, the 15th of April 2015
| 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>
sstCronDayOfMonth: 15          # on the 15th day of the month
| 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>
sstCronMinute: 30              # 30 Minutes past the hour
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
sstCronHour: 9                # 9 am
sstCronDuration: 60            # 60 minutes (one hour)
</source>


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.
|-
<source lang="ldif">
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
sstCronRepeatType: monthly    # repeat type is monthly
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
sstCronInterval: 6            # repeat every six months
| 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>
sstCronStartDate: 20150420    # starting on Monday, the 20th of April 2015
| 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>
sstCronOccurrenceInMonth: 3    # third occurence
| 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.
sstCronDayOfWeek: 1            # Monday
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                # 9 am
sstCronDuration: 60            # 60 minutes (one hour)
</source>


Maintenance window every year on the 15th of March between 09:30 and 10:30, starting on Wednesday, the 11th of March 2015.
|-
<source lang="ldif">
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
sstCronRepeatType: yearly      # repeat type is yearly
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
sstCronInterval: 1            # repeat every year
| 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>
sstCronStartDate: 20150311    # starting on Wednesday, the 11th 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;"| <center>x</center>
sstCronDayOfMonth: 11          # on the 11th day 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;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
sstCronMinute: 30              # 30 Minutes past the hour
sstCronHour: 9                # 9 am
sstCronDuration: 60            # 60 minutes (one hour)
</source>


Maintenance window every year on the third Monday of March between 09:30 and 10:30, starting on Monday, the 16th of March 2015.
|-
<source lang="ldif">
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServicePriority
sstCronRepeatType: yearly      # repeat type is yearly
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
sstCronInterval: 1            # repeat every year
| 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>
sstCronStartDate: 20150316    # starting on Monday, the 16th 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;"| <center>x</center>
sstCronMonthOfyear: 3          # third month of the year
| 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):
sstCronOccurrenceInMonth: 3    # third occurence
* <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).
sstCronDayOfWeek: 1            # Monday
* <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).
sstCronMinute: 30              # 30 Minutes past the hour
* <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).
sstCronHour: 9                # 9 am
For more information on these maintenance service levels, visit stepping stone GmbH [http://www.stepping-stone.ch/infrastructure-as-a-service/maintenance/ web page].
sstCronDuration: 60            # 60 minutes (one hour)
 
</source>
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).


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.
|-
<source lang="ldif">
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceAutomated
sstCronRepeatType: yearly      # repeat type is yearly
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceDefaultsObjectClass
sstCronInterval: 2            # repeat every two years
| 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>
sstCronStartDate: 20150316    # starting on Monday, the 16th 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;"| <center></center>
sstCronMonthOfyear: 3          # third month of the year
| 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:
sstCronOccurrenceInMonth: 3   # third occurence
* <code>sstServiceAutomated: TRUE</code>
sstCronDayOfMonth: 1           # Monday
or manually:
sstCronMinute: 30             # 30 Minutes past the hour
* <code>sstServiceAutomated: FALSE</code>
sstCronHour: 9                 # 9 am
If the attribute <code>sstServiceAutomated</code> does not exist, presume <code>FALSE</code>.
sstCronDuration: 60           # 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;"| 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>
</source>
 
 
The following table describes the different attributes:
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).
{| style="border-spacing:0;"
<source lang="ldif">
| 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'''
dn: ou=stoney_office,ou=roles,ou=configuration,ou=maintenance,ou=services,dc=stoney-cloud,dc=org
| 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'''
objectclass: top
| 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>
objectclass: organizationalUnit
| 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>
objectclass: sstServiceConfigurationObjectClass
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
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
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
sstIsDefault: TRUE
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
</source>
| 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. For example: <code>4000003</code>.  
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:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
| 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:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMaintenanceObjectClass
| 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:
<source lang="ldif">
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.
</source>
 
=== 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:
# '''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>.
# '''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).
# '''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 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>.
<source lang="ldif">
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
</source>
 
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.
<source lang="ldif">
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)
</source>
 
Maintenance window every second day between 09:30 and 10:30, starting on Monday, the 5th of January 2015.
<source lang="ldif">
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)
</source>
 
Maintenance window every two weeks on Monday between 09:30 and 10:30, starting on Monday, the 13th of April 2015.
<source lang="ldif">
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)
</source>
 
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.
<source lang="ldif">
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)
</source>
 
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.
<source lang="ldif">
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)
</source>
 
Maintenance window every year on the 15th of March between 09:30 and 10:30, starting on Wednesday, the 11th of March 2015.
<source lang="ldif">
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)
</source>
 
Maintenance window every year on the third Monday of March between 09:30 and 10:30, starting on Monday, the 16th of March 2015.
<source lang="ldif">
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)
</source>
 
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.
<source lang="ldif">
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)
</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;"| 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>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. 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;"| 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 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;"| 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>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;"| sstBillable
| 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>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;"| 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;"| 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;"| 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>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).


|-
|-

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: 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: 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 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: 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: 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: 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 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: 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: 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: 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: 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.