Skip to content

Commit 2f106d3

Browse files
committedMar 8, 2022
applied updates
1 parent bd521ab commit 2f106d3

28 files changed

+217
-96
lines changed
 

‎develop/part6Ttools/TOOProtocolDevelopmentWithCICD/Pipeline_stages_for_functions.md

+13
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ Currently, the pipeline for function development consists of the following steps
1414

1515
See [Declarative checkout from SCM](#declarative-checkout-from-scm).
1616

17+
- Validate tag
18+
19+
See [Validate tag](#validate-tag).
20+
1721
- (Release) Prepare for SVN
1822

1923
See [(Release) Prepare for SVN](#release-prepare-for-svn).
@@ -32,6 +36,15 @@ When a new Git repository is created using the SLC SE Repository Manager tool, t
3236

3337
In this step, Jenkins loads the current repository from Git.
3438

39+
## Validate tag
40+
41+
This step is only executed for pipeline runs for a tag. It will verify whether the specified tag meets the following conditions:
42+
43+
- The tag has the correct format.
44+
- The tag is in the expected branch. For example, a tag "1.0.0.1" provided on a commit that is part of the "1.0.0.X" branch will succeed, while a tag "1.0.0.1" provided on a commit belonging to branch 1.0.1.x will fail.
45+
- All expected previous minor versions of the tag are present. For example, if a commit has been tagged with "1.0.0.4", the tags "1.0.0.1", "1.0.0.2" and "1.0.0.3" are expected to be present already.
46+
- The tag is an annotated tag and not a lightweight tag.
47+
3548
## (Release) Prepare for SVN
3649

3750
In case a tag was detected and the version should therefore be pushed to SVN, some preparatory steps are performed.

‎filterConfig.yml

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
apiRules:
2+
- include:
3+
uiRegex: ^Skyline\.DataMiner\.Net\.AutomationUI\.Objects
4+
type: Namespace
25
- exclude:
36
uidRegex: ^Tamir\.SharpSsh\.jsch\.ChannelSftp$
47
type: Type
@@ -161,9 +164,6 @@ apiRules:
161164
- exclude:
162165
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.AutomationCheckType$
163166
type: Type
164-
- exclude:
165-
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.AutomationScriptAttachOptions$
166-
type: Type
167167
- exclude:
168168
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.DMSMessage$
169169
type: Type
@@ -227,9 +227,6 @@ apiRules:
227227
- exclude:
228228
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.PropertyInfo.DataTypes$
229229
type: Type
230-
- exclude:
231-
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.RedundancyMode$
232-
type: Type
233230
- exclude:
234231
uidRegex: ^Skyline\.DataMiner\.Net\.Messages\.SLDataGateway\.AlarmID$
235232
type: Type

‎src/DataMiner/SLManagedAutomation/Element.cs

+46-7
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public class Element : IActionableElement
9090
/// Gets the name of the element.
9191
/// </summary>
9292
/// <value>The name of the element.</value>
93+
/// <remarks>
94+
/// <note type="note">
95+
/// <para>This property returns the following string: "_&lt;agentID&gt;_&lt;elementID&gt; (e.g. "_100_5612"). To retrieve the element name, use the <see cref="Element.ElementName"/> property.</para>
96+
/// </note>
97+
/// </remarks>
9398
/// <example>
9499
/// <code>
95100
/// Element element = engine.FindElement(400, 2000);
@@ -2945,10 +2950,9 @@ public virtual void MatrixStopBeingMaster(int pid, int master) { }
29452950
public virtual void Pause() { }
29462951

29472952
/// <summary>
2948-
/// Removes the link between this element and the alarm template that is assigned to it.
2953+
/// Removes the link between this element and the alarm template that is assigned to it. This sets the element to “Not Monitored”.
29492954
/// </summary>
29502955
/// <example>
2951-
/// <remarks>In other words, set the element to “Not Monitored”.</remarks>
29522956
/// <code>
29532957
/// Element element = engine.FindElement(400, 2000);
29542958
/// element.RemoveAlarmTemplate();
@@ -2957,9 +2961,8 @@ public virtual void Pause() { }
29572961
public virtual void RemoveAlarmTemplate() { }
29582962

29592963
/// <summary>
2960-
/// Removes the link between an element and the trend template that is assigned to it.
2964+
/// Removes the link between an element and the trend template that is assigned to it. This disables trending for the element.
29612965
/// </summary>
2962-
/// <remarks>In other words, dis­able trending for the element.</remarks>
29632966
/// <example>
29642967
/// <code>
29652968
/// Element element = engine.FindElement(400, 2000);
@@ -3100,19 +3103,19 @@ public virtual void SetParameterByPrimaryKey(int pid, string primaryKey, object
31003103
/// </code>
31013104
/// </example>
31023105
/// <remarks>
3103-
/// <para>Since DataMiner 10.0.5 (RN 25025, RN 25195), this method will only return after having checked that the property was set correctly.</para>
3106+
/// <para>From DataMiner 10.0.5 (RN 25025, RN 25195) onwards, this method will only return after having checked that the property was set correctly.</para>
31043107
/// <para>Prior to DataMiner 10.0.5, when the value of an element property was updated using the SetPropertyValue method on an Element object and immediately retrieved using the GetPropertyValue method, in some cases, the value returned by that last method would incorrectly be the previous value.</para>
31053108
/// <note type="note">
31063109
/// <para>The SetPropertyValue method will only perform the above-mentioned check when the “check sets” option is enabled.</para>
31073110
/// <list type="bullet">
31083111
/// <item>
3109-
/// <description>Before launching a script in Cube, select the “After executing a SET command, check if the read parameter or property has been set to the new value” check box in the script execution window.</description>
3112+
/// <description>Before launching a script in Cube, select the “After executing a SET command, check if the read parameter or property has been set to the new value” checkbox in the script execution window.</description>
31103113
/// </item>
31113114
/// <item>
31123115
/// <description>When launching a script using ExecuteScriptMessage, make sure to activate the CHECKSETS option(“CHECKSETS:TRUE”).</description>
31133116
/// </item>
31143117
/// </list>
3115-
/// <para>With this option enabled, the SetPropertyValue method will take slightly longer to execute.When a large number of properties need to be updated which do not need to be retrieved immediately, you can disable this option in order to increase performance.</para>
3118+
/// <para>With this option enabled, the SetPropertyValue method will take slightly longer to execute. When a large number of properties need to be updated that do not need to be retrieved immediately, you can disable this option in order to increase performance.</para>
31163119
/// </note>
31173120
/// </remarks>
31183121
public virtual void SetPropertyValue(string propertyName, string propertyValue) { }
@@ -3183,41 +3186,77 @@ public virtual void SpectrumEnableMonitor(string monitorName) { }
31833186
/// </summary>
31843187
/// <param name="measurementPointName">The name of the measurement point.</param>
31853188
/// <returns>The ID that corresponds with the specified spectrum measurement point name or -1 when not found.</returns>
3189+
/// <example>
3190+
/// <code>
3191+
/// var element = engine.FindElement("MySpectrumElement");
3192+
/// int measurementPointId = element.SpectrumFindMeasurementPointIdByName("MyMeasurement PointName");
3193+
/// </code>
3194+
/// </example>
31863195
public virtual int SpectrumFindMeasurementPointIdByName(string measurementPointName) { return 0; }
31873196

31883197
/// <summary>
31893198
/// Gets the ID that corresponds with the specified spectrum monitor name.
31903199
/// </summary>
31913200
/// <param name="monitorName">The spectrum monitor name.</param>
31923201
/// <returns>The ID that corresponds with the specified spectrum monitor name or -1 when not found.</returns>
3202+
/// <example>
3203+
/// <code>
3204+
/// var element = engine.FindElement("MySpectrumElement ");
3205+
/// int monitorId = element.SpectrumFindMonitorIdByName("MyMonitorName");
3206+
/// </code>
3207+
/// </example>
31933208
public virtual int SpectrumFindMonitorIdByName(string monitorName) { return 0; }
31943209

31953210
/// <summary>
31963211
/// Returns a value indicating whether the specified spectrum monitor is enabled.
31973212
/// </summary>
31983213
/// <param name="monitorName">The name of the spectrum monitor.</param>
31993214
/// <returns><c>true</c> if the specified spectrum monitor is enabled; otherwise, <c>false</c>.</returns>
3215+
/// <example>
3216+
/// <code>
3217+
/// var element = engine.FindElement("MySpectrumElement");
3218+
/// bool isEnabled = element.SpectrumIsMonitorEnabled("MyMonitorName ");
3219+
/// </code>
3220+
/// </example>
32003221
public virtual bool SpectrumIsMonitorEnabled(string monitorName) { return false; }
32013222

32023223
/// <summary>
32033224
/// Returns a value indicating whether the specified spectrum monitor is enabled.
32043225
/// </summary>
32053226
/// <param name="monitorId">The ID of the spectrum monitor.</param>
32063227
/// <returns><c>true</c> if the specified spectrum monitor is enabled; otherwise, <c>false</c>.</returns>
3228+
/// <example>
3229+
/// <code>
3230+
/// var element = engine.FindElement(10);
3231+
/// bool isEnabled = element.SpectrumIsMonitorEnabled("MyMonitorName ");
3232+
/// </code>
3233+
/// </example>
32073234
public virtual bool SpectrumIsMonitorEnabled(int monitorId) { return false; }
32083235

32093236
/// <summary>
32103237
/// Selects the measurement point(s) on which a spectrum monitor has to be executed.
32113238
/// </summary>
32123239
/// <param name="monitorName">The name of the spectrum monitor.</param>
32133240
/// <param name="measurementPointNames">The names of the measurement points.</param>
3241+
/// <example>
3242+
/// <code>
3243+
/// var element = engine.FindElement("MySpectrumElement ");
3244+
/// element.SpectrumSelectMeasurementPointsForMonitor("MyMonitorName ", new string[]{"MyMeasurementPoint"});
3245+
/// </code>
3246+
/// </example>
32143247
public virtual void SpectrumSelectMeasurementPointsForMonitor(string monitorName, params string[] measurementPointNames) { }
32153248

32163249
/// <summary>
32173250
/// Selects the measurement point(s) on which a spectrum monitor has to be executed.
32183251
/// </summary>
32193252
/// <param name="monitorId">The ID of the spectrum monitor.</param>
32203253
/// <param name="measurementPointIds">The IDs of the measurement points.</param>
3254+
/// <example>
3255+
/// <code>
3256+
/// var element = engine.FindElement("MySpectrumElement ");
3257+
/// element.SpectrumSelectMeasurementPointsForMonitor("MyMonitorName ", new int[]{1, 2});
3258+
/// </code>
3259+
/// </example>
32213260
public virtual void SpectrumSelectMeasurementPointsForMonitor(int monitorId, params int[] measurementPointIds) { }
32223261

32233262
/// <summary>

‎src/DataMiner/SLManagedAutomation/EmailOptions.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ public EmailOptions(string message, string title, string to) : base((Notificatio
3333
}
3434

3535
/// <summary>
36-
/// Gets or sets the blank carbon copy (bcc) recipients.
36+
/// Gets or sets the blank carbon copy (BCC) recipients.
3737
/// </summary>
38-
/// <value>The blank carbon copy (bcc) recipients.</value>
38+
/// <value>The blank carbon copy (BCC) recipients.</value>
3939
public string BCC { get; set; }
4040

4141
/// <summary>
42-
/// Gets or sets the carbon copy (cc) recipients.
42+
/// Gets or sets the carbon copy (CC) recipients.
4343
/// </summary>
44-
/// <value>The carbon copy (cc) recipients.</value>
44+
/// <value>The carbon copy (CC) recipients.</value>
4545
public string CC { get; set; }
4646

4747
/// <summary>

‎src/DataMiner/SLManagedAutomation/Engine.cs

+10-5
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public Engine() { }
3030
/// Gets the raw SLNet connection.
3131
/// </summary>
3232
/// <value>The raw SLNet connection.</value>
33-
/// <remarks>It is advised to used the <see cref="SendSLNetMessage(DMSMessage)"/> or <see cref="SendSLNetSingleResponseMessage(DMSMessage)"/> method instead of the raw connection to send messages (as the method on the raw connection does not encapsulate the messages with an impersonate message.). Since DataMiner 10.0.1, to send multiple messages, the <see cref="SendSLNetMessages(DMSMessage[])"/> method can be used.</remarks>
33+
/// <remarks>It is advised to used the <see cref="SendSLNetMessage(DMSMessage)"/> or <see cref="SendSLNetSingleResponseMessage(DMSMessage)"/> method instead of the raw connection to send messages (as the method on the raw connection does not encapsulate the messages with an impersonate message.). From DataMiner 10.0.1 onwards, to send multiple messages, the <see cref="SendSLNetMessages(DMSMessage[])"/> method can be used.</remarks>
3434
public static Connection SLNetRaw { get; }
3535

3636
/// <summary>
@@ -114,6 +114,11 @@ public Engine() { }
114114
/// Gets or sets the timeout for the current C# code block.
115115
/// </summary>
116116
/// <value>The timeout for the current C# code block.</value>
117+
/// <remarks>
118+
/// <note type="note">
119+
/// <para>From DataMiner 10.2.0/10.1.2 onwards, this property can also be used to determine when an interactive Automation script times out.</para>
120+
/// </note>
121+
/// </remarks>
117122
/// <example>
118123
/// <code>
119124
/// var timeout = engine.Timeout;
@@ -210,7 +215,7 @@ public virtual void AddScriptOutput(string key, string value) { }
210215
/// <param name="key">The key to add or update.</param>
211216
/// <param name="value">The value.</param>
212217
/// <remarks>
213-
/// <para>If the key already exists, it will update it with the specified value.</para>
218+
/// <para>If the key already exists, it will be updated with the specified value.</para>
214219
/// <para>Feature introduced in DataMiner 10.0.2 (RN 23936).</para>
215220
/// </remarks>
216221
public virtual void AddOrUpdateScriptOutput(string key, string value)
@@ -497,8 +502,8 @@ public void ExitSuccess(string reason) { }
497502
/// <item><description>If the user clicks Attach, the script will start in a pop-up window.</description></item>
498503
/// <item><description>If the user clicks Ignore, the message box will be closed.</description></item>
499504
/// </list>
500-
/// <note type="note">In DataMiner Cube, you can also use the script action Find interactive client, instead of using C#. For more information, see Find interactive client.</note>
501-
/// <para>Since DataMiner 9.6.9 (RN 22227), it is possible to find an interactive client by user cookie instead of by user name.</para>
505+
/// <note type="note">In DataMiner Cube, you can also use the script action Find interactive client, instead of using C#. For more information, see <see href="xref:AutomationActionFindInteractiveClient">Find interactive client</see>.</note>
506+
/// <para>From DataMiner 9.6.9 (RN 22227) onwards, it is possible to find an interactive client by user cookie instead of by user name.</para>
502507
/// <code>bool ok = engine.FindInteractiveClient("Some text", 100, "userCookie:" + connection.ConnectionID);</code>
503508
/// </remarks>
504509
/// <example>
@@ -536,7 +541,7 @@ public void ExitSuccess(string reason) { }
536541
/// <item><description>If the user clicks Ignore, the message box will be closed.</description></item>
537542
/// </list>
538543
/// <note type="note">In DataMiner Cube, you can also use the script action Find interactive client, instead of using C#. For more information, see Find interactive client.</note>
539-
/// <para>Since DataMiner 9.6.9 (RN 22227), it is possible to find an interactive client by user cookie instead of by user name.</para>
544+
/// <para>From DataMiner 9.6.9 (RN 22227) onwards, it is possible to find an interactive client by user cookie instead of by user name.</para>
540545
/// <code>bool ok = engine.FindInteractiveClient("Some text", 100, "userCookie:" + connection.ConnectionID, AutomationScriptAttachOptions.None);</code>
541546
/// </remarks>
542547
/// <example>

‎src/DataMiner/SLManagedAutomation/InteractiveUserDetachedException.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Skyline.DataMiner.Automation
44
{
55
/// <summary>
6-
/// The exception that is thrown when user-interaction is attempted on a script that has been detached from the client.
6+
/// The exception that is thrown when user interaction is attempted on a script that has been detached from the client.
77
/// </summary>
88
public class InteractiveUserDetachedException : DataMinerException
99
{

‎src/DataMiner/SLManagedAutomation/MailReportOptions.cs

+14
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ public void AddReservationProperties(params string[] @params) { }
3434
/// <remarks>
3535
/// <para>Allows including table cells.</para>
3636
/// </remarks>
37+
/// <example>
38+
/// <para>For an example showing how to pass single-value parameters as well as table cells to a report, see below:</para>
39+
/// <code>
40+
/// Element dummy1 = engine.FindElement("My Element");
41+
/// MailReportOptions reportOptions = engine.PrepareMailReport("Report Name");
42+
/// // Add single-value parameter
43+
/// reportOptions.IncludeElement(dummy1, new MailReportParameter(dummy1, "Total Processor Load");
44+
/// // Add table cell
45+
/// reportOptions.IncludeElement(dummy1, new MailReportParameter(dummy1, "Bandwidth", "Eth0");
46+
/// </code>
47+
/// <note type="note">
48+
/// <para>In the example above, the index argument has to contain the display key. If necessary, use the FindDisplayKey method on the element or the dummy to retrieve that key. See <see cref="Element.FindDisplayKey(int, String)"/>.</para>
49+
/// </note>
50+
/// </example>
3751
public void IncludeElement(IActionableElement dummy, params MailReportParameter[] @params) { }
3852

3953
/// <summary>

‎src/DataMiner/SLManagedAutomation/RedundancyGroup.cs

+5
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,19 @@ public class RedundancyGroup
1111
/// <summary>
1212
/// Gets the DataMiner Agent ID of this redundancy group.
1313
/// </summary>
14+
/// <value>The DataMiner Agent ID of this redundancy group.</value>
1415
public int DmaId { get; }
1516

1617
/// <summary>
1718
/// Gets the ID of this redundancy group.
1819
/// </summary>
20+
/// <value>The ID of this redundancy group.</value>
1921
public int GroupId { get; }
2022

2123
/// <summary>
2224
/// Gets or sets the current operating mode of the redundancy group.
2325
/// </summary>
26+
/// <value>The current operating mode of the redundancy group.</value>
2427
/// <exception cref="ArgumentException">
2528
/// The redundancy group was not found.<br />
2629
/// -or-<br />
@@ -31,11 +34,13 @@ public class RedundancyGroup
3134
/// <summary>
3235
/// Gets the name of the redundancy group.
3336
/// </summary>
37+
/// <value>The name of the redundancy group.</value>
3438
public string Name { get; }
3539

3640
/// <summary>
3741
/// Gets the raw info of the redundancy group.
3842
/// </summary>
43+
/// <value>The raw info of the redundancy group.</value>
3944
public LiteRedundancyGroupInfoEvent RawInfo { get; }
4045

4146
/// <summary>

‎src/DataMiner/SLManagedAutomation/SLTicketingGateway.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public virtual void Dispose()
2626
/// <summary>
2727
/// Retrieves the non-masked ticket field resolvers corresponding to one or more filters.
2828
/// </summary>
29-
/// <param name="filters">A collection of filters. Each filter will be processed separately and the results will be added to the final response.</param>
29+
/// <param name="filters">A collection of filters. Each filter will be processed separately, and the results will be added to the final response.</param>
3030
/// <returns> The requested <see cref="TicketFieldResolver"/> objects.</returns>
3131
public virtual IEnumerable<TicketFieldResolver> GetTicketFieldResolvers(params TicketFieldResolver[] filters) { return null; }
3232

@@ -58,15 +58,15 @@ public virtual void Dispose()
5858
/// </summary>
5959
/// <param name="error">String with notifications and/or errors that occurred.</param>
6060
/// <param name="resolvers">The ticket field resolvers you wish to add or edit.</param>
61-
/// <returns><c>true</c> when add/editing the ticket field resolver(s) was successful; otherwise, <c>false</c>.</returns>
61+
/// <returns><c>true</c> when adding/editing the ticket field resolver(s) was successful; otherwise, <c>false</c>.</returns>
6262
public virtual bool SetTicketFieldResolvers(out string error, ref TicketFieldResolver[] resolvers) { error = ""; return false; }
6363

6464
/// <summary>
6565
/// Adds or edits multiple tickets.
6666
/// </summary>
6767
/// <param name="error">String with notifications and/or errors that occurred.</param>
6868
/// <param name="tickets">The tickets you wish to add or edit.</param>
69-
/// <returns><c>true</c> when add/editing the ticket(s) was successful; otherwise, <c>false</c>.</returns>
69+
/// <returns><c>true</c> when adding/editing the ticket(s) was successful; otherwise, <c>false</c>.</returns>
7070
public virtual bool SetTickets(out string error, ref Ticket[] tickets) { error = ""; return false; }
7171

7272
/// <summary>

0 commit comments

Comments
 (0)