UNPKG

@itentialopensource/allocate-a-pair-of-numbers

Version:

[Deprecated] A JST to find a pair of consecutive integers from within an array to allocate

1,177 lines 34.9 kB
{ "metadata": { "name": "@itentialopensource/allocate-a-pair-of-numbers", "version": "0.0.13-2023.1.1", "description": "[Deprecated] A JST to find a pair of consecutive integers from within an array to allocate ", "license": "Apache-2.0", "repository": { "type": "gitlab", "hostname": "gitlab.com", "path": "itentialopensource/pre-built-automations" }, "keywords": [ "Itential", "IAP", "artifacts", "JST" ], "author": "Itential Artifacts", "IAPDependencies": {}, "gitlabId": 20916831 }, "manifest": { "bundleName": "Allocate A Pair Of Resources", "fingerprint": "5f510fffb8ded50ab72cc9af", "createdEpoch": "1599148031602", "artifacts": [ { "id": "5f510ee4a1ff8106e83c1963", "name": "allocateNewPair", "type": "transformation", "location": "/bundles/transformations/allocateNewPair.json", "properties": { "entryPoint": false } } ] }, "bundles": [ { "type": "transformation", "data": { "_id": "5f510ee4a1ff8106e83c1963", "name": "allocateNewPair", "description": "", "incoming": [ { "$id": "allocated", "type": "array", "items": { "type": "integer", "examples": [ 1, 2, 3, 4, 6, 8, 9 ] } }, { "$id": "startRange", "type": "integer", "examples": [ 5 ] }, { "$id": "endRange", "type": "integer", "examples": [ 15 ] } ], "outgoing": [ { "$id": "output", "type": "object", "properties": { "assigned": { "type": "integer", "examples": [ 5 ] } }, "required": [] } ], "steps": [ { "id": 31, "type": "declaration", "library": "Object", "method": "new Object", "args": [ "{}" ], "view": { "row": 4, "col": 2 } }, { "id": 36, "type": "method", "library": "Number", "method": "parseInt", "args": [ "0", null ], "view": { "row": 5, "col": 1 } }, { "id": 42, "type": "assign", "from": { "location": "incoming", "name": "allocated", "ptr": "" }, "to": { "location": "method", "name": 6, "ptr": "/args/3/value" } }, { "id": 34, "type": "assign", "from": { "location": "declaration", "name": 31, "ptr": "/return" }, "to": { "location": "method", "name": 32, "ptr": "/args/0/value" } }, { "id": 37, "type": "assign", "from": { "location": "method", "name": 36, "ptr": "/return" }, "to": { "location": "declaration", "name": 35, "ptr": "/args/0/value" } }, { "id": 35, "type": "declaration", "library": "Boolean", "method": "new Boolean", "args": [ null ], "view": { "row": 5, "col": 2 } }, { "id": 2, "type": "method", "library": "Math", "method": "subtract", "args": [ null, null ], "view": { "row": 1, "col": 1 } }, { "id": 5, "type": "assign", "from": { "location": "method", "name": 2, "ptr": "/return" }, "to": { "location": "declaration", "name": 1, "ptr": "/args/0/value" } }, { "id": 24, "type": "assign", "from": { "location": "method", "name": 2, "ptr": "/return" }, "to": { "location": "method", "name": 13, "ptr": "/args/3/value" } }, { "id": 38, "type": "assign", "from": { "location": "declaration", "name": 35, "ptr": "/return" }, "to": { "location": "method", "name": 32, "ptr": "/args/2/value" } }, { "id": 1, "type": "declaration", "library": "Array", "method": "new Array", "args": [ null ], "view": { "row": 1, "col": 2 }, "polymorphIndex": 1 }, { "id": 21, "type": "assign", "from": { "location": "declaration", "name": 1, "ptr": "/return" }, "to": { "location": "method", "name": 13, "ptr": "/args/0/value" } }, { "id": 32, "type": "method", "library": "Object", "method": "setProperty", "args": [ null, "assigned", null ], "view": { "row": 4, "col": 3 } }, { "id": 39, "type": "assign", "from": { "location": "method", "name": 32, "ptr": "/return" }, "to": { "location": "method", "name": 27, "ptr": "/args/1/value" } }, { "id": 13, "type": "method", "library": "Array", "method": "fill", "args": [ null, "false", 0, null ], "view": { "row": 1, "col": 3 } }, { "id": 22, "type": "assign", "from": { "location": "method", "name": 13, "ptr": "/return" }, "to": { "location": "method", "name": 6, "ptr": "/args/0/value" } }, { "id": 6, "type": "method", "library": "Array", "method": "reduce", "args": [ null, "ƒ_reduce_2", "falsee", null, null, null ], "view": { "row": 2, "col": 2 } }, { "id": 26, "type": "assign", "from": { "location": "method", "name": 6, "ptr": "/return" }, "to": { "location": "method", "name": 25, "ptr": "/args/0/value" } }, { "id": 40, "type": "assign", "from": { "location": "method", "name": 6, "ptr": "/return" }, "to": { "location": "method", "name": 27, "ptr": "/args/2/value" } }, { "id": 25, "type": "method", "library": "Equality", "method": "equality", "args": [ null, "falsee" ], "view": { "row": 2, "col": 3 } }, { "id": 28, "type": "assign", "from": { "location": "method", "name": 25, "ptr": "/return" }, "to": { "location": "method", "name": 27, "ptr": "/args/0/value" } }, { "id": 27, "type": "method", "library": "Conditional", "method": "ternary", "args": [ null, null, null ], "view": { "row": 3, "col": 4 } }, { "id": 30, "type": "assign", "from": { "location": "method", "name": 27, "ptr": "/return" }, "to": { "location": "outgoing", "name": "output", "ptr": "" } }, { "id": 43, "type": "assign", "from": { "location": "incoming", "name": "startRange", "ptr": "" }, "to": { "location": "method", "name": 2, "ptr": "/args/1/value" } }, { "id": 44, "type": "assign", "from": { "location": "incoming", "name": "startRange", "ptr": "" }, "to": { "location": "method", "name": 6, "ptr": "/args/4/value" } }, { "id": 45, "type": "assign", "from": { "location": "incoming", "name": "endRange", "ptr": "" }, "to": { "location": "method", "name": 2, "ptr": "/args/0/value" } }, { "id": 46, "type": "assign", "from": { "location": "incoming", "name": "endRange", "ptr": "" }, "to": { "location": "method", "name": 6, "ptr": "/args/5/value" } } ], "functions": [ { "incoming": [ { "$id": "accumulator", "type": [ "array", "boolean", "number", "integer", "string", "object", "null" ] }, { "type": [ "array", "boolean", "number", "integer", "string", "object", "null" ], "$id": "currentValue" }, { "title": "index", "type": "number", "optional": true, "$id": "index" }, { "type": "array", "$id": "array", "optional": true }, { "$id": "thisArg", "type": "object", "properties": { "allocated": { "$id": "allocated", "type": "array", "items": { "type": "integer", "examples": [ 1, 2, 3, 4, 6, 8, 9 ] } }, "startRange": { "$id": "startRange", "type": "integer", "examples": [ 5 ] }, "endRange": { "$id": "endRange", "type": "integer", "examples": [ 15 ] } }, "isContext": true } ], "outgoing": [ { "title": "accumulator", "type": [ "array", "boolean", "number", "integer", "string", "object", "null" ], "$id": "accumulator" } ], "functions": [], "name": "reduceFunction", "steps": [ { "id": 2, "type": "assign", "from": { "location": "incoming", "name": "index", "ptr": "" }, "to": { "location": "method", "name": 1, "ptr": "/args/0/value" } }, { "id": 3, "type": "assign", "from": { "location": "incoming", "name": "thisArg", "ptr": "/startRange" }, "to": { "location": "method", "name": 1, "ptr": "/args/1/value" } }, { "id": 5, "type": "assign", "from": { "location": "incoming", "name": "thisArg", "ptr": "/allocated" }, "to": { "location": "method", "name": 4, "ptr": "/args/0/value" } }, { "id": 13, "type": "assign", "from": { "location": "incoming", "name": "accumulator", "ptr": "" }, "to": { "location": "method", "name": 12, "ptr": "/args/0/value" } }, { "id": 24, "type": "assign", "from": { "location": "incoming", "name": "accumulator", "ptr": "" }, "to": { "location": "method", "name": 7, "ptr": "/args/2/value" } }, { "id": 25, "type": "declaration", "library": "Object", "method": "new Object", "args": [ "{}" ], "view": { "row": 5, "col": 1 } }, { "id": 32, "type": "assign", "from": { "location": "incoming", "name": "thisArg", "ptr": "/allocated" }, "to": { "location": "method", "name": 30, "ptr": "/args/0/value" } }, { "id": 37, "type": "assign", "from": { "location": "incoming", "name": "thisArg", "ptr": "/endRange" }, "to": { "location": "method", "name": 35, "ptr": "/args/1/value" } }, { "id": 12, "type": "method", "library": "Equality", "method": "equality", "args": [ null, "falsee" ], "view": { "row": 4, "col": 2 } }, { "id": 26, "type": "assign", "from": { "location": "declaration", "name": 25, "ptr": "/return" }, "to": { "location": "method", "name": 16, "ptr": "/args/0/value" } }, { "id": 1, "type": "method", "library": "Math", "method": "add", "args": [ null, null ], "view": { "row": 1, "col": 1 } }, { "id": 14, "type": "assign", "from": { "location": "method", "name": 12, "ptr": "/return" }, "to": { "location": "method", "name": 9, "ptr": "/args/1/value" } }, { "id": 6, "type": "assign", "from": { "location": "method", "name": 1, "ptr": "/return" }, "to": { "location": "method", "name": 4, "ptr": "/args/1/value" } }, { "id": 29, "type": "assign", "from": { "location": "method", "name": 1, "ptr": "/return" }, "to": { "location": "method", "name": 28, "ptr": "/args/0/value" } }, { "id": 46, "type": "assign", "from": { "location": "method", "name": 1, "ptr": "/return" }, "to": { "location": "declaration", "name": 45, "ptr": "/args/0/value" } }, { "id": 28, "type": "method", "library": "Math", "method": "add", "args": [ null, 1 ], "view": { "row": 2, "col": 2 } }, { "id": 4, "type": "method", "library": "Array", "method": "includes", "args": [ null, null, null ], "view": { "row": 1, "col": 2 } }, { "id": 31, "type": "assign", "from": { "location": "method", "name": 28, "ptr": "/return" }, "to": { "location": "method", "name": 30, "ptr": "/args/1/value" } }, { "id": 36, "type": "assign", "from": { "location": "method", "name": 28, "ptr": "/return" }, "to": { "location": "method", "name": 35, "ptr": "/args/0/value" } }, { "id": 47, "type": "assign", "from": { "location": "method", "name": 28, "ptr": "/return" }, "to": { "location": "declaration", "name": 45, "ptr": "/args/1/value" } }, { "id": 22, "type": "assign", "from": { "location": "method", "name": 4, "ptr": "/return" }, "to": { "location": "method", "name": 21, "ptr": "/args/0/value" } }, { "id": 21, "type": "method", "library": "Logical", "method": "not", "args": [ null ], "view": { "row": 1, "col": 4 } }, { "id": 30, "type": "method", "library": "Array", "method": "includes", "args": [ null, null, null ], "view": { "row": 2, "col": 3 } }, { "id": 35, "type": "method", "library": "Relational", "method": "lessThanOrEqual", "args": [ null, null ], "view": { "row": 3, "col": 2 } }, { "id": 23, "type": "assign", "from": { "location": "method", "name": 21, "ptr": "/return" }, "to": { "location": "method", "name": 9, "ptr": "/args/0/value" } }, { "id": 34, "type": "assign", "from": { "location": "method", "name": 30, "ptr": "/return" }, "to": { "location": "method", "name": 33, "ptr": "/args/0/value" } }, { "id": 40, "type": "assign", "from": { "location": "method", "name": 35, "ptr": "/return" }, "to": { "location": "method", "name": 38, "ptr": "/args/1/value" } }, { "id": 33, "type": "method", "library": "Logical", "method": "not", "args": [ null ], "view": { "row": 2, "col": 4 } }, { "id": 39, "type": "assign", "from": { "location": "method", "name": 33, "ptr": "/return" }, "to": { "location": "method", "name": 38, "ptr": "/args/0/value" } }, { "id": 45, "type": "declaration", "library": "Array", "method": "new Array", "args": [ null, null ], "view": { "row": 6, "col": 1 }, "polymorphIndex": 0 }, { "id": 48, "type": "assign", "from": { "location": "declaration", "name": 45, "ptr": "/return" }, "to": { "location": "method", "name": 16, "ptr": "/args/2/value" } }, { "id": 9, "type": "method", "library": "Logical", "method": "and", "args": [ null, null ], "view": { "row": 4, "col": 3 } }, { "id": 44, "type": "assign", "from": { "location": "method", "name": 9, "ptr": "/return" }, "to": { "location": "method", "name": 41, "ptr": "/args/1/value" } }, { "id": 16, "type": "method", "library": "Object", "method": "setProperty", "args": [ null, "assigned", null ], "view": { "row": 5, "col": 2 } }, { "id": 19, "type": "assign", "from": { "location": "method", "name": 16, "ptr": "/return" }, "to": { "location": "method", "name": 7, "ptr": "/args/1/value" } }, { "id": 38, "type": "method", "library": "Logical", "method": "and", "args": [ null, null ], "view": { "row": 3, "col": 3 } }, { "id": 43, "type": "assign", "from": { "location": "method", "name": 38, "ptr": "/return" }, "to": { "location": "method", "name": 41, "ptr": "/args/0/value" } }, { "id": 41, "type": "method", "library": "Logical", "method": "and", "args": [ null, null ], "view": { "row": 3, "col": 4 } }, { "id": 42, "type": "assign", "from": { "location": "method", "name": 41, "ptr": "/return" }, "to": { "location": "method", "name": 7, "ptr": "/args/0/value" } }, { "id": 7, "type": "method", "library": "Conditional", "method": "ternary", "args": [ null, null, null ], "view": { "row": 3, "col": 5 } }, { "id": 27, "type": "assign", "from": { "location": "method", "name": 7, "ptr": "/return" }, "to": { "location": "outgoing", "name": "accumulator", "ptr": "" } } ], "view": { "col": 5, "row": 7 }, "id": "ƒ_reduce_2", "comments": [] } ], "view": { "col": 4, "row": 6 }, "created": "2020-12-18T21:23:22.317Z", "createdBy": { "_id": "5f36a3352554207e49a23f0b", "provenance": "Itential AAA LDAP", "username": "itential-artifacts" }, "lastUpdated": "2020-12-21T22:21:22.698Z", "lastUpdatedBy": { "_id": "5f36a3352554207e49a23f0b", "provenance": "Itential AAA LDAP", "username": "itential-artifacts" } } } ], "readme": "<!-- This is a comment in md (Markdown) format, it will not be visible to the end user -->\n## _Deprecation Notice_\nThis Pre-Built has been deprecated as of 01-15-2024 and will be end of life on 01-15-2025. The capabilities of this Pre-Built have been replaced by the [IAP - Data Manipulation](https://gitlab.com/itentialopensource/pre-built-automations/iap-data-manipulation)\n\n<!-- Update the below line with your artifact name -->\n# Allocate a Pair of Numbers\n\n<!-- Leave TOC intact unless you've added or removed headers -->\n## Table of Contents\n\n* [Overview](#overview)\n* [Installation Prerequisites](#installation-prerequisites)\n* [Features](#features)\n* [Future Enhancements](#future-enhancements)\n* [How to Install](#how-to-install)\n* [How to Run](#how-to-run)\n* [Additional Information](#additional-information)\n\n## Overview\nThis Pre-Built consists of a JST document that finds the first available consecutive pair of numbers from a given starting integer, a given ending integer, and a given array of already allocated integers (`allocated`).\n\nFor instance, a range is defined by start and end values: ex: 0 through 255. These values are assumed for the following examples.\n\nExample 1: `allocated: [12,200,199,0,2,4,100,101,150]`. The output from this JST is an object containing the next available consecutive pair of numbers availible in the range. `{ \"assigned\": [5,6] }`.\n\nExample 2: `allocated: [187,19,0,1,2,18,10,140]` The output for this JST will be `{ \"assigned\": [3,4] }`.\n\nIn case the range is all allocated, the output object will be: `{ \"assigned\": false }`\n\nExample use cases when this JST can be used: an array of ports, an array of IP addresses (can only handle 1 quadrant: 0-255), etc.\n<!-- Write a few sentences about the artifact and explain the use case(s) -->\n<!-- Ex.: The Migration Wizard enables IAP users to conveniently move their automation use cases between different IAP environments -->\n<!-- (e.g. from Dev to Pre-Production or from Lab to Production). -->\n\n<!-- Workflow(s) Image Placeholder - TO BE ADDED DIRECTLY TO GitLab -->\n<!-- REPLACE COMMENT BELOW WITH IMAGE OF YOUR MAIN WORKFLOW -->\n\n<!-- REPLACE COMMENT ABOVE WITH IMAGE OF YOUR MAIN WORKFLOW -->\n\n<!-- ADD ESTIMATED RUN TIME HERE -->\n<!-- e.g. Estimated Run Time: 34 min. -->\n_Estimated Run Time_: depends on the size of the array. usually within second(s)\n\n## Installation Prerequisites\n\nUsers must satisfy the following pre-requisites:\n\n<!-- Include any other required apps or adapters in this list -->\n<!-- Ex.: EC2 Adapter -->\n* Itential Automation Platform\n * `^2022.1.x`\n\n\n## Features\n\nThe main benefits and features of the Pre-Built are outlined below.\n * Finds the first available consecutive pair of numbers within an array. \n<!-- Unordered list highlighting the most exciting features of the artifact -->\n<!-- EXAMPLE -->\n<!-- * Automatically checks for device type -->\n<!-- * Displays dry-run to user (asking for confirmation) prior to pushing config to the device -->\n<!-- * Verifies downloaded file integrity (using md5), will try to download again if failed -->\n\n\n## Future Enhancements\n * Increasing an algorithm's efficiency by converting logic onto a recursive call.\n<!-- OPTIONAL - Mention if the artifact will be enhanced with additional features on the road map -->\n<!-- Ex.: This artifact would support Cisco XR and F5 devices -->\n\n## How to Install\n\nTo install the artifact:\n\n* Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the [Requirements](#requirements) section in order to install the Pre-Built.\n* The Pre-Built can be installed from within App-Admin_Essential. Simply search for the name of your desired artifact and click the install button.\n\n<!-- OPTIONAL - Explain if external components are required outside of IAP -->\n<!-- Ex.: The Ansible roles required for this artifact can be found in the repository located at https://gitlab.com/itentialopensource/pre-built-automations/hello-world -->\n\n## How to Run\n\nIn order to run this JST, add the appropriate JST task onto the workflow, then search for \"allocateNewPair\" and\nassign values to all incoming variables:\n\n startRange: INT\n endRange: INT\n allocated: ARRAY of INT\n<!-- Explain the main entrypoint(s) for this artifact: Automation Catalog item, Workflow, Postman, etc. -->\n\n## Additional Information\n\nPlease use your Itential Customer Success account if you need support when using this Pre-Built Transformation.\n" }