Classes
class UniversalExtension
Base class for Stonebranch Universal Extension module implementations
Instance variables
uip
can be used to access the following properties of an Extension task instance:
task_variables : dict
is_triggered : bool
trigger_id : str
instance_id : str
monitor_id : str
Examples
...
Html bobswift |
---|
<!doctype html> <html lang="en"> <body> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> <meta name="generator" content="pdoc 0.10.0" /> <title>universal_extension.universal_extension API documentation</title> <meta name="description" content="" /> <link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin> <link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin> <link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin> <style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;padding:0em 0em 0.75em 0em !important}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold;font-size:1.5em !important}.classes-title{padding:1em 0em 0em 0em !important;font-weight:bold !important}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;padding: 0px;font-size:.8em;line-height:1.4em}code{padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:none;font-weight:500;font-size:1.1em;padding:5px 10px;display:inline-block;min-width:40%}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{color:#00529B;background-color:#BDE5F8;border-left:solid 4px #3498db;line-height:18px;padding:5px;margin:0.5em 0em}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{color:#9F6000;background-color:#FEEFB3;border-left:solid 4px #ec8e00;line-height:18px;padding:5px;margin:0.5em 0em}.admonition.error,.admonition.danger,.admonition.caution{color:#D8000C;background-color:#FFD2D2;border-left:solid 4px #DB1924;line-height:18px;padding:5px;margin:0.5em 0em}pre{background-color:#eeffcc;word-wrap:break-word;border:1px solid #ac9;padding:5px}pre code{background:none}hr{width:95%}.thick-line{height:2.5px;border-width:0;color:gray;background-color:gray}</style> <style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:100%;padding:0em}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style> <style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style> <main> <article id="content"> <section id="section-intro"> </section> <section> </section> <section> </section> <section> </section> <section> <h1 class="classes-title">Classes</h1> <dl> <dt id="universal_extension.universal_extension.UniversalExtension"><code class="flex name class"> <span>class <span class="ident">UniversalExtension</span></span> </code></dt> <dd> <div class="desc"><p>Base class for Stonebranch Universal Extension module implementations</p></div> </dd> <dd> <h3>Instance variables</h3> <dl> <dt id="universal_extension.universal_extension.UniversalExtension.uip"><code class="name"><span class="ident">uip</span></code></dt> <dd> <div class="desc"><p>can be used to access the following properties of an Extension task instance:</p> <ul> <li><strong><code>task_variables</code></strong> : <code>dict</code></li> <li><strong><code>is_triggered</code></strong> : <code>bool</code></li> <li><strong><code>trigger_id</code></strong> : <code>str</code></li> <li><strong><code>instance_id</code></strong> : <code>str</code></li> <li><strong><code>monitor_id</code></strong> : <code>str</code></li> </ul> <h2 id="examples">Examples</h2> <pre><code>>>> ops_task_id = self.uip.task_variables['ops_task_id'] |
...
>>> is_triggered = self.uip.is_triggered |
...
>>> trigger_id = self.uip.trigger_id |
...
>>> instance_id = self.uip.instance_id |
...
>>> monitor_id = self.uip.monitor_ |
...
Methods
extension_start
(self, fields)
Serves as the starting point for work that will be performed for a task instance. It must be implemented in the derived class.
Parameters
fields : dict
populated with field values from the associated task instance launched in the Controller
Returns
ExtensionResult
once the work is done, an instance of ExtensionResult must be returned. See the ExtensionResult documentation for a full list of parameters that can be passed to the class constructor
extension_cancel
(self)
Optional method that allows the Extension to do any cleanup work before terminating. To use it, implement in the derived class.
Parameters
None
Returns
None
update_extension_status
(self, fields)
Propagate state changes back to the associated extension instance in the Controller.
- Can be called at any time by an Extension instance.
- Any/all output fields defined in the associated Extension Template can be updated using this method.
Parameters
fields : dict
The fields parameter expects a dictionary of output fields to be sent back to the controller for the associated Extension instance. Field names are implementation dependent and correlate with the Universal Template field names in the Controller's Template definition for the associated task.
Returns
None
Examples
>>> fields = {"foo": "bar"}
...
id </code></pre></div> </dd> <hr> </dl> <h3>Methods</h3> <dl> <dt id="universal_extension.universal_extension.UniversalExtension.extension_start"><code class="name flex"> <span> <span class="ident">extension_start</span></span>(<span>self, fields)</span> </code></dt> <dd> <div class="desc"><p>Serves as the starting point for work that will be performed for a task instance. It must be implemented in the derived class.</p> <h2 id="parameters">Parameters</h2> <dl> <dt><strong><code>fields</code></strong> : <code>dict</code></dt> <dd>populated with field values from the associated task instance launched in the Controller</dd> </dl> <h2 id="returns">Returns</h2> <dl> <dt><code>ExtensionResult</code></dt> <dd>once the work is done, an instance of ExtensionResult must be returned. See the ExtensionResult documentation for a full list of parameters that can be passed to the class constructor</dd> </dl></div> </dd> <hr> <dt id="universal_extension.universal_extension.UniversalExtension.extension_cancel"><code class="name flex"> <span> <span class="ident">extension_cancel</span></span>(<span>self)</span> </code></dt> <dd> <div class="desc"><p>Optional method that allows the Extension to do any cleanup work before terminating. To use it, implement in the derived class.</p> <h2 id="parameters">Parameters</h2> <p>None </p> <h2 id="returns">Returns</h2> <dl> <dt><code>None</code></dt> </dl></div> </dd> <hr> <dt id="universal_extension.universal_extension.UniversalExtension.update_extension_status"><code class="name flex"> <span> <span class="ident">update_extension_status</span></span>(<span>self, fields)</span> </code></dt> <dd> <div class="desc"><p>Propagate state changes back to the associated extension instance in the Controller.</p> <ul> <li>Can be called at any time by an Extension instance. </li> <li>Any/all output fields defined in the associated Extension Template can be updated using this method.</li> </ul> <h2 id="parameters">Parameters</h2> <dl> <dt><strong><code>fields</code></strong> : <code>dict </code></dt> <dd>The fields parameter expects a dictionary of output fields to be sent back to the controller for the associated Extension instance. Field names are implementation dependent and correlate with the Universal Template field names in the Controller's Template definition for the associated task.</dd> </dl> <h2 id="returns">Returns</h2> <dl> <dt><code>None </code></dt> </dl> <h2 id="examples">Examples</h2> <pre><code>>>> fields = {"foo": "bar"} >>> self.update_extension_status(fields) </code></pre></div> </dd> <hr> </dl> </dd> <hr class="thick-line"> </dl> </section> </article> </main> </body> </html> |