Skip to content

Commit f015e84

Browse files
committed
Merge branch 'main' into logsettingsschema
2 parents fcbd932 + af0ec40 commit f015e84

File tree

68 files changed

+754
-338
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+754
-338
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
uid: Implementing_OnRequestScriptInfo_Entry_Point
3+
---
4+
5+
# Implementing the OnRequestScriptInfo entry point
6+
7+
From DataMiner 10.5.7/10.6.0 <!-- RN 42969 --> onwards, the [OnRequestScriptInfo](xref:Skyline.DataMiner.Automation.AutomationEntryPointType.Types.OnRequestScriptInfo) entry point can be implemented in an Automation script. This will allow other Automation scripts (or any other code) to request information about the script in question.
8+
9+
The [example](#orchestration-script-example) below uses the entry point to find out which profile parameter values a script needs in order to orchestrate a device.
10+
11+
## Using the entry point
12+
13+
To use the entry point, add a method with the following signature to the script:
14+
15+
```csharp
16+
[AutomationEntryPoint(AutomationEntryPointType.Types.OnRequestScriptInfo)]
17+
public RequestScriptInfoOutput OnRequestScriptInfoRequest(IEngine engine, RequestScriptInfoInput inputData)
18+
```
19+
20+
Both [RequestScriptInfoInput](xref:Skyline.DataMiner.Net.Automation.RequestScriptInfoInput) and [RequestScriptInfoOutput](xref:Skyline.DataMiner.Net.Automation.RequestScriptInfoOutput) have a `Data` property of type `Dictionary<string, string>`, which can be used to exchange information between the script and other code. We strongly recommend keeping the passed data below 20 MB. If larger chunks need to be passed, a reference to that information should be passed instead.
21+
22+
## Arguments
23+
24+
If the script has any script parameters, dummies or memory files, then these are not required when executing the `OnRequestScriptInfo` entry point. However, they are required when executing the `Run` method of that same script.
25+
26+
If the entry point would make use of them, we recommend providing all defined arguments in the code that is executing the entry point. In case that is not possible, the following should be taken into account when an argument is used in the entry point code:
27+
28+
- When an omitted script parameter is used in the entry point logic, retrieving the script parameter is possible, but its value will be an empty string.
29+
- When an omitted dummy is used in the entry point logic, retrieving the dummy is possible, but it will refer to DMA ID -1 and element ID -1. Any actions that use the dummy will fail with an exception.
30+
- When an omitted memory file is used in the entry point logic, retrieving the memory file is possible, but it will refer to a linked file that is empty. Retrieving a value using the memory file will fail with an exception.
31+
32+
## Starting the entry point
33+
34+
To start the `OnRequestScriptInfo` entry point, you can use the below-mentioned methods. Within an Automation script, the entry point should be executed as a [subscript](#subscript).
35+
36+
### Subscript
37+
38+
To execute the `OnRequestScriptInfo` entry point within Automation, you have to use the [PrepareSubScript](xref:Skyline.DataMiner.Automation.Engine.PrepareSubScript(System.String,Skyline.DataMiner.Net.Automation.RequestScriptInfoInput)) method.
39+
40+
In the following snippet, the entry point of the script "Script with entry point" will be started. The "Action" key with value "RequestValues" is used as input data. After the script's entry point has been executed synchronously (i.e. the default behavior), the returned output is checked for the value of the "ActionResult" key.
41+
42+
```csharp
43+
var input = new RequestScriptInfoInput
44+
{
45+
Data = new Dictionary<string, string>
46+
{
47+
{ "Action", "RequestValues" },
48+
},
49+
};
50+
51+
var subscriptOptions = engine.PrepareSubScript("Script with entry point", input);
52+
subscriptOptions.StartScript();
53+
54+
if (subscriptOptions.Output?.Data is null ||
55+
!subscriptOptions.Output.Data.TryGetValue("ActionResult", out string resultKeyValue))
56+
{
57+
engine.ExitFail("Expected an ActionResult in the output of the subscript.");
58+
}
59+
```
60+
61+
The `input` passed when preparing the subscript can be used to sent the data to the script. The data can be updated using the `Input` property of the options. The script should be started synchronously. It will return a subscript options object with an `Output` property containing the information returned by the script.
62+
63+
### ExecuteScriptMessage
64+
65+
The `ExecuteScriptMessage` can be used to trigger the entry point using an SLNet connection. This message should **not** be used to request the information in an Automation script.
66+
67+
In the following snippet, the entry point of the script "Script with entry point" will be started. The "Action" key with value "RequestValues" is used as input data. After the script's entry point has been executed synchronously, the returned output is checked for the value of the "ActionResult" key.
68+
69+
```csharp
70+
var input = new RequestScriptInfoInput
71+
{
72+
Data = new Dictionary<string, string>
73+
{
74+
{ "Action", "RequestValues" },
75+
},
76+
};
77+
78+
var msg = new ExecuteScriptMessage
79+
{
80+
ScriptName = "Script with entry point",
81+
Options = new SA(new[] { "DEFER:FALSE" }),
82+
CustomEntryPoint = new AutomationEntryPoint
83+
{
84+
EntryPointType = AutomationEntryPoint.Types.OnRequestScriptInfo,
85+
Parameters = new List<object> { input },
86+
},
87+
};
88+
89+
var response = slnetConnection.HandleSingleResponseMessage(msg) as ExecuteScriptResponseMessage;
90+
var output = response?.EntryPointResult?.Result as RequestScriptInfoOutput;
91+
92+
if (output?.Data is null ||
93+
!output.Data.TryGetValue("ActionResult", out string resultKeyValue))
94+
{
95+
throw new InvalidOperationException("Expected an ActionResult in the output of the subscript.");
96+
}
97+
```
98+
99+
When an `ExecuteScriptMessage` is sent, an `ExecuteScriptResponseMessage` will be returned. The information is returned in an `EntryPointResult.Result` property of type `RequestScriptInfoOutput`.
100+
101+
## Orchestration script example
102+
103+
In this example, a library was created to implement Automation scripts that orchestrate a function of a device, resource or element. The `OnRequestScriptInfo` entry point is used to find out which values (defined as profile parameters) such a script needs in order to perform the orchestration.
104+
105+
The [OrchestrationHelperExample repository](https://github.com/SkylineCommunications/SLC-S-OrchestrationHelperExample) is available on GitHub.
106+
107+
A more detailed explanation, as well as the script flow, is available in [the project's README file](https://github.com/SkylineCommunications/SLC-S-OrchestrationHelperExample?tab=readme-ov-file#technical-documentation-for-the-orchestrationhelper-example).

develop/devguide/Automation/UIBlockTypesOverview.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ foreach (string dropDownOption in dropDownOptions)
209209
uiBuilder.AppendBlock(blockItem);
210210
```
211211

212+
> [!NOTE]
213+
> It is possible for dropdowns in interactive Automation scripts to become overloaded with data. Although a filter can be used to locate items in a dropdown list, retrieving and displaying all available options could be time-consuming. From DataMiner 10.5.8/10.6.0 onwards<!-- RN 42808 / RN 42845 -->, for Automation scripts launched from web apps where the [`useNewIASInputComponents=true` URL parameter](xref:Configuring_app_actions_and_behavior_via_URL#configuring-app-behavior-via-the-url) is used, you can use [WasOnFilter](xref:Skyline.DataMiner.Automation.UIResults.WasOnFilter(System.String)) to get the filter value that was entered. The options added to the selection box can be filtered by the script. Enable the [WantsOnFilter](xref:Skyline.DataMiner.Automation.UIBlockDefinition.WantsOnFilter) property when defining the selection box.
214+
212215
## Executable
213216

214217
Allows you to run a program execution. To do this, you must fill in the property *Extra* with the name of the program you want to execute.

develop/schemadoc/Protocol/Protocol.Params.Param.Measurement.Type-options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Allows you to specify a deviation on the command to be verified using Command Ex
3737
> [!NOTE]
3838
> Command Execution Verification has to be enabled in MaintenanceSettings.xml.
3939
40-
See also: [annalog](xref:Protocol.Params.Param.Measurement.Type#analog)
40+
See also: [analog](xref:Protocol.Params.Param.Measurement.Type#analog)
4141

4242
### Options for measurement type "discreet"
4343

develop/schemadoc/Protocol/Protocol.Params.Param.Type-options.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ Only applicable for parameters of type read.
233233
234234
This option specifies that this parameter holds the path to the private key for setting up SSH communication based on public key authentication. This is an alternative way to set up an SSH connection (instead of user credentials).
235235

236-
The content of the "ssh options" parameter is as follows: ```key=C:\Users\User\.ssh\my_key_rsa;pass=passphrase```
236+
The content of the "ssh options" parameter is as follows: `key=C:\Users\User\.ssh\my_key_rsa;pass=passphrase`
237237

238238
Only applicable for parameters of type read.
239+
240+
> [!NOTE]
241+
> When you authenticate with a key through a private/public key pair, you must still specify the user. See also: [Defining an SSH connection in a protocol](xref:ConnectionsSerialSecureShell#defining-an-ssh-connection-in-a-protocol).

develop/schemadoc/Protocol/Protocol.PortSettings.SSH.Identity.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ Specifies the ID of the parameter that holds the path to the private key used fo
99
It should be formatted like this: `key=C:\Users\User\.ssh\my_key_rsa`
1010

1111
> [!NOTE]
12-
> If the private key is protected by a passphrase, it must be appended to the file path, separated by a semicolon. It should be formatted like this: `key=C:\Users\User\.ssh\my_key_rsa;pass=passphrase`
12+
>
13+
> - If the private key is protected by a passphrase, it must be appended to the file path, separated by a semicolon. It should be formatted like this: `key=C:\Users\User\.ssh\my_key_rsa;pass=passphrase`
14+
> - When you authenticate with a key through a private/public key pair, you must still specify the user. See also: [Defining an SSH connection in a protocol](xref:ConnectionsSerialSecureShell#defining-an-ssh-connection-in-a-protocol).
1315
1416
## Parent
1517

develop/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,8 @@ items:
963963
topicUid: BP_Implementing_IAS_in_Regression_Tests
964964
- name: Creating a Cypress test for an interactive Automation script
965965
topicUid: Creating_a_cypress_test_for_an_interactive_automation_script
966+
- name: Implementing the OnRequestScriptInfo entry point
967+
topicUid: Implementing_OnRequestScriptInfo_Entry_Point
966968
- name: Class Library
967969
items:
968970
- name: Class library introduction
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
uid: Skyline.DataMiner.DataSources.OpenConfig.Gnmi_7.x
3+
---
4+
5+
# Skyline.DataMiner.DataSources.OpenConfig.Gnmi Range 7.x
6+
7+
## 7.0.0
8+
9+
#### Fix - DataMapper unable to handle responses where type did not match actual value [ID 42762]
10+
11+
In some cases, it could occur that a response was indicated to be of type *Json* or *JsonIetf*, but the actual value was JSON token instead of a JSON object. The DataMapper was unable to handle this, which caused issues. This has now been resolved.

release-notes/Code_Libraries/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ items:
99
topicUid: Skyline_DataMiner_Core_InterAppCalls_Range_1.0
1010
- name: Skyline.DataMiner.DataSources.OpenConfig
1111
items:
12+
- name: Skyline.DataMiner.DataSources.OpenConfig.Gnmi Range 7.x
13+
topicUid: Skyline.DataMiner.DataSources.OpenConfig.Gnmi_7.x
1214
- name: Skyline.DataMiner.DataSources.OpenConfig.Gnmi Range 6.x
1315
topicUid: Skyline.DataMiner.DataSources.OpenConfig.Gnmi_6.x
1416
- name: Skyline.DataMiner.DataSources.OpenConfig.Gnmi Range 5.x

release-notes/Cube/Cube_Feature_Release_10.5/Cube_10.5.7.md

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
uid: Cube_Feature_Release_10.5.7
33
---
44

5-
# DataMiner Cube Feature Release 10.5.7 – Preview
5+
# DataMiner Cube Feature Release 10.5.7
66

7-
> [!IMPORTANT]
8-
> We are still working on this release. Some release notes may still be modified or moved to a later release. Check back soon for updates!
7+
> [!NOTE]
8+
> For known issues with this version, refer to [Known issues](xref:Known_issues).
99
1010
> [!TIP]
1111
>
@@ -14,37 +14,7 @@ uid: Cube_Feature_Release_10.5.7
1414
1515
## Highlights
1616

17-
- [Cube search box now supports fuzzy matching [ID 42911]](#cube-search-box-now-supports-fuzzy-matching-id-42911)
18-
- [System Center: New Automation tab in Logging section [ID 42737]](#system-center-new-automation-tab-in-logging-section-id-42737)
19-
20-
## New features
21-
22-
#### System Center: New Automation tab in Logging section [ID 42737]
23-
24-
<!-- MR 10.4.0 [CU16] / 10.5.0 [CU4] - FR 10.5.7 -->
25-
26-
In DataMiner feature version 10.5.6, Automation script log files were introduced. These log files can now be consulted in DataMiner Cube. To do so, in Cube, open *System Center*, and go to *Logging > Automation*.
27-
28-
On the left, you will find a list of all Automation scripts available on the system, grouped per DataMiner Agent.
29-
30-
- Right-clicking a script in the list will open a shortcut menu with two options: *Open* and *Open previous*. If there is no previous log file, the latter option will not be available.
31-
- To set the log levels for one or more Automation scripts on a particular DataMiner Agent, open the *Log settings* pane at the top of the *Automation* tab, select the files\*, set the log levels, and click *Apply levels*.
32-
33-
\**To select more than one script, click one, and then click another while holding down the Ctrl key, etc. To select a list of consecutive scripts, click the first one in the list and then click the last one while holding down the Shift key.*
34-
35-
> [!NOTE]
36-
> When you open an Automation script in the *Automation* module, you can access the script's log file by clicking the *View Log* button or by right-clicking inside the script's contents and selecting *View log* from the shortcut menu. Note that this will only be possible if you have permission to view log files.
37-
38-
#### Cube search box now supports fuzzy matching [ID 42911]
39-
40-
<!-- MR 10.4.0 [CU16] / 10.5.0 [CU4] - FR 10.5.7 -->
41-
42-
The search box in the middle of the Cube header bar now supports fuzzy matching.
43-
44-
Search results will now account for diacritic similarities within the same alphabet (e.g. "é" with will match "e"). However, transliteration is not supported. Typos or substitutions with the closest corresponding letters (e.g. "ø" vs. "o" or "graphic" vs. "grafic") will not yield any results.
45-
46-
> [!NOTE]
47-
> For Japanese characters to be processed properly, your Windows system needs to support Japanese text rendering.
17+
- [Improved search [ID 42911]](#improved-search-id-42911)
4818

4919
## Changes
5020

@@ -64,6 +34,15 @@ From now on, users will get more feedback when a DataMiner version mismatch is d
6434

6535
- The error message displayed on the screen will now explicitly say that a version mismatch was detected and that an update is required. Also, users will be referred to the [DataMiner Cube deployment methods](xref:DataMiner_Cube_deployment_methods) documentation page for more details.
6636

37+
#### Improved search [ID 42911]
38+
39+
<!-- MR 10.4.0 [CU16] / 10.5.0 [CU4] - FR 10.5.7 -->
40+
41+
An improvement has been implemented to the search engine in DataMiner Cube, so that diacritic similarities within the same alphabet will now be taken into account when text is entered in the search box (e.g. "é" with will match "e"). However, transliteration is not supported. Typos or substitutions with the closest corresponding letters (e.g. "ø" vs. "o" or "graphic" vs. "grafic") will not yield any results.
42+
43+
> [!NOTE]
44+
> For Japanese characters to be processed properly, your Windows system needs to support Japanese text rendering.
45+
6746
#### DataMiner Cube desktop app: Clicking 'Check for updates' will now always let users download the latest app version of the chosen update track [ID 42939]
6847

6948
<!-- MR 10.4.0 [CU16] / 10.5.0 [CU4] - FR 10.5.7 -->

release-notes/Cube/Cube_Feature_Release_10.5/Cube_10.5.8.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ uid: Cube_Feature_Release_10.5.8
2424

2525
### Enhancements
2626

27+
#### Current host of an element or service is now shown in Properties window [ID 42807]
28+
29+
<!-- MR 10.4.0 [CU17] / 10.5.0 [CU5] - FR 10.5.8 -->
30+
31+
When you right-click an element or a service, and select *Properties*, the *General* tab of the *Properties* window will now also display the current host, i.e. the DataMiner Agent that is currently hosting that element or service.
32+
2733
#### Alarm Console: Enhanced performance when processing alarm focus information [ID 42938]
2834

2935
<!-- MR 10.4.0 [CU17] / 10.5.0 [CU5] - FR 10.5.8 -->

0 commit comments

Comments
 (0)