@itentialopensource/adapter-ciena_mcp 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/AUTH.md +9 -10
  2. package/BROKER.md +3 -3
  3. package/CALLS.md +10042 -22
  4. package/CHANGELOG.md +16 -0
  5. package/CONTRIBUTING.md +1 -160
  6. package/ENHANCE.md +2 -2
  7. package/PROPERTIES.md +19 -19
  8. package/README.md +41 -32
  9. package/SUMMARY.md +2 -2
  10. package/SYSTEMINFO.md +12 -5
  11. package/TROUBLESHOOT.md +6 -6
  12. package/adapter.js +163 -334
  13. package/adapterBase.js +549 -879
  14. package/changelogs/CHANGELOG.md +24 -0
  15. package/entities/000Configmgmtapiv1bulkOperations/schema.json +1 -1
  16. package/entities/000Nsiapicontrollers/schema.json +1 -1
  17. package/entities/000Nsiapiequipment/schema.json +2 -2
  18. package/entities/000NsiapiequipmentGroups/schema.json +3 -3
  19. package/entities/000NsiapiequipmentHolders/schema.json +1 -1
  20. package/entities/000NsiapiequipmentStaticSpecs/schema.json +3 -3
  21. package/entities/000Nsiapifres/schema.json +5 -5
  22. package/entities/000NsiapinetworkConstructs/schema.json +2 -2
  23. package/entities/000Nsiapitpes/schema.json +4 -4
  24. package/entities/994Nsiapiv6equipment/schema.json +2 -2
  25. package/entities/994Nsiapiv6fres/schema.json +5 -5
  26. package/entities/994Nsiapiv6networkConstructs/schema.json +2 -2
  27. package/entities/994Nsiapiv6tpes/schema.json +4 -4
  28. package/entities/995Nsiapiv2controllers/schema.json +1 -1
  29. package/entities/995Nsiapiv5equipment/schema.json +2 -2
  30. package/entities/995Nsiapiv5fres/schema.json +5 -5
  31. package/entities/995Nsiapiv5networkConstructs/schema.json +2 -2
  32. package/entities/995Nsiapiv5tpes/schema.json +3 -3
  33. package/entities/996Nsiapiv1controllers/schema.json +1 -1
  34. package/entities/996Nsiapiv1equipmentStaticSpecs/schema.json +3 -3
  35. package/entities/996Nsiapiv4equipment/schema.json +4 -4
  36. package/entities/996Nsiapiv4fres/schema.json +16 -16
  37. package/entities/996Nsiapiv4networkConstructs/schema.json +2 -2
  38. package/entities/996Nsiapiv4tpes/schema.json +4 -4
  39. package/entities/997Nsiapiv3equipment/schema.json +2 -2
  40. package/entities/997Nsiapiv3equipmentGroups/schema.json +3 -3
  41. package/entities/997Nsiapiv3equipmentHolders/schema.json +1 -1
  42. package/entities/997Nsiapiv3fres/schema.json +4 -4
  43. package/entities/997Nsiapiv3networkConstructs/schema.json +2 -2
  44. package/entities/997Nsiapiv3tpes/schema.json +3 -3
  45. package/entities/998Nsiapiv20equipmentGroups/schema.json +3 -3
  46. package/entities/998Nsiapiv20equipmentHolders/schema.json +1 -1
  47. package/entities/998Nsiapiv20fres/schema.json +4 -4
  48. package/entities/Equipment/schema.json +18 -18
  49. package/entities/EquipmentGroups/schema.json +3 -3
  50. package/entities/Fres/schema.json +66 -66
  51. package/entities/NetworkConstructs/schema.json +22 -22
  52. package/entities/Oam/schema.json +1 -1
  53. package/entities/RetrievesCreatesUpdatesAndDeletesAudits/schema.json +3 -3
  54. package/entities/TapiConnectivity/schema.json +2 -2
  55. package/entities/Tpes/schema.json +6 -6
  56. package/metadata.json +60 -0
  57. package/package.json +23 -25
  58. package/pronghorn.json +986 -647
  59. package/propertiesSchema.json +433 -33
  60. package/refs?service=git-upload-pack +0 -0
  61. package/report/adapter-openapi.json +218608 -0
  62. package/report/adapter-openapi.yaml +159470 -0
  63. package/report/adapterInfo.json +8 -8
  64. package/report/updateReport1691507600369.json +120 -0
  65. package/report/updateReport1692202602603.json +120 -0
  66. package/report/updateReport1694461981982.json +120 -0
  67. package/report/updateReport1698420997295.json +120 -0
  68. package/sampleProperties.json +65 -4
  69. package/test/integration/adapterTestBasicGet.js +2 -4
  70. package/test/integration/adapterTestConnectivity.js +91 -42
  71. package/test/integration/adapterTestIntegration.js +131 -3
  72. package/test/unit/adapterBaseTestUnit.js +388 -313
  73. package/test/unit/adapterTestUnit.js +339 -113
  74. package/utils/adapterInfo.js +1 -1
  75. package/utils/addAuth.js +1 -1
  76. package/utils/artifactize.js +1 -1
  77. package/utils/checkMigrate.js +1 -1
  78. package/utils/entitiesToDB.js +2 -2
  79. package/utils/findPath.js +1 -1
  80. package/utils/methodDocumentor.js +273 -0
  81. package/utils/modify.js +13 -15
  82. package/utils/packModificationScript.js +1 -1
  83. package/utils/pre-commit.sh +2 -0
  84. package/utils/taskMover.js +309 -0
  85. package/utils/tbScript.js +89 -34
  86. package/utils/tbUtils.js +41 -21
  87. package/utils/testRunner.js +1 -1
  88. package/utils/troubleshootingAdapter.js +9 -6
  89. package/workflows/README.md +0 -3
package/CHANGELOG.md CHANGED
@@ -1,4 +1,20 @@
1
1
 
2
+ ## 0.4.0 [11-10-2023]
3
+
4
+ * Adapter Engine has been updated and the changes are being migrated to the adapter
5
+
6
+ See merge request itentialopensource/adapters/controller-orchestrator/adapter-ciena_mcp!3
7
+
8
+ ---
9
+
10
+ ## 0.3.3 [07-27-2022]
11
+
12
+ * Change schemas to escape . so that objectization is not done
13
+
14
+ See merge request itentialopensource/adapters/controller-orchestrator/adapter-ciena_mcp!2
15
+
16
+ ---
17
+
2
18
  ## 0.3.2 [06-03-2022]
3
19
 
4
20
  * Fix Datatype on token
package/CONTRIBUTING.md CHANGED
@@ -10,163 +10,4 @@ This project and everyone participating in it is governed by the Code of Conduct
10
10
 
11
11
  ## How to Contribute
12
12
 
13
- ### Reporting Bugs
14
-
15
- This section guides you through submitting a bug report. Following these guidelines helps maintainers understand your report :pencil:, reproduce the behavior :computer: :left_right_arrow: :computer:, and find related reports :mag_right:.
16
-
17
- Before creating bug reports, please check before-submitting-a-bug-report, as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. If you have an Itential support contract, please create an Itential Service Desk ticket. If you don't have an Itential support contract, please send an email of the issue to support@itential.com.
18
-
19
- #### Before Submitting A Bug Report
20
-
21
- * **Check the README.md.** You might be able to find the cause of the problem and fix things yourself. Most importantly, check if you can reproduce the problem __in the latest version__.
22
- * **Work through the troubleshooting process.** Troubleshooting will include changing the log level of Itential Automation Platform (IAP) and adapters and checking the logs to see what the issues are. These logs should be included in any ticket you open for this issue.
23
- * **Check for resolutions to the issue.** Check the <a href="https://itential.atlassian.net/servicedesk/customer/kb/view/286883841?applicationId=605994d2-2cb2-3174-af59-ed5b23ff5fd5&spaceKey=PKB&src=1187380921" target="_blank">Itential Knowledge Base</a> to see if there is a known resolution for the issue you are having.
24
- * **Ask around in chat if you are an Itential employee** to see if others are experiencing the same issue.
25
-
26
- #### How to Submit a (Good) Bug Report
27
-
28
- Bugs are tracked through the Itential Service Desk. Explain the problem and include additional details to help maintainers reproduce the problem:
29
-
30
- - **Use a clear and descriptive title** for the issue to identify the problem.
31
- - **Describe the exact steps which reproduce the problem** in as much detail as possible. For example, start by explaining how you configured the adapter (e.g., which properties you used and how they were set) or how you are using an artifact.
32
- - **Provide specific examples to demonstrate the steps**. Include logs, or copy/paste snippets, in your examples.
33
- - **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
34
- - **Explain which behavior you expected to see instead and why.**
35
- - **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use <a href="https://www.cockos.com/licecap/" target="_blank">this tool</a> to record GIFs on macOS and Windows. Use <a href="https://github.com/colinkeenan/silentcast" target="_blank">this tool</a> or <a href="https://github.com/rhcarvalho/byzanz-guiz" target="_blank">program</a> on Linux.
36
- - **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below.
37
-
38
- Provide more context by answering these questions:
39
-
40
- - **Did the problem start happening recently** (e.g. after updating to a new version/tag) or was this always a problem?
41
- - If the problem started happening recently, **can you reproduce the problem in an older version/tag?** What's the most recent version in which the problem does not happen?
42
- - **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.
43
-
44
- Include details about your configuration and environment:
45
-
46
- - **Which version of the adapter/artifact are you using?** You can get the exact version by checking the project version in the package.json file.
47
- - **What's the name and version of the OS you're using**?
48
- - **Are you running or using IAP in a virtual machine?** If so, which VM software are you using and which operating systems and versions are used for the host and guest?
49
- - **Are there firewalls between IAP and any other system you are integrating with?** If so, have you tried running curl from the system IAP is on to the other system to verify you have connectivity between the systems?
50
-
51
- ### Your First Code Contribution
52
-
53
- #### Local development
54
-
55
- This project can be developed locally on all operating systems. For instructions on how to do this, follow the steps highlighted in the README.md. The README.mdprovides many more details on cloning the repository for local development, how to lint and test your changes.
56
-
57
- #### Development Process
58
-
59
- The following provides a local copy of the repository along with dependencies.
60
-
61
- ```json
62
- go to the repository you are interested in working on
63
- click on the Clone button to get the link(s) you can use to clone the repository
64
- git clone <link to clone the project>
65
- npm install
66
- ```
67
-
68
- Prior to making changes you should create a branch to work in. The branch should be named with the type of change (major, minor or patch) and then a Jira issue number or a description of the issue.
69
-
70
- ```json
71
- git checkout -b <name_of_your_new_branch>
72
- ```
73
-
74
- Make all of the desired changes.
75
-
76
- > **Note:** All code changes should be accompanied by additional Unit and Integration tests to minimize the likelihood that any changes will negatively impact the adapter/artifact as well as to ensure the desired functionality is achieved.
77
-
78
-
79
- <table border="1" class="bordered-table">
80
- <tr>
81
- <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Files</span></th>
82
- <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Changes</span></th>
83
- </tr>
84
- <tr>
85
- <td style="padding:15px">.codeclimate.yml, .eslintignore, .eslintrc.js, .gitignore, .gitlab-ci.yml, .jshintrc, .npmignore</td>
86
- <td style="padding:15px">These are foundational files that are used in linting and building of the adapter. Changes to these files are heavily scrutinized and may be implemented in a different manner so that the changes can be implemented across all adapters.</td>
87
- </tr>
88
- <tr>
89
- <td style="padding:15px">CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, README.md</td>
90
- <td style="padding:15px">These are license and process files for the repository. Changes to these files may require legal review and may also be implemented in a different manner so that the changes can be implemented across all adapters.</td>
91
- </tr>
92
- <tr>
93
- <td style="padding:15px">utils/*, adapterBase.js</td>
94
- <td style="padding:15px">Changes to these files will rarely be accepted. These are process files that need to be changed through the builder process and migration.</td>
95
- </tr>
96
- <tr>
97
- <td style="padding:15px">adapter.js</td>
98
- <td style="padding:15px">Changes to this file are code changes. They should be accompanied by the appropriate unit and integration tests. If new methods are added, they should also be added to the pronghorn.json file, otherwise integration tests are likely to fail.</td>
99
- </tr>
100
- <tr>
101
- <td style="padding:15px">error.json, propertiesSchema.json</td>
102
- <td style="padding:15px">These files are utilized by the Itential Runtime libraries. You can make changes to these files, but the changes should be appending of new errors or properties. Removal of errors and properties can result in rejection of the changes.</td>
103
- </tr>
104
- <tr>
105
- <td style="padding:15px">pacakge.json, package-lock.json</td>
106
- <td style="padding:15px">The package-lock.json is automatically generated and should only be updated when the dependencies inside of the package.json are modified. You can make changes to the package.json to add additional scripts, add new dependencies, modify names, etc. However, changing the scripts or dependencies that are Itential specific will be overriden during the acceptance process.</td>
107
- </tr>
108
- <tr>
109
- <td style="padding:15px">pronghorn.json</td>
110
- <td style="padding:15px">Changes to this file are made for integration into IAP. The most common change here is adding new methods that shoud be exposed to the IAP Workflow.</td>
111
- </tr>
112
- <tr>
113
- <td style="padding:15px">entities/*</td>
114
- <td style="padding:15px">Changes to these files include adding new capabilities, updating existing capabilities, or removing deprecated capabilities in the adapter. Translation configuration can also be modified here.</td>
115
- </tr>
116
- <tr>
117
- <td style="padding:15px">test/*</td>
118
- <td style="padding:15px">Changes to these files include adding, updating, or removing unit and integration tests in the adapter. Tests should never be removed unless the methods that are being tested are removed also. Both the unit and integration test file should have a marker that identifies where modification can take place. Modifications above that marker are likely to be rejected or implemented in a different manner.</td>
119
- </tr>
120
- </table>
121
- <br>
122
-
123
- > **Note:** It is a best practice to lint and test your code prior to committing changes into the repository. You can lint your code by running **npm run lint** and test it by running **node utils/testRunner.sh**. However, there are pre-commit hooks that will run these scripts when you commit your changes.
124
-
125
- Commit the changes to the repository.
126
-
127
- ```json
128
- git commit -a -m "<descriptive message>"
129
- ```
130
-
131
- > **Note:** There are pre-commit hooks in place. If the pre-commit hooks fail, you will need to address those issues before moving forward.
132
-
133
- Push the changes into the repository. This should only be done after the commit has successfully completed.
134
-
135
- ```json
136
- git push origin <name_of_your_new_branch>
137
- ```
138
-
139
- Create a Merge Request.
140
-
141
- ### Merge Requests
142
-
143
- - Fill out the provided merge request template.
144
- - Reference related issues and merge requests liberally.
145
- - Include screenshots and animated GIFs in your merge request whenever possible.
146
- - Follow the project Styleguide.
147
- - End all files with a newline.
148
-
149
- ## Styleguide
150
-
151
- ### Git Commit Messages
152
-
153
- - Use the present tense ("Add feature" not "Added feature")
154
- - Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
155
- - Consider starting the commit message with an applicable emoji _(not required)_:
156
- - :art: `:art:` When improving the format/structure of the code.
157
- - :racehorse: `:racehorse:` When improving performance
158
- - :non-potable_water: `:non-potable_water:` When plugging memory leaks.
159
- - :memo: `:memo:` When writing documentation.
160
- - :penguin: `:penguin:` When fixing something on Linux.
161
- - :apple: `:apple:` When fixing something on macOS.
162
- - :checkered_flag: `:checkered_flag:` When fixing something on Windows.
163
- - :bug: `:bug:` When fixing a bug.
164
- - :fire: `:fire:` When removing code or files.
165
- - :green_heart: `:green_heart:` When fixing the CI build.
166
- - :white_check_mark: `:white_check_mark:` When adding tests,
167
- - :lock: `:lock:` When dealing with security.
168
- - :arrow_up: `:arrow_up:` When upgrading dependencies.
169
- - :arrow_down: `:arrow_down:` When downgrading dependencies.
170
- - :shirt: `:shirt:` When removing linter warnings.
171
-
172
- __Avoid installing unnecessary packages.__ Do not install packages just because they might be "nice to have". Itential Opensource projects are supposed to be minimal, specific, and compact by design.
13
+ Follow the contributing guide (here)[https://gitlab.com/itentialopensource/adapters/contributing-guide]
package/ENHANCE.md CHANGED
@@ -18,7 +18,7 @@ npm run adapter:update
18
18
 
19
19
  If you do not have a Swagger or OpenAPI document, you can use a Postman Collection and convert that to an OpenAPI document using APIMatic and then follow the first process.
20
20
 
21
- If you want to manually update the adapter that can also be done the key thing is to make sure you update all of the right files. Within the entities directory you will find 1 or more entities. You can create a new entity or add to an existing entity. Each entity has an action.json file, any new call will need to be put in the action.json file. It will also need to be added to the enum for the ph_request_type in the appropriate schema files. Once this configuration is complete you will need to add the call to the adapter.js file and, in order to make it available as a workflow task in IAP, it should also be added to the pronghorn.json file. You can optionally add it to the unit and integration test files. There is more information on how to work on each of these files in the <a href="https://www.itential.com/automation-platform/integrations/adapters-resources/" target="_blank">Adapter Technical Resources</a> on Dev Site.
21
+ If you want to manually update the adapter that can also be done the key thing is to make sure you update all of the right files. Within the entities directory you will find 1 or more entities. You can create a new entity or add to an existing entity. Each entity has an action.json file, any new call will need to be put in the action.json file. It will also need to be added to the enum for the ph_request_type in the appropriate schema files. Once this configuration is complete you will need to add the call to the adapter.js file and, in order to make it available as a workflow task in IAP, it should also be added to the pronghorn.json file. You can optionally add it to the unit and integration test files. There is more information on how to work on each of these files in the <a href="https://docs.itential.com/opensource/docs/adapters" target="_blank">Adapter Technical Resources</a> on our Documentation Site.
22
22
 
23
23
  ```text
24
24
  Files to update
@@ -66,4 +66,4 @@ Files to update
66
66
  * test/integration/adapterTestIntegration.js: add better data for the create and update calls so that they will not fail.
67
67
  ```
68
68
 
69
- As mentioned previously, for most of these changes as well as other possible changes, there is more information on how to work on an adapter in the <a href="https://www.itential.com/automation-platform/integrations/adapters-resources/" target="_blank">Adapter Technical Resources</a> on Dev Site.
69
+ As mentioned previously, for most of these changes as well as other possible changes, there is more information on how to work on an adapter in the <a href="https://docs.itential.com/opensource/docs/adapters" target="_blank">Adapter Technical Resources</a> on our Documentation Site.
package/PROPERTIES.md CHANGED
@@ -164,7 +164,7 @@ This section defines **all** the properties that are available for the adapter,
164
164
 
165
165
  ### Connection Properties
166
166
 
167
- These base properties are used to connect to Ciena MCP upon the adapter initially coming up. It is important to set these properties appropriately.
167
+ These base properties are used to connect to CienaMcp upon the adapter initially coming up. It is important to set these properties appropriately.
168
168
 
169
169
  <table border="1" class="bordered-table">
170
170
  <tr>
@@ -205,7 +205,7 @@ These base properties are used to connect to Ciena MCP upon the adapter initiall
205
205
  </tr>
206
206
  <tr>
207
207
  <td style="padding:15px">stub</td>
208
- <td style="padding:15px">Optional. Indicates whether the stub should run instead of making calls to Ciena MCP (very useful during basic testing). Default is false (which means connect to Ciena MCP).</td>
208
+ <td style="padding:15px">Optional. Indicates whether the stub should run instead of making calls to CienaMcp (very useful during basic testing). Default is false (which means connect to CienaMcp).</td>
209
209
  </tr>
210
210
  <tr>
211
211
  <td style="padding:15px">protocol</td>
@@ -218,9 +218,9 @@ A connectivity check tells IAP the adapter has loaded successfully.
218
218
 
219
219
  ### Authentication Properties
220
220
 
221
- The following properties are used to define the authentication process to Ciena MCP.
221
+ The following properties are used to define the authentication process to CienaMcp.
222
222
 
223
- >**Note**: Depending on the method that is used to authenticate with Ciena MCP, you may not need to set all of the authentication properties.
223
+ >**Note**: Depending on the method that is used to authenticate with CienaMcp, you may not need to set all of the authentication properties.
224
224
 
225
225
  <table border="1" class="bordered-table">
226
226
  <tr>
@@ -233,11 +233,11 @@ The following properties are used to define the authentication process to Ciena
233
233
  </tr>
234
234
  <tr>
235
235
  <td style="padding:15px">username</td>
236
- <td style="padding:15px">Used to authenticate with Ciena MCP on every request or when pulling a token that will be used in subsequent requests.</td>
236
+ <td style="padding:15px">Used to authenticate with CienaMcp on every request or when pulling a token that will be used in subsequent requests.</td>
237
237
  </tr>
238
238
  <tr>
239
239
  <td style="padding:15px">password</td>
240
- <td style="padding:15px">Used to authenticate with Ciena MCP on every request or when pulling a token that will be used in subsequent requests.</td>
240
+ <td style="padding:15px">Used to authenticate with CienaMcp on every request or when pulling a token that will be used in subsequent requests.</td>
241
241
  </tr>
242
242
  <tr>
243
243
  <td style="padding:15px">token</td>
@@ -249,7 +249,7 @@ The following properties are used to define the authentication process to Ciena
249
249
  </tr>
250
250
  <tr>
251
251
  <td style="padding:15px">token_timeout</td>
252
- <td style="padding:15px">Defines how long a token is valid. Measured in milliseconds. Once a dynamic token is no longer valid, the adapter has to pull a new token. If the token_timeout is set to -1, the adapter will pull a token on every request to Ciena MCP. If the timeout_token is 0, the adapter will use the expiration from the token response to determine when the token is no longer valid.</td>
252
+ <td style="padding:15px">Defines how long a token is valid. Measured in milliseconds. Once a dynamic token is no longer valid, the adapter has to pull a new token. If the token_timeout is set to -1, the adapter will pull a token on every request to CienaMcp. If the timeout_token is 0, the adapter will use the expiration from the token response to determine when the token is no longer valid.</td>
253
253
  </tr>
254
254
  <tr>
255
255
  <td style="padding:15px">token_cache</td>
@@ -293,11 +293,11 @@ The following properties are used to define the authentication process to Ciena
293
293
 
294
294
  ### Healthcheck Properties
295
295
 
296
- The healthcheck properties defines the API that runs the healthcheck to tell the adapter that it can reach Ciena MCP. There are currently three types of healthchecks.
296
+ The healthcheck properties defines the API that runs the healthcheck to tell the adapter that it can reach CienaMcp. There are currently three types of healthchecks.
297
297
 
298
- - None - Not recommended. Adapter will not run a healthcheck. Consequently, unable to determine before making a request if the adapter can reach Ciena MCP.
298
+ - None - Not recommended. Adapter will not run a healthcheck. Consequently, unable to determine before making a request if the adapter can reach CienaMcp.
299
299
  - Startup - Adapter will check for connectivity when the adapter initially comes up, but it will not check afterwards.
300
- - Intermittent - Adapter will check connectivity to Ciena MCP at a frequency defined in the `frequency` property.
300
+ - Intermittent - Adapter will check connectivity to CienaMcp at a frequency defined in the `frequency` property.
301
301
 
302
302
  <table border="1" class="bordered-table">
303
303
  <tr>
@@ -346,7 +346,7 @@ The request section defines properties to help handle requests.
346
346
  </tr>
347
347
  <tr>
348
348
  <td style="padding:15px">attempt_timeout</td>
349
- <td style="padding:15px">Optional. Tells how long the adapter should wait before aborting the attempt. On abort, the adapter will do one of two things: 1) return the error; or 2) if **healthcheck\_on\_timeout** is set to true, it will abort the request and run a Healthcheck until it re-establishes connectivity to Ciena MCP, and then will re-attempt the request that aborted. Default is 5000 milliseconds.</td>
349
+ <td style="padding:15px">Optional. Tells how long the adapter should wait before aborting the attempt. On abort, the adapter will do one of two things: 1) return the error; or 2) if **healthcheck\_on\_timeout** is set to true, it will abort the request and run a Healthcheck until it re-establishes connectivity to CienaMcp, and then will re-attempt the request that aborted. Default is 5000 milliseconds.</td>
350
350
  </tr>
351
351
  <tr>
352
352
  <td style="padding:15px">global_request</td>
@@ -378,7 +378,7 @@ The request section defines properties to help handle requests.
378
378
  </tr>
379
379
  <tr>
380
380
  <td style="padding:15px">archiving</td>
381
- <td style="padding:15px">Optional flag. Default is false. It archives the request, the results and the various times (wait time, Ciena MCP time and overall time) in the `adapterid_results` collection in MongoDB. Although archiving might be desirable, be sure to develop a strategy before enabling this capability. Consider how much to archive and what strategy to use for cleaning up the collection in the database so that it does not become too large, especially if the responses are large.</td>
381
+ <td style="padding:15px">Optional flag. Default is false. It archives the request, the results and the various times (wait time, CienaMcp time and overall time) in the `adapterid_results` collection in MongoDB. Although archiving might be desirable, be sure to develop a strategy before enabling this capability. Consider how much to archive and what strategy to use for cleaning up the collection in the database so that it does not become too large, especially if the responses are large.</td>
382
382
  </tr>
383
383
  <tr>
384
384
  <td style="padding:15px">return_request</td>
@@ -389,7 +389,7 @@ The request section defines properties to help handle requests.
389
389
 
390
390
  ### SSL Properties
391
391
 
392
- The SSL section defines the properties utilized for ssl authentication with Ciena MCP. SSL can work two different ways: set the `accept\_invalid\_certs` flag to true (only recommended for lab environments), or provide a `ca\_file`.
392
+ The SSL section defines the properties utilized for ssl authentication with CienaMcp. SSL can work two different ways: set the `accept\_invalid\_certs` flag to true (only recommended for lab environments), or provide a `ca\_file`.
393
393
 
394
394
  <table border="1" class="bordered-table">
395
395
  <tr>
@@ -433,7 +433,7 @@ The SSL section defines the properties utilized for ssl authentication with Cien
433
433
 
434
434
  ### Throttle Properties
435
435
 
436
- The throttle section is used when requests to Ciena MCP must be queued (throttled). All of the properties in this section are optional.
436
+ The throttle section is used when requests to CienaMcp must be queued (throttled). All of the properties in this section are optional.
437
437
 
438
438
  <table border="1" class="bordered-table">
439
439
  <tr>
@@ -458,7 +458,7 @@ The throttle section is used when requests to Ciena MCP must be queued (throttle
458
458
  </tr>
459
459
  <tr>
460
460
  <td style="padding:15px">concurrent_max</td>
461
- <td style="padding:15px">Defines the number of requests the adapter can send to Ciena MCP at one time (minimum = 1, maximum = 1000). The default is 1 meaning each request must be sent to Ciena MCP in a serial manner.</td>
461
+ <td style="padding:15px">Defines the number of requests the adapter can send to CienaMcp at one time (minimum = 1, maximum = 1000). The default is 1 meaning each request must be sent to CienaMcp in a serial manner.</td>
462
462
  </tr>
463
463
  <tr>
464
464
  <td style="padding:15px">expire_timeout</td>
@@ -466,7 +466,7 @@ The throttle section is used when requests to Ciena MCP must be queued (throttle
466
466
  </tr>
467
467
  <tr>
468
468
  <td style="padding:15px">average_runtime</td>
469
- <td style="padding:15px">Represents the approximate average of how long it takes Ciena MCP to handle each request. Measured in milliseconds (minimum = 50, maximum = 60000). Default is 200. This metric has performance implications. If the runtime number is set too low, it puts extra burden on the CPU and memory as the requests will continually try to run. If the runtime number is set too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when Ciena MCP performance is exceptional you might run a little slower than you might like, but when it is poor you still run efficiently.</td>
469
+ <td style="padding:15px">Represents the approximate average of how long it takes CienaMcp to handle each request. Measured in milliseconds (minimum = 50, maximum = 60000). Default is 200. This metric has performance implications. If the runtime number is set too low, it puts extra burden on the CPU and memory as the requests will continually try to run. If the runtime number is set too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when CienaMcp performance is exceptional you might run a little slower than you might like, but when it is poor you still run efficiently.</td>
470
470
  </tr>
471
471
  <tr>
472
472
  <td style="padding:15px">priorities</td>
@@ -477,7 +477,7 @@ The throttle section is used when requests to Ciena MCP must be queued (throttle
477
477
 
478
478
  ### Proxy Properties
479
479
 
480
- The proxy section defines the properties to utilize when Ciena MCP is behind a proxy server.
480
+ The proxy section defines the properties to utilize when CienaMcp is behind a proxy server.
481
481
 
482
482
  <table border="1" class="bordered-table">
483
483
  <tr>
@@ -486,7 +486,7 @@ The proxy section defines the properties to utilize when Ciena MCP is behind a p
486
486
  </tr>
487
487
  <tr>
488
488
  <td style="padding:15px">enabled</td>
489
- <td style="padding:15px">Required. Default is false. If Ciena MCP is behind a proxy server, set enabled flag to true.</td>
489
+ <td style="padding:15px">Required. Default is false. If CienaMcp is behind a proxy server, set enabled flag to true.</td>
490
490
  </tr>
491
491
  <tr>
492
492
  <td style="padding:15px">host</td>
@@ -573,7 +573,7 @@ The mongo section defines the properties used to connect to a Mongo database. Mo
573
573
 
574
574
  ### Device Broker Properties
575
575
 
576
- The device broker section defines the properties used integrate Ciena MCP to the device broker. Each broker call is represented and has an array of calls that can be used to build the response. This describes the calls and then the fields which are available in the calls.
576
+ The device broker section defines the properties used integrate CienaMcp to the device broker. Each broker call is represented and has an array of calls that can be used to build the response. This describes the calls and then the fields which are available in the calls.
577
577
 
578
578
  <table border="1" class="bordered-table">
579
579
  <tr>
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Adapter for Ciena MCP
1
+ # Adapter for CienaMcp
2
2
 
3
3
  ## Table of Contents
4
4
 
@@ -14,6 +14,7 @@ Some of the page links in this document and links to other GitLab files do not w
14
14
  - [Testing](#testing)
15
15
  - [Configuration](./PROPERTIES.md)
16
16
  - [Using this Adapter](./CALLS.md)
17
+ - [Authentication](./AUTH.md)
17
18
  - [Additional Information](#additional-information)
18
19
  - [Enhancements](./ENHANCE.md)
19
20
  - [Contributing](./CONTRIBUTING.md)
@@ -29,9 +30,9 @@ Some of the page links in this document and links to other GitLab files do not w
29
30
 
30
31
  Itential Product and opensource adapters utilize SemVer for versioning. The current version of the adapter can be found in the `package.json` file or viewed in the IAP GUI on the System page. All Itential opensource adapters can be found in the <a href="https://gitlab.com/itentialopensource/adapters" target="_blank">Itential OpenSource Repository</a>.
31
32
 
32
- Any release prior to 1.0.0 is a pre-release. Initial builds of adapters are generally set up as pre-releases as there is often work that needs to be done to configure the adapter and make sure the authentication process to Ciena MCP works appropriately.
33
+ Any release prior to 1.0.0 is a pre-release. Initial builds of adapters are generally set up as pre-releases as there is often work that needs to be done to configure the adapter and make sure the authentication process to CienaMcp works appropriately.
33
34
 
34
- Release notes can be viewed in CHANGELOG.md or in the <a href="https://itential.atlassian.net/servicedesk/customer/portals" target="_blank">Customer Knowledge Base</a> for Itential adapters.
35
+ Release notes can be viewed in CHANGELOG.md.
35
36
 
36
37
  ## Supported IAP Versions
37
38
 
@@ -47,17 +48,20 @@ These instructions will help you get a copy of the project on your local machine
47
48
 
48
49
  ### Helpful Background Information
49
50
 
50
- There is adapter documentation available on the Itential Developer Site <a href="https://www.itential.com/automation-platform/integrations/adapters-resources/" target="_blank">HERE</a>. This documentation includes information and examples that are helpful for:
51
+ There is <a href="https://docs.itential.com/opensource/docs/adapters" target="_blank">Adapter documentation available on the Itential Documentation Site</a>. This documentation includes information and examples that are helpful for:
51
52
 
52
53
  ```text
53
54
  Authentication
54
- Properties
55
+ IAP Service Instance Configuration
55
56
  Code Files
56
- Action Files
57
- Schema Files
58
- Mock Data Files
57
+ Endpoint Configuration (Action & Schema)
58
+ Mock Data
59
+ Adapter Generic Methods
60
+ Headers
61
+ Security
59
62
  Linting and Testing
60
- Troubleshooting
63
+ Build an Adapter
64
+ Troubleshooting an Adapter
61
65
  ```
62
66
 
63
67
  Others will be added over time.
@@ -86,7 +90,7 @@ The following list of packages are required for Itential opensource adapters or
86
90
  </tr>
87
91
  <tr>
88
92
  <td style="padding:15px">ajv</td>
89
- <td style="padding:15px">Required for validation of adapter properties to integrate with Ciena MCP.</td>
93
+ <td style="padding:15px">Required for validation of adapter properties to integrate with CienaMcp.</td>
90
94
  </tr>
91
95
  <tr>
92
96
  <td style="padding:15px">axios</td>
@@ -96,6 +100,10 @@ The following list of packages are required for Itential opensource adapters or
96
100
  <td style="padding:15px">commander</td>
97
101
  <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
98
102
  </tr>
103
+ <tr>
104
+ <td style="padding:15px">dns-lookup-promise</td>
105
+ <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
106
+ </tr>
99
107
  <tr>
100
108
  <td style="padding:15px">fs-extra</td>
101
109
  <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
@@ -112,14 +120,14 @@ The following list of packages are required for Itential opensource adapters or
112
120
  <td style="padding:15px">mongodb</td>
113
121
  <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
114
122
  </tr>
115
- <tr>
116
- <td style="padding:15px">network-diagnostics</td>
117
- <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
118
- </tr>
119
123
  <tr>
120
124
  <td style="padding:15px">nyc</td>
121
125
  <td style="padding:15px">Testing coverage library that is utilized by some of the node scripts that are included with the adapter.</td>
122
126
  </tr>
127
+ <tr>
128
+ <td style="padding:15px">ping</td>
129
+ <td style="padding:15px">Utilized by the node scripts that are included with the adapter; helps to build and extend the functionality.</td>
130
+ </tr>
123
131
  <tr>
124
132
  <td style="padding:15px">readline-sync</td>
125
133
  <td style="padding:15px">Utilized by the node script that comes with the adapter; helps to test unit and integration functionality.</td>
@@ -143,7 +151,6 @@ eslint
143
151
  eslint-config-airbnb-base
144
152
  eslint-plugin-import
145
153
  eslint-plugin-json
146
- package-json-validator
147
154
  testdouble
148
155
  ```
149
156
 
@@ -172,7 +179,9 @@ tar -xvf adapter-ciena_mcp.tar
172
179
 
173
180
  ```bash
174
181
  cd adapter-ciena_mcp
175
- npm run adapter:install
182
+ npm install
183
+ npm run lint:errors
184
+ npm run test
176
185
  ```
177
186
 
178
187
  4. Restart IAP
@@ -181,17 +190,20 @@ npm run adapter:install
181
190
  systemctl restart pronghorn
182
191
  ```
183
192
 
184
- 5. Change the adapter service instance configuration (host, port, credentials, etc) in IAP Admin Essentials GUI
193
+ 5. Create an adapter service instance configuration in IAP Admin Essentials GUI
194
+
195
+ 6. Copy the properties from the sampleProperties.json and paste them into the service instance configuration in the inner/second properties field.
196
+
197
+ 7. Change the adapter service instance configuration (host, port, credentials, etc) in IAP Admin Essentials GUI
185
198
 
186
- npm run adapter:install can be dependent on where the adapter is installed and on the version of IAP so it is subject to fail. If this happens you can replace step 3-5 above with these:
199
+
200
+ For an easier install of the adapter use npm run adapter:install, it will install the adapter in IAP. Please note that it can be dependent on where the adapter is installed and on the version of IAP so it is subject to fail. If using this, you can replace step 3-5 above with these:
187
201
 
188
202
  3. Install adapter dependencies and check the adapter.
189
203
 
190
204
  ```bash
191
205
  cd adapter-ciena_mcp
192
- npm run install
193
- npm run lint:errors
194
- npm run test
206
+ npm run adapter:install
195
207
  ```
196
208
 
197
209
  4. Restart IAP
@@ -200,11 +212,8 @@ npm run test
200
212
  systemctl restart pronghorn
201
213
  ```
202
214
 
203
- 5. Create an adapter service instance configuration in IAP Admin Essentials GUI
204
-
205
- 6. Copy the properties from the sampleProperties.json and paste them into the service instance configuration in the inner/second properties field.
215
+ 5. Change the adapter service instance configuration (host, port, credentials, etc) in IAP Admin Essentials GUI
206
216
 
207
- 7. Change the adapter service instance configuration (host, port, credentials, etc) in IAP Admin Essentials GUI
208
217
 
209
218
  ### Testing
210
219
 
@@ -225,7 +234,7 @@ To add new unit tests, edit the `test/unit/adapterTestUnit.js` file. The tests t
225
234
 
226
235
  #### Integration Testing - Standalone
227
236
 
228
- Standalone Integration Testing requires mock data to be provided with the entities. If this data is not provided, standalone integration testing will fail. When the adapter is set to run in stub mode (setting the stub property to true), the adapter will run through its code up to the point of making the request. It will then retrieve the mock data and return that as if it had received that data as the response from Ciena MCP. It will then translate the data so that the adapter can return the expected response to the rest of the Itential software. Standalone is the default integration test.
237
+ Standalone Integration Testing requires mock data to be provided with the entities. If this data is not provided, standalone integration testing will fail. When the adapter is set to run in stub mode (setting the stub property to true), the adapter will run through its code up to the point of making the request. It will then retrieve the mock data and return that as if it had received that data as the response from CienaMcp. It will then translate the data so that the adapter can return the expected response to the rest of the Itential software. Standalone is the default integration test.
229
238
 
230
239
  Similar to unit testing, there are two ways to run integration tests. Using the testRunner script is better because it prevents you from having to edit the test script; it will also resets information after testing is complete so that credentials are not saved in the file.
231
240
 
@@ -240,9 +249,9 @@ To add new integration tests, edit the `test/integration/adapterTestIntegration.
240
249
 
241
250
  #### Integration Testing
242
251
 
243
- Integration Testing requires connectivity to Ciena MCP. By using the testRunner script it prevents you from having to edit the integration test. It also resets the integration test after the test is complete so that credentials are not saved in the file.
252
+ Integration Testing requires connectivity to CienaMcp. By using the testRunner script it prevents you from having to edit the integration test. It also resets the integration test after the test is complete so that credentials are not saved in the file.
244
253
 
245
- > **Note**: These tests have been written as a best effort to make them work in most environments. However, the Adapter Builder often does not have the necessary information that is required to set up valid integration tests. For example, the order of the requests can be very important and data is often required for `creates` and `updates`. Hence, integration tests may have to be enhanced before they will work (integrate) with Ciena MCP. Even after tests have been set up properly, it is possible there are environmental constraints that could result in test failures. Some examples of possible environmental issues are customizations that have been made within Ciena MCP which change order dependencies or required data.
254
+ > **Note**: These tests have been written as a best effort to make them work in most environments. However, the Adapter Builder often does not have the necessary information that is required to set up valid integration tests. For example, the order of the requests can be very important and data is often required for `creates` and `updates`. Hence, integration tests may have to be enhanced before they will work (integrate) with CienaMcp. Even after tests have been set up properly, it is possible there are environmental constraints that could result in test failures. Some examples of possible environmental issues are customizations that have been made within CienaMcp which change order dependencies or required data.
246
255
 
247
256
  ```bash
248
257
  node utils/testRunner
@@ -268,7 +277,7 @@ Test should also be written to clean up after themselves. However, it is importa
268
277
 
269
278
  ### Helpful Links
270
279
 
271
- <a href="https://www.itential.com/automation-platform/integrations/adapters-resources/" target="_blank">Adapter Technical Resources</a>
280
+ <a href="https://docs.itential.com/opensource/docs/adapters" target="_blank">Adapter Technical Resources</a>
272
281
 
273
282
  ### Node Scripts
274
283
 
@@ -309,15 +318,15 @@ There are several node scripts that now accompany the adapter. These scripts are
309
318
  </tr>
310
319
  <tr>
311
320
  <td style="padding:15px">npm run connectivity</td>
312
- <td style="padding:15px">Provides a connectivity check to the Ciena MCP system.</td>
321
+ <td style="padding:15px">Provides a connectivity check to the CienaMcp system.</td>
313
322
  </tr>
314
323
  <tr>
315
324
  <td style="padding:15px">npm run healthcheck</td>
316
- <td style="padding:15px">Checks whether the configured healthcheck call works to Ciena MCP.</td>
325
+ <td style="padding:15px">Checks whether the configured healthcheck call works to CienaMcp.</td>
317
326
  </tr>
318
327
  <tr>
319
328
  <td style="padding:15px">npm run basicget</td>
320
- <td style="padding:15px">Checks whether the basic get calls works to Ciena MCP.</td>
329
+ <td style="padding:15px">Checks whether the basic get calls works to CienaMcp.</td>
321
330
  </tr>
322
331
  </table>
323
332
  <br>
package/SUMMARY.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ## Overview
2
2
 
3
- This adapter is used to integrate the Itential Automation Platform (IAP) with the Ciena MCP System. The API that was used to build the adapter for Ciena MCP is usually available in the report directory of this adapter. The adapter utilizes the Ciena MCP API to provide the integrations that are deemed pertinent to IAP. The ReadMe file is intended to provide information on this adapter it is generated from various other Markdown files.
3
+ This adapter is used to integrate the Itential Automation Platform (IAP) with the CienaMcp System. The API that was used to build the adapter for CienaMcp is usually available in the report directory of this adapter. The adapter utilizes the CienaMcp API to provide the integrations that are deemed pertinent to IAP. The ReadMe file is intended to provide information on this adapter it is generated from various other Markdown files.
4
4
 
5
- >**Note**: It is possible that some integrations will be supported through the Ciena MCP adapter while other integrations will not. If you need additional API calls, you can use the Update capabilities provided by the Adapter Builder or request Itential to add them if the Adapter is an Itential opensourced adapter.
5
+ >**Note**: It is possible that some integrations will be supported through the CienaMcp adapter while other integrations will not. If you need additional API calls, you can use the Update capabilities provided by the Adapter Builder or request Itential to add them if the Adapter is an Itential opensourced adapter.
6
6
 
7
7
  Itential provides information on all of its product adapters in the Customer Knowledge Base. Information in the <a href="https://itential.atlassian.net/servicedesk/customer/portals" target="_blank">Customer Knowledge Base</a> is consistently maintained and goes through documentation reviews. As a result, it should be the first place to go for information.
8
8
 
package/SYSTEMINFO.md CHANGED
@@ -1,11 +1,18 @@
1
1
  # Ciena MCP
2
2
 
3
- Vendor: Ciena MCP
4
- Homepage: https://Ciena MCP.com/
3
+ Vendor: Ciena
4
+ Homepage: https://www.ciena.com/
5
5
 
6
- Product: Ciena MCP
7
- Product Page: https://Ciena MCP.com/
6
+ Product: Manage, Control and Plan (MPC)
7
+ Product Page: https://www.ciena.com/products/manage-control-plan
8
8
 
9
9
  ## Introduction
10
+ We classify Ciena MCP into the Data Center domain as Ciena MCP provides the capability to get information about and make changes to infrastructure.
10
11
 
11
- ## Additional Product Documentation
12
+ ## Why Integrate
13
+ The Ciena MCP adapter from Itential is used to integrate the Itential Automation Platform (IAP) with Ciena MCP. With this adapter you have the ability to perform operations such as:
14
+
15
+ - Automate service & network provisioning, compliance, and service assurance and fulfillment.
16
+
17
+ ## Additional Product Documentation
18
+ The [API documents for Ciena MCP](https://software.ciena.com/releasenotes/MCP-DOCS_5.2-217/build/site/mcp-docs/release-notes.html)
package/TROUBLESHOOT.md CHANGED
@@ -22,21 +22,21 @@ npm run troubleshoot
22
22
  Go into the Itential Platform GUI and verify/update the properties
23
23
  ```
24
24
 
25
- 3. Verify there is connectivity between the Itential Platform Server and Ciena MCP Server.
25
+ 3. Verify there is connectivity between the Itential Platform Server and CienaMcp Server.
26
26
 
27
27
  ```text
28
- ping the ip address of Ciena MCP server
29
- try telnet to the ip address port of Ciena MCP
28
+ ping the ip address of CienaMcp server
29
+ try telnet to the ip address port of CienaMcp
30
30
  execute a curl command to the other system
31
31
  ```
32
32
 
33
- 4. Verify the credentials provided for Ciena MCP.
33
+ 4. Verify the credentials provided for CienaMcp.
34
34
 
35
35
  ```text
36
- login to Ciena MCP using the provided credentials
36
+ login to CienaMcp using the provided credentials
37
37
  ```
38
38
 
39
- 5. Verify the API of the call utilized for Ciena MCP Healthcheck.
39
+ 5. Verify the API of the call utilized for CienaMcp Healthcheck.
40
40
 
41
41
  ```text
42
42
  Go into the Itential Platform GUI and verify/update the properties